共计 8878 个字符,预计需要花费 23 分钟才能阅读完成。
这篇文章主要介绍“怎么执行 SQL 语句进行归档备份”,在日常操作中,相信很多人在怎么执行 SQL 语句进行归档备份问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么执行 SQL 语句进行归档备份”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
1. 概述
在 DIsql 工具中使用 BACKUP 语句可以备份归档日志。使用归档备份的前提:一是,归档文件的 db_magic 值和库的 db_magic 值必须一样;二是,服务器必须配置归档;三是,归档日志必须连续,如果出现不连续的情况,前面的会忽略,仅备份最新的连续部分。如果未收集到指定范围内的归档,则不会备份。联机备份的时候经常会切换归档文件,最后一个归档总是空的,所以最后一个归档不会被备份。
DIsql 中输入以下即可备份归档:
SQL select * from v$dm_ini where para_name= BAK_PATH
LINEID PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE
---------- --------- ----------------------------------- --------- --------- ------- ----------------------------------- ----------------------------------- ---------------- ---------
1 BAK_PATH /dm_home/dmdba/dmdbms/data/jydm/bak NULL NULL N /dm_home/dmdba/dmdbms/data/jydm/bak /dm_home/dmdba/dmdbms/data/jydm/bak backup file path READ ONLY
used time: 7.311(ms). Execute id is 1219.
SQL backup archive log all to archivelog_backup_2020052901 backupset archivelog_backup_2020052901
backup archive log all to archivelog_backup_2020052901 backupset archivelog_backup_2020052901
[-7109]:Pipe connect failure.
used time: 2.618(ms). Execute id is 0.
在 Oracle Linux7.1 中要使用 dmap 需要手动启动 DmAPService 服务和 dmap 执行码,在 Redhat 中启动 DmAPService 服务时会同时启动 dmap
[root@shard1 bak]# systemctl start DmAPService
[dmdba@shard1 ~]$ cd /dm_home/dmdba/dmdbms/bin
[dmdba@shard1 bin]$ ./dmap
dmap V7.1.6.46-Build(2018.02.08-89107)ENT
dmap is ready
SQL backup archive log all to archivelog_backup_2020052901 backupset archivelog_backup_2020052901
executed successfully
used time: 00:00:34.482. Execute id is 1234.
SQL select * from v$backupset where backup_path= /dm_home/dmdba/dmdbms/data/jydm/bak/archivelog_backup_2020052901
LINEID DEVICE_TYPE BACKUP_ID PARENT_ID BACKUP_NAME BACKUP_PATH TYPE LEVEL RANGE# OBJECT_NAME OBJECT_ID BASE_NAME BACKUP_TIME DESC# ENCRYPT_TYPE COMPRESS_LEVEL WITHOUT_LOG USE_PWR PKG_SIZE BEGIN_LSN END_LSN BKP_NUM DBF_NUM PARALLEL_NUM DDL_CLONE MPP_FLAG MIN_TRX_START_LSN MIN_EXEC_VER CUMULATIVE
---------- ----------- ----------- ----------- ---------------------------- ---------------------------------------------------------------- ----------- ----------- ----------- ----------- ----------- --------- --------------------------- ----- ------------ -------------- ----------- ----------- ----------- -------------------- -------------------- ----------- ----------- ------------ ----------- ----------- -------------------- ------------ -----------
1 DISK -30479448 -1 ARCHIVELOG_BACKUP_2020052901 /dm_home/dmdba/dmdbms/data/jydm/bak/archivelog_backup_2020052901 3 0 4 ARCHIVE -1 2020-05-29 18:44:25.000480 0 0 1 0 33554432 8236220 15088441 1 9 1 0 0 15088441 117507596 0
used time: 00:00:01.010. Execute id is 1266.
SQL select * from v$parameter where name= BAK_USE_AP
LINEID ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION
---------- ----------- ---------- ---- ----- --------- ---------- -----------------------------------------------------------------------------------
1 541 BAK_USE_AP SYS 1 1 1 backup use assistant plus-in, 0:use sub process; 1:use AP; 2:not use AP. default 1.
used time: 6.765(ms). Execute id is 1252.
SQL select * from v$parameter where name= BAK_POLICY
LINEID ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION
---------- ----------- ---------- ---- ----- --------- ---------- --------------
1 7 BAK_POLICY SYS 0 0 0 backup pattern
used time: 7.405(ms). Execute id is 1253.
备份集“archivelog_backup_2020052901”会生成到默认的备份路径下。如要设置其他备份选项需参考下文的备份归档语法。
语法如下:
BACKUP
[ALL | [FROM LSN ]| [UNTIL LSN ]|[LSN BETWEEN AND ] | [FROM TIME ]|[UNTIL TIME ]|
[TIME BETWEEN AND ]][][DELETE INPUT]
[TO 备份名]
BACKUPSET [ 备份集路径][DEVICE TYPE 介质类型 [PARMS 介质参数]]
[BACKUPINFO 备份描述]
[MAXPIECESIZE 备份片限制大小]
[IDENTIFIED BY 密钥 [WITH ENCRYPTION][ENCRYPT WITH 加密算法]]
[COMPRESSED [LEVEL 压缩级别]]
[WITHOUT LOG]
[TRACE FILE ] [TRACE LEVEL ]
[TASK THREAD 线程数][PARALLEL [ 并行数
ALL:备份所有的归档;
FROM LSN:指定备份的起始 lsn。
UNTIL LSN:指定备份的截止 lsn。归档日志的有效 LSN 范围(起始 lsn, 截止 lsn)可以通过 V$ARCH_FILE 查看,或者通过 dmclvt 工具分析日志的结果查看。如果用户无法确定准确的 lsn,也可以指定一个模糊的 lsn 值,取值范围(1~9223372036854775807)。只要指定的 FROM LSN、UNTIL LSN 与有效 LSN 范围有重叠部分,就会备份包含重叠部分的完整日志文件。
FROM TIME:指定备份的开始的时间点。
UNTILTIME:指定备份的截止的时间点。
BETWEEN … AND …:指定备份的区间。指定区间后,只会备份指定区间内的归档文件。:搜索过滤。搜索过滤仅限于根据备份指定条件能找到的所有归档备份集。1)num TIMES,取值范围为 0~2147483647,指若归档文件已经备份了 num 次,则不再备份;否则备份。如 num=3,则认为已经备份了 3 次的归档文件就不再备份。若 num=0,则认为所有都不需要备份。2)SINCE TIME datetime_String,指定时间开始没有备份的归档文件进行备份。3)若以上两种均未指定,则备份所有未备份过的归档日志文件。
DELETE INPUT:用于指定备份完成之后,是否删除归档操作。
TO:指定生成备份名称。若未指定,系统随机生成,默认备份名格式为:ARCH_备份时间。其中,备份时间为开始备份的系统时间。
BACKUPSET:指定当前备份集生成路径,若指定为相对路径,则在默认备份路径中生成备份集。若不指定具体备份集路径,则在默认备份路径下,以约定归档备份集命名规则生成默认的归档备份集目录。归档备份默认备份集目录名生成规则:ARCH_LOG_时间,如
ARCH_LOG_20160518_143057_123456。表明该备份集为 2016 年 5 月 18 日 14 时 30 分 57 秒 123456 毫秒时生成的归档备份集。
DEVICE TYPE:指存储备份集的介质类型,支持 DISK 和 TAPE,默认 DISK。DISK 表示存储备份集到磁盘,TAPE 表示存储到磁带。
PARMS:只对介质类型为 TAPE 时有效。
BACKUPINFO:备份的描述信息。最大不超过 256 个字节。
MAXPIECESIZE:最大备份片文件大小上限,以 M 为单位,最小 128M,32 位系统最大 2G,64 位系统最大 128G。
IDENTIFIED BY:指定备份时的加密密码。密码应该使用双引号括起来,这样避免一些特殊字符通不过语法检测。密码的设置规则遵行 ini 参数 pwd_policy 指定的口令策略。
WITH ENCRYPTION:指定加密类型,0 表示不加密,不对备份文件进行加密处理;1 表示简单加密,对备份文件设置口令,但文件内容仍以明文存储;2 表示完全数据加密,对备份文件进行完全的加密,备份文件以密文方式存储。
ENCRYPT WITH:加密算法。缺省情况下,算法为 AES256_CFB。
加密算法包括:
DES_ECB、DES_CBC、DES_CFB、DES_OFB、DESEDE_ECB、DESEDE_CBC、DESEDE_CFB、DESEDE_OFB、AES128_ECB、AES128_CBC、AES128_CFB 、AES128_OFB、AES192_ECB、AES192_CBC、AES192_CFB 、AES192_OFB、AES256_ECB、AES256_CBC、AES256_CFB 、AES256_OFB 、RC4
COMPRESSED:取值范围 0~9。0 表示不压缩,1 表示 1 级压缩,9 表示 9 级压缩。压缩级别越高,压缩越慢,但压缩比越高。若未指定,但指定 COMPRESSED,则默认 1;否则,默认 0。
WITHOUT LOG:只是语法支持,不起任何作用。
TRACE FILE:指定生成的 TRACE 文件。启用 TRACE,但不指定 TRACE FILE 时,默认在 DM 数据库系统的 log 目录下生成 DM_SBTTRACE_年月.LOG 文件;若使用相对路径,则生成在执行码同级目录下。若用户指定,则指定的文件不能为已经存在的文件,否则报错;也不可以为 ASM 文件。
TRACE LEVEL:有效值 1、2,默认为 1 表示不启用 TRACE,此时若指定了 TRACE FILE,会生成 TRACE 文件,但不写入 TRACE 信息;为 2 启用 TRACE 并写入 TRACE 相关内容。
TASK THREAD:备份过程中数据处理过程线程的个数,取值范围 0~64,默认为 4。若指定为 0,则调整为 1;若指定超过当前系统主机核数,则调整为当前主机核数。线程数(TASK THREAD)* 并行数(PARALLEL)不得超过 512。
PARALLEL:指定并行备份的并行数,取值范围 0~128。若不指定,则默认为 4,指定 0 或者 1 均认为为非并行备份。并行备份不支持介质为 TAPE 的备份。线程数(TASK THREAD)* 并行数(PARALLEL)不得超过 512。
2. 设置备份选项
归档备份常用的备份选项有设置备份名、设置备份集路径、指定介质参数、添加备份描述等,设置方式同数据库备份相同。
3. 备份归档
归档备份拷贝指定归档目录下的所有的归档文件到备份集中,并记录各个归档文件的属性,文件大小,LSN 区间等。归档备份不存在增量备份
之说。当需要保存库的归档时,可以使用归档备份。
完整的备份归档步骤如下:
1) 配置归档,参考 3.1 节。
2) 数据库处于 OPEN 或者 MOUNT 状态。
3) DIsql 中输入备份数据库语句。
例如,备份归档日志,通过 LSN BETWEEN … AND … 来指定起始和截至 LSN。
首先,确定 LSN 范围。
SQL select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
LINEID ARCH_LSN CLSN PATH
---------- -------------------- -------------------- ----------------------------------------------------------------------
1 0 0 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200529193925775_0.log
2 8236220 8493250 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200407140301179_0.log
3 8493250 9294927 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200407225606099_0.log
4 9294928 11047946 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200410180147714_0.log
5 11047947 11054313 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200425175952636_0.log
6 11054313 12906866 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200509201513282_0.log
7 12906867 13775969 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200513203613043_0.log
8 13775970 14461220 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200526003546144_0.log
9 14461221 14942037 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200526003632028_0.log
10 14942037 15088441 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200528230749046_0.log
11 15088442 15092081 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200529184351533_0.log
12 15092082 15092086 /dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200529193755551_0.log
12 rows got
通过查询结果选出备份的起始 LSN 和截至 LSN。比如 15092082 15092086
其次,备份归档。
SQL backup archivelog lsn between 15092082 and 15092086 backupset arch_backup_lsn_15092082_15092086
executed successfully
used time: 00:00:01.174. Execute id is 1316.
SQL select * from v$backupset where backup_path= /dm_home/dmdba/dmdbms/data/jydm/bak/arch_backup_lsn_15092082_15092086
LINEID DEVICE_TYPE BACKUP_ID PARENT_ID BACKUP_NAME BACKUP_PATH TYPE LEVEL RANGE# OBJECT_NAME OBJECT_ID BASE_NAME BACKUP_TIME DESC# ENCRYPT_TYPE COMPRESS_LEVEL WITHOUT_LOG USE_PWR PKG_SIZE BEGIN_LSN END_LSN BKP_NUM DBF_NUM PARALLEL_NUM DDL_CLONE MPP_FLAG MIN_TRX_START_LSN MIN_EXEC_VER CUMULATIVE
---------- ----------- ----------- ----------- --------------------------- --------------------------------------------------------------------- ----------- ----------- ----------- ----------- ----------- --------- --------------------------- ----- ------------ -------------- ----------- ----------- ----------- -------------------- -------------------- ----------- ----------- ------------ ----------- ----------- -------------------- ------------ -----------
1 DISK -1385444837 -1 ARCH_20200529_194216_000768 /dm_home/dmdba/dmdbms/data/jydm/bak/arch_backup_lsn_15092082_15092086 3 0 4 ARCHIVE -1 2020-05-29 19:42:17.000861 0 0 1 0 33554432 15092082 15092086 1 1 1 0 0 15092086 117507596 0
used time: 00:00:01.013. Execute id is 1317.
到此,关于“怎么执行 SQL 语句进行归档备份”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!