达梦数据库基础管理—联机执行SQL语句备份还原

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

达梦数据库基础管理—联机执行SQL语句备份还原



三、联机执行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归档有效,对应远程归档存放在本节点的实际路径

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~90表示不压缩,压缩等级越高,速度越慢,压缩比越高
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.meta2:创建备份集,备份名设置为”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.meta5:备份压缩
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.meta6:并行备份,指定并行数为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 629 15:46 dm_bak_20220629_06_3
drwxr-xr-x 2 dmdba dinstall     69 629 15:46 dm_bak_20220629_06_4
drwxr-xr-x 2 dmdba dinstall     69 629 15:46 dm_bak_20220629_06_5
drwxr-xr-x 2 dmdba dinstall     69 629 15:46 dm_bak_20220629_06_6
drwxr-xr-x 2 dmdba dinstall     69 629 15:46 dm_bak_20220629_06_2
drwxr-xr-x 2 dmdba dinstall     69 629 15:46 dm_bak_20220629_06_0
drwxr-xr-x 2 dmdba dinstall     69 629 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.meta7:完全备份,增量备份
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 629 15:53 db_full_bak
drwxr-xr-x 2 dmdba dinstall 90 629 15:57 db_increment_bak
3.3.1.2 表空间备份
3.3.1.2.1 语法
BACKUP TABLESPACE <表空间名
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值