背景:
模拟误将重做日志删除,导致数据库不能正常启动,并且没有备份文件。
问题现状:
解决办法:
1、查看故障库的实例信息
通过console工具可以进行查看:
说明:为后面重新初始化新实例做记录。
2、备份故障库目录
[dmdba@mydm data]$ mv DAMENG DAMENG_BAK
3、初始化新的数据库
[dmdba@mydm bin]$ ./dminit path=/opt/dmdbms/data/ page_size=32
4、查看故障库的SYSTEM.DBF文件的db_magic
[dmdba@mydm bin]$ ./dmmdf TYPE=1 FILE=/opt/dmdbms/data/DAMENG_BAK/SYSTEM.DBF
5、通过dmmdf修改新库的重做日志文件的db_magic
[dmdba@mydm bin]$ ./dmmdf TYPE=2 FILE=/opt/dmdbms/data/DAMENG/DAMENG01.log
保存即可。
6、把新库的重做日志拷贝到故障库
[dmdba@mydm data]$ cp -r /opt/dmdbms/data/DAMENG/DAMENG01.log /opt/dmdbms/data/DAMENG_BAK/
7、将新库的数据库文件夹删除,故障库名还原
[dmdba@mydm data]$ rm -rf /opt/dmdbms/data/DAMENG
[dmdba@mydm data]$ mv DAMENG_BAK DAMENG
8、重启数据库
[dmdba@mydm data]$ /opt/dmdbms/bin/dmserver /opt/dmdbms/data/DAMENG/dm.ini
启动成功。
9、验证重做日志文件
[dmdba@mydm ~]$ /opt/dmdbms/bin/disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 :9.069(ms)
disql V8
SQL> select file_id,path,rlog_size/1024/1024 as “Size” from V$RLOGFILE;
行号 FILE_ID PATH “SIZE”
1 0 /opt/dmdbms/data/DAMENG/DAMENG01.log 256
2 1 /opt/dmdbms/data/DAMENG/DAMENG02.log 256
已用时间: 13.693(毫秒). 执行号:4.
SQL> select cur_file from V$RLOG; --查看DB 当前正在适用的Redo log
行号 CUR_FILE
1 0
已用时间: 0.911(毫秒). 执行号:5.
SQL>