溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么執(zhí)行SQL語句進(jìn)行歸檔備份

發(fā)布時(shí)間:2021-11-12 11:45:56 來源:億速云 閱讀:116 作者:iii 欄目:數(shù)據(jù)庫

這篇文章主要介紹“怎么執(zhí)行SQL語句進(jìn)行歸檔備份”,在日常操作中,相信很多人在怎么執(zhí)行SQL語句進(jìn)行歸檔備份問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么執(zhí)行SQL語句進(jìn)行歸檔備份”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1. 概述
在DIsql工具中使用BACKUP語句可以備份歸檔日志。使用歸檔備份的前提:一是,歸檔文件的db_magic值和庫的db_magic值必須一樣;二是,服務(wù)器必須配置歸檔;三是,歸檔日志必須連續(xù),如果出現(xiàn)不連續(xù)的情況,前面的會(huì)忽略,僅備份最新的連續(xù)部分。如果未收集到指定范圍內(nèi)的歸檔,則不會(huì)備份。聯(lián)機(jī)備份的時(shí)候經(jīng)常會(huì)切換歸檔文件,最后一個(gè)歸檔總是空的,所以最后一個(gè)歸檔不會(huì)被備份。

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需要手動(dòng)啟動(dòng)DmAPService服務(wù)和dmap執(zhí)行碼,在Redhat中啟動(dòng)DmAPService服務(wù)時(shí)會(huì)同時(shí)啟動(dòng)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”會(huì)生成到默認(rèn)的備份路徑下。如要設(shè)置其他備份選項(xiàng)需參考下文的備份歸檔語法。

語法如下:

BACKUP
[ALL | [FROM LSN ]| [UNTIL LSN ]|[LSN BETWEEN  AND ] | [FROM TIME '']|[UNTIL TIME '']|
[TIME BETWEEN''> AND ''
]][][DELETE INPUT]
[TO < 備份名>]
BACKUPSET ['< 備份集路徑>'][DEVICE TYPE < 介質(zhì)類型> [PARMS '< 介質(zhì)參數(shù)>']]
[BACKUPINFO '< 備份描述>']
[MAXPIECESIZE < 備份片限制大小>]
[IDENTIFIED BY < 密鑰>[WITH ENCRYPTION][ENCRYPT WITH < 加密算法>]]
[COMPRESSED [LEVEL < 壓縮級別>]]
[WITHOUT LOG]
[TRACE FILE ''] [TRACE LEVEL ]
[TASK THREAD < 線程數(shù)>][PARALLEL [< 并行數(shù)>]];

ALL:備份所有的歸檔;

FROM LSN:指定備份的起始lsn。

UNTIL LSN:指定備份的截止lsn。歸檔日志的有效LSN范圍(起始lsn,截止lsn)可以通過V$ARCH_FILE查看,或者通過dmclvt工具分析日志的結(jié)果查看。如果用戶無法確定準(zhǔn)確的lsn,也可以指定一個(gè)模糊的lsn值,取值范圍(1~9223372036854775807)。只要指定的FROM LSN、UNTIL LSN與有效LSN范圍有重疊部分,就會(huì)備份包含重疊部分的完整日志文件。

FROM TIME:指定備份的開始的時(shí)間點(diǎn)。

UNTILTIME:指定備份的截止的時(shí)間點(diǎn)。
BETWEEN ... AND ...:指定備份的區(qū)間。指定區(qū)間后,只會(huì)備份指定區(qū)間內(nèi)的歸檔文件。:搜索過濾。搜索過濾僅限于根據(jù)備份指定條件能找到的所有歸檔備份集。1) num TIMES,取值范圍為0~2147483647,指若歸檔文件已經(jīng)備份了num次,則不再備份;否則備份。如num=3,則認(rèn)為已經(jīng)備份了3次的歸檔文件就不再備份。若num=0,則認(rèn)為所有都不需要備份。2)SINCE TIME 'datetime_String',指定時(shí)間開始沒有備份的歸檔文件進(jìn)行備份。3)若以上兩種均未指定,則備份所有未備份過的歸檔日志文件。

DELETE INPUT:用于指定備份完成之后,是否刪除歸檔操作。

TO:指定生成備份名稱。若未指定,系統(tǒng)隨機(jī)生成,默認(rèn)備份名格式為:ARCH_備份時(shí)間。其中,備份時(shí)間為開始備份的系統(tǒng)時(shí)間。

BACKUPSET:指定當(dāng)前備份集生成路徑,若指定為相對路徑,則在默認(rèn)備份路徑中生成備份集。若不指定具體備份集路徑,則在默認(rèn)備份路徑下,以約定歸檔備份集命名規(guī)則生成默認(rèn)的歸檔備份集目錄。歸檔備份默認(rèn)備份集目錄名生成規(guī)則:ARCH_LOG_時(shí)間,如
ARCH_LOG_20160518_143057_123456。表明該備份集為2016年5月18日14時(shí)30分57秒123456毫秒時(shí)生成的歸檔備份集。

DEVICE TYPE:指存儲(chǔ)備份集的介質(zhì)類型,支持DISK和TAPE,默認(rèn)DISK。DISK表示存儲(chǔ)備份集到磁盤,TAPE表示存儲(chǔ)到磁帶。

PARMS:只對介質(zhì)類型為TAPE時(shí)有效。

BACKUPINFO:備份的描述信息。最大不超過256個(gè)字節(jié)。

MAXPIECESIZE:最大備份片文件大小上限,以M為單位,最小128M,32位系統(tǒng)最大2G,64位系統(tǒng)最大128G。

IDENTIFIED BY:指定備份時(shí)的加密密碼。密碼應(yīng)該使用雙引號括起來,這樣避免一些特殊字符通不過語法檢測。密碼的設(shè)置規(guī)則遵行ini參數(shù)pwd_policy指定的口令策略。

WITH ENCRYPTION:指定加密類型,0表示不加密,不對備份文件進(jìn)行加密處理;1表示簡單加密,對備份文件設(shè)置口令,但文件內(nèi)容仍以明文存儲(chǔ);2表示完全數(shù)據(jù)加密,對備份文件進(jìn)行完全的加密,備份文件以密文方式存儲(chǔ)。

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,則默認(rèn)1;否則,默認(rèn)0。

WITHOUT LOG:只是語法支持,不起任何作用。

TRACE FILE:指定生成的TRACE文件。啟用TRACE,但不指定TRACE FILE時(shí),默認(rèn)在DM數(shù)據(jù)庫系統(tǒng)的log目錄下生成DM_SBTTRACE_年月.LOG文件;若使用相對路徑,則生成在執(zhí)行碼同級目錄下。若用戶指定,則指定的文件不能為已經(jīng)存在的文件,否則報(bào)錯(cuò);也不可以為ASM文件。

TRACE LEVEL:有效值1、2,默認(rèn)為1表示不啟用TRACE,此時(shí)若指定了TRACE FILE,會(huì)生成TRACE文件,但不寫入TRACE信息;為2啟用TRACE并寫入TRACE相關(guān)內(nèi)容。

TASK THREAD:備份過程中數(shù)據(jù)處理過程線程的個(gè)數(shù),取值范圍0~64,默認(rèn)為4。若指定為0,則調(diào)整為1;若指定超過當(dāng)前系統(tǒng)主機(jī)核數(shù),則調(diào)整為當(dāng)前主機(jī)核數(shù)。線程數(shù)(TASK THREAD)*并行數(shù)(PARALLEL)不得超過512。

PARALLEL:指定并行備份的并行數(shù),取值范圍0~128。若不指定,則默認(rèn)為4,指定0或者1均認(rèn)為為非并行備份。并行備份不支持介質(zhì)為TAPE的備份。線程數(shù)(TASK THREAD)*并行數(shù)(PARALLEL)不得超過512。

2. 設(shè)置備份選項(xiàng)
歸檔備份常用的備份選項(xiàng)有設(shè)置備份名、設(shè)置備份集路徑、指定介質(zhì)參數(shù)、添加備份描述等,設(shè)置方式同數(shù)據(jù)庫備份相同。

3. 備份歸檔
歸檔備份拷貝指定歸檔目錄下的所有的歸檔文件到備份集中,并記錄各個(gè)歸檔文件的屬性,文件大小,LSN區(qū)間等。歸檔備份不存在增量備份
之說。當(dāng)需要保存庫的歸檔時(shí),可以使用歸檔備份。
完整的備份歸檔步驟如下:
1) 配置歸檔,參考3.1節(jié)。
2) 數(shù)據(jù)庫處于OPEN或者M(jìn)OUNT狀態(tài)。
3) DIsql中輸入備份數(shù)據(jù)庫語句。
例如,備份歸檔日志,通過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

通過查詢結(jié)果選出備份的起始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.

到此,關(guān)于“怎么執(zhí)行SQL語句進(jìn)行歸檔備份”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

sql
AI