Recovery, Flashback, Corruption, Memory是今天的课程,给我的感觉一天要讲那么多东西,其实也根本就是无法深入的讲解的。更多的感觉就是老师把课本上的东西讲一遍同时做实验,绝大多数的实例多做了实验,而且当中还有一些突发故障的解决。 其他基本上没有什么亮点,基本上的知识已经掌握的差不多了,有些知识点有些遗忘,这次机会再补全一下。
发现做实验的那些脚本不错,不过好像不能拷贝出来,电脑不能上网,USB口也被禁用了。
简单记录一下今天的要点,脑袋记东西是忘记的很快的!
Recovery
1. 完全恢复在 mount模式下完成
在适用RMAN恢复的时候注意时间格式的环境变量 NLS_LANG, NLS_DATE_FORMAT
2. 在使用不完全恢复的情况下,首先要确认所有的文件都ONLINE,否则麻烦多多。
ALTER DATABASE DATAFILE 4 OFFLINE DROP, 这样会导致把4好离线文件直接干掉了。
3. 使用RMAN做不完全恢复时, SET UNTIL SEQUENCE 120 THREAD 1 是恢复到119号归档文件,而非 120号, thread 1表示集群的第一个节点,对于单DB是没有意义的
4. 在做不完全恢复的时候很有可能遇上ORA-00279, ORA-00289, ORA-00280 找不到Arcn或者redo的情况,需要手动去探测有用redo文件,再用resetlogs打开数据库。
5. 在做不完全恢复前面也需要被DB的备份,不是因为怕恢复失败(之前都是一直这样理解的)。真正的目的是(当然是根据老师说的了),再不完全恢复完成后,把你需要的数据EXP出来,然后再把数据库恢复到不完全恢复之前,再把EXP出来的数据IMP进去,这样就可以不让任何数据丢失了!嘿嘿
不完全恢复总是需要所有的文件,速度是很慢滴。
不完全恢复前后需要check alert文件
6. 丢失控制文件总是一件麻烦的事情。
最后是有RMAN自动备份的control文件,就可以
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
要不然就只好根据备份出来的控制文件 在nomount下 create new control file
根据老师的讲法,创建新的control文件的时候只需要把控制文件,日志文件,数据文件的路径搞定,其他的根据需要来(其中数据文件里不包括offline, readonly and temparary files),需要手动搞定,其他的代码在文件里可以找到。
ALTER DATABASE RENAME FILE 'MISSING0005' TO '/..../example01.dbf';
RESTORE DATABASE ...... USING BACKUP CONTROLFILE
Flashback
7. Flashback table is using LIFO
SHOW RECYCLEBIN
8. FLAHSBACK DATABASE
首先需要: startup mount;
FLASHBACK DATABASE TO BEFORE RESETLOGS (这个东西好用,可以在测试环境下快速的恢复初始数据库)
最后因为文件的不一致,必须: alter database open resetlogs
9. 在FLASHBACK DATABASE前,可以使用
ALTER TABLESPACE <TS_NAME> FLASHBACK OFF;
这样虽然不会将该表闪回,但事实上会导致数据库无法正常启动,必须先把该tablespace drop掉,再做恢复(或者是exp,drop,imp)。 感觉上这样的行为真的有点得不偿失。
Corruption
10. DBVERIFY Physical
ANALYZE    Logical
DB_BLOCK_CHECKING Logical一般会造成5%以上的性能影响,不推荐开启。
DB_BLOCK_CHECKSUM Physical对性能的影响一般在2%,也不推荐
11. DBMS_REPAIR 对数据进行逻辑修复,而且除非每列都加了索引,否则肯定会丢失数据列,不被推荐。
使用 BLOCKRECOVER DATAFILE 6 BLOCK 3; 修复
Ex. RMAN> BLOCKRECOVER CORRUPTION LIST RESTORE UNTIL TIME 'SYSDATE - 10';
12. ASSM is based on workload infomation that MMAN captures in the background.
-- get the file
select file_id,block_id from dba_extents where segment_name = 'DEPARTMENTS';
select file_name from dba_data_files where file_id = 5;
Memory
13. Get the SGA parameters
select pool,sum(bytes)/1024/1024 size_mb from v$sgastat group by pool;
select compponent, current_size/1024/1024 size_mb from v$sga_dynamic_components;
14. PGA_AGGREGATE_TARGET v$pga_target_advice
15. Consider using CURSOR_SHARING (sql语句类似) 参数: similar
Pin objectsin the library cache (高级货,据说在oracle性能调优课程里涉及)
16. ALTER SYSTEM FLUSH BUFFER_CACHE -- flush the buffer cache!
-- EOF --
This work is licensed under a CC A-S 4.0 International License.