达梦数据库的还原可以分为物理备份和逻辑备份,理论上物理备份的恢复会比逻辑备份导入导出要快。
逻辑备份:导出的数据的 create 和 insert 语句或对象定义语句。
物理备份:直接对已使用的数据页进行拷贝(注意是己使用的数据页,而不是全部的)。分为冷备(脱机备份,数据库需要处于关闭状态)和热备(也叫联机备份)。
物理备份
脱机备份
命令行
首先需要关闭数据库服务,进入/dm8/bin 目录下,采用 dmrman 进行备份,最后对数据库魔术进行更新。
RMAN> backup database 'dm8/data/DAMENG/dm.ini' to DMFULLBAK03
backupset 1/dm8/backup/full/DMFULLBAK03
database 是指定待备份数据库的 ini文件,DMFULLBAK03 是备份集名称,backupset 是备份集路径。
RMAN> check backupset'/dm8/backup/full/DMFULLBAK03';
图形化
首先需要关闭数据库服务,进入/dm8/bin目录下,采用 console 进行备份,先获取备份,选择新建备份,填写备份名和目录名。
脱机备份不能备份表和表空间,因为数据库没有启动。
联机备份(需要开启归档)
SQL命令
backup database/tablespace/table to DMFULL01 BACKUPSET /dm8/backup/full/DMFULL01'
backup tablespace dmtbs INCREMENT to DMTBSINCR01 BACKUPSET
可以对数据库、表空间、表和归档进行备份,不同备份集的路径不能相同,注意表备份不需要开归档,且没有增量备份只有全量。
最后备份目录下会有三个文件meta 元数据,_1日志备份片,最后一个是备份的数据。
图形化
在manager 里的备份上面右键新增备份。
***注意:开了归档立刻备份会报错归档不连续,因为还没有到下一个ckpt_LSN,甚至每个 ckpt,每次只刷 5%的脏页。在上个ckpt LSN 之后到开启归档这段时间的数据就没有了。
Method1:开了归档手动重启一下,因为数据库正常关闭的时候会自动做一次完全检查点。
Method2:也可以直接手动执行一次完全检查点 checkpoint(100)。
逻辑备份
逻辑备份可以按库名、用户名、模式名、表名进行导出,配置的参数分别为
全库导出 Full=y
按用户导出 Owner=Xx
按模式导出 Schemas=xx
导出指定的表 Tables=xx
逻辑备份导出
进入/dm8/bin 目录下,执行命令
./dexp userid=sysdba/Dameng:5236 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
userid: 用户名和密码以及端口号等登录信息
Directory:备份位置
File:各份文件名
Log:备份日志名
逻辑备份导入
进入/dm8/bin 目录下,执行命令
./dimp userid=sysdba/Dameng123 directory=/dm8/backup/dexp file=full.dmp log=impfull.log full=y
同时也支持跨模式/跨用户导入。将 DMTEST 模式下 TEMP 表导入到 HRTEST 用户下:
dimp userid=hrtest/Dameng123@127.0.0.1:5238
directory=/dm8/backup/dexp file=dmtest_emp.dmp
log=dmtest_emp.log tables=DMTEST.T_EMP remap_schema=DMTEST:HRTEST
数据库还原
库、表空间和归档只能脱机还原,表可以联机还原。只有库级的还原才需要更新数据库魔术。
***先还原再恢复
命令行
restore-利用备份还原
RMAN> restore database
'/dm8/data/DAMENG/dm.ini' from backupset 'dm8/backup/full/DMFULLBAK03';
recover-利用归档恢复
RMAN> recover database
'/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/arch';
更新数据库魔术
recover database 'dm8/data/DAMENG/dm.ini' update db_magic
更新数据库魔术,之前的 db_magic和现在的db_magic 不一样了,不能直接恢复到最新。
建议恢复后立刻进行全备。
图形化
在console 界面进行还原,注意可以跨数据库进行恢复,将B的数据和结构恢复到 A库。