Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

0

好友

1

主题
1#
发表于 2014-6-18 20:10:04 | 查看: 3646| 回复: 2
刘大,
我下载了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

[oracle@oracledb1 ocm1]$ 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...
[oracle@oracledb1 ocm1]$

3.拷贝数据库的所以数据文件到本地进行PRM 恢复,如下:
参考步骤是:

1. Recovery Wizard
2. 选择字典模式 Dictionary Mode
3. 合理选择Big或者Little Endian
4. 加入数据文件并点击Load
5. 根据实际需求恢复表中的数据

操作步骤截图见附件,

最后抽取 ts$ 里都是0条记录,ts$被删掉掉的数据如何恢复呢?

2.png (24.85 KB, 下载次数: 428)

2.png

3.png (29.44 KB, 下载次数: 441)

3.png

4.png (32.33 KB, 下载次数: 432)

4.png

5.png (25.33 KB, 下载次数: 432)

5.png

6.png (34.66 KB, 下载次数: 431)

6.png

2#
发表于 2014-6-18 20:16:40
你好

对于被删除的行数据,PRM目前还不提供直接的恢复选项。

这样做的原因有几点:
1、 对于被删除的数据,实际可以使用其他技术 例如 undo 闪回查询或者挖掘日志实现
2、被删除后的数据在block级别可能实际上已经消失了,所以很多行不具有可恢复性
3、 诗檀在白皮书中写的delete ts$表后的操作 是想说明当字典损坏,数据库无法打开OPEN情况下,去恢复其他用户表数据的情况, 单纯恢复TS$在这里已经没意义了。

回复 只看该作者 道具 举报

3#
发表于 2014-6-18 20:25:35
哦,我理解错了呵。我理解成用PRM 恢复损坏或误操作的系统表数据。其实这个时候业务数据已经完全在PRM 里可以恢复出来了,单纯恢复ts$是已无意义了。谢谢刘大指点。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-21 02:14 , Processed in 0.050121 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569