提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
随着IT科技的不断发展,数据已成为各大企业的核心资产,数据安全性越来越被重视。数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。
本章主要介绍 DM 备份与还原的概述和基本概念,为理解归档配置、备份还原的原理与工具使用奠定基础。
内容主要包括:逻辑备份与恢复、物理备份与恢复等。
一、备份、还原与恢复的关系是什么?
DM 数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式
进行管理,数据页是最小的数据存储单元。任何一个对 DM 数据库的操作,归根结底都是对
某个数据文件页的读写操作。
因此,DM 备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的
有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库
系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日
志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间
点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。
还原与恢复是备份的逆过程。还原是将备份集中的有效数据页重新写入目标数据文件的
过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复
到指定时间点和指定 LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务,
这些活动事务在恢复结束后的第一次数据库系统启动时,会由 DM 数据库自动进行回滚。
备份 、 还 原 与 恢 复 的 关 系 如下:
二、备份与还原、恢复
1、逻辑备份与还原(使用dmdba用户)
dexp/dimp 逻辑导出和导入
说明:
dexp 逻辑导出、dimp 逻辑导入四个级别:
全库(full=y)
按用户(owner=XXX)
按模式(schemas=XXX)
按表(tables=XX)
(1)逻辑导出
–全库导出
dexp userid=sysdba/Possword:5236 directory=/dmbak file=full.dmp log=full.log full=y
–按用户导出,用户sunyf下面所有对象
dexp userid=sysdba/Possword:5236 directory=/dmbak file=sunyf.dmp log=sunyf.log owner=sunyf
–按模式导出
dexp userid=sysdba/Possword:5236 directory=/dmbak file=sunyfsc.dmp log=sunyfsc.log schemas=sunyf
–按表导出
dexp userid=sysdba/Possword:5236 directory=/dmbak file=tables.dmp log=tables.log tables=sunyf.test
–多表一起导出
dexp userid=sysdba/Possword:5236 directory=/dmbak file=tables3.dmp log=tables.log tables=sunyf.test,sunyf.sunyf
(2)逻辑导入
–全库导入
dimp userid=sysdba/Possword:5236 directory=/dmbak file=full.dmp log=impfull.log full=y
–按用户导入
dimp userid=sysdba/Possword:5236 directory=/dmbak file=full.dmp log=impuser.log owner=sunyf
–按schema导入(恢复成别的名称无需提前建用户)
按模式导入(将 A 模式导入到 B 模式,使用 REMAP_SCHEMA 参数):
dimp userid=sysdba/Possword:5236 directory=/dmbak file=sunyfsc.dmp log=impsunyf:.log REMAP_SCHEMA=sunyf:DMTEST1
–按表导入,(恢复成别的名称无需提前建用户)
(从A模式导入到B模式,使用 REMAP_SCHEMA 参数)
dimp userid=sysdba/Possword:5236 directory=/dmbak file=tables.dmp log=t_table.log tables=sunyf.test remap_schema=sunyf:Ztuser
2、物理备份与还原
select * from v$parameter t where name in (‘BAK_PATH’, ‘BAK_USE_AP’);
BAK_PATH:DM 默认的备份路径,生成环境不要和源库数据文件放在同一磁盘上。避免磁 盘损坏,数据文件和备份文件同时损坏的情况。
BAK_USE_AP:备份还原策略,默认使用 DMAP 辅助进程。
(一)联机备份:数据库是启动状态,联机备份要求数据库打开归档。
方案一:界面方式(联机)(考试建议)
1、备份
若使用达梦联机备份功能必须满足以下两个条件:(切记)
(1)、开启归档!!开启归档参考前文中的描述.
(2)、必须启动AP 服务,否则报【-7170: bakres 连接 DMAP 失败】错
查看 AP 服务是否启动(使用dmdba用户):
ps -ef|grep dmap
查看备份文件:
方案二:脚本备份(联机)
SQL 备份数据库 备份数据库
–全量备份
backup database;
–增量备份
backup database increment;
–全量备份
backup database full to ONLINEBAK_01 backupset ‘/dm8/backup/full/ONLINEBAK_01’;
–增量备份
backup database increment BASE ON BACKUPSET ‘/dm8/backup/full/ONLINEBAK_01’ to ONLINEBAKINCR_01 backupset ‘/dm8/backup/incr/ONLINEBAK_01’ ;
–增量备份
backup database increment with BACKUPDIR ‘/dm8/backup/full/’ to ONLINEBAKINCR_02 backupset ‘/dm8/backup/incr/ONLINEBAK_02’ ;
备份集管理 --校验备份集
select SF_BAKSET_CHECK(‘DISK’,‘/dm8/backup/incr/ONLINEBAK_02’);
–查看备份集
select * from v$backupset;
select * from v$ifun t where t.name like ‘SF_BAKSET%’; SF_BAKSET_BACKUP_DIR_ADD(‘DISK’,‘/dm8/backup/full/’); SF_BAKSET_BACKUP_DIR_ADD(‘DISK’,‘/dm8/backup/incr/’); 90 / 100
表空间备份
backup tablespace dmtbs; backup tablespace dmtbs INCREMENT with BACKUPDIR ‘/dm8/backup/full/’ to DMTBSINCR_01 backupset ‘/dm8/backup/incr/DMTBSINCR_01’ ;
表和归档的备份
–表的备份
backup table dmhr.employee;
–归档备份
backup ARCHIVELOG all;
2、联机还原
库级、表空间的还原和恢复不支持联机恢复,只支持脱机还原恢复。
(二)脱机备份与还原
–查询数据库永久魔数
select permanent_magic;
–查询数据库当前魔数
select db_magic from v$rlog;
方案一:界面方式(脱机)
使用 console 控制台工具脱机备份和还原
su - dmdba
cd /dm8/tool
export DISPLARY=IP:0.0
./console
调出下面界面
1、备份:
2、还原:
3、恢复:
4、更新数据魔数
总结
随着IT科技的不断发展,数据已成为各大企业的核心资产,数据安全性越来越被重视。数据库备份是 数据库日常运维中最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。
希望本文能给更多的达梦使用者带来一定的参考借鉴意义,为国产数据库进步舔砖加瓦!