达梦数据库基础管理—联机执行SQL语句备份还原
文章目录
- 达梦数据库基础管理—联机执行SQL语句备份还原
- 三、联机执行SQL语句备份还原
-
- 3.1 支持与限制
- 3.2 归档配置
- 3.3 使用联机执行SQL语句备份还原
-
- 3.3.1 数据备份
- 3.3.2 管理备份
-
- 3.3.2.1 概述
- 3.3.2.2 备份目录管理
- 3.3.2.3 备份集检验与删除
-
- 3.3.2.3.1 SF_BAKSET_CHECK函数
- 3.3.2.3.2 SF_BAKSET_REMOVE函数
- 3.3.2.3.3 SF_BAKSET_REMOVE_BATCH函数
- 3.3.2.3.4 SP_DB_BAKSET_REMOVE_BATCH过程
- 3.3.2.3.5 SP_TS_BAKSET_REMOVE_BATCH过程
- 3.3.2.3.6 SP_TAB_BAKSET_REMOVE_BATCH过程
- 3.3.2.3.7 SP_ARCH_BAKSET_REMOVE_BATCH过程
- 3.3.2.3.8 SF_ARCHIVELOG_DELETE_BEFORE_TIME
- 3.3.2.3.9 SF_ARCHIVELOG_DELETE_BEFORE_LSN过程
- 3.3.3 数据还原
三、联机执行SQL语句备份还原
DM 提供的各种工具进行备份还原与恢复的操作,包括 DIsql 工具、DMRMAN 工具、图形化客户端管理工具 MANAGER 和 CONSOLE。
- DIsql 工具用于执行联机的数据备份与数据还原,包括数据库备份、归档备份、表空间备份与还原、表备份与还原;
- DMRMAN 工具用于执行脱机的数据备份、还原与恢复,包括脱机的数据库备份、还原
与恢复,脱机还原表空间,归档的备份、还原与修复; - 客户端工具 MANAGER 和 CONSOLE对应命令行工具 DIsql 和 DMRMAN 的功能,分别用于联机和脱机备份还原数据。
3.1 支持与限制
3.1.1 联机备份的支持与限制
- MPP环境仅允许库和归档备份,且各节点都会执行,生成相应的备份集,支持DDL_CLONE
- DSC环境支持库备份、表空间备份和表备份,要求DSC环境的所有节点都处于OPEN状态
- MOUNT状态仅支持归档备份
- SUSPEND状态所有备份均不支持
- OPEN状态支持所有备份,支持DDL_CLONE
- PRIMARY模式支持所有备份,支持DDL_CLONE
- STANDBY模式仅支持库级、表空间级和归档备份,支持DDL_CLONE
- DDL CLONE必须备份归档,不允许指定WITHOUT LOG
3.1.2 联机还原的支持与限制
- 仅支持表级还原
- MPP和分布式数据库不支持
- PRIMARY支持
- SUSPEND状态所有还原均不支持
- OPEN/NORMAL支持
3.1.3 脱机备份的支持与限制
- 支持库级和归档备份
- MPP视同单机环境,仅当前节点执行备份操作
- 允许异常退出后备份,支持DDL CLONE
- DSC支持库级备份,支持DDL CLONE,当DSC环境下正常节点的CKPT_LSN小于故障节点的CKPT_LSN时,不支持脱机备份
3.1.4 脱机还原的支持与限制
脱机还原跟目标库所处的模式、状态以及集群环境(MPP和DSC)无关,允许库级、表空间级和归档还原。
3.2 归档配置
3.2.1 归档配置相关参数
![配置项 配置含义
[ARCH_NAME] REDO日志归档名
ARCH_TYPE REDO日志归档类型,LOCAL:本地归档,REMOTE:远程归档
ARCH_DEST REDO日志归档目标,LOCAL:归档文件存放路径,REMOTE:对应远程节点实例名
ARCH_FILE_SIZE 单个REDO日志归档文件大小,取值64M~2048M,默认1024M
ARCH_SPACE_LKIMIT REDO日志归档空间限制,当达到限制值时,系统自动删除最老的归档文件。0表示无空间限制,取值:1024M~2147483647M,默认为0
ARCH_FLUSH_BUF_SIZE 归档合并刷盘缓存大小,单位MB,取值:0~128,默认为0表示不使用归档合并刷盘
ARCH_HANG_FLAG 本地归档写入失败是系统是否挂起。取值:0/1。0不挂起,1挂起。默认是1.第一路本地归档系统内固定设为1,设0实际也不起作用
ARCH_INCOMING_PATH 仅REMOTE归档有效,对应远程归档存放在本节点的实际路径](https://i-blog.csdnimg.cn/blog_migrate/0b5ecb0dacc6ce384406866f7604dddf.png)
3.2.2 归档配置方法
联机配置归档即在数据库实例启动的情况下,使用SQL语句完成dmarch.ini和ARCH_INI的配置。本地归档和远程归档均可以联机配置归档。
语法如下:
ALTER DATABASE <ADD|MODIFY|DELETE> ARCHIVELOG <归档配置语句>;
<归档配置语句>::= 'DEST = <归档目标>,TYPE = <归档类型>'
<归档类型>::=<local 方式>|<remote 方式>
<local 方 式 >::=LOCAL [,FILE_SIZE = <文件大小>][,SPACE_LIMIT = <空间大小限
制>][,ARCH_FLUSH_BUF_SIZE = <归档合并刷盘缓存大小>][,HANG_FLAG=<0|1>]
<remote 方 式 >::=REMOTE [,FILE_SIZE = <文件大小>][,SPACE_LIMIT = <空间大小限
制>][,ARCH_FLUSH_BUF_SIZE = <归档合并刷盘缓存大小>],INCOMING_PATH = <归档存放路径>
ADD:增加归档。该参数可以配置本地归档和远程归档。
MODIFY:修改归档。该参数可以修改已有归档的配置参数。不建议修改归档类型。
DELETE: 删除归档。在归档模式下,不允许删除本地归档。



增加或修改归档的步骤如下:
(1)修改数据库为 MOUNT 状态;
(2)增加或修改归档;
(3)开启归档模式;
(4)修改数据库为 OPEN 状态。
删除归档的步骤如下:
(1)修改数据库为 MOUNT 状态;
(2)关闭归档模式;
(3)删除归档
修改数据库状态的语法如下:
ALTER DATABASE <MOUNT|ARCHIVELOG|NOARCHIVELOG|OPEN>;
例:
-修改数据库为 MOUNT 状态
ALTER DATABASE MOUNT;
-配置本地归档
ALTER DATABASE ADD ARCHIVELOG 'DEST = /dmdata/dameng/arch_dsc0, TYPE = local,
FILE_SIZE = 1024,SPACE_LIMIT = 2048,ARCH_FLUSH_BUF_SIZE=16,HANG_FLAG=1';
-配置远程归档
ALTER DATABASE ADD ARCHIVELOG 'DEST = DSC1, TYPE = REMOTE, FILE_SIZE = 1024,
SPACE_LIMIT = 2048, ARCH_FLUSH_BUF_SIZE=16, INCOMING_PATH =/dmdata/dameng/arch_dsc1';
-开启归档模式
ALTER DATABASE ARCHIVELOG;
-修改数据库为 OPEN 状态
ALTER DATABASE OPEN;
3.3 使用联机执行SQL语句备份还原
联机方式支持数据库、用户表空间、用户表和归档的备份以及用户表的还原。必须保证系统处于归档模式,否则联机备份不能进行
3.3.1 数据备份
3.3.1.1 数据库备份
3.3.1.1.1 语法
BACKUP DATABASE [[[FULL] [DDL_CLONE]]| INCREMENT [CUMULATIVE][WITH BACKUPDIR '<
基备份搜索目录>'{
,'<基备份搜索目录>'}]|[BASE ON BACKUPSET '<基备份目录>']][TO <备份
名>][BACKUPSET '<备份集路径>']
[DEVICE TYPE <介质类型> [PARMS '<介质参数>']]
[BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>]
[LIMIT <read_limit>|<write_limit>]
[IDENTIFIED BY <密码>|”<密码>” [WITH ENCRYPTION <TYPE>][ENCRYPT WITH <加密算法>]]
[COMPRESSED [LEVEL <压缩级别>]] [WITHOUT LOG]
[TRACE FILE '<TRACE 文件名>'] [TRACE LEVEL <TRACE 日志级别>] 备份与还原
46
[TASK THREAD <线程数>][PARALLEL [<并行数>] [READ SIZE <拆分块大小>]];
<read_limit>::= READ SPEED <读速度上限> [WRITE SPEED <写速度上限>]
<write_limit>::= WRITE SPEED <写速度上限>
FULL:备份类型,表示完全备份,默认为完全备份
DDL_CLONE:数据库克隆。表示近拷贝所有的元数据不拷贝数据
INCREMENT:备份类型,表示增量备份
CUMULATIVE:指明为累积增量备份类型,不指定则缺省为差异备份类型
WITH BACKUPDIR:用于增量悲愤中,指定基备份的搜索目录
BASE ON BACKUPSET:用于增量备份中,指定基备份集路径
TO:指定生成备份名称,若未指定,默认备份格式为:DB_库名_备份类型_备份时间
BACKUPSET:指定当前备份集生成路径
DEVICE TYPE:指定存储备份集的介质类型,支持DISK和TAPE,默认DISK
PARMS:只对介质类型为TAPE时有效
BACKUPINFO:备份的描述信息
MAXPIECESIZE:最大备份片文件大小上限,单位:M,32位操作系统最大2G,64位操作系统最大128G
LIMIT:指定备份时最大的读写文件速度,单位:M/S,默认为0,表示无速度限制
IDENTIFIED BY:指定备份时的加密密码。密码可以用双引号括起来,这样可以避免一些特殊字符通不过语法检测
WITH ENCRYPTION:指定加密类型,0表示不加密,1表示简单加密,2表示完全加密
ENCRYPTION WITH:指定加密算法,不指定时默认使用AES256_CFB加密算法
COMPRESSED:是否对备份数据进行压缩处理。LEVEL表示压缩等级,取值:0~9,0表示不压缩,压缩等级越高,速度越慢,压缩比越高
WITHOUT LOG:联机数据库备份是否备份日志。如果使用此参数,使用DMRMAN还原时,必须指定WITH ARCHIVEDIR参数
TRACE FILE:指定生成的TRACE文件
TRACE LEVEL:是否启用TRACE,1表示不启用,2表示启用
TASK THREAD:备份过程中数据处理过程线程的个数。默认是4
PARALLEL:指定并行备份的并行数和拆分块大小,取值:0~128
图例:


3.3.1.1.2 备份样例
例1:指定备份集路径为”/home/dmdba/dm_bak/dm_bak_20220629”
SQL> backup database backupset '/home/dmdba/dm_bak/dm_bak_20220629';
操作已执行
已用时间: 00:00:46.421. 执行号:0.
[dmdba@dmdsc01 dm_bak_20220629]$ ls -ltr
总用量 274572
-rw-r--r-- 1 dmdba dinstall 280702976 6月 29 15:12 dm_bak_20220629.bak
-rw-r--r-- 1 dmdba dinstall 338432 6月 29 15:12 dm_bak_20220629_1.bak
-rw-r--r-- 1 dmdba dinstall 115200 6月 29 15:12 dm_bak_20220629.meta
例2:创建备份集,备份名设置为”FULL_BAK”
SQL> backup database to FULL_BAK backupset '/home/dmdba/dm_bak/dm_bak_20220629_02';
操作已执行
已用时间: 00:00:06.972. 执行号:0.
例3:添加备份描述
SQL> backup database backupset '/home/dmdba/dm_bak/dm_bak_20220629_03' backupinfo 'FULL_BACKUP';
操作已执行
已用时间: 00:00:19.466. 执行号:1.
例4:限制备份片大小
SQL> backup database backupset '/home/dmdba/dm_bak/dm_bak_20220629_04' MAXPIECESIZE 100;
操作已执行
已用时间: 00:00:25.079. 执行号:2.
[dmdba@dmdsc01 dm_bak_20220629_04]$ ls -ltr
总用量 343964
-rw-r--r-- 1 dmdba dinstall 101849600 6月 29 15:35 dm_bak_20220629_04.bak
-rw-r--r-- 1 dmdba dinstall 92313088 6月 29 15:35 dm_bak_20220629_04_1.bak
-rw-r--r-- 1 dmdba dinstall 100668928 6月 29 15:35 dm_bak_20220629_04_2.bak
-rw-r--r-- 1 dmdba dinstall 57187840 6月 29 15:35 dm_bak_20220629_04_3.bak
-rw-r--r-- 1 dmdba dinstall 60928 6月 29 15:35 dm_bak_20220629_04_4.bak
-rw-r--r-- 1 dmdba dinstall 127488 6月 29 15:35 dm_bak_20220629_04.meta
例5:备份压缩
SQL> backup database backupset '/home/dmdba/dm_bak/dm_bak_20220629_05' compressed level 5;
操作已执行
已用时间: 00:00:09.008. 执行号:0.
[dmdba@dmdsc01 dm_bak_20220629_05]$ ls
dm_bak_20220629_05_1.bak dm_bak_20220629_05.bak dm_bak_20220629_05.meta
[dmdba@dmdsc01 dm_bak_20220629_05]$ ls -ltr
总用量 3188
-rw-r--r-- 1 dmdba dinstall 3113984 6月 29 15:40 dm_bak_20220629_05.bak
-rw-r--r-- 1 dmdba dinstall 25088 6月 29 15:40 dm_bak_20220629_05_1.bak
-rw-r--r-- 1 dmdba dinstall 115200 6月 29 15:40 dm_bak_20220629_05.meta
例6:并行备份,指定并行数为8
SQL> backup database backupset '/home/dmdba/dm_bak/dm_bak_20220629_06' PARALLEL 8;
操作已执行
已用时间: 00:00:17.910. 执行号:0.
[dmdba@dmdsc01 dm_bak_20220629_06]$ ls -ltr
总用量 636
drwxr-xr-x 2 dmdba dinstall 69 6月 29 15:46 dm_bak_20220629_06_3
drwxr-xr-x 2 dmdba dinstall 69 6月 29 15:46 dm_bak_20220629_06_4
drwxr-xr-x 2 dmdba dinstall 69 6月 29 15:46 dm_bak_20220629_06_5
drwxr-xr-x 2 dmdba dinstall 69 6月 29 15:46 dm_bak_20220629_06_6
drwxr-xr-x 2 dmdba dinstall 69 6月 29 15:46 dm_bak_20220629_06_2
drwxr-xr-x 2 dmdba dinstall 69 6月 29 15:46 dm_bak_20220629_06_0
drwxr-xr-x 2 dmdba dinstall 69 6月 29 15:46 dm_bak_20220629_06_1
-rw-r--r-- 1 dmdba dinstall 47104 6月 29 15:46 dm_bak_20220629_06.bak
-rw-r--r-- 1 dmdba dinstall 602112 6月 29 15:46 dm_bak_20220629_06.meta
例7:完全备份,增量备份
SQL> backup database backupset '/home/dmdba/dm_bak/db_full_bak';
操作已执行
已用时间: 00:00:06.241. 执行号:2.
SQL>
SQL> alter system switch logfile;
操作已执行
已用时间: 36.717(毫秒). 执行号:0.
SQL>
SQL> alter system switch logfile;
操作已执行
已用时间: 18.422(毫秒). 执行号:0.
SQL>
SQL> backup database increment with backupdir '/home/dmdba/dm_bak' backupset '/home/dmdba/dm_bak/db_increment_bak';
操作已执行
已用时间: 00:00:04.802. 执行号:3.
[dmdba@dmdsc01 dm_bak]$ ls -ltr
总用量 0
drwxr-xr-x 2 dmdba dinstall 75 6月 29 15:53 db_full_bak
drwxr-xr-x 2 dmdba dinstall 90 6月 29 15:57 db_increment_bak
3.3.1.2 表空间备份
3.3.1.2.1 语法
BACKUP TABLESPACE <表空间名

本文介绍了达梦数据库的联机备份与还原方法,涵盖了数据库、表空间、表及归档的日志备份策略,详细解释了相关SQL语句及管理过程,并提供了多个实践案例。
最低0.47元/天 解锁文章
506

被折叠的 条评论
为什么被折叠?



