DM7使用DMRMAN執行歸檔備份

eric0435發表於2020-09-04

使用離線工具DMRMAN執行歸檔備份
1. 概述
在DMRMAN工具中使用BACKUP命令你可以備份資料庫的歸檔。關閉伺服器在DMRMAN中輸入以下命令即可備份歸檔:

RMAN> backup archive log database 'E:\dmdbms\data\jydm\dm.ini';
backup archive log database 'E:\dmdbms\data\jydm\dm.ini';
checking if the database under system path [E:\dmdbms\data\jydm] is running...[4].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[3].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[2].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[1].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[0].
checking if the database under system path [E:\dmdbms\data\jydm] is running, write dmrman info.
EP[0] max_lsn: 901685
BACKUP ARCHIVE LOG ALL, execute......
CMD CHECK LSN......
BACKUP ARCHIVE LOG ALL, collect dbf......
CMD CHECK ......
ARCH BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
total 3 packages processed...
total 4 packages processed...
ARCH BACKUP MAIN......
BACKUPSET [E:\dmdbms\data\jydm\bak\ARCH_LOG_20200531_193129_000908] END, CODE [0]......
META GENERATING......
total 5 packages processed...
total 5 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 7252.182(ms)

命令執行完後會在預設的備份路徑下生成備份集目錄,預設的備份路徑為dm.ini中BAK_PATH的配置值,若未配置,則使用SYSTEM_PATH下的bak目錄。這是最簡單的離線歸檔備份語句,如果要設定其他備份選項請參考下文的語法及使用說明。

語法如下:

BACKUP
[ALL | [FROM LSN ]|[UNTIL LSN ] | [LSN BETWEEN < lsn值> AND < lsn值>] | [FROM TIME '時間串'] |
[UNTIL TIME '時間串'] | [TIME BETWEEN '時間串' AND '時間串']] [][DELETE INPUT]
DATABASE ''
[TO < 備份名>] [BACKUPSET '< 備份集目錄>'] [DEVICE TYPE < 介質型別>[PARMS '< 介質引數>']
[BACKUPINFO '< 備份描述>'] [MAXPIECESIZE < 備份片限制大小>]
[IDENTIFIED BY < 加密密碼>[WITH ENCRYPTION][ENCRYPT WITH < 加密演算法>]]
[COMPRESSED [LEVEL < 壓縮級別>]][TASK THREAD < 執行緒數>][PARALLEL [< 並行數>]];
::=NOT BACKED UP
| NOT BACKED UP numTIMES
| NOT BACKED UP SINCE TIME 'datetime_string'

ALL:備份所有的歸檔;
FROM LSN ,UNTIL LSN:備份的起始和截止lsn。請參考3.2.2.4歸檔備份
FROM TIME:指定備份的開始時間點。例如,'2015-12-10'。
UNTIL TIME:指定備份的截止時間點。
BETWEEN ...AND ...:指定備份的區間,僅僅指備份區間內的歸檔檔案。
:搜尋過濾。搜尋過濾僅限於根據備份指定條件能找到的所有歸檔備份集。1) num TIMES,指若歸檔檔案已經備份了num次,則不再備份;否則備份。如num=3,則認為已經備份了3次的歸檔檔案就不再備份。若num=0,則認為所有都不需要備份。2)SINCE TIME 'datetime_String',指定時間開始沒有備份的歸檔檔案進行備份。3)若以上兩種均未指定,則備份所有未備份過的歸檔日誌檔案。
DELETE INPUT:用於指定備份完,是否刪除歸檔操作。
DATABASE:必選引數。指定備份目標庫的INI檔案路徑。
TO: 指定生成備份名稱。若未指定,系統隨機生成,預設備份名格式為:ARCH_備份時間。
BACKUPSET: 指定當前備份集生成目錄。若指定為相對路徑,則在預設備份路徑中生成備份集。
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。具體可以使用的加密演算法參考聯機資料庫備份章節的引數說明。
COMPRESSED:取值範圍0~9。0表示不壓縮,1表示1級壓縮,9表示9級壓縮。壓縮級別越高,壓縮越慢,但壓縮比越高。若未指定,但指定COMPRESSED,則預設1;否則,預設0。
TASK THREAD:備份過程中資料處理過程執行緒的個數,取值範圍0~64,預設為4。若指定為0,則調整為1;若指定超過當前系統主機核數,則調整為主機核數。執行緒數(TASK THREAD)*並行數(PARALLEL)不得超過512。
PARALLEL:指定並行備份的並行數,取值範圍0~128。若不指定,則預設為4,指定0或者1均認為為非並行備份。若未指定關鍵PARALLEL,則認為非並行備份。並行備份不支援介質為TAPE的備份。執行緒數(TASK THREAD)*並行數(PARALLEL)不得超過512。

2. 備份歸檔
本節主要描述使用DMRMAN如何執行基本的離線歸檔備份及實施一些備份策略,包括:
1. 設定備份選項
2. 建立歸檔備份
3. 建立設定條件的歸檔備份

1.設定備份選項
備份命令如果僅指定了必選引數如“BACKUP ARCHIVE LOG DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'”,那麼DMRMAN會根據配置的環境及內建的引數預設值自動指定備份介質型別、備份路徑、備份片大小等引數。使用者備份時也可以指定這些引數來覆蓋預設值,常見的備份選項有設定備份集路徑、指定備份名、限制備份片大小、新增描述資訊、並行備份等。DMRMAN離線備份歸檔的語法與使用DIsql聯機備份類似,關於備份選項的詳細介紹及使用參見3.2.2.3.2 設定備份選項。

2.建立歸檔備份
執行歸檔備份要求資料庫處於離線狀態。與聯機備份資料庫一樣,離線歸檔備份需要配置歸檔。一個完整的建立離線資料庫備份的示例如下:
1) 啟動DMRMAN命令列工具。
2) 保證資料庫處於離線狀態。
3) DMRMAN中輸入以下命令:

RMAN> backup archive log all database 'E:\dmdbms\data\jydm\dm.ini' backupset 'E:\dmdbms\backup\arch_all_bak_01';
backup archive log all database 'E:\dmdbms\data\jydm\dm.ini' backupset 'E:\dmdbms\backup\arch_all_bak_01';
checking if the database under system path [E:\dmdbms\data\jydm] is running...[4].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[3].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[2].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[1].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[0].
checking if the database under system path [E:\dmdbms\data\jydm] is running, write dmrman info.
EP[0] max_lsn: 901685
BACKUP ARCHIVE LOG ALL, execute......
CMD CHECK LSN......
BACKUP ARCHIVE LOG ALL, collect dbf......
CMD CHECK ......
ARCH BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
total 3 packages processed...
total 4 packages processed...
ARCH BACKUP MAIN......
BACKUPSET [E:\dmdbms\backup\arch_all_bak_01] END, CODE [0]......
META GENERATING......
total 5 packages processed...
total 5 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 8221.506(ms)

命令中的ALL參數列示執行的備份為備份所有的歸檔,也可以不指定該引數,DMRMAN預設執行的備份型別為ALL型別歸檔備份。

3.建立設定條件的歸檔備份
設定條件的歸檔備份指透過設定LSN或者時間點,控制歸檔需要備份歸檔的範圍。離線設定條件歸檔備份。增量備份示例如下:

D:\>net start DmServicejydm
DmServicejydm 服務正在啟動 ....
DmServicejydm 服務已經啟動成功。
D:\>disql sysdba/xxzx7817600
伺服器[LOCALHOST:5236]:處於普通開啟狀態
登入使用時間: 10.068(毫秒)
disql V7.1.6.48-Build(2018.03.01-89507)ENT
Connected to: DM 7.1.6.48
SQL> select * from v$arch_file;
行號       DB_MAGIC    STATUS   LEN                  FREE                 ARCH_LSN             CLSN                 ARCH_SEQ             NEXT_SEQ             CREATE_TIME                 CLOSE_TIME                  PATH
---------- ----------- -------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------------- --------------------------- ----------------------------------------------------------
1          -430050549  INACTIVE 225792               225792               892254               894139               161798               162230               2020-05-31 10:17:40.810000  2020-05-31 11:52:15.732000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531101740800_0.log
2          -430050549  INACTIVE 282112               282112               894139               896221               162231               162773               2020-05-31 11:52:15.732000  2020-05-31 18:10:29.344000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531115215733_0.log
3          -430050549  INACTIVE 198656               198656               896222               898933               162774               163153               2020-05-31 18:10:29.344000  2020-05-31 18:11:41.803000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531181130589_0.log
4          -430050549  INACTIVE 202752               202752               898934               901685               163154               163541               2020-05-31 18:11:41.803000  2020-05-31 19:22:33.194000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531192047977_0.log
5          -430050549  ACTIVE   1073741824           4608                 901686               901686               163542               163542               2020-05-31 19:22:33.194000  2020-05-31 19:41:37.396000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531194137390_0.log
已用時間: 7.243(毫秒). 執行號:3.
SQL> begin
2   for i in 11 .. 20 loop
3   insert into t2 values(i);
4   end loop;
5   commit;
6   end;
7   /
DMSQL 過程已成功完成
已用時間: 3.688(毫秒). 執行號:4.
SQL> alter system switch logfile;
操作已執行
已用時間: 15.692(毫秒). 執行號:0.
SQL> select * from v$arch_file;
行號       DB_MAGIC    STATUS   LEN                  FREE                 ARCH_LSN             CLSN                 ARCH_SEQ             NEXT_SEQ             CREATE_TIME                 CLOSE_TIME                  PATH
---------- ----------- -------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------------- --------------------------- ----------------------------------------------------------
1          -430050549  ACTIVE   1073741824           4096                 0                    0                    0                    0                    2020-05-31 19:43:28.792000  2020-05-31 19:43:28.797000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531194328794_0.log
2          -430050549  INACTIVE 225792               225792               892254               894139               161798               162230               2020-05-31 10:17:40.810000  2020-05-31 11:52:15.732000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531101740800_0.log
3          -430050549  INACTIVE 282112               282112               894139               896221               162231               162773               2020-05-31 11:52:15.732000  2020-05-31 18:10:29.344000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531115215733_0.log
4          -430050549  INACTIVE 198656               198656               896222               898933               162774               163153               2020-05-31 18:10:29.344000  2020-05-31 18:11:41.803000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531181130589_0.log
5          -430050549  INACTIVE 202752               202752               898934               901685               163154               163541               2020-05-31 18:11:41.803000  2020-05-31 19:22:33.194000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531192047977_0.log
6          -430050549  INACTIVE 143872               143872               901686               903130               163542               163814               2020-05-31 19:22:33.194000  2020-05-31 19:43:28.792000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531194137390_0.log
6 rows got
已用時間: 8.257(毫秒). 執行號:5.
SQL> checkpoint(100);
DMSQL 過程已成功完成
已用時間: 19.634(毫秒). 執行號:6.
SQL> alter database archivelog current;
操作已執行
已用時間: 15.156(毫秒). 執行號:0.
SQL> select * from v$arch_file;
行號       DB_MAGIC    STATUS   LEN                  FREE                 ARCH_LSN             CLSN                 ARCH_SEQ             NEXT_SEQ             CREATE_TIME                 CLOSE_TIME                  PATH
---------- ----------- -------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------------- --------------------------- ----------------------------------------------------------
1          -430050549  ACTIVE   1073741824           4096                 0                    0                    0                    0                    2020-05-31 19:44:15.929000  2020-05-31 19:44:15.934000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531194415931_0.log
2          -430050549  INACTIVE 225792               225792               892254               894139               161798               162230               2020-05-31 10:17:40.810000  2020-05-31 11:52:15.732000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531101740800_0.log
3          -430050549  INACTIVE 282112               282112               894139               896221               162231               162773               2020-05-31 11:52:15.732000  2020-05-31 18:10:29.344000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531115215733_0.log
4          -430050549  INACTIVE 198656               198656               896222               898933               162774               163153               2020-05-31 18:10:29.344000  2020-05-31 18:11:41.803000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531181130589_0.log
5          -430050549  INACTIVE 202752               202752               898934               901685               163154               163541               2020-05-31 18:11:41.803000  2020-05-31 19:22:33.194000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531192047977_0.log
6          -430050549  INACTIVE 143872               143872               901686               903130               163542               163814               2020-05-31 19:22:33.194000  2020-05-31 19:43:28.792000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531194137390_0.log
7          -430050549  INACTIVE 9728                 9728                 903130               903130               163815               163825               2020-05-31 19:43:28.792000  2020-05-31 19:44:15.929000  E:\dmdbms\data\arch\ARCHIVE_LOCAL1_20200531194328794_0.log
7 rows got

1) 啟動DMRMAN命令列工具。
2) 保證資料庫處於離線狀態。

D:\>net stop DmServicejydm
DmServicejydm 服務正在停止...
DmServicejydm 服務已成功停止。

3) DMRMAN中輸入以下命令:

RMAN> backup archive log lsn between 901686 and 903130 database 'E:\dmdbms\data\jydm\dm.ini' backupset 'E:\dmdbms\backup\arch_lsn_bak_01';
backup archive log lsn between 901686 and 903130 database 'E:\dmdbms\data\jydm\dm.ini' backupset 'E:\dmdbms\backup\arch_lsn_bak_01';
checking if the database under system path [E:\dmdbms\data\jydm] is running...[4].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[3].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[2].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[1].
checking if the database under system path [E:\dmdbms\data\jydm] is running...[0].
checking if the database under system path [E:\dmdbms\data\jydm] is running, write dmrman info.
EP[0] max_lsn: 904411
BACKUP ARCHIVE LOG FROM LSN 901686 TO LSN 903130, execute......
CMD CHECK LSN......
BACKUP ARCHIVE LOG FROM LSN 901686 TO LSN 903130, collect dbf......
CMD CHECK ......
ARCH BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
ARCH BACKUP MAIN......
BACKUPSET [E:\dmdbms\backup\arch_lsn_bak_01] END, CODE [0]......
META GENERATING......
total 3 packages processed...
total 3 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 7313.615(ms)

命令中的LSN BETEEWN start AND end參數列示執行的備份為執行備份的區間,或者設定FROM LSN(TIME)以及UNTIL LSN(TIME)。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2717181/,如需轉載,請註明出處,否則將追究法律責任。

相關文章