这篇文章主要介绍“怎么执行SQL语句进行归档备份”,在日常操作中,相信很多人在怎么执行SQL语句进行归档备份问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么执行SQL语句进行归档备份”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1. 概述
在DIsql工具中使用BACKUP语句可以备份归档日志。使用归档备份的前提:一是,归档文件的db_magic值和库的db_magic值必须一样;二是,服务器必须配置归档;三是,归档日志必须连续,如果出现不连续的情况,前面的会忽略,仅备份最新的连续部分。如果未收集到指定范围内的归档,则不会备份。联机备份的时候经常会切换归档文件,最后一个归档总是空的,所以最后一个归档不会被备份。

DIsql中输入以下即可备份归档:

SQL>select*fromv$dm_iniwherepara_name='BAK_PATH';LINEIDPARA_NAMEPARA_VALUEMIN_VALUEMAX_VALUEMPP_CHKSESS_VALUEFILE_VALUEDESCRIPTIONPARA_TYPE------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1BAK_PATH/dm_home/dmdba/dmdbms/data/jydm/bakNULLNULLN/dm_home/dmdba/dmdbms/data/jydm/bak/dm_home/dmdba/dmdbms/data/jydm/bakbackupfilepathREADONLYusedtime:7.311(ms).Executeidis1219.SQL>backuparchivelogalltoarchivelog_backup_2020052901backupset'archivelog_backup_2020052901';backuparchivelogalltoarchivelog_backup_2020052901backupset'archivelog_backup_2020052901';[-7109]:Pipeconnectfailure.usedtime:2.618(ms).Executeidis0.

在Oracle Linux7.1中要使用dmap需要手动启动DmAPService服务和dmap执行码,在Redhat中启动DmAPService服务时会同时启动dmap

[root@shard1bak]#systemctlstartDmAPService[dmdba@shard1~]$cd/dm_home/dmdba/dmdbms/bin[dmdba@shard1bin]$./dmapdmapV7.1.6.46-Build(2018.02.08-89107)ENTdmapisreadySQL>backuparchivelogalltoarchivelog_backup_2020052901backupset'archivelog_backup_2020052901';executedsuccessfullyusedtime:00:00:34.482.Executeidis1234.SQL>select*fromv$backupsetwherebackup_path='/dm_home/dmdba/dmdbms/data/jydm/bak/archivelog_backup_2020052901';LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK-30479448-1ARCHIVELOG_BACKUP_2020052901/dm_home/dmdba/dmdbms/data/jydm/bak/archivelog_backup_2020052901304ARCHIVE-12020-05-2918:44:25.00048000103355443282362201508844119100150884411175075960usedtime:00:00:01.010.Executeidis1266.SQL>select*fromv$parameterwherename='BAK_USE_AP';LINEIDIDNAMETYPEVALUESYS_VALUEFILE_VALUEDESCRIPTION----------------------------------------------------------------------------------------------------------------------------------------------1541BAK_USE_APSYS111backupuseassistantplus-in,0:usesubprocess;1:useAP;2:notuseAP.default1.usedtime:6.765(ms).Executeidis1252.SQL>select*fromv$parameterwherename='BAK_POLICY';LINEIDIDNAMETYPEVALUESYS_VALUEFILE_VALUEDESCRIPTION-------------------------------------------------------------------------17BAK_POLICYSYS000backuppatternusedtime:7.405(ms).Executeidis1253.

备份集“archivelog_backup_2020052901”会生成到默认的备份路径下。如要设置其他备份选项需参考下文的备份归档语法。

语法如下:

BACKUP[ALL|[FROMLSN]|[UNTILLSN]|[LSNBETWEENAND]|[FROMTIME'']|[UNTILTIME'']|[TIMEBETWEEN''>AND'']][][DELETEINPUT][TO<备份名>]BACKUPSET['<备份集路径>'][DEVICETYPE<介质类型>[PARMS'<介质参数>']][BACKUPINFO'<备份描述>'][MAXPIECESIZE<备份片限制大小>][IDENTIFIEDBY<密钥>[WITHENCRYPTION][ENCRYPTWITH<加密算法>]][COMPRESSED[LEVEL<压缩级别>]][WITHOUTLOG][TRACEFILE''][TRACELEVEL][TASKTHREAD<线程数>][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>selectARCH_LSN,CLSN,PATHfromV$ARCH_FILE;LINEIDARCH_LSNCLSNPATH------------------------------------------------------------------------------------------------------------------------100/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200529193925775_0.log282362208493250/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200407140301179_0.log384932509294927/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200407225606099_0.log4929492811047946/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200410180147714_0.log51104794711054313/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200425175952636_0.log61105431312906866/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200509201513282_0.log71290686713775969/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200513203613043_0.log81377597014461220/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200526003546144_0.log91446122114942037/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200526003632028_0.log101494203715088441/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200528230749046_0.log111508844215092081/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200529184351533_0.log121509208215092086/dm_home/dmdba/dmdbms/data/arch/ARCHIVE_LOCAL1_20200529193755551_0.log12rowsgot

通过查询结果选出备份的起始LSN和截至LSN。比如15092082 15092086

其次,备份归档。

SQL>backuparchiveloglsnbetween15092082and15092086backupset'arch_backup_lsn_15092082_15092086';executedsuccessfullyusedtime:00:00:01.174.Executeidis1316.SQL>select*fromv$backupsetwherebackup_path='/dm_home/dmdba/dmdbms/data/jydm/bak/arch_backup_lsn_15092082_15092086';LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK-1385444837-1ARCH_20200529_194216_000768/dm_home/dmdba/dmdbms/data/jydm/bak/arch_backup_lsn_15092082_15092086304ARCHIVE-12020-05-2919:42:17.000861001033554432150920821509208611100150920861175075960usedtime:00:00:01.013.Executeidis1317.

到此,关于“怎么执行SQL语句进行归档备份”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!