达梦8数据备份还原(Linux)
- 1 备份与还原
- 1.1备份工具
- 1.2备份类型
- 1.3 物理备份还原
- 1.4逻辑备份还原
- 1.5一些可能出现的问题
1 备份与还原
DM 提供了很多工具进行备份还原与恢复的操作,包括 DIsql工具、DMRMAN工具、MANAGER工具 和 CONSOLE工具。不同的归档和备份工具提供的功能也有所不同。
1.1备份工具
- disql
用于执行联机的数据备份与数据还原,包括数据库备份、归档备份、表空间备份与还原、表备份与还原。
- dmrman
用于执行脱机的数据库、表空间数据备份、还原与恢复。
- manager & console
MANAGER 和 CONSOLE工具对应命令行工具 DIsql 和 DMRMAN 的功能,分别用于联机和脱机备份还原数据。
1.2备份类型
- 物理备份和逻辑备份
物理备份:备份的是使用过的、有效的数据页;
逻辑备份:备份的是数据库的对象(表、视图、索引、存储过程等)。
- 联机备份和脱机备份
脱机备份,是数据库在关闭状态下进行的备份;
联机备份,数据库在打开状态下进行的备份。
- 完全备份和增量备份
完全备份:对数据库的完全备份,不依赖于其他备份,可以独立地进行数据库还原和恢复。数据库克隆选项,表示进行数据库备份时,仅备份所有的元数据不备份数据。如对于数据库中的表来说,只备份表的定义不备份表中数据。
增量备份:在完全备份或增量备份的基础上进行的备份。进行增量备份时,允许用户自己指定基备份来进行备份,默认使用最近一次备份作为基备份,在该数据库不存在任何备份时,备份类型不能为增量备份。累积增量备份选项的基备份类型只能是完全备份,缺省为差异增量备份。
还原备份的逆向过程,通过读取备份的信息,将备份中的信息重新生成文件拷贝到数据库对应的目录下。
恢复分为:完全恢复和不完全恢复。完全恢复是应用所有的归档日志至数据库最新的状态;不完全恢复是不应用归档日志或者应用部分归档日志,没有将数据库恢复至最新的状态。
1.3 物理备份还原
在虚拟机上创建一个备份路径。
mkdir -p /dm8/backu
脱机备份需要关闭数据库,开启dmap服务。
在达梦的安装路径的bin目录下执行以下命令以关闭数据库:
./DmServiceDMSERVER stop
查询dmap是否启动,能查询PID到说明已启动。
ps aux | grep dmap
如果没启动,则在bin目录中执行启动命令。
./dmap
1. console工具
在达梦的安装路径的tool目录下执行以下命令以打开console工具。
./console
选择新建备份。
填写备份名,备份集目录,选择备份类型。
还原与恢复:
打开console工具,备份还原->还原。选择之前备份时填入的备份集目录,选择还原类型等参数。
还原成功后,还需要进行恢复。备份还原->恢复。
dm8在还远=原恢复之后还需要更新魔数。备份还原->更新Magic。
2.dmrman工具
新建一个目录dm8/backup1。
在bin目录中启动dmrman工具,执行备份命令,选择的备份集目录是dm8/backup1。
./dmrman
backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup1'
备份成功。
还原与恢复:
校验备份
check backupset '/dm8/backup1';
还原数据库。
restore database ‘/dm8/data/DAMENG/dm.ini' from '/dm8/backup1';
恢复数据库。
更新魔数。
3.manager工具
打开数据库归档模式或者用命令开启。
alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/dm8/arch, TYPE=LOCAL, FILE_SIZE=64, SPACE_LIMIT=0 ';
alter database open;
备份一栏中可以选择备份的类型:库备份、表备份、表空间备份和归档备份
- 库备份
创建库备份,填入备份名称、备份集目录和备份类型。
生成的库备份可以在展开节点中看到。
还原三部曲:还原、恢复、更新魔数
./dmrman
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup';
RMAN> recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/arch';
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
- 表备份
新建表备份。选择模式名和模式下的表名,填入备份名称和备份集目录。
库备份和表空间备份不支持联机还原,只有表备份支持联机还原。表还原过程中表空间中其他的表还可以正常操作。
点击表备份集节点右键菜单->备份还原,可以打开表备份还原对话框,首页显示的是常规选项页面。
- 表空间备份
对表空间进行备份。
还原:
./dmrman
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace dmhr from backupset '/dm8/backup';
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace dmhr;
1.4逻辑备份还原
逻辑备份是指利用 dexp 导出工具,将指定对象(库级、模式级、表级)的数据导出到
文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。
物理备份则直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备
份集中。物理备份过程中,不关心数据页的具体内容是什么,也不关心数据页属于哪一张表,只是简单的根据数据库文件系统的描述,来挑选有效的数据页。
逻辑还原是逻辑备份的逆过程,逻辑还原就是使用 dimp 工具,把 dexp 导出的备份数
据重新导入到目标数据库。
物理还原是物理备份的逆过程,物理还原一般通过 DMRMAN 工具(或者 SQL 语句),把备份集中的数据内容(数据文件、数据页、归档文件)重新拷贝、写入目标文件。
- 全库导出、导入
cd /dm8/bin
./dexp SYSDBA/密码@local host:5236 FULL=Y DIRECTORY='/dm8/back' FILE=FULL.DMP LOG=FULL.log
./dimp SYSDBA/密码@local host:5236 FULL=Y DIRECTORY='/dm8/back' FILE=FULL.DMP LOG=FULL.log
- 模式导出、导入
cd /dm8/bin
./dexp SYSDBA/密码@local host:5236 SCHEMAS=TEST DIRECTORY='/dm8/back' FILE=TEST.DMP LOG=TEST.log
./dimp SYSDBA/密码@local host:5236 SCHEMA=TEST DIRECTORY='/dm8/back' FILE=TEST.DMP LOG=TEST.log
- 导出、导入表
导入导出表时,需要指明模式名和表名
cd /dm8/bin
./dexp SYSDBA/密码@local host:5236 TABLES=DMHR.EMPLOYEE DIRECTORY='/dm8/back' FILE=EMPLOYEE.DMP LOG=EMPLOYEE.log
./dimp SYSDBA/密码@local host:5236 TABLES=DMHR.EMPLOYEE DIRECTORY='/dm8/back' FILE=EMPLOYEE.DMP LOG=EMPLOYEE.log
1.5一些可能出现的问题
如果dimp导入时报错导出对象已存在,最后结果出现警告,说明此对象在数据库中已经存在。可以加上关键字TABLE_EXISTS_ACTION,此关键字有四个值。
- SKIP跳过此表
- APPEND向现有表导数据
- TRUNCATE先清空此表,再导入数据
- REPLACE:先删掉该表,再创建、导入数据
备份时出现关于dmap的问题,dmap已经启动。
- 查询的dmap的PID号
- 通过进程号杀死进程
- 进入bin目录下,重新启动dmap
ps aux | grep dmap
kill -9 进程号
cd /dm8/bin
./dmap
如果备份报错:收集到的归档日志不连续。
解决方式:checkpoint(100);或者重启数据库服务