1.故障排查:
数据库启动成功后为mount状态
查看数据库日志发现MAIN表空间丢失
2.无备份恢复方法1(会丢失数据)
1 确认服务状态 ,停服务
./DmServiceDMSERVER stop
2 先复制一份当前的数据文件到其他路径下留作备份(注意空间大小是否充足)。
cp -r /data/DAMENG/ /data/DAMENG_OLD_BAK
3 将当前(旧)数据库文件目录重命名
mv /data/DAMENG /data/DAMENG_OLD_BAK2
4 查看初始化参数
数据库数据文件夹中dminitxxxx.log
5 打开终端,初始化一个新库,所有参数与之前库相同
cd /home/dmdba/dmdbms/bin/
./dminit path=/data/
此时生成的DAMENG文件夹为新库的文件夹
6 初始化库完成后,启动新库服务,成功后再关闭
7 将新库的MAIN.dbf 复制到老库,并将老库改回DAMENG;新库改为DAMENG_NEW_BAK
cp /data/DAMENG/MAIN.DBF /data/DAMENG_OLD_BAK
mv DAMENG DAMENG_NEW_BAK
mv DAMENG_OLD_BAK DAMENG
8 尝试启动已宕机的数据库:打开终端,cd进入/home/dmdba/dmdbms/bin目录下,执行以下命令启动宕机数据库:
./DmServiceDMSERVER start
3.无备份恢复方法2(会丢失数据)
采用达梦迁移工具dts进行数据库迁移
1 初始化一个和源库参数一致的数据库
2 从源库进行数据迁移
使用迁移工具将旧数据库数据迁移到新数据库中,期间如果遇到数据文件损坏的表,会导致旧数据库再次宕机,此时需要记录是哪张表导致的,然后重新打开旧数据库,再次迁移,此次将上次导致迁移失败的表取消勾选,然后迁移,尽可能将表都迁过去,如有报错,依次跳过报错表,最后总结报错表,将表结构,数据导出为SQL语句。在新库中通过sql语句创建,尝试修复。
4.有备份恢复方法
直接进行数据库备份还原
如图数据库备份文件为/data/dmbak/FULLBAK01
在数据库关闭状态进行脱机还原
cd /home/dmdba/dmdbms/bin
./dmrman CTLSTMT="RESTORE DATABASE '/data/DAMENG/dm.ini' FROM BACKUPSET '/data/dmbak/FULLBAK01'"
./dmrman CTLSTMT="RECOVER DATABASE '/data/DAMENG/dm.ini' FROM BACKUPSET '/data/dmbak/FULLBAK01'"
./dmrman CTLSTMT="RECOVER DATABASE '/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
直接启动数据库即可
文章
阅读量
获赞