数据库备份是DBA日常中最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态,今天在这里我将自己学习DM8备份还原的相关知识及实际操作进行记录。
备份还原基本知识
物理备份还原:物理还原和恢复可以利用归档恢复到最新的时间点(完全恢复),也可以恢复到指定时间点或指定LSN(不完全恢复)。
逻辑备份还原(dexp&dimp工具导入导出):只能恢复到导出的那一刻。
物理备份分冷备和热备(热备要开启归档)。
脱机备份(冷备)
DMRMAN是脱机备份命令行工具(与ORACLE的RMAN不同)
不指定备份集默认使用系统参数BAK_PATH指定:
使用dmrman备份和还原时,都需要关闭数据库。
[dmdba@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ dmrman
RMAN> backup database '/dm8/data/DAMENG/dm.ini';
backup database '/dm8/data/DAMENG/dm.ini';
[-137]:服务器正在运行或者存在其他进程正在操作同一个库
在没有关闭数据库的情况下使用RMAN进行备份就会报错。同事要保证APServer服务开启,否则会影响备份。关闭数据库之后再使用RMAN备份进行备份就会成功了,如下所示:
[dmdba@localhost bin]$ DmServiceDMSERVER stop
[dmdba@localhost bin]$ ps -ef|grep dmap
[dmdba@localhost bin]$ dmrman
RMAN> backup database '/dm8/data/DAMENG/dm.ini';
DM默认使用AP服务辅助进程备份和还原(由参数BAK_USE_AP控制,默认使用AP服务):
也可以使用DM控制台工具Console进行备份,如下图所示
联机备份与还原数据库
*联机备份之前数据库需要开启归档
SQL> BACKUP DATABASE BACKUPSET '/dm8/backup/20210819_onlinebak';
添加备份目录(仅对当前会话生效)
查看备份集
在DM管理工具也可以进行联机备份
表空间备份(注意:DM8表空间是联机备份,脱机还原恢复)
SQL> backup tablespace MAIN BACKUPSET '/dm8/backup/20210819_MAIN_onlinebak';
表空间还原(脱机)
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace MAIN from backupset '/dm8/backup/20210819_MAIN_onlinebak';
表空间恢复(表空间恢复会自动应用归档将表空间恢复到最新状态):
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace MAIN;
全库还原和恢复
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/20210819_onlinebak';
利用归档将数据库恢复:
RMAN> recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/20210819_onlinebak';
全库恢复必须要
全库恢复必须要更新数据库魔数DB_MAGIC,如果没用更新数据库魔数,则无法正常启动数据库
逻辑备份
逻辑导入导出只能在数据库OPEN状态下操作;
逻辑导入只能恢复到备份的那一刻。
[dmdba@localhost bin]$ ./dexp sysdba/dameng123:5238 file=/dm8/backup/dmdb_full.dmp log=/dm8/backup/dmdb_full.log
也可以通过模式进行导入导出
创建TEST01和TEST02两个用户
在TEST01用户下创建表T1
以模式方式导出TEST01
[dmdba@localhost ~]$ dexp SYSDBA/SYSDBA file=/dm8/backup/dexp/TEST01.dmp log=/dm8/backup/dexp/TEST01.log schemas='TEST01'
将TEST01模式下的对象导入到TEST02
[dmdba@localhost ~]$ dimp SYSDBA/SYSDBA file=/dm8/backup/dexp/TEST01.dmp log=/dm8/backup/dexp/TEST2.log remap_schema=TEST01:TEST02
查询TEST02.T1表,确定成功导入
可以看到TEST02用户拥有T1表、导入成功。
菜鸟一枚,以上是笔者对于DM8备份还原的一些操作,不正之出,敬请指正。
更多资讯请上达梦技术社区了解:https://eco.dameng.com