[20190130]删除tab$记录的恢复2.txt
--//前面链接写好了脚本,开始测试删除后的恢复.千万不要在生产系统做这样的测试!!
--//参考链接:http://blog.itpub.net/267265/viewspace-2565245/=>[20190130]删除tab$记录的恢复.txt
1.环境:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
create table ORACHK001 tablespace system as select * from sys.tab$;
SYS@book> create table ORACHK001 tablespace system as select * from sys.tab$;
Table created.
SYS@book> select count(*) from sys.tab$;
COUNT(*)
----------
2966
SYS@book> select count(*) from orachk001;
COUNT(*)
----------
2965
--//这样建立的表不包含orachk001.
SYS@book> select * from sys.tab$ minus select * from orachk001;
...
SYS@book> select OBJ# , DATAOBJ# from sys.tab$ minus select OBJ# , DATAOBJ# from orachk001;
OBJ# DATAOBJ#
---------- ----------
91090 91090
SYS@book> insert into orachk001 select * from sys.tab$ where (OBJ#,DATAOBJ#) in ((91090,91090));
1 row created.
SYS@book> commit ;
Commit complete.
2.做一个冷备份:
--//关闭数据库略.
$ cp -r /mnt/ramdisk/book /home/oracle/backup/
--//重启数据库.
SYS@book> startup
ORACLE instance started.
Total System Global Area 643084288 bytes
Fixed Size 2255872 bytes
Variable Size 205521920 bytes
Database Buffers 427819008 bytes
Redo Buffers 7487488 bytes
Database mounted.
Database opened.
SYS@book> delete from sys.tab$;
2966 rows deleted.
SYS@book> commit ;
Commit complete.
SYS@book> alter system checkpoint ;
System altered.
SYS@book> alter system checkpoint ;
System altered.
SYS@book> alter system checkpoint ;
System altered.
SYS@book> shutdown immediate ;
ORA-00957: duplicate column name
SYS@book> shutdown abort ;
ORACLE instance shut down.
--//再保留一份坏的备份.
$ mv /home/oracle/backup/book /home/oracle/backup/book_20190122_good
`/home/oracle/backup/book' -> `/home/oracle/backup/book_20190122_good'
$ cp -r /mnt/ramdisk/book /home/oracle/backup/
$ mv /home/oracle/backup/book /home/oracle/backup/book_20190122_bad
`/home/oracle/backup/book' -> `/home/oracle/backup/book_20190122_bad'
3.开始恢复:
--//执行如下脚本,自己建立目录/home/oracle/zzz430,zdate,rlbbed是别名.看前面的链接.
--//脚本scan.sh:
#! /bin/bash
/bin/rm /home/oracle/zzz430/bbed/scan*.txt
cd /home/oracle/zzz430/bbed
echo "process 1 start : `zdate` scan dba 1,144 , create scan1.txt about ktetbdba,ktetbnbk"
echo "p /d dba 1