一、用户表空间损坏
创建表空间test1
SQL> create tablespace test1 datafile '/u01/dmdbms/data/DAMNEG/test1.dbf' size 1024 autoextend off;
将表空间对应的数据文件mv
重启数据库查看表空间状态
此时数据库自启动到mount状态,手动open后查看test1处于offline状态
SQL> select name,type$,status$ from v$tablespace;
将数据库停掉,利用之前做的备份进行还原
RMAN> restore database '/u01/dmdbms/data/DAMENG/dm.ini' tablespace test1 from backupset '/home/dmdba/bak';
RMAN> recover database '/u01/dmdbms/data/DAMENG/dm.ini' tablespace test1;
还原结束后启动数据库
注:
1、 数据库必须要开启归档;
2、DM8表空间备份需要在联机状态下执行,DM8表空间恢复需要在脱机状态下执行。
二、系统表空间损坏
先做全备
SQL> backup database full backupset '/home/dmdba/bak';
将SYSTEM.DBF重命名模拟文件损坏
重启数据库失败
RMAN> restore database '/u01/dmdbms/data/DAMENG/dm.ini' tablespace system from backupset '/home/dmdba/bak';
单独恢复表空间无法恢复,需全库恢复
RMAN> restore database '/u01/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/bak';
RMAN> recover database '/u01/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/bak';
RMAN> recover database '/u01/dmdbms/data/DAMENG/dm.ini' update db_magic;
达梦社区地址:https://eco.dameng.com