如大家所知,网络安全越来越被重视,而在数据库方面我们不仅要在部署的时候做好相应的配置,还需要有一套容灾机制,即备份还原。下面我就分享一下在学习达梦数据库中关于备份还原的一些经验。
一、概念:
备份:数据库备份是在某个时间点做的副本,为了防止数据丢失。
备份分类:
1、按类型备份分为:物理备份和逻辑备份
物理备份:备份使用过的、有效的数据页
逻辑备份:备份数据库的对象(表、视图、索引、存储过程等)
2、按备份方式可分为:冷备和热备。
冷备:也叫脱机备份,是在数据库关闭状态下进行的备份;
热备:也叫联机备份,数据库在打开状态下进行的备份。
3、按完整性可分为:完全备份和增量备份。
完全备份:备份整个数据库或者备份整个表空间所有的数据;
增量备份:在上一次完全备份、增量备份后,以后每次只备份修改过的数据页。
还原:
还原是备份的逆向过程,通过读取备份的信息,将备份中的信息重新生成文件拷贝到数据库 对应的目录下。
恢复:
恢复分为:完全恢复和不完全恢复。 完全恢复:应用所有的归档日志至数据库最新的状态; 不完全恢复:不应用归档日志或者应用部分归档日志,没有将数据库恢复至最新的状态。
二、物理备份还原
建立备份路径: mkdir -p /dm8/backup (1)冷备 首先关闭要备份的数据库,确保DmAP服务开启。 [dmdba@192 dm8]$ cd /dm8/bin[dmdba@192 bin]$ ./DmServicePRODstop打开DM 控制台工具
dmrman 工具备份方式:
[dmdba@192 bin]$ cd /dm8/bin
[dmdba@192 bin]$ ./dmrman
dmrman V8
RMAN> backup database '/dm8/data/PRO/dm.ini' backupset '/dm8/backup';
(2)热备
热备需要数据库打开,需要数据库开启归档模式, DmAP 服务需要开启 [dmdba@192 bin]$ ./DmServicePROD start
[dmdba@192 tool]$ ./manager
命令行方式:
alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/dm8/data/PROD/arch, TYPE=LOCAL, FILE_SIZE=64, SPACE_LIMIT=0, ARCH_FLUSH_BUF_SIZE=0';
alter database open;整库备份:[dmdba@192 bin]$ cd /dm8/tool
[dmdba@192 tool]$ ./manager
点击确认备份,假如遇到“新建备份失败”,详情提示“收集到的归档日志不连续”,解决办法如下:
checkpoint(100);
或者重启数据库服务。
备份到默认路径:SQL> backup database full;
表空间备份
[dmdba@192 tool]$ ./manager
Disql方式表空间备份:
[dmdba@192 bin]$ ./disql sysdba/Dameng123@192.168.157.163:5238
备份到默认路径:
SQL> backup tablespace dmhr full;
备份到指定路径:
SQL> backup tablespace dmhr full backupset '/dm8/backup/test';
表备份:
Disql方式表备份: SQL> backup table dmhr.employee;还原恢复(1)整库还原恢复 校验备份集:
[dmdba@192 bin]$ ./dmrman
dmrman V8
RMAN> check backupset '/dm8/backup';
check backupset '/dm8/backup';
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
check backupset successfully.
time used: 143.879(ms)
RMAN>
[dmdba@192 bin]$ ./DmServicePROD stop
Stopping DmServicePROD: [ OK ]
[dmdba@192 tool]$ ./console
[dmdba@192 bin]$ ./DmServicePROD start
Starting DmServicePROD: [ OK ]
查看还原后数据库状态:
[dmdba@192 tool]$ ./manager
Dmrman方式还原整库: RMAN> restore database '/dm8/data/PROD/dm.ini' from backupset '/dm8/backup'; RMAN> recover database '/dm8/data/PROD/dm.ini' with archivedir '/dm8/data/PROD/arch'; RMAN> recover database '/dm8/data/PROD/dm.ini' update db_magic;(2)表空间还原恢复 表空间备份只能联机备份,表空间还原只能脱机还原
[dmdba@192 tool]$ ./console
Dmrman方式还原:
dmdba@localhost bin]$ ./dmrman dmrman V8 RMAN> restore database '/dm8/data/PROD/dm.ini' tablespace dmhr from backupset '/dm8/backup'; RMAN> recover database '/dm8/data/PROD/dm.ini' tablespace dmhr ; recover database '/dm8/data/PROD/dm.ini' tablespace dmhr ;
三、逻辑备份还原
逻辑备份还原优点: 1、可以跨平台、跨版本进行数据迁移‘; 2、是物理备份的辅助备份; 3、重组表。 达梦逻辑备份还原工具 :dexp/dimp四种级别: Full :全库导出 Owner:用户级别 Shcemas :模式级别 Tables:表查看帮助手册: /dm8/bin [dmdba@localhost bin]$ ./dexp help [dmdba@localhost bin]$ ./dimp help全库导出:[dmdba@192 tool]$ ./manager
用命令行方式导出全库:
/dm8/bin/dexp sysdba/Dameng123@192.168.157.163:5238DIRECTORY=/dm8/backup FILE=full.dmp FULL=Y LOG=full.log
用户级别导出
模式级别导出
用命令行方式导出: /dm8/bin/dexp sysdba/Dameng123@192.168.157.163:5238 DIRECTORY=/dm8/backup FILE=dmhr.dmp SCHEMAS=DMHR LOG=dmhr.log表级别导出
用命令行方式导出:
/dm8/bin/dexp sysdba/Dameng123@192.168.157.163:5238 DIRECTORY=/dm8/backup FILE=EMPLOYEE.dmp TABLES=DMHR.EMPLOYEE LOG=tables.log导入:将 DMHR 模式的数据导入到 TEST 模式 [dmdba@192 bin]$ ./dimp sysdba/Dameng123@192.168.157.163:5238 directory=/dm8/backup file=dmhr.dmp log=imp_dmhr.log remap_schema=DMHR:TEST小结:数据库的备份还原、导入导出数据是接触数据库一开始经常使用的操作,看似复杂,但是根据一定的架构,把各个点串起来就很好记忆。既可以用图形界面操作,又可以编辑命令执行,按照需求和习惯提高完成工作的效率。