
2.1
联机恢复,此方法只适用于被删除的是用户数据文件(以
MAIN.DBF
为例):
1.首先调用以下系统过程进行恢复的准备工作:
call SP_TABLESPACE_PREPARE_RECOVER('MAIN');
2.在服务器终端执行 ps ef |grep dms,获取数据库服务的 pid 为 12130
3.接下来,就用 ls 命令查看被删除文件对应的副本:ls /proc/12130/fd l,如下图,在 MAIN.DBF 文件
4.将上述 MAIN.DBF 文件复制到原数据文件路径下即可:
cp /proc/12130/fd/11 /opt/dmdbms/data/DAMENG/MAIN.DBF
5.复制成功后,执行以下语句完成表空间失效文件的恢复。
call SP_TABLESPACE_RECOVER('MAIN');
6.再次查询 test 表,可正常执行,并得到正确数据。
为什么联机恢复只适用于恢复被删除的用户数据文件呢, 因为当被删除的是 ROLL.DBF、TEMP.DBF
或 SYSTEM.DBF 文件时,数据库一旦检测到它们其中任何一个文件不在了,就会直接挂掉,所以根本没有
机会进行联机恢复的操作。此时,只能利用备份文件和归档文件进行还原,并因为数据库属于异常退出,有
部分 redo 日志还没来得及写进归档中,导致归档不全,无法恢复到数据库异常退出前的状态。因此,在进
行还原前,需进行归档修复(归档修复会扫描联机日志文件,将那些已经写入联机日志文件、但还没有写入
到归档日志文件的 REDO 日志,重新写入到归档日志文件,详见手册 DM7_Backup_And_Recovery.pdf)。
2.2 脱机恢复,即备份还原机制
在利用备份进行还原时,根据被删除文件类型,也分为以下两种情况:
2.2.1 若被删除的是 ROLL.DBF 或 TEMP.DBF,通过以下过程,即可完整恢复数据库。
repair archivelog database '/opt/dmdbms/data/DAMENG/dm.ini';
评论