备份的分类
DM 数据库中的数据存储在数据库的物理数据文件中,而DM 备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,而还原与恢复是备份的逆过程。
逻辑备份和物理备份
逻辑备份是指利用 dexp 导出工具,将指定对象比如某个表或者表空间的数据导出到文件的备份方式。逻辑备份针对的是数据内容,并不关心数据物理存储在什么位置。 物理备份则直接扫描存储介质中的数据库文件,拷贝并保存到备份集中。物理备份过程中,不关心数据页的具体内容和所属哪张表。
联机备份和脱机备份
联机备份是数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作。脱机备份是数据库处于关闭状态时进行的备份操作。 联机备份则使用客户端工具连接到数据库实例后,通过执行 SQL 语句进行;也可以通过配置作业,定时完成自动备份。联机备份不影响数据库正常提供服务,是最常用的备份手段之一。 联机备份时,可能存在一些处于活动状态的事务正在执行,为确保备份数据的一致性,需要将备份期间产生的 REDO 日志一起备份。因此,只能在配置本地归档、并开启本地归档的数据库上执行联机备份。
完全备份和增量备份
完全备份生成的备份集包含了指定库(或者表空间)的全部有效数据页。当数据规模比较大的情况下,生成的完全备份集通常会比较大,而且备份时间也会比较长。 库备份和表空间备份支持增量备份,表备份不支持增量备份。 增量备份是在某个特定备份集基础上,收集数据库新修改的数据页进行备份,可以有效减少备份集的空间占用、提高备份速度。
还原的分类
联机还原和脱机还原
联机还原指数据库处于运行状态时,通过 SQL 语句执行还原操作。表还原可以在联机状态下执行。 脱机还原指数据库处于关闭状态时,通过 DMRMAN 工具执行还原操作。库备份、表空间备份和归档备份,可以执行脱机还原。脱机还原操作的目标库必须处于关闭状态。
备份操作
联机归档的配置归档
通过修改文件来配置归档
配置 dmarch.ini文件
cat << EOF > dmarch.ini [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dmdata/dmarch ARCH_FILE_SIZE = 1024 ARCH_SPACE_LIMIT = 2048 EOF
编辑 dm.ini 文件,设置参数 ARCH_INI=1,保存; 启动数据库实例,数据库已运行于归档模式。
通过语句来配置归档
ALTER DATABASE MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE ADD ARCHIVELOG 'DEST = /dmdata/dmarch, TYPE = local, FILE_SIZE = 1024,SPACE_LIMIT = 2048,ARCH_FLUSH_BUF_SIZE=16,HANG_FLAG=1'; ALTER DATABASE OPEN;
备份语句
全库备份示例:
BACKUP DATABASE BACKUPSET 'db_bak_01'COMPRESSED LEVEL 5 PARALLEL 8;
参数说明; 必选参数: 备份级别:例子中的DATABASE表示备份整个库。还有TABLESPACE ,table等 BACKUPSET:备份地址,后面加备份集路径 常用参数: 备份类型:分为完全备份 FULL 和增量备份 INCREMENT 两种。默认为 FULL。 BACKUPINFO:备份的描述信息 ENCRYPT WITH:加密算法,有内置21种加密算法比如RC4,DES_ECB等,也知识OPENSSL的六种第三方加密算法, IDENTIFIED BY:备份的加密密码 COMPRESSED:是否压缩,LEVEL 表示压缩等级,取值范围 0~9,数字越高,压缩比例越大,比如例子中就是压缩等级为5。 PARALLEL:是否开启并行,并行数不得超过cpu核数,几个并行数据就会被拆成几块,比如例子中为开启8个并行。
增量备份示例:
BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/dm_bak' BACKUPSET '/home/dm_bak/db_increment_bak_02';
参数INCREMENT用来设置本次备份为增量备份。
归档备份示例:
BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';
注意事项:
当备份数据超过限制大小时,会生成新的备份文件,新的备份文件名是初始文件名后加文件编号。 系统处于归档模式下时,才允许进行数据库联机备份。若备份库为 DSC 集群实例,且未指定 WITHOUT LOG,则需要配置远程归档。 MOUNT 状态下,不允许进行数据库备份。
还原:联机表还原
RESTORE TABLE TAB_01 FROM BACKUPSET 'tab_bak_01';
参数说明; 必选参数: 表名:例子中的TAB_01就是指定还原的表名。 BACKUPSET:备份地址,后面加备份集路径 常用参数: IDENTIFIED BY:备份的加密密码,要与备份时相同 ENCRYPT WITH:备份的加密算法,要与备份时相同 PARALLEL:是否开启并行,并行数要小于等于备份时的并行数,大于视为等于。
dmrman备份与还原
进入dmrman在DM_HOME下执行./dmrman,如果配置了环境变量可以执行运行dmrman,提示符变成RMAN>代表进入了dmrman的交互模式。
dmrman 备份查看删除
备份查看示例:
SHOW BACKUPSET '/dmdata/dmbak/BACKUP_FILE/'
常用参数: BACKUPSET:查看单个备份集信息 BACKUPSETS: 批量查看备份集信息。
dmrman 备份校验
备份校验示例:
CHECK BACKUPSET '/dmdata/dmbak/BACKUP_FILE/'
dmrman 备份删除
备份删除示例:
REMOVE BACKUPSET '/dmdata/dmbak/BACKUP_FILE/'
常用参数: CASCADE:当目标备份集已经被其他增量备份引用为基备份集,默认不允许删除,若指定 CASCADE,则递归删除所有引用的增量备份。 BEFORE:删除距离当前时间前 n_day 天产生的备份集;n_day 取值范围 0~365,单位:天。
dmrman备份
dmrman备份常用命令与联机备份相同,不同的参数比如AP_PORT,CTLFILE,不常用,可以通过help命令查看。
dmrman还原
备份恢复示例:
RESTORE DATABASE '/dmdata/data/dmpah/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE/'
dmrman的还原与联机还原表级备份类似,参数基本相同 常用参数: RENAME TO:指定还原数据库后是否更改库的名字 IDENTIFIED BY:加密密码 ENCRYPT WITH:加密算法 TO SHADOW:将目标库还原成影子库 AUTO EXTEND:还原数据库时设置文件自动拓展
如果还原的为整个库的话需要再进一步执行 RECOVER 命令,将数据库恢复到备份结束时的状态,再同步 DB_MAGIC。 以下是还原整个库的还原操作
RESTORE DATABASE '/dmdata/data/dmpah/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE/' RECOVER DATABASE '/dmdata/data/dmpah/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE/' RECOVER DATABASE '/dmdata/data/dmpah/dm.ini' UPDATE DB_MAGIC
备份管理视图
V$BACKUPSET:显示备份集基本信息。 V$BACKUPSET_DBINFO:显示备份集的数据库相关信息。 V$BACKUPSET_DBF:显示备份集中数据文件的相关信息。 V$BACKUPSET_TABLE:显示表备份集中备份表信息。 V$BACKUP_FILES:显示当前备份任务待备份数据文件列表。
附达梦社区地址:https://eco.dameng.com