Oracle DBCA创建数据库 闪回
来源:互联网 发布:天津大学网络自服务 编辑:程序博客网 时间:2024/06/05 18:03
DBCA全称 Database Configuration Assistant
可以通过点击菜单 也可以直接在命令行中输入dbca运行
ASM=Automatic Storage Management
AIX --> IBM
Redhat Linux
Solaris -->Sun -->Oracle
BI
OLTP ->transaction ->Oracle(Online Transaction Process)
OLAP ->Analysis
如果数据库是归档模式 就是在定义闪回的时候 Enable Arching oracle 默认是非归档模式
归档模式 —> 热备份 联机备份
非归档模式 -> 冷备份 离线备份
SQL> conn / as sysdba
已连接。
SQL> archive log list
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 89
当前日志序列 91
优化:分区partition--> 对于大表
闪回
SQL> /*SQL> 1. 错误地删除了记录SQL> 2. 错误地删除了表SQL> 3. 查询历史记录SQL> 4. 如何撤销一个已经提交的事务SQL> SQL> 闪回的类型SQL> 1. 闪回表:将表回退到过去的一个时间上SQL> 2. 闪回删除:Oracle回收站SQL> 3. 闪回版本查询:所有历史记录SQL> 4. 闪回事务查询: 通过select语句得到一个 undo_sqlSQL> SQL> 5. 闪回数据库SQL> 6. 闪回归档日志SQL> */
SQL> --SCN系统改变号(时间)SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss*ff') 时间, 2 timestamp_to_scn(systimestamp) SCN 3 from dual;时间 SCN ----------------------------- ---------- 2012-10-25 10:31:02*000000 3783972 SQL> /*SQL> SQL> show parameter undoSQL> SQL> NAME TYPE VALUESQL> ------------------------------------ ----------- --------------------SQL> undo_management string AUTOSQL> undo_retention integer 1200SQL> undo_tablespace string UNDOTBS1SQL> SQL> --scope的取值: momery spfile bothSQL> SQL> alter system set undo_retention=900 scope=both;SQL> */SQL> --权限 grant flashback any table to scott;
闪回表
SQL> --权限 grant flashback any table to scott;SQL> create table flashback_table 2 (fid number,fname varchar2(20));表已创建。SQL> insert into flashback_table values(1,'Tom');已创建 1 行。SQL> insert into flashback_table values(2,'Mary');已创建 1 行。SQL> insert into flashback_table values(3,'Mike');已创建 1 行。SQL> commit;提交完成。SQL> --当前时间SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss*ff') 时间, 2 timestamp_to_scn(systimestamp) SCN 3 from dual;时间 SCN ----------------------------- ---------- 2012-10-25 10:36:22*046000 3784220 SQL> select * from flashback_table; FID FNAME ---------- -------------------- 1 Tom 2 Mary 3 Mike SQL> --删除marySQL> delete from flashback_table where fid =2;已删除 1 行。SQL> commit;提交完成。SQL> select * from flashback_table; FID FNAME ---------- -------------------- 1 Tom 3 Mike SQL> --执行闪回表SQL> flashback table flashback_table to scn 3784220;flashback table flashback_table to scn 3784220 *第 1 行出现错误: ORA-08189: 因为未启用行移动功能, 不能闪回表 SQL> --开启表的行移动SQL> alter table flashback_table enable row movement;表已更改。SQL> flashback table flashback_table to scn 3784220;闪回完成。SQL> select * from flashback_table; FID FNAME ---------- -------------------- 1 Tom 2 Mary 3 Mike SQL> --问题:如何获取最近的一个时间?
闪回表操作:系统表不能被闪回
不能跨越DDL操作
会被写入警告日志
产生撤销和重做的数据
闪回删除
SQL> --闪回删除SQL> select * from tab;TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- DEPT TABLE EMP TABLE BONUS TABLE SALGRADE TABLE EMP20 TABLE TESTSAVEPOINT TABLE TEST2 TABLE MYPERSON TABLE EMP10 TABLE EMPINCOME TABLE VIEW1 VIEW TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- VIEW2 VIEW TESTSEQ TABLE HREMP SYNONYM MSG1 TABLE TEST1 TABLE PM_CI TABLE PM_STU TABLE FLASHBACK_TABLE TABLE SYS_TEMP_FBT TABLE 已选择20行。SQL> drop table test1;表已删除。SQL> show recyclebinORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ -------------------TEST1 BIN$Rn2qG7V+SO2k+aNrG/oYww==$0 TABLE 2012-10-25:10:45:11SQL> purge recyclebin;回收站已清空。SQL> --管理员没有回收站SQL> select * from TESTSEQ; TID TNAME ---------- -------------------- 3 aaa 4 aaa 5 aaa 8 aaa SQL> drop table TESTSEQ;表已删除。SQL> show recyclebinORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ -------------------TESTSEQ BIN$UhseqyX1Reyl5iurpupyEg==$0 TABLE 2012-10-25:10:47:38SQL> select * from TESTSEQ;select * from TESTSEQ *第 1 行出现错误: ORA-00942: 表或视图不存在 SQL> select * from tab;TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- DEPT TABLE EMP TABLE BONUS TABLE SALGRADE TABLE EMP20 TABLE TESTSAVEPOINT TABLE TEST2 TABLE MYPERSON TABLE EMP10 TABLE EMPINCOME TABLE VIEW1 VIEW TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- VIEW2 VIEW HREMP SYNONYM MSG1 TABLE BIN$UhseqyX1Reyl5iurpupyEg==$0 TABLE PM_CI TABLE PM_STU TABLE FLASHBACK_TABLE TABLE SYS_TEMP_FBT TABLE 已选择19行。SQL> select * from BIN$UhseqyX1Reyl5iurpupyEg==$0;select * from BIN$UhseqyX1Reyl5iurpupyEg==$0 *第 1 行出现错误: ORA-00933: SQL 命令未正确结束 SQL> select * from "BIN$UhseqyX1Reyl5iurpupyEg==$0"; TID TNAME ---------- -------------------- 3 aaa 4 aaa 5 aaa 8 aaa SQL> host clsSQL> show recyclebinORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ -------------------TESTSEQ BIN$UhseqyX1Reyl5iurpupyEg==$0 TABLE 2012-10-25:10:47:38SQL> --执行闪回删除SQL> flashback table testseq to before drop;闪回完成。SQL> show recyclebinSQL> select * from testseq; TID TNAME ---------- -------------------- 3 aaa 4 aaa 5 aaa 8 aaa SQL> host clsSQL> drop table testseq;表已删除。SQL> create table testseq(tid number);表已创建。SQL> drop table testseq;表已删除。SQL> show recyclebinORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ -------------------TESTSEQ BIN$ZsXHtmHLTLu40DAC6jiKqg==$0 TABLE 2012-10-25:10:51:22TESTSEQ BIN$hBllsvl5Tum9hHaSvtQhag==$0 TABLE 2012-10-25:10:51:01SQL> flashback table testseq to before drop;闪回完成。SQL> show recyclebinORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ -------------------TESTSEQ BIN$hBllsvl5Tum9hHaSvtQhag==$0 TABLE 2012-10-25:10:51:01SQL> select * from testseq;未选定行SQL> flashback table testseq to before drop;flashback table testseq to before drop*第 1 行出现错误: ORA-38312: 原始名称已被现有对象使用 SQL> --闪回重名的表SQL> flashback table testseq to before drop rename to testseq_old;闪回完成。SQL> select * from testseq_old; TID TNAME ---------- -------------------- 3 aaa 4 aaa 5 aaa 8 aaa SQL> host clsSQL> /*SQL> 小结:SQL> 基本概念: 1. SCN 2. 900秒15分钟 3. 权限 flashback any tablesSQL> 闪回表:将表回退到过去的一个时间SQL> 1. 行移动SQL> 2. 执行闪回表SQL> 注意: 系统表不能闪回;不能跨越DDLSQL> 问题: 如何得到离该操作最近的一个时间??SQL> 闪回删除: Oracle的回收站SQL> 1. 执行闪回删除SQL> 2. 通过回收站中的名字闪回(双引号)SQL> 3. 重名的表SQL> 4. 触发器(disable 闪回之后默认是禁用的) 5还有就是 管理员没有回收站 谨慎操作SQL> */
闪回版本查询
SQL> --闪回版本查询SQL> create table versions_table 2 (tid number,tname varchar2(20));表已创建。SQL> insert into versions_table values(1,'Tom');已创建 1 行。SQL> commit;提交完成。SQL> insert into versions_table values(2,'Mary');已创建 1 行。SQL> commit;提交完成。SQL> insert into versions_table values(3,'Mike');已创建 1 行。SQL> commit;提交完成。SQL> update versions_table set tname='MaryNew' where tid=2;已更新 1 行。SQL> commit;提交完成。SQL> select * from versions_table; TID TNAME ---------- -------------------- 1 Tom 2 MaryNew 3 Mike SQL> --如何查询Mary?SQL> --执行闪回版本查询SQL> select tid,tname 2 from versions_table 3 versions between TIMESTAMP MINVALUE and MAXVALUE 4 order by 1; TID TNAME ---------- -------------------- 1 Tom 2 MaryNew 2 Mary 3 Mike SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间, 2 versions_endtime 结束时间,versions_xid 事务号 3 from versions_table 4 versions between TIMESTAMP MINVALUE and MAXVALUE 5 order by 1,4; TID TNAME ---------- -------------------- - 起始时间 --------------------------------------------------------------------------- 结束时间 --------------------------------------------------------------------------- 事务号 ---------------- 1 Tom I 25-10月-12 11.17.28 上午 03002E005A050000 TID TNAME ---------- -------------------- - 起始时间 --------------------------------------------------------------------------- 结束时间 --------------------------------------------------------------------------- 事务号 ---------------- 2 Mary I 25-10月-12 11.17.37 上午 25-10月-12 11.18.16 上午 02000D0064050000 TID TNAME ---------- -------------------- - 起始时间 --------------------------------------------------------------------------- 结束时间 --------------------------------------------------------------------------- 事务号 ---------------- 2 MaryNew U 25-10月-12 11.18.16 上午 0600030065050000 TID TNAME ---------- -------------------- - 起始时间 --------------------------------------------------------------------------- 结束时间 --------------------------------------------------------------------------- 事务号 ---------------- 3 Mike I 25-10月-12 11.17.46 上午 0400130061050000 SQL> set linesize 150SQL> col tid for 99SQL> col tname for a10SQL> col 操作 for a8SQL> col 起始时间 for a40SQL> col 结束时间 for a40SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间, 2 versions_endtime 结束时间,versions_xid 事务号 3 from versions_table 4 versions between TIMESTAMP MINVALUE and MAXVALUE 5 order by 1,4;TID TNAME 操作 起始时间 结束时间 事务号 --- ---------- -------- ---------------------------------------- ---------------------------------------- ---------------- 1 Tom I 25-10月-12 11.17.28 上午 03002E005A050000 2 Mary I 25-10月-12 11.17.37 上午 25-10月-12 11.18.16 上午 02000D0064050000 2 MaryNew U 25-10月-12 11.18.16 上午 0600030065050000 3 Mike I 25-10月-12 11.17.46 上午 0400130061050000 SQL> col 起始时间 for a30SQL> col 结束时间 for a30SQL> col 操作 for a4SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间, 2 versions_endtime 结束时间,versions_xid 事务号 3 from versions_table 4 versions between TIMESTAMP MINVALUE and MAXVALUE 5 order by 1,4;TID TNAME 操作 起始时间 结束时间 事务号 --- ---------- ---- ------------------------------ ------------------------------ ---------------- 1 Tom I 25-10月-12 11.17.28 上午 03002E005A050000 2 Mary I 25-10月-12 11.17.37 上午 25-10月-12 11.18.16 上午 02000D0064050000 2 MaryNew U 25-10月-12 11.18.16 上午 0600030065050000 3 Mike I 25-10月-12 11.17.46 上午 0400130061050000
闪回事务查询
SQL> --闪回版本查询SQL> create table versions_table 2 (tid number,tname varchar2(20));表已创建。SQL> insert into versions_table values(1,'Tom');已创建 1 行。SQL> commit;提交完成。SQL> insert into versions_table values(2,'Mary');已创建 1 行。SQL> commit;提交完成。SQL> insert into versions_table values(3,'Mike');已创建 1 行。SQL> commit;提交完成。SQL> update versions_table set tname='MaryNew' where tid=2;已更新 1 行。SQL> commit;提交完成。SQL> select * from versions_table; TID TNAME ---------- -------------------- 1 Tom 2 MaryNew 3 Mike SQL> --如何查询Mary?SQL> --执行闪回版本查询SQL> select tid,tname 2 from versions_table 3 versions between TIMESTAMP MINVALUE and MAXVALUE 4 order by 1; TID TNAME ---------- -------------------- 1 Tom 2 MaryNew 2 Mary 3 Mike SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间, 2 versions_endtime 结束时间,versions_xid 事务号 3 from versions_table 4 versions between TIMESTAMP MINVALUE and MAXVALUE 5 order by 1,4; TID TNAME ---------- -------------------- - 起始时间 --------------------------------------------------------------------------- 结束时间 --------------------------------------------------------------------------- 事务号 ---------------- 1 Tom I 25-10月-12 11.17.28 上午 03002E005A050000 TID TNAME ---------- -------------------- - 起始时间 --------------------------------------------------------------------------- 结束时间 --------------------------------------------------------------------------- 事务号 ---------------- 2 Mary I 25-10月-12 11.17.37 上午 25-10月-12 11.18.16 上午 02000D0064050000 TID TNAME ---------- -------------------- - 起始时间 --------------------------------------------------------------------------- 结束时间 --------------------------------------------------------------------------- 事务号 ---------------- 2 MaryNew U 25-10月-12 11.18.16 上午 0600030065050000 TID TNAME ---------- -------------------- - 起始时间 --------------------------------------------------------------------------- 结束时间 --------------------------------------------------------------------------- 事务号 ---------------- 3 Mike I 25-10月-12 11.17.46 上午 0400130061050000 SQL> set linesize 150SQL> col tid for 99SQL> col tname for a10SQL> col 操作 for a8SQL> col 起始时间 for a40SQL> col 结束时间 for a40SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间, 2 versions_endtime 结束时间,versions_xid 事务号 3 from versions_table 4 versions between TIMESTAMP MINVALUE and MAXVALUE 5 order by 1,4;TID TNAME 操作 起始时间 结束时间 事务号 --- ---------- -------- ---------------------------------------- ---------------------------------------- ---------------- 1 Tom I 25-10月-12 11.17.28 上午 03002E005A050000 2 Mary I 25-10月-12 11.17.37 上午 25-10月-12 11.18.16 上午 02000D0064050000 2 MaryNew U 25-10月-12 11.18.16 上午 0600030065050000 3 Mike I 25-10月-12 11.17.46 上午 0400130061050000 SQL> col 起始时间 for a30SQL> col 结束时间 for a30SQL> col 操作 for a4SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间, 2 versions_endtime 结束时间,versions_xid 事务号 3 from versions_table 4 versions between TIMESTAMP MINVALUE and MAXVALUE 5 order by 1,4;TID TNAME 操作 起始时间 结束时间 事务号 --- ---------- ---- ------------------------------ ------------------------------ ---------------- 1 Tom I 25-10月-12 11.17.28 上午 03002E005A050000 2 Mary I 25-10月-12 11.17.37 上午 25-10月-12 11.18.16 上午 02000D0064050000 2 MaryNew U 25-10月-12 11.18.16 上午 0600030065050000 3 Mike I 25-10月-12 11.17.46 上午 0400130061050000
0 0
- Oracle DBCA创建数据库 闪回
- 使用DBCA创建Oracle数据库
- 使用DBCA创建Oracle数据库
- 使用ORACLE DBCA创建数据库
- 使用dbca创建oracle数据库
- 使用DBCA创建Oracle数据库
- step by step DBCA创建Oracle数据库
- Oracle——利用DBCA创建数据库
- Oracle 11g利用DBCA创建数据库
- ORACLE dbca 命令创建数据库模板,并用模板创建数据库
- Oracle DBCA 创建实例
- 使用DBCA创建数据库
- dbca创建数据库
- 使用dbca创建数据库
- DBCA创建数据库实例
- linux下使用DBCA(database configuration assistant)创建oracle数据库
- DBCA创建数据库ORA-01034 ORACLE not available
- oracle DBCA安装数据库 实验
- FFMPEG中最关键的结构体之间的关系
- maven依赖查询
- Yu的博客
- Statistics in Hive的mysql配置
- 深入分析 Java 中的中文编码问题
- Oracle DBCA创建数据库 闪回
- Js Jquery创建一个弹出层(当加载一个页面进弹出层时出现乱码)
- Ignoring query to other database
- socket函数htons()
- Linux内核编译(Red Hat Enterprise/centos/Fedora)
- Linux内核学习笔记之内存分配(九)
- 清除UIWebView的缓存
- opencore内部调度
- mongodb window安装