文章目录
1 备份
1.1 全库备份
1.1.1 在线备份
SQL> backup database full to “DB_DMDB_FULL_01” backupset ‘/data/dmbak/DB_DMDB_FULL_01’;
1.1.2 冷备份
关闭数据库备份,并且“DmAPService”服务要处于运行状态
./dmrman CTLSTMT=“BACKUP DATABASE ‘/opt/dmdbms/data/DAMENG/dm.ini’ FULL BACKUPSET ‘/home/dm_bak/db_full_bak_01’”;
1.2 表备份
数据库处于打开状态
SQL> backup table “DMTEST”.“DEPT” to “TAB_DMTEST_DEPT_02” backupset ‘/data/dmbak/TAB_DMTEST_DEPT_02’;
1.3 表空间备份
数据库处于打开状态
SQL> backup tablespace “DMTEST” full to “TS_DMTEST_FULL_03” backupset ‘/data/dmbak/TS_DMTEST_FULL_03’;
1.4 归档备份
SQL> backup archivelog all to “ARCH_04” backupset ‘/data/dmbak/ARCH_04’;
2 恢复
2.1 全库恢复
数据库要处于关闭状态,DmAPService服务处于打开状态,且全库恢复只支持数据库脱机状态恢复。
还原:
./dmrman CTLSTMT=“RESTORE DATABASE ‘/dm/dmdbms/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_full_bak_01’”;
恢复:
方法1.按照指定备份文件恢复:./dmrman CTLSTMT=“RECOVER DATABASE ‘/dm/dmdbms/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_full_bak_01’”;
方法2.按照最新归档恢复:./dmrman CTLSTMT="RECOVER DATABASE ‘/dm/dmdbms/data/DAMENG/dm.ini’ with archivedir ‘/dmdata/arch/DAMENG’;
方法3.按照指定时间点恢复:./dmrman CTLSTMT="RECOVER DATABASE ‘/dm/dmdbms/data/DAMENG/dm.ini’ WITH ARCHIVEDIR ‘/dmdata/arch’ UNTIL TIME ‘2022-09-25 11:20:10’;
恢复魔数:
./dmrman CTLSTMT=“RECOVER DATABASE ‘/dm/dmdbms/data/DAMENG/dm.ini’ UPDATE DB_MAGIC”;
备注:全库还原恢复更新完魔数后原来的备份和归档不能用了,建议全库恢复后再次做个全库备份。
2.2 表的恢复
数据库要处于打开状态
SQL> restore table without index with constraint from backupset ‘/dm8/data/DMDB/bak/TAB_DMTEST_DEPT_01’ device type disk;
表恢复失败:
表的还原,如果表有主键,则需要先恢复表定义,再恢复表数据
恢复表定义:
restore table struct without index without constraint from backupset ‘/dm8/data/DMDB/bak/TAB_DMTEST_DEPT_01’ device type disk;
恢复表数据:
restore table without index with constraint from backupset ‘/dm8/data/DMDB/bak/TAB_DMTEST_DEPT_01’ device type disk;
SQL> restore table without index with constraint from backupset ‘/dm8/data/DMDB/bak/TAB_DMTEST_DEPT_01’ device type disk;
2.3 表空间的恢复
数据库、表空间和归档的恢复只支持数据库脱机状态恢复。表空间的恢复会自动运用归档恢复到最新。归档和表恢复只执行还原,没有恢复操作。
表空间的备份和恢复(关机恢复):
2.3.1 使用dmrman工具恢复
restore database ‘/app/dm8/data/dmtest/dm.ini’ tablespace dmtbs from backupset ‘/app/dm8/data/dmtest/bak/dmtbsbak01’;
recover database ‘/app/dm8/data/dmtest/dm.ini’ tablespace dmtbs ;
2.3.2 打开控制台工具恢复:
2.4 归档恢复
数据库、表空间和归档的恢复只支持数据库脱机状态恢复。归档和表恢复只执行还原,没有恢复操作。
2.4.1 使用dmrman恢复
RMAN> restore archivelog all;
恢复7天内的归档日志
RMAN> restore archivelog from time ‘sysdate-7’;
2.4.2 打开控制台恢复
达梦社区地址:https://eco.dameng.com