Oracle课程档案,第十六天
restore:恢复文件
recover: 恢复日志
丢失current日志组(正常关闭数据库):
故障:
SQL> select group#, status from v$log;		确认current组
SQL> shutdown immediate
$ rm -f /home/oracle/redo02b.log /u01/app/oracle/oradata/orcl/redo02.log
SQL> startup		报错
恢复:
SQL> startup mount
SQL> select group#, status , archived from v$log;
SQL> alter database clear unarchived logfile group 2;     unarchived:未归档
SQL> alter database open;
做数据库的全备份
丢失current日志组(非正常关闭数据库)一定会丢数据:
故障:
RMAN> backup database;
SQL> create table t1(x varchar2(50));
SQL> insert into t1 values ('after backup, before archived');
SQL> commit;
SQL> alter system switch logfile;
SQL> insert into t1 values ('after backup, after archived, current');
SQL> commit;
SQL> insert into t1 values ('after backup, after archived, current, uncommitted');
SQL> alter system checkpoint;
SQL> shutdown abort
$ rm -f /home/oracle/redo03b.log /u01/app/oracle/oradata/orcl/redo03.log
SQL> startup		报错
SQL> select group#, sequence#, status, archived from v$log;	确认日志序号
恢复:
RMAN> run {
startup force mount;
set until sequence 10;
restore database;
recover database;
alter database open resetlogs;}
SQL> select * from t1;		丢失数据
丢失active日志组:
恢复数据块
故障:
SQL> create tablespace tbs01 datafile '/home/oracle/tbs01.dbf' size 5M;
SQL> create table t1 tablespace tbs01 as select * from dba_objects where rownum<=30000;
RMAN> backup tablespace tbs01;
SQL> alter system flush buffer_cache;
$ dd of=/home/oracle/tbs01.dbf bs=8k conv=notrunc seek=300<<EOF
SQL> select count(*) from t1;		报错
$ dbv file='/home/oracle/tbs01.dbf'
恢复:
SQL> select file#, block# from v$database_block_corruption;
RMAN> recover datafile 6 block 300;
RMAN> recover corruption list;
DBMS_REPAIR包隔离数据块
rman恢复目录
SQL> show parameter control_file_record_keep_time
用dbca创建数据库rc(不配置em、fra,200M内存,字符集unicode)
或者:
用netca创建主机连接字符串rc指向自身。
rc:
$ sqlplus sys/password@rc as sysdba
SQL> create tablespace rc_tbs datafile '/home/oracle/rc_tbs.dbf' size 50M;
SQL> create user rcowner identified by password default tablespace rc_tbs quota unlimited on rc_tbs;
SQL> grant recovery_catalog_owner to rcowner;
$ rman catalog rcowner/password@rc
RMAN> create catalog;
$ rman target sys/password@orcl catalog rcowner/password@rc
或
$ rman target / catalog rcowner/password@rc
RMAN> register database;
dbca删除rc
flashback
功能			依赖组件		相关参数			典型错误
query			undo tbs			undo_retention		dml
version query		undo tbs			undo_retention		dml
flashback table	undo tbs			undo_retention		dml
flashback drop		recyclebin		recyclebin, freespace	drop table
transaction query	supplemental log						dml
fda				flashback archive						dml
database			flashback log		db_flashback_retention_target	ddl
sys不允许闪回,创建新用户
SQL> create user user01 identified by password;
SQL> grant dba to user01;
SQL> conn user01/password
flashback query  闪回查询
user01:
SQL> create table t1(x int);
SQL> create index t1_x_idx on t1(x);
SQL> insert into t1 values (1);
SQL> commit;
SQL> select sysdate from dual;
SQL> select dbms_flashback.get_system_change_number from dual;
SQL> delete t1;
SQL> commit;
SQL> select * from t1;
SQL> select * from t1 as of scn 1446069;
SQL> select * from t1 as of timestamp to_timestamp('2015-10-28 10:31:54', 'yyyy-mm-dd hh24:mi:ss');
SQL> truncate table t1;或alter table t1 move;或收缩数据文件
SQL> select * from t1 as of scn 1446069;		物理结构变化,闪回失败
logminer
flashback version query  闪回版本查询
SQL> create table t1(x int);
SQL> insert into t1 values (1);
SQL> commit;
SQL> update t1 set x=2;
SQL> commit;
SQL> update t1 set x=3;
SQL> commit;
SQL> update t1 set x=4;
SQL> commit;
SQL> select versions_starttime, versions_endtime, versions_xid, versions_operation, x
from t1
versions between scn minvalue and maxvalue
order by versions_starttime;
versions between timestamp to_timestamp('2015-10-28 9:00:00', 'yyyy-mm-dd hh24:mi:ss') and to_timestamp('2015-10-28 10:00:00', 'yyyy-mm-dd hh24:mi:ss')
SQL> truncate table t1;		物理结构改变,查询失败
flashback table  闪回表  dept:部门
SQL> conn user01/password
SQL> create table my_dept(deptno int primary key, dname varchar2(20));   
SQL> create table my_emp(empno int primary key, deptno int references my_dept);
SQL> insert into my_dept values (10, 'sales');
SQL> insert into my_emp values (100, 10);
SQL> commit;
SQL> select dbms_flashback.get_system_change_number from dual;
SQL> delete my_emp;
SQL> delete my_dept;
SQL> commit;
SQL> alter table my_dept enable row movement;
SQL> alter table my_emp enable row movement;   enable:启用
SQL> flashback table my_emp to scn 1451706;		失败
SQL> flashback table my_dept to scn 1451706;
SQL> flashback table my_emp to scn 1451706;
SQL> select INDEX_NAME, STATUS from user_indexes where table_name='MY_EMP';自动维护索引
SQL> select INDEX_NAME, STATUS from user_indexes where table_name='MY_DEPT';
SQL> truncate table my_emp;
SQL> flashback table my_emp to scn 1451706;		失败
Oracle课程档案,第十六天的更多相关文章
- Oracle课程档案,第十四天
		
备份数据文件:SQL> select file_id, file_name from dba_data_files; backup:备用(备份) datafile:数据文件 backup tab ...
 - Oracle课程档案,第十五天
		
restore:恢复数据文件 recover:写日志 1.redo(roll forward)重做 (前进) 2.undo(roll back) 撤销 (回滚) cp -r:删除一个目录 archiv ...
 - Oracle课程档案,第十天
		
用户管理 Authentication: 身份验证 AAA:Authentication: 身份验证 Authorization: 权限管理 Audition: 审计 grant:授权 unset:撤 ...
 - Oracle课程档案,第十七天
		
flashback drop 闪回下降(删除)SQL> show parameter recyclebinSQL> purge recyclebin;(清除回收站)SQL> crea ...
 - Oracle课程档案,第十三天
		
配置可恢复性: ontrol_files:控制文件 parameter:参数 show:显示 select name from v$database; 查看当前的数据库★★ 控制文件SQL> s ...
 - Oracle课程档案,第十二天
		
死锁是由于两个对象在拥有一份资源的情况下申请另一份资源, 而另一份资源恰好又是这两对象正持有的,导致两对象无法完成操作,且所持资源无法释放. 阻塞是由于资源不足引起的排队等待现象. unso:撤销 c ...
 - Oracle课程档案。第十一天
		
读一致性:oracle通过多版本与闪回机制保证读一致性.保证从某个时间点开始查询是一致的.在Oracle中主要通过SCN版本号来控制系统修改的版本,典型的例子是我们可以通过在同一个查询中得到同一个对象 ...
 - Oracle课程档案,第九天
		
lsnrctl status:查看监听状态 Oracle网络配置三部分组成:客户端,监听,数据库 配置文件:$ vi $ORACLE_HOME/network/admin/listener.ora v ...
 - Oracle课程档案,第八天
		
存储管理 查询块的大小:show parameter db_block_size database:数据库 tablespace:表空间 datafile:数据文件 segments:段 extent ...
 
随机推荐
- from __future__ import print_function的作用
			
阅读代码的时候会看到下面语句: from __future__ import print_function 该语句是python2的概念,那么python3对于python2就是future了,也就是 ...
 - C# 之 批量插入数据到 SQLServer 中
			
创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快.而如果存在索引的情况下,每次插入记录都会进行索引重建,这是非常耗性能的.如 ...
 - 自动化中app支持schema跳转
			
android schema: String url = "adb -s " + udid + " shell am start -a 'android.intent.a ...
 - LIBTUX_CAT:466: ERROR: tpopen TPERMERR xa_open returned XAER_INVAL
			
tmboot 启动Tuxedo服务失败,从ULOG日志中看到以下错误: 100534.MATHXH!TMS_ORA10G.22600.4076.0: LIBTUX_CAT:466: ERROR: tp ...
 - iOS开发之Found a swap file by the name ".podfile.swp" owned by: Netban dated:...file name: ~N...
			
Found a swap file by the name ".podfile.swp" owned by: Netban dated: Fri Mar 24 13:57:27 2 ...
 - class<T>和 class<?>类型
			
? 表示不确定的java类型. T 表示java类型 Class<T>在实例化的时候,T要替换成具体类Class<?>它是个通配泛型,?可以代表任何类型<? extend ...
 - Springboot+Mybatis整合PageHelper
			
一.全部的gradle引入 // https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-sta ...
 - CZT变换(chirp z-transform)
			
作者:桂. 时间:2018-05-20 12:04:24 链接:http://www.cnblogs.com/xingshansi/p/9063131.html 前言 相比DFT,CZT是完成频谱细 ...
 - mysql 按照月份自动创建表,以年和月为表明,动态生成。
			
需求:mysql5.5 数据库,想要根据月份自动创建表,每个月创建一张表,需要数据库自动创建,并根据当前年和月动态生成表名称. 解决办法:1 连接数据库工具为Navicat 2 首先创建存储过程, ...
 - go 资料
			
channel 底层原理 https://www.youtube.com/watch?v=KBZlN0izeiY go concurrency https://www.youtube.com/watc ...