暂无图片
Oracle
我来答
分享
Zixin Huo
2023-03-22
Oracle

在Oracle数据库open状态下,如果无意误删了处于current状态的redolog日志文件(假设仅1个member),最优的处理方案是按下述步骤中的( )处理次序: 高级难度 (1)使用shutdown abort关闭数据库 (2)使用lsof等命令,找到对应redolog的句柄fd,然后使用cp <fd> redolog的方法重新生成误删的redo文件 (3)使用lsof等命令,找到对应redolog的句柄fd,然后使用ln -s <fd> redolog生成软链接文件 (4)用shutdown immediate关闭数据库 (5)启动数据库并使用alter database drop logfile group <deleted group>删除误删的redo文件组 (6)使用命令alter system checkpoint;alter system archive log current;测试日志切换及归档是否正常 (7)马上添加足够多的日志组以防止数据库hang死 (8)使用物理备份做不完全恢复到最近的日志 (9)马上关闭数据库监听对数据库做逻辑导入导出后,重建数据库 (10)使用alter database drop logfile group <deleted group>删除误删的redo文件组

A

(9)

B

(7)(3)(6)(10)

C

(7)(1)(8)

D

(2)(4)(5)(6)

E

(2)(1)(5)(6)

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
L
lxx

1、数据库open状态下,lgwr/dbwN等进程会持有redo log/data file等文件的句柄,实际上就是一个指向redolog物理文件的软链接; 2、删除了物理文件,只是临时释放了文件inode信息,但是句柄仍然可以写入的,因此通过将句柄反向软链接到物理文件,可以保证数据库的日志继续写入正常; 3、通过checkpoint/archive log可以将误删除的redolog完整apply并归档,避免数据丢失; 4、出现故障立即添加足够的redolog组,可以避免误删的句柄被覆盖,导致数据库异常; 5、误删redolog切换归档成功,必须立即删除日志组,否则切换覆盖会报错,

暂无图片 评论
暂无图片 有用 1
暂无图片
Thomas

请问,rm -rf只是删inode信息,文件内容未被删除是吗?

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏