备份
数据库备份类型:物理备份和逻辑备份
物理备份:是指拷贝数据文件中的有效的数据页。
逻辑备份:是导出表的结构,数据 insert 语句等。
物理备份分为:热备(联机备份,数据库开启状态)和冷备(脱机备份,数据库关闭状态)
物理备份也分完全备份和增量备份
增量备份:是在前一次完全备份或增量备份的基础上,只备份新增的或修改的有效的数据页。
增量备份又分为累积增量备份和差异增量备份。
差异增量备份:基备份集可以是全量备份,也可以是增量备份。
累积增量备份:基备份集只能是全量备份集。
达梦数据库的物理备份,默认使用达梦AP 辅助进程,所以物理备份时需要保证 AP 服务是开启状态的。
查看 AP 服务是否开启(三种方法)
$ ps -ef | grep dmap
#systemctl status DmAPService.service
使用 DM 服务查看器
#cd /dm8/tool
#./dmservice.sh
----查看备份的默认路径和默认是否使用达梦AP辅助进程
select * from v$dm_ini t where t.PARA_NAME in ( ‘BAK_PATH’, ‘BAK_USE_AP’);
BAK_USE_AP的值为1,表示使用达梦AP辅助进程进行备份。
脱机备份与还原数据库
两种方式:DMRMAN工具、DM控制台console工具
----停数据库服务
$ DmServiceDMSERVER status
$ DmServiceDMSERVER stop
---- 通过 DMRMAN 命令行工具来备份
$ dmrman
RMAN> backup database ‘/dm8/data/DAMENG/dm.ini’;
----指定备份集名称和备份集路径
RMAN> backup database ‘/dm8/data/DAMENG/dm.ini’ full to FULLBACK_DMRMAN backupset ‘/dm8/backup/dmrman/fullback_dmrman’;
---- 通过 DM 控制台 console 图形化界面来备份
DM8 数据库库级和表空间级的还原只能在脱机状态下还原和恢复
----模拟故障,删除SYSTEM.DBF数据文件,启动数据库失败
----基于备份集将数据库还原到备份的时刻
RMAN> restore database ‘/dm8/data/DAMENG/dm.ini’ from backupset ‘/dm8/data/DAMENG/bak/console’;
---- 基于归档日志将数据库恢复到最新状态
RMAN> recover database ‘/dm8/data/DAMENG/dm.ini’ with archivedir ‘/dm8/data/DAMENG’;
---- 库级还原和恢复需要更新数据库魔数
RMAN> recover database ‘/dm8/data/DAMENG/dm.ini’ update db_magic;
数据库永久魔数(不变)
select permanent_magic;
数据库魔数(每经过一次库级还原和恢复都会更新一次)
select db_magic from v$rlog;
表空间还原和恢复(备份集的数据库魔数要与目标库(被还原库)一致)
RMAN> restore database ‘/dm8/data/DAMENG/dm.ini’ tablespace tbstest from backupset ‘/dm8/data/DAMENG/bak/console’;
表空间恢复需要根据归档恢复到最新的状态
RMAN> recover database ‘/dm8/data/DAMENG/dm.ini’ tablespace tbstest with archivedir ‘/dm8/data/DAMENG’;
基于归档恢复,可以将数据库恢复到最新的状态(完全恢复),也可以将数据库恢复到指定的时间点或者指定的 LSN(不完全恢复)。
基于备份集的恢复,是将数据库恢复至备份结束的时间点。
不完全恢复的使用场景: 数据库人工误操作删除了部分重要的表或重要的数据,可以新建一个库进行数据恢复, 然后手工导出找回。
完全恢复的使用场景: 物理故障,磁盘损坏,数据文件丢失。
联机备份与还原数据库
联机备份是数据库启动状态下的备份,联机备份需要数据库开启归档状态。
备份方式:1、通过 sql 语句 2、DM 管理工具图形化界面
全库备份
默认全量备份
backup database;
增加 increment 表示增量备份,默认为差异增量备份
backup database increment;
使用backupset指定备份集路径
backup database increment backupset ‘/dm8/backup/online/incrback01’;
使用cumulative指定为累积增量备份,使用to指定备份集名称
backup database increment cumulative to incrback01 backupset ‘/dm8/backup/online/incrback02’;
表空间备份(可使用 backupset 指定备份集路径等)
注意,DM8 表空间只能联机备份
backup tablespace TBSTEST;
备份集管理相关函数
----查看备份集信息
select * from v$backupset;
----备份集管理相关函数
select * from v$ifun t where name like ‘%BAKSET%’;
SF_BAKSET_BACKUP_DIR_ADD – 添加备份集目录(仅针对当前会话生效)
SF_BAKSET_BACKUP_DIR_REMOVE – 删除备份集目录
SF_BAKSET_BACKUP_DIR_REMOVE_ALL
SF_BAKSET_CHECK --备份集校验
SF_BAKSET_REMOVE – --备份集校验
SF_BAKSET_REMOVE_BATCH – 备份集批量校验
添加备份目录
call SF_BAKSET_BACKUP_DIR_ADD(‘DISK’, ‘/dm8/backup/online’);
备份集校验
select SF_BAKSET_check(‘DISK’,’/dm8/backup/online/incrback02’);