概念
由于在DM的存储结构中,数据文件都按照页、簇、段的方式进行管理,并且数据页也是最小的数据存储单元,因此任意一个对DM数据库的操作,归根结底都是对数据页的文件操作。
DM数据库的备份还原分为物理备份和逻辑备份。
1、物理备份与还原:
DM中物理备份的方式有脱机备份以及联机备份。
1.1 脱机备份
顾名思义,脱机备份操作之前需要将数据库的服务关闭,来进行备份操作。
登入服务器,进入/tool/文件,打开DMservice
关闭除了APservice之外的服务内容。此处有可能需要root用户进行操作
#systemctl stop DmServiceDMSERVER.service 命令行关闭服务方式
通过命令行 #systemctl status DmServiceDMSERVER.service查看服务开关状态
进入console工具进行脱机备份。进入console工具时,由于部分文件可能安装用户DMDBA没有执行权限,因此暂时采用root用户打开的方式暂时解决。
根据下图进行一次简单备份操作。
备份成功后,重新启动实例,删除DMHR的表空间(删除表空间之前先删除表空间的数据对象)然后观察库是否已经还原。
还原操作:
先还原数据库----->恢复数据库------->更新数据库
对整个数据库进行恢复
使用命令行工具进行操作
可以不同console工具备份还原,直接在终端用DMRMAN进行备份还原:
首先切换到/dm8/bin目录下,再输入./dmrman即可进入dmrman界面。
接着我们再输入backup database '/dm8/data/DAMENG/dm.ini’进行备份
还原数据库
#restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/DAMENG/bak/...........(备份库名称)'
恢复数据库
#recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/DAMENG/bak/...........(备份库名称)'
1.2联机备份还原
首先将链接节点的服务器转化为归档状态
将服务器转化为“打开”模式,进行数据库备份操作。
报错:-718收集的归档日志不连续
解决办法:
关闭当前实例。
进入dmrman,进行归档回复操作
重新启动服务进行备份
2、逻辑备份与还原
导入导出分类
a) 数据库级别
b) 用户级别
c) 模式级别
d) 表级别
DM 管理工具逻辑导出
a) 库级别导入导出
i. 使用 sysdba 导出某个实例数据库中的所有数据
ii. 使用 dbca.sh 重新创建一个实例
iii. 将导出的数据文件导入到新数据库实例中
b) 用户级别导入导出
i. 从 A 实例中导出 DMHR 用户的数据
ii. 删除 B 实例中 DMHR 用户的模式下的数据表
iii. 使用 B 实例的用户级别导入功能恢复上一步删除的数据
c) 模式级别导入导出
i. 导出 DMHR 模式下的数据
ii. 删除 DMHR 模式下的数据
iii. 通过模式级别导入功能导入 DMHR 模式下的数据
d) 表级别导入导出
i. 导出某个表的数据
ii. 删除该表的数据(表级别导出的文件导出了表结构,因此也可以删除表)
iii. 导入该表的数据
操作方法相同不再赘述
关于DM的其他技术问题,可以访问官方技术服务平台:eco.dameng.com