注册
数据文件删除恢复测试
专栏/培训园地/ 文章详情 /

数据文件删除恢复测试

你的微信 2023/12/22 1001 0 0
摘要

1 理论说明
1.1 表空间文件失效检查
LINUX操作系统中,被进程打开的文件仍可以在OS系统中被删除,因此存在 DM数据文件可能被误删的风险。如果数据文件被删除,DM系统能够及时检测出来,并立刻停止对其继续使用并通知用户。
在dm.ini中参数FIL_CHECK_INTERVAL的值指定DM系统检查数据文件是否仍存在 的时间间隔。将其设为0表示不进行检查。
也可以通过系统过程SP_FILE_SYS_CHECK()来手动的进行检查。
系统一旦检测出某个表空间内的数据文件被删除,则与该表空间所有的操作都将会失败,并报错该表空间内有数据文件被删除
1.2 表空间文件失效恢复
LINUX系统中被删除的文件,只要其句柄没有被关闭,可以在/proc//fd 中找到其对应的文件副本。其中指打开该文件的进程id。
利用该方法,结合OS命令,DM提供失效文件的恢复方案如下
1、调用系统过程SP_TABLESPACE_PREPARE_RECOVER(tablespace_name)准备 进行恢复;
2、如果使用过程中DM报错表空间数据文件被删除,通过操作系统的ps命令找到当前 dmserver的PID:ps –ef|grep dmserver;
3、使用操作系统ls命令查看被删除文件对应的副本ls /proc//fd–l,会发现被删除的文件后有(deleted)字样;
4、使用操作系统的cp命令将文件复制到原位置:cp bak_fildata_file_path_dir;
5、复制成功后,调用系统过程 SP_TABLESPACE_RECOVER(ts_name)完成表空间失 效文件的恢复。
注意,要保证数据文件正确修复,需要保证在SP_TABLESPACE_PREPARE_RECOVER后进行数据文件的复制。
2 操作示例
2.1 环境准备
1.操作系统版本
image.png
2.数据库版本
image.png
3.创建测试表
image.png
4.插入测试数据
image.png
2.2 删除数据文件
1.通过OS命令删除数据文件
image.png
2.查询测试表数据
image.png
3.手动进行文件检查
image.png
4.调用系统过程进行检查
image.png
5.查询表数据
image.png
2.3 恢复数据文件
1.调用系统过程 SP_TABLESPACE_PREPARE_RECOVER(tablespace_name)准备进行恢复;
image.png
2.查询当前数据库进程PID
image.png
3.查找被删除的数据文件,这里对应的文件号是46
image.png
4.复制数据文件到原来位置
image.png
5.调用系统过程进行文件恢复
image.png
6. 调用系统过程进行文件检查
image.png
7.查询表数据和数据文件
image.png
image.png
3 附录
参考文献:/DM8系统管理员手册.pdf(第14.1.8和14.1.9章节)。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服