使用联机执行SQL语句进行备份还原
DM支持通过联机执行SQL语句方式对数据库执行备份还原操作。联机方式支持数据库、用户表空间、用户表和归档的备份以及用户表的还原。在进行联机库级备份、归档备份和表空间备份时,必须保证系统处于归档模式,否则联机备份不能进行。
对联机备份的支持与限制:
1) MPP环境仅允许库和归档备份,且各节点都会执行,生成相应的备份集,支持DDL CLONE;
2)DSC环境支持库备份、表空间备份和表备份,要求DSC环境的所有节点都处于OPEN状态;
3) MOUNT状态仅支持归档备份;
4) SUSPEND状态所有备份均不支持;
5) OPEN状态支持所有备份,支持DDL CLONE;
6) PRIMARY模式支持所有备份,支持DDL CLONE;
7) STANDBY模式仅支持库级、表空间级和归档备份,支持DDL CLONE;
8) DDL CLONE必须备份归档,不允许指定WITHOUT LOG。
联机还原:
仅支持表级还原,对联机还原的支持与限制:
1) MPP和分布式数据库不支持;
2) PRIMARY支持;
3) SUSPEND状态所有还原均不支持;
4) OPEN/NORMAL支持。
脱机备份:
脱机备份支持库级和归档备份。
1) MPP视同单机环境,仅当前节点执行备份操作;
2) 允许异常退出后备份,支持DDL_CLONE;
3) DSC支持库级备份,支持DDL_CLONE;当DSC环境下正常节点的CKPT_LSN小于故障节点的CKPT_LSN时,不支持脱机备份。
脱机还原:
脱机还原跟目标库所处的模式、状态以及集群环境(MPP和DSC)无关,允许库级、表空间级和归档还原。
在一般的应用场景中,常规性的数据库维护工作,即在不影响数据库正常运行的情况下,建议定期执行联机数据库备份,且完全备份和增量备份结合使用。执行两次完全备份的时间间隔可以尽量长一点,在两次完全备份之间执行一定数量的增量备份,比如,可以选择每周执行一次完全备份,一周内每天执行一次增量备份。为了尽量减少对数据库正常工作的影响,建议备份时间,选择在工作量较少的时间,比如深夜。
无论管理员选用哪一种备份方式,都要注意不应将备份产生的备份集与源备份库存放在同一磁盘或同一存储介质上,以避免存储介质发生硬件故障时,源备份库与备份集同时被毁坏。
备份与还原时,指定的备份集名称和目录名中最好不要包含中文、空格以及特殊字符,否则可能会因为字符处理及字符集问题导致一些不可预期的问题。
全库备份
disql工具中使用backup语句备份整个数据库,的备份集目录,默认的备份路径为dm.ini中BAK_PATH配置的路径,若未配置,则使用SYSTEM_PATH下的bak目录。这是最简单的数据库备份语句,如果要设置其他的备份选项需了解联机备份数据库的。
语法如下:
BACKUP DATABASE [[[FULL] [DDL_CLONE]]| INCREMENT [CUMULATIVE][WITH BACKUPDIR '<基备份搜索目录>'{,'<基备份搜索目录>'}]|[BASE ON BACKUPSET '<基备份目录>']][TO <备份名>][BACKUPSET '<备份集路径>']
[DEVICE TYPE <介质类型> [PARMS '<介质参数>']]
[BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>]
[IDENTIFIED BY <密码>|”<密码>” [WITH ENCRYPTION<TYPE>][ENCRYPT WITH <加密算法>]]
[COMPRESSED [LEVEL <压缩级别>]] [WITHOUT LOG]
[TRACE FILE '<TRACE文件名>'] [TRACE LEVEL <TRACE日志级别>]
[TASK THREAD <线程数>][PARALLEL [<并行数>] [READ SIZE <拆分块大小>]];
FULL:备份类型。
FULL表示完全备份,可不指定,默认为完全备份。
DDL_CLONE:数据库克隆。该参数只能用于完全备份中,表示仅拷贝所有的元数据不拷贝数据。如对于数据库中的表