请问使用PRM 恢复ts$ 删除数据问题
刘大,我下载了RPM 测试在误删除 系统表数据的情况下恢复,根据使用白皮书,我删除了 ts$里的数据,最后恢复的时候有问题,请刘大帮忙看下(数据库版本为: 10.2.0.1, linux 5.4):
1. 删除数据ts$
SQL> select name, ts# from ts$;
NAME TS#
------------------------------ ----------
SYSTEM 0
UNDOTBS1 1
SYSAUX 2
TEMP 3
USERS 4
UNDOTBS2 5
T1 6
EXAMPLE 7
OCMINDEX 8
TEST 9
10 rows selected.
SQL> delete from ts$;
10 rows deleted.
SQL> commit;
Commit complete.
2. 数据库重启
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 184549376 bytes
Fixed Size 1218412 bytes
Variable Size 67111060 bytes
Database Buffers 113246208 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
SQL> exit
$ tail -10 /u01/oracle/admin/ocm1/bdump/alert_ocm1.log
Thu Jun 19 02:26:07 2014
SMON: enabling cache recovery
Thu Jun 19 02:26:07 2014
Errors in file /u01/oracle/admin/ocm1/udump/ocm1_ora_14565.trc:
ORA-30012: undo tablespace 'UNDOTBS1' does not exist or of wrong type
Thu Jun 19 02:26:07 2014
Error 30012 happened during db open, shutting down database
USER: terminating instance due to error 30012
Instance terminated by USER, pid = 14565
ORA-1092 signalled during: ALTER DATABASE OPEN...
$
3.拷贝数据库的所以数据文件到本地进行PRM 恢复,如下:
参考步骤是:
1. Recovery Wizard
2. 选择字典模式 Dictionary Mode
3. 合理选择Big或者Little Endian
4. 加入数据文件并点击Load
5. 根据实际需求恢复表中的数据
操作步骤截图见附件,
最后抽取 ts$ 里都是0条记录,ts$被删掉掉的数据如何恢复呢? 你好
对于被删除的行数据,PRM目前还不提供直接的恢复选项。
这样做的原因有几点:
1、 对于被删除的数据,实际可以使用其他技术 例如 undo 闪回查询或者挖掘日志实现
2、被删除后的数据在block级别可能实际上已经消失了,所以很多行不具有可恢复性
3、 诗檀在白皮书中写的delete ts$表后的操作 是想说明当字典损坏,数据库无法打开OPEN情况下,去恢复其他用户表数据的情况, 单纯恢复TS$在这里已经没意义了。 哦,我理解错了呵。我理解成用PRM 恢复损坏或误操作的系统表数据。其实这个时候业务数据已经完全在PRM 里可以恢复出来了,单纯恢复ts$是已无意义了。谢谢刘大指点。
页:
[1]