目录
物理备份
全库物理备份:
./disql
SQL> backup database full backupset '/dm8/backup/full_01’;
增量物理备份:
SQL> backup database increment backupset '/dm8/backup/incr_01';
支持与限制
联机备份
对联机备份的支持与限制:
- MPP 环境仅允许库和归档备份,且各节点都会执行,生成相应的备份集,支持 DDL CLONE
- DSC 环境支持库备份、表空间备份和表备份,要求 DSC 环境的所有节点都处于 OPEN 状态
- MOUNT 状态仅支持归档备份
- SUSPEND 状态所有备份均不支持
- OPEN 状态支持所有备份,支持 DDL CLONE
- PRIMARY 模式支持所有备份,支持 DDL CLONE
- STANDBY 模式仅支持库级、表空间级和归档备份,支持 DDL CLONE
- DDL CLONE 必须备份归档,不允许指定 WITHOUT LOG
联机还原
仅支持表级还原,对联机还原的支持与限制:
- MPP 和分布式数据库不支持
- PRIMARY 支持
- SUSPEND 状态所有还原均不支持
- OPEN/NORMAL 支持
脱机备份
脱机备份支持库级和归档备份
- MPP 视同单机环境,仅当前节点执行备份操作
- 允许异常退出后备份,支持 DDL_CLONE
- DSC 支持库级备份,支持 DDL_CLONE;当 DSC 环境下正常节点的 CKPT_LSN 小于故障节点的 CKPT_LSN 时,不支持脱机备份
4脱机还原
脱机还原跟目标库所处的模式、状态以及集群环境(MPP 和 DSC)无关,允许库级、表空间级和归档还原.
在一般的应用场景中,常规性的数据库维护工作,即在不影响数据库正常运行的情况下,建议定期执行联机数据库备份,且完全备份和增量备份结合使用。执行两次完全备份的时间间隔可以尽量长一点,在两次完全备份之间执行一定数量的增量备份,比如,可以选择每周执行一次完全备份,一周内每天执行一次增量备份。为了尽量减少对数据库正常工作的影响, 建议备份时间,选择在工作量较少的时间,比如深夜。
归档配置
DM 数据库可以运行在归档模式或非归档模式下。如果是归档模式,联机日志文件中的内容保存到硬盘中,形成归档日志文件;如果是非归档模式,则不会形成归档日志。
采用归档模式会对系统的性能产生些许影响,然而系统在归档模式下运行会更安全,当出现故障时其丢失数据的可能性更小,这是因为一旦出现介质故障,如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点,而如果没有归档日志文件,则只能利用备份进行恢复。
通过dm.ini和dmarch.ini可以配置本地归档。dmarch.ini生效的前提是dm.ini 中的参数 ARCH_INI 置为 1。
DM 的 dmarch.ini 可以进行本地归档和远程归档的设置,DM 备份与还原过程中使用的日志均为本地归档日志。
查询 v$dm_arch_ini、v$arch_status 等动态视图可以获取归档配置以及归档状 态等相关信息。
dmarch.ini 中与备份还原相关的配置参数及其介绍见下表
配置项 | 配置含义 |
[ARCH_NAME] | REDO 日志归档名 |
ARCH_TYPE | REDO 日志归档类型,LOCAL表示本地归档,REMOTE表示远程 |
ARCH_DEST | REDO 日志归档目标,LOCAL 对应归档文件存放路径;REMOTE对应远程目标节点实例名 |
ARCH_FILE_SIZE | 单个 REDO 日志归档文件大小,取值范围 64~2048,单位 MB,缺省值为 1024MB,即 1GB |
ARCH_SPACE_LIMIT | REDO 日志归档空间限制,当所有本地归档文件达到限制值时,系统自动删除 最老的归档文件。0 表示无空间限制,取值范围 1024~2147483647,单位 MB,缺省值为 0 |
ARCH_FLUSH_BUF_SIZE | 归档合并刷盘缓存大小,取值范围 0~128,单位 MB,缺省值为 0,表示不使 用归档合并刷盘 |
ARCH_HANG_FLAG | 本地归档写入失败时系统是否挂起。取值 0 或 1。0:不挂起;1:挂起。缺 省值为 1。第一路本地归档系统内固定设为 1,设 0 实际也不起作用 |
ARCH_INCOMING_PATH | 仅 REMOTE 归档有效,对应远程归档存放在本节点的实际路径 |
进行配置归档相关操作
修改数据库为 MOUNT 状态
ALTER DATABASE MOUNT;
配置本地归档
ALTER DATABASE add ARCHIVELOG 'DEST = /dm8/data/DAMENG/arch_2, TYPE = local,file_size = 1024,space_limit = 2048,arch_flush_buf_size=16,hang_flag=1';
Status$为3,处于mount状态
//开启归档模式
ALTER DATABASE ARCHIVELOG;
//修改数据库为 OPEN 状态
ALTER DATABASE OPEN;
数据库备份
BACKUP DATABASE BACKUPSET 'db_bak_01';
语法如下
设置联机数据库备份集路径
例 1 :指定备份集路径为“/dm8/dm_bak/db_bak_3_01”
BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_3_01';
设置备份名
BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/dm8/dm_bak/db_bak_3_02';
添加备份描述
BACKUP DATABASE BACKUPSET '/dm8/dm_bak/db_bak_3_04' BACKUPINFO '完全备份';
限制备份片大小
BACKUP DATABASE BACKUPSET '/dm8/dm_bak/db_bak_3_05' MAXPIECESIZE 300;
备份压缩
BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_3_06' COMPRESSED LEVEL 5;
并行备份
BACKUP DATABASE BACKUPSET '/dm8/dm_bak/db_bak_3_07' PARALLEL 8;
增量备份
- 配置归档
- 保证数据库处于 OPEN 状态
- DIsql 中输入备份数据库语句,最简单的不设置其他参数的增量备份语句如下:
BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm8/dm_bak' BACKUPSET '/dm8/dm_bak/db_increment_bak_02';
表空间备份
BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';
备份归档
BACKUP ARCHIVELOG LSN BETWEEN 35888 AND 40947 BACKUPSET '/dm8/dm_bak/arch_bak_time_888-947';
达梦云适配技术社区
https://eco.dameng.com/