DM7聯機執行SQL語句進行歸檔備份
聯機執行SQL語句進行歸檔備份
本節主要介紹使用DIsql完成歸檔備份及實施一些備份策略,如限制備份集大小、加密備份等。主要內容包括:
1. 概述
2. 設定備份選項
3. 備份歸檔
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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2709377/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7聯機執行SQL語句進行表備份SQL
- DM7聯機執行SQL語句進行表空間備份SQL
- DM7使用聯機執行SQL語句進行備份還原SQL
- DM7聯機執行SQL語句進行加密備份與設定跟蹤日誌SQL加密
- DM聯機執行SQL語句進行資料庫備份SQL資料庫
- DM7使用DMRMAN執行歸檔備份
- SQL語句執行進度檢查SQL
- DM7使用DMRMAN執行歸檔還原
- DM7使用DMRMAN執行歸檔修復
- DM7使用DMRAMN執行歸檔恢復
- sql語句批量執行SQL
- DM7使用DMRAMN執行備份集恢復
- SQL語句執行順序及建議--歸納整理SQL
- sql語句如何執行的SQL
- SQL語句執行順序SQL
- 執行大的sql語句SQL
- toad執行sql語句SQL
- DM7使用DMRMAN工具執行備份集對映檔案匯出
- SQL Server SQL語句執行順序SQLServer
- 利用pl/sql執行本地的sql檔案中的sql語句SQL
- mysql執行sql語句過程MySql
- Mybatis 動態執行SQL語句MyBatisSQL
- mysql的sql語句執行流程MySql
- sql語句執行緩慢分析SQL
- SQL 語句的執行順序SQL
- 後臺執行SQL語句(oracle)SQLOracle
- Hibernate 執行原始SQL語句SQL
- Oracle SQL語句執行步驟OracleSQL
- 查詢正在執行的sql語句及該語句執行的時間SQL
- Laravel 獲取執行的sql語句LaravelSQL
- MySQL cron定時執行SQL語句MySql
- 查詢執行慢的SQL語句SQL
- SQL語句執行過程詳解SQL
- CoreData執行過程的sql語句SQL
- 識別低效執行的SQL語句SQL
- sql語句執行過程小結SQL
- 剖析SQL語句的執行過程SQL
- 快速定位sql語句執行內容SQL