DM7使用disql管理備份
下面介紹如何使用DIsql工具管理資料庫備份、表空間備份、表備份,以及歸檔備份。本節內容主要包括:
1. 概述
2. 備份目錄管理
3. 備份集管理
4. 備份資訊檢視
1. 概述
管理備份一個重要的目的是刪除不再需要的備份,DM7沒有提供自動刪除過期備份的功能,刪除備份需要手動執行。備份管理相關係統過程與函式總結如下:
SF_BAKSET_BACKUP_DIR_ADD:新增備份目錄。
SF_BAKSET_BACKUP_DIR_REMOVE:指定刪除記憶體中的備份目錄。
SF_BAKSET_BACKUP_DIR_REMOVE_ALL:刪除記憶體中全部的備份目錄。
SF_BAKSET_CHECK:對備份集進行校驗。
SF_BAKSET_REMOVE:刪除指定裝置型別和指定備份集目錄的備份集。
SF_BAKSET_REMOVE_BATCH:批次刪除滿足指定條件的所有備份集。
SP_DB_BAKSET_REMOVE_BATCH:批次刪除指定時間之前的資料庫備份集。
SP_TS_BAKSET_REMOVE_BATCH:批次刪除指定表空間物件及指定時間之前的表空間備份集。
SP_TAB_BAKSET_REMOVE_BATCH:批次刪除指定表物件及指定時間之前的表備份集。
SP_ARCH_BAKSET_REMOVE_BATCH:批次刪除指定條件的歸檔備份集。
備份管理相關動態檢視總結如下:
V$BACKUPSET:顯示備份集基本資訊。
V$BACKUPSET_DBINFO:顯示備份集的資料庫相關資訊。
V$BACKUPSET_DBF:顯示備份集中資料檔案的相關資訊。
V$BACKUPSET_ARCH:顯示備份集的歸檔資訊。
V$BACKUPSET_BKP:顯示備份集的備份片資訊。
V$BACKUPSET_SEARCH_DIRS:顯示備份集搜尋目錄。
V$BACKUPSET_TABLE:顯示錶備份集中備份表資訊。
V$BACKUPSET_SUBS:顯示並行備份中生成的子備份集資訊。
SF_BAKSET_BACKUP_DIR_ADD新增備份目錄僅對當前會話有效。呼叫刪除備份等函式或檢視動態檢視時要先呼叫SF_BAKSET_BACKUP_DIR_ADD新增備份目錄,否則僅搜尋預設備份路徑下的備份集。
2. 備份目錄管理
這裡的備份目錄是指備份集搜尋目錄,這些目錄被記錄在記憶體中,當執行動態檢視(參見3.2.4.4 備份資訊檢視)或批次刪除備份集時,均會從這些指定目錄中先搜尋所有備份集資訊。
本節主要內容包括:
SF_BAKSET_BACKUP_DIR_ADD SF_BAKSET_BACKUP_DIR_REMOVE SF_BAKSET_BACKUP_DIR_REMOVE_ALL
SF_BAKSET_BACKUP_DIR_ADD函式
新增備份目錄。若新增目錄已經存在或者為庫預設備份路徑,則認為已經存在,不新增,但也不報錯。
定義:
INT SF_BAKSET_BACKUP_DIR_ADD( device_type varchar, backup_dir varchar(256) )
引數說明:
device_type:待新增的備份目錄對應儲存介質型別,DISK或者TAPE。
backup_dir:待新增的備份目錄。
返回值:
1:目錄新增成功;其它情況下報錯。
舉例說明:
SQL> select sf_bakset_backup_dir_add('disk','arch_backup_lsn_15092082_15092086'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','arch_backup_lsn_15092082_15092086') ---------- -------------------------------------------------------------------- 1 1 used time: 26.411(ms). Execute id is 1569.
SF_BAKSET_BACKUP_DIR_REMOVE函式
刪除備份目錄。若刪除目錄為庫預設備份路徑,不進行刪除,認為刪除失敗。若指定目錄存在於記錄的合法目錄中,則刪除;不存在或者為空則跳過,正常返回。
定義:
INT SF_BAKSET_BACKUP_DIR_REMOVE ( device_type varchar, backup_dir varchar(256) )
引數說明:
device_type:待刪除的備份目錄對應儲存介質型別。待刪除的備份目錄對應儲存介質型別,DISK或者TAPE。
backup_dir:待刪除的備份目錄。
返回值:
1:目錄刪除成功;其他情況報錯。
舉例說明:
SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ----------------------------------- 1 arch_backup_lsn_15092082_15092086 2 /dm_home/dmdba/dmdbms/data/jydm/bak used time: 36.620(ms). Execute id is 1573. SQL> select sf_bakset_backup_dir_remove('disk','arch_backup_lsn_15092082_15092086'); LINEID SF_BAKSET_BACKUP_DIR_REMOVE('disk','arch_backup_lsn_15092082_15092086') ---------- ----------------------------------------------------------------------- 1 1 used time: 1.057(ms). Execute id is 1575. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ----------------------------------- 1 /dm_home/dmdba/dmdbms/data/jydm/bak used time: 0.987(ms). Execute id is 1577.
SF_BAKSET_BACKUP_DIR_REMOVE_ALL函式清理全部備份目錄,預設備份目錄除外。
定義:
INT SF_BAKSET_BACKUP_DIR_REMOVE_ALL ()
返回值:
1:目錄全部清理成功;其它情況下報錯。
舉例說明:
SQL> select sf_bakset_backup_dir_remove_all(); LINEID SF_BAKSET_BACKUP_DIR_REMOVE_ALL() ---------- --------------------------------- 1 1 used time: 1.019(ms). Execute id is 1580.
3. 備份集管理(備份集校驗與刪除)
本節介紹備份管理中最重要的功能,備份集校驗和備份集刪除。單個備份集刪除時並行備份中地子備份集不允許單獨刪除;在給定備份集搜
集目錄中發現存在引用刪除備份集作為基備份的需要執行級聯刪除,預設報錯。批次刪除備份集時,跳過收集到的單獨的子備份集。主要內
容如下:
SF_BAKSET_CHECK SF_BAKSET_REMOVE SF_BAKSET_REMOVE_BATCH SP_DB_BAKSET_REMOVE_BATCH SP_TS_BAKSET_REMOVE_BATCH SP_TAB_BAKSET_REMOVE_BATCH SP_ARCH_BAKSET_REMOVE_BATCH
SF_BAKSET_CHECK函式對備份集進行校驗。
定義:
INT SF_BAKSET_CHECK( device_type varchar, bakset_pathvarchar(256) )
引數說明:
device_type:裝置型別,disk或tape。
bakset_path:待校驗的備份集目錄。
返回值:
1:備份集目錄存在且合法;否則報錯。
舉例說明:
SQL> backup database full to db_rac_bak_for_check backupset '/dm7/backup/db_rac_bak_for_check'; executed successfully used time: 00:00:01.410. Execute id is 158. SQL> select sf_bakset_check('disk','/dm7/backup/db_rac_bak_for_check'); LINEID SF_BAKSET_CHECK('disk','/dm7/backup/db_rac_bak_for_check') ---------- ---------------------------------------------------------- 1 1 used time: 12.669(ms). Execute id is 159. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak_for_check'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak_for_check') ---------- ------------------------------------------------------------------- 1 1 used time: 1.610(ms). Execute id is 162. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- -------------------------------- 1 /dm7/backup/db_rac_bak_for_check 2 +DMDATA/data/rac/bak used time: 0.770(ms). Execute id is 163. SQL> select * from v$backupset; 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 53418202 -1 DB_RAC_BAK_FOR_CHECK /dm7/backup/db_rac_bak_for_check 0 0 1 rac -1 2020-05-29 21:14:50.000773 0 0 0 0 33554432 50908 51113 2 4 1 0 0 49398 117507596 0 used time: 00:00:01.023. Execute id is 164.
SF_BAKSET_REMOVE函式
刪除指定裝置型別和指定備份集目錄的備份集。一次只檢查一個合法.meta檔案,然後刪除對應備份集;若存在非法或非正常備份的.meta檔案,則報錯或直接返回,不會接著檢查下一個.meta檔案;若同一個備份集下還存在其它備份檔案或備份集,則只刪除備份檔案,不會刪除整個備份集。
定義:
INT SF_BAKSET_REMOVE ( device_type varchar, backsetpath varchar(256), option integer )
引數說明:
device_type:裝置型別,disk或tape。
backsetpath:待刪除的備份集目錄。
Option:刪除備份集選項,0預設刪除,1級聯刪除。可選引數。並行備份集中子備份集不允許單獨刪除。目標備份集被其他備份集引用為基備份的,預設刪除,報錯;級聯刪除情況下,會遞迴將相關的增量備份也刪除。
返回值:
1:備份集目錄刪除成功,其它情況下報錯。
舉例說明:
SQL> backup database full to db_rac_bak_for_remove backupset '/dm7/backup/db_rac_bak_for_remove'; executed successfully used time: 00:00:01.320. Execute id is 165. SQL> backup database increment base on backupset '/dm7/backup/db_rac_bak_for_remove' backupset '/dm7/backup/db_rac_bak_for_remove_incr'; executed successfully used time: 00:00:01.255. Execute id is 170. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak_for_remove'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak_for_remove') ---------- -------------------------------------------------------------------- 1 1 used time: 1.836(ms). Execute id is 171. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak_for_remove_incr'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak_for_remove_incr') ---------- ------------------------------------------------------------------------- 1 1 used time: 1.444(ms). Execute id is 172. SQL> select * from v$backupset; 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 53418202 -1 DB_RAC_BAK_FOR_CHECK /dm7/backup/db_rac_bak_for_check 0 0 1 rac -1 2020-05-29 21:14:50.000773 0 0 0 0 33554432 50908 51113 2 4 1 0 0 49398 117507596 0 2 DISK 1763138770 -1 DB_RAC_BAK_FOR_REMOVE /dm7/backup/db_rac_bak_for_remove 0 0 1 rac -1 2020-05-29 22:00:34.000524 0 0 0 0 33554432 50908 51119 2 4 1 0 0 49398 117507596 0 3 DISK -1036285990 -1 DB_INCR_rac_20200529_220232_000624 /dm7/backup/db_rac_bak_for_remove_incr 1 0 1 rac -1 DB_RAC_BAK_FOR_REMOVE 2020-05-29 22:02:33.000834 0 0 0 0 33554432 50908 51135 2 4 1 0 0 49398 117507596 0 used time: 00:00:01.038. Execute id is 173. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- -------------------------------------- 1 /dm7/backup/db_rac_bak_for_check 2 /dm7/backup/db_rac_bak_for_remove 3 /dm7/backup/db_rac_bak_for_remove_incr 4 +DMDATA/data/rac/bak used time: 0.781(ms). Execute id is 174. SQL> select sf_bakset_remove('disk','/dm7/backup/db_rac_bak_for_remove'); select sf_bakset_remove('disk','/dm7/backup/db_rac_bak_for_remove'); [-8202]:Be the base backupset of /dm7/backup/db_rac_bak_for_remove_incr,cannot be removed. used time: 00:00:01.023. Execute id is 0.
報錯了,提示說它是另一個備份集的基備份不能被刪除
SQL> select sf_bakset_remove('disk','/dm7/backup/db_rac_bak_for_remove',1); LINEID SF_BAKSET_REMOVE('disk','/dm7/backup/db_rac_bak_for_remove',1) ---------- -------------------------------------------------------------- 1 1 used time: 50.201(ms). Execute id is 176.
檢查備份集可以確認在刪除基備份時確實級聯刪除了增量備份
SQL> select * from v$backupset; 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 53418202 -1 DB_RAC_BAK_FOR_CHECK /dm7/backup/db_rac_bak_for_check 0 0 1 rac -1 2020-05-29 21:14:50.000773 0 0 0 0 33554432 50908 51113 2 4 1 0 0 49398 117507596 0 used time: 00:00:01.050. Execute id is 177.
SF_BAKSET_REMOVE_BATCH函式
批次刪除滿足指定條件的所有備份集。
定義:
INT SF_BAKSET_REMOVE_BATCH ( device_type varchar, end_time datetime, range int, obj_name varchar(257) )
引數說明:
device_type:裝置型別,disk或tape。指定NULL,則忽略儲存裝置的區分。
end_time:刪除備份集生成的結束時間,僅刪除end_time之前的備份集,必須指定。
range:指定刪除備份的級別。1代表庫級,2代表表空間級,3代表表級,4代表歸檔備份。若指定NULL,則忽略備份集備份級別的區分。
obj_name:待刪除備份集中備份物件的名稱,僅表空間級和表級有效。若為表級備份刪除,則需指定完整的表名(模式.表名),否則,將認為刪除會話當前模式下的表備份。若指定為NULL,則忽略備份集中備份物件名稱區分
返回值:
1:備份集目錄刪除成功,其它情況下報錯。
舉例說明:
SQL> backup database full to db_rac_full_bak_for_remove backupset '/dm7/backup/db_rac_full_bak_for_remove'; executed successfully used time: 00:00:01.498. Execute id is 184. SQL> backup tablespace main full to tab_main_full_bak_for_remove backupset '/dm7/backup/tab_main_full_bak_for_remove'; executed successfully used time: 00:00:01.121. Execute id is 185. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_full_bak_for_remove'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_full_bak_for_remove') ---------- ------------------------------------------------------------------------- 1 1 used time: 1.574(ms). Execute id is 186. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/tab_main_full_bak_for_remove'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/tab_main_full_bak_for_remove') ---------- --------------------------------------------------------------------------- 1 1 used time: 1.881(ms). Execute id is 187. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ---------------------------------------- 1 /dm7/backup/db_rac_full_bak_for_remove 2 /dm7/backup/tab_main_full_bak_for_remove 3 +DMDATA/data/rac/bak used time: 0.784(ms). Execute id is 188. SQL> select * from v$backupset; 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 760083173 -1 DB_RAC_FULL_BAK_FOR_REMOVE /dm7/backup/db_rac_full_bak_for_remove 0 0 1 rac -1 2020-05-30 10:21:23.000661 0 0 0 0 33554432 50908 51141 2 4 1 0 0 49398 117507596 0 2 DISK -1117064059 -1 TAB_MAIN_FULL_BAK_FOR_REMOVE /dm7/backup/tab_main_full_bak_for_remove 0 0 2 MAIN 4 2020-05-30 10:22:41.000744 0 0 0 0 33554432 50908 51147 1 1 1 0 0 49398 117507596 0 used time: 00:00:01.025. Execute id is 189. SQL> select sf_bakset_remove_batch('disk',now(),null,null); LINEID SF_BAKSET_REMOVE_BATCH('disk',NOW(),NULL,NULL) ---------- ---------------------------------------------- 1 1 used time: 21.228(ms). Execute id is 190. SQL> select * from v$backupset; no rows used time: 00:00:01.023. Execute id is 191.
SP_DB_BAKSET_REMOVE_BATCH過程
批次刪除指定時間之前的資料庫備份集。使用該方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD新增將要刪除的備份集目錄,否則只刪除默
認備份路徑下的備份集。
定義:
SP_DB_BAKSET_REMOVE_BATCH ( device_type varchar, end_time datetime )
引數說明:
device_type:裝置型別,disk或tape。指定NULL,則忽略儲存裝置的區分。
end_time:刪除備份集生成的結束時間,僅刪除end_time之前的備份集,必須指定。
舉例說明:
SQL> backup database full to db_rac_full_bak_for_del backupset '/dm7/backup/db_rac_full_bak_for_del'; executed successfully used time: 00:00:01.580. Execute id is 194. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_full_bak_for_del'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_full_bak_for_del') ---------- ---------------------------------------------------------------------- 1 1 used time: 1.725(ms). Execute id is 195. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ----------------------------------- 1 /dm7/backup/db_rac_full_bak_for_del 2 +DMDATA/data/rac/bak used time: 0.483(ms). Execute id is 196. SQL> select * from v$backupset; 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 361744824 -1 DB_RAC_FULL_BAK_FOR_DEL /dm7/backup/db_rac_full_bak_for_del 0 0 1 rac -1 2020-05-30 10:27:00.000621 0 0 0 0 33554432 50908 51153 2 4 1 0 0 49398 117507596 0 used time: 00:00:01.024. Execute id is 197. SQL> call sp_db_bakset_remove_batch('disk',now()); DMSQL executed successfully used time: 36.535(ms). Execute id is 198. SQL> select * from v$backupset; no rows used time: 00:00:01.021. Execute id is 199.
SP_TS_BAKSET_REMOVE_BATCH過程
批次刪除指定表空間物件及指定時間之前的表空間備份集。使用該方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD新增將要刪除的備份集目錄,否則只刪除預設備份路徑下的備份集。
定義:
SP_TS_BAKSET_REMOVE_BATCH ( device_type varchar, end_time datetime, ts_name varchar(128) )
引數說明:
device_type:裝置型別,disk或tape。指定NULL,則忽略儲存裝置的區分。
end_time:刪除備份集生成的結束時間,僅刪除end_time之前的備份集,必須指定。
ts_name:表空間名,若未指定,則認為刪除所有滿足條件的表空間備份集。
舉例說明:
SQL> backup tablespace main full to tab_main_bak_full_for_del backupset '/dm7/backup/tab_main_bak_full_for_del'; executed successfully used time: 00:00:01.123. Execute id is 202. SQL> sf_bakset_backup_dir_add('disk','/dm7/backup/tab_main_bak_full_for_del'); DMSQL executed successfully used time: 1.256(ms). Execute id is 203. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ------------------------------------- 1 /dm7/backup/tab_main_bak_full_for_del 2 +DMDATA/data/rac/bak used time: 0.773(ms). Execute id is 204. SQL> select * from v$backupset; 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 798489856 -1 TAB_MAIN_BAK_FULL_FOR_DEL /dm7/backup/tab_main_bak_full_for_del 0 0 2 MAIN 4 2020-05-30 10:38:29.000350 0 0 0 0 33554432 50908 51159 1 1 1 0 0 49398 117507596 0 used time: 00:00:01.027. Execute id is 205. SQL> call sp_ts_bakset_remove_batch('disk',now(),'main'); DMSQL executed successfully used time: 16.765(ms). Execute id is 206. SQL> select * from v$backupset; 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 798489856 -1 TAB_MAIN_BAK_FULL_FOR_DEL /dm7/backup/tab_main_bak_full_for_del 0 0 2 MAIN 4 2020-05-30 10:38:29.000350 0 0 0 0 33554432 50908 51159 1 1 1 0 0 49398 117507596 0 used time: 00:00:01.022. Execute id is 207.
說明指定表空間名時表空間名要大寫
SQL> call sp_ts_bakset_remove_batch('disk',now(),'MAIN'); DMSQL executed successfully used time: 13.667(ms). Execute id is 208. SQL> select * from v$backupset; no rows used time: 00:00:01.023. Execute id is 209.
刪除備份目錄
SQL> sf_bakset_backup_dir_remove_all(); DMSQL executed successfully used time: 0.787(ms). Execute id is 210. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- -------------------- 1 +DMDATA/data/rac/bak used time: 0.836(ms). Execute id is 211.
SP_TAB_BAKSET_REMOVE_BATCH過程
批次刪除指定表物件及指定時間之前的表備份集。使用該方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD新增將要刪除的備份集目錄,否則只刪除預設備份路徑下的備份集。
定義:
SP_TAB_BAKSET_REMOVE_BATCH ( device_type varchar, end_time datetime, sch_name varchar(128), tab_name varchar(128) ) 引數說明: device_type:裝置型別,disk或tape。指定NULL,則忽略儲存裝置的區分。 end_time:刪除備份集生成的結束時間,僅刪除end_time之前的備份集,必須指定。 sch_name:表所屬的模式名。 tab_name:表名,只要模式名和表名有一個指定,就認為需要匹配目標;若均指定為NULL,則認為刪除滿足條件的所有表備份。 舉例說明:
SQL> create table tab_for_del_batch(c1 int); executed successfully used time: 18.840(ms). Execute id is 212. SQL> insert into tab_for_del_batch values(1); affect rows 1 used time: 1.840(ms). Execute id is 213. SQL> commit; executed successfully used time: 1.557(ms). Execute id is 214. SQL> backup table tab_for_del_batch to tab_bak_for_del_batch backupset '/dm7/backup/tab_bak_for_del_batch'; executed successfully used time: 00:00:01.142. Execute id is 215. SQL> call sf_bakset_backup_dir_add('disk','/dm7/backup/tab_bak_for_del_batch'); DMSQL executed successfully used time: 1.436(ms). Execute id is 216. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- --------------------------------- 1 /dm7/backup/tab_bak_for_del_batch 2 +DMDATA/data/rac/bak used time: 0.742(ms). Execute id is 217. SQL> select * from v$backupset; 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 -424456112 -1 TAB_BAK_FOR_DEL_BATCH /dm7/backup/tab_bak_for_del_batch 2 0 3 SYSDBA.TAB_FOR_DEL_BATCH -1 2020-05-30 11:07:05.000089 0 0 0 0 33554432 50908 51200 1 0 1 0 0 49398 117507596 0 used time: 00:00:01.023. Execute id is 218. SQL> sp_tab_bakset_remove_batch('disk',now(),'SYSDBA','TAB_FOR_DEL_BATCH'); DMSQL executed successfully used time: 14.860(ms). Execute id is 219. SQL> select * from v$backupset; no rows used time: 00:00:01.022. Execute id is 220. SQL> sf_bakset_backup_dir_remove_all(); DMSQL executed successfully used time: 0.955(ms). Execute id is 221. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- -------------------- 1 +DMDATA/data/rac/bak used time: 1.138(ms). Execute id is 222.
SP_ARCH_BAKSET_REMOVE_BATCH過程
批次刪除指定時間之前的歸檔備份集。使用該方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD新增將要刪除的備份集目錄,否則只刪除預設備份路徑下的備份集。
定義:
SP_ARCH_BAKSET_REMOVE_BATCH ( device_type varchar, end_time datetime )
引數說明:
device_type:裝置型別,disk或tape。指定NULL,則忽略儲存裝置的區分。
end_time:刪除備份集生成的結束時間,僅刪除end_time之前的備份集,必須指定。
舉例說明:
SQL> backup archivelog to arch_bak_for_del_batch backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch'; executed successfully used time: 00:00:36.170. Execute id is 2476. SQL> sf_bakset_backup_dir_add('disk','/dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch'); DMSQL executed successfully used time: 0.768(ms). Execute id is 2478. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ---------------------------------------------------------- 1 /dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch 2 /dm_home/dmdba/dmdbms/data/jydm/bak used time: 0.568(ms). Execute id is 2479. SQL> select * from v$backupset; 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 1259288472 -1 ARCH_BAK_FOR_DEL_BATCH /dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch 3 0 4 ARCHIVE -1 2020-05-30 14:29:32.000827 0 0 1 0 33554432 8236220 15220690 1 12 1 0 0 15220690 117507596 0 2 DISK 1259288472 -1 ARCH_BAK_FOR_DEL_BATCH /dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch 3 0 4 ARCHIVE -1 2020-05-30 14:29:32.000827 0 0 1 0 33554432 8236220 15220690 1 12 1 0 0 15220690 117507596 0 used time: 00:00:01.023. Execute id is 2480. SQL> sp_arch_bakset_remove_batch('disk',now()); DMSQL executed successfully used time: 178.477(ms). Execute id is 2485. SQL> select * from v$backupset; no rows used time: 00:00:01.009. Execute id is 2486. SQL> sf_bakset_backup_dir_remove_all(); DMSQL executed successfully used time: 0.826(ms). Execute id is 2492. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ----------------------------------- 1 /dm_home/dmdba/dmdbms/data/jydm/bak used time: 0.763(ms). Execute id is 2493.
4. 備份資訊檢視
DM7提供了一系列動態檢視供使用者檢視備份集相關資訊,在檢視之前應先使用SF_BAKSET_BACKUP_DIR_ADD新增備份集目錄,否則只顯示預設備份路徑下的備份集資訊,使用方法如下例所示:
SQL>SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK', '/home/dm_bak');
下面逐個介紹DM7提供的備份相關動態檢視。
V$BACKUPSET顯示備份集基本資訊。
SQL> desc v$backupset LINEID NAME TYPE$ NULLABLE ---------- ----------------- ------------- -------- 1 DEVICE_TYPE VARCHAR(10) Y 備份集儲存介質型別 2 BACKUP_ID INTEGER Y 備份ID 3 PARENT_ID INTEGER Y 並行備份的子備份集所屬備份的ID 4 BACKUP_NAME VARCHAR(512) Y 備份名 5 BACKUP_PATH VARCHAR(1024) Y 備份路徑 6 TYPE INTEGER Y 0:基備份,1:增量備份,2:表備份,3:歸檔備份 7 LEVEL INTEGER Y 是否離線備份。0:聯機備份,1:離線備份 8 RANGE# INTEGER Y 1:庫備份,2:表空間備份,3:表級備份,4:歸檔備份 9 OBJECT_NAME VARCHAR(1025) Y 物件名:資料庫名、表空間名或者表名 10 OBJECT_ID INTEGER Y 物件ID,表備份時無效 11 BASE_NAME VARCHAR(512) Y 基備份名,表備份時無效 12 BACKUP_TIME DATETIME(6) Y 備份時間 13 DESC# VARCHAR(1024) Y 備份描述資訊 14 ENCRYPT_TYPE INTEGER Y 加密型別 15 COMPRESS_LEVEL INTEGER Y 壓縮級別 16 WITHOUT_LOG INTEGER Y 聯機資料庫備份是否備份日誌,表備份時無效 17 USE_PWR INTEGER Y 增量備份過程中是否使用PWR最佳化,均不使用,保留僅為了相容 18 PKG_SIZE INTEGER Y 資料包大寫標誌,內部實現 19 BEGIN_LSN BIGINT Y 備份的起始LSN值,表備份時無效 20 END_LSN BIGINT Y 結束備份的LSN值,表備份時無效 21 BKP_NUM INTEGER Y 備份片個數,即備份集中.bak檔案個數 22 DBF_NUM INTEGER Y 備份集中包含的資料庫\表空間資料檔案個數,表備份時無效 23 PARALLEL_NUM INTEGER Y 並行備份的並行數,0或者1為非並行備份集 24 DDL_CLONE INTEGER Y DDL_CLONE庫備份標識,0不是,1是 25 MPP_FLAG INTEGER Y MPP庫備份標識,0不是,1是 26 MIN_TRX_START_LSN BIGINT Y 備份時活動事務最小的LSN 27 MIN_EXEC_VER INTEGER Y 備份集適用的最小執行碼的版本號,轉換為16進位制匹配版本號 28 CUMULATIVE INTEGER Y 增量備份時,是否為累積增量備份。1是,0否
下面以建立資料庫備份為例,檢視備份集的介質型別、備份路徑、備份型別等基本資訊:
SQL> backup database full to db_rac_bak_for_info backupset '/dm7/backup/db_rac_bak_for_info'; executed successfully used time: 00:00:01.298. Execute id is 224. SQL> sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak_for_info'); DMSQL executed successfully used time: 0.939(ms). Execute id is 225. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ------------------------------- 1 /dm7/backup/db_rac_bak_for_info 2 +DMDATA/data/rac/bak used time: 1.726(ms). Execute id is 226. SQL> select device_type,backup_path,type,range# from v$backupset; LINEID DEVICE_TYPE BACKUP_PATH TYPE RANGE# ---------- ----------- ------------------------------- ----------- ----------- 1 DISK /dm7/backup/db_rac_bak_for_info 0 1 used time: 00:00:01.023. Execute id is 227.
V$BACKUPSET_DBINFO顯示備份集的資料庫相關資訊。
SQL> desc v$backupset_dbinfo; LINEID NAME TYPE$ NULLABLE ---------- -------------- ------------- -------- 1 DEVICE_TYPE VARCHAR(10) Y 備份集儲存介質型別 2 BACKUP_ID INTEGER Y 備份ID 3 BACKUP_NAME VARCHAR(512) Y 備份名 4 BACKUP_PATH VARCHAR(1024) Y 備份路徑 5 EXTENT_SIZE INTEGER Y 資料檔案使用的簇大小 6 PAGE_SIZE INTEGER Y 頁大小 7 LOG_PAGE_SIZE INTEGER Y 日誌檔案頁大小 8 CASE_SENSITVE INTEGER Y 大小寫敏感標誌 9 DB_MAGIC INTEGER Y 資料庫的magic 10 PM_DB_MAGIC INTEGER Y 永久魔數(permenant_magic) 11 UNICODE_FLAG INTEGER Y unicode標誌 12 DB_VERSION INTEGER Y 資料庫版本 13 GLOBAL_VERSION VARCHAR(512) Y 資料庫全域性版本資訊 14 ENABLE_POLICY INTEGER Y 安全策略 15 ARCH_FLAG INTEGER Y 歸檔是否開啟的標誌 16 RAC_NODE INTEGER Y 高效能叢集的節點數目 17 PAGE_CHECK INTEGER Y 資料頁校驗配置 18 RLOG_ENCRYPT INTEGER Y 歸檔日誌是否加密 19 EX_CIPHER_NAME VARCHAR(512) Y 外部加密演算法名稱 20 EX_CIPHER_ID INTEGER Y 外部加密演算法名稱對應的ID 21 EX_HASH_NAME VARCHAR(512) Y 外部HASH演算法名稱 22 EX_HASH_ID INTEGER Y 外部HASH演算法名稱對應的ID 23 LENGTH_IN_CHAR INTEGER Y VARCHAR型別長度是否以字元為單位 24 USE_NEW_HASH INTEGER Y 是否使用改進的字元型別HASH演算法 25 BLANK_PAD_MODE INTEGER Y 資料庫空格填充模式
表還原時要求目標庫的特定建庫引數要與源庫一致,如頁大小、簇大小,透過檢視備份檔案的資料庫資訊可確定目標庫需要設定哪些建庫引數。下面以建立表備份為例,檢視備份集的頁大小、簇大小、大小寫是否敏感、UNICODE_FLAG等資料庫資訊:
SQL> backup table tab_01 to tab_01_bak backupset '/dm7/backup/tab_01_bak'; executed successfully used time: 00:00:01.119. Execute id is 236. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/tab_01_bak'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/tab_01_bak') ---------- --------------------------------------------------------- 1 1 used time: 2.096(ms). Execute id is 237. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ---------------------- 1 /dm7/backup/tab_01_bak 2 +DMDATA/data/rac/bak used time: 0.726(ms). Execute id is 238. SQL> select * from v$backupset; 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 1132430805 -1 TAB_01_BAK /dm7/backup/tab_01_bak 2 0 3 SYSDBA.TAB_01 -1 2020-05-30 14:56:59.000255 0 0 0 0 33554432 50908 51208 1 0 1 0 0 49398 117507596 0 used time: 00:00:01.023. Execute id is 239. SQL> select backup_path,page_size,extent_size,case_sensitive from v$backupset_dbinfo where backup_path='/dm7/backup/tab_01_bak'; LINEID BACKUP_PATH PAGE_SIZE EXTENT_SIZE CASE_SENSITIVE ---------- ---------------------- ----------- ----------- -------------- 1 /dm7/backup/tab_01_bak 8192 16 1 used time: 00:00:01.028. Execute id is 240.
V$BACKUPSET_DBF顯示備份集中資料檔案的相關資訊,表備份時無效。
SQL> desc v$backupset_dbf LINEID NAME TYPE$ NULLABLE ---------- -------------- ------------- -------- 1 DEVICE_TYPE VARCHAR(10) Y 備份集儲存介質型別 2 BACKUP_ID INTEGER Y 備份ID 3 BACKUPNAME VARCHAR(512) Y 備份名 4 BACKUPPATH VARCHAR(1024) Y 備份路徑 5 FILE_SEQ INTEGER Y 備份的資料檔案序號 6 TS_ID INTEGER Y 表空間ID 7 FILE_ID INTEGER Y 資料檔案ID 8 TS_STATE INTEGER Y 表空間狀態 9 TS_NAME VARCHAR(512) Y 表空間名 10 FILE_NAME VARCHAR(1024) Y 包含完整路徑的資料檔名 11 MIRROR_PATH VARCHAR(1024) Y 映象檔案路徑 12 FILE_LEN BIGINT Y 資料檔案佔用的位元組大小 13 MAX_LIMIT_SIZE INTEGER Y 檔案最大大小,以M為單位 14 AUTO_EXTEND INTEGER Y 是否支援自動擴充套件:1支援,0不支援 15 NEXT_SIZE INTEGER Y 檔案每次擴充套件大小,以M為單位 16 START_BKP_SEQ INTEGER Y 起始備份片編號 17 START_BKP_OFF BIGINT Y 起始備份片偏移 18 END_BKP_SEQ INTEGER Y 結束備份片編號 19 END_BKP_OFF BIGINT Y 結束備份片偏移
資料庫和表空間備份集中記錄了備份的資料檔案具體資訊,如果想了解備份集中包含了哪些資料檔案且這些資料檔案有什麼屬性,可透過查詢V$BACKUPSET_DBF實現。下面以表空間備份為例,檢視備份集中的資料檔案資訊。
SQL> create tablespace ts_for_dbf datafile 'ts_for_dbf_01.dbf' size 128; executed successfully used time: 00:00:01.594. Execute id is 247. SQL> alter tablespace ts_for_dbf add datafile 'ts_for_dbf_02.dbf' size 128; executed successfully used time: 236.359(ms). Execute id is 248. SQL> select * from v$datafile; LINEID GROUP_ID ID PATH CLIENT_PATH CREATE_TIME STATUS$ RW_STATUS LAST_CKPT_TIME MODIFY_TIME MODIFY_TRX TOTAL_SIZE FREE_SIZE FREE_PAGE_NO PAGES_READ PAGES_WRITE PAGE_SIZE READ_REQUEST WRITE_REQUEST AUTO_EXTEND MAX_SIZE NEXT_SIZE MIRROR_PATH ---------- ----------- ----------- ---------------------------------- ----------------- --------------------------- ----------- ----------- --------------------------- --------------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- ----------- ------------ ------------- ----------- ----------- ----------- ----------- 1 0 0 +DMDATA/data/rac/system.dbf system.dbf 2020-04-26 15:44:40 1 2 2020-05-30 15:06:01 2020-04-26 15:44:40 8326 16384 15760 1520 248 50 8192 248 50 1 16777215 0 NULL 2 1 0 +DMDATA/data/rac/roll.dbf roll.dbf 2020-04-26 15:44:40 1 2 2020-05-30 15:06:01 2020-04-26 15:44:40 8326 16384 13780 2624 1303 5209 8192 1303 5209 1 16777215 0 NULL 3 3 0 +DMDATA/data/rac/TEMP0.DBF TEMP0.DBF 2020-05-28 16:52:15 1 2 2020-05-30 15:06:01 2020-05-28 16:52:15 8326 1280 1270 32 0 0 8192 0 0 1 16777215 0 NULL 4 4 0 +DMDATA/data/rac/main.dbf main.dbf 2020-04-26 15:44:43 1 2 2020-05-30 15:06:01 2020-04-26 15:44:43 8326 16384 16369 64 4 10 8192 4 10 1 16777215 0 NULL 5 5 0 +DMDATA/data/rac/ts_for_dbf_01.dbf ts_for_dbf_01.dbf 2020-05-30 15:06:00 1 2 2020-05-30 15:06:01 2020-05-30 15:06:00 8326 16384 16376 32 0 1 8192 0 1 1 16777215 0 NULL 6 5 1 +DMDATA/data/rac/ts_for_dbf_02.dbf ts_for_dbf_02.dbf 2020-05-30 15:06:29 1 2 2020-05-30 15:06:01 2020-05-30 15:06:29 8326 16384 16383 32 0 0 8192 0 0 1 16777215 0 NULL 6 rows got used time: 5.737(ms). Execute id is 249. SQL> backup tablespace ts_for_dbf to ts_for_dbf_bak backupset '/dm7/backup/ts_for_dbf_bak'; executed successfully used time: 00:00:01.114. Execute id is 250. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/ts_for_dbf_bak'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/ts_for_dbf_bak') ---------- ------------------------------------------------------------- 1 1 used time: 1.928(ms). Execute id is 251. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- -------------------------- 1 /dm7/backup/ts_for_dbf_bak 2 +DMDATA/data/rac/bak used time: 0.848(ms). Execute id is 252. SQL> select * from v$backupset; 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 1346953844 -1 TS_FOR_DBF_BAK /dm7/backup/ts_for_dbf_bak 0 0 2 TS_FOR_DBF 5 2020-05-30 15:08:17.000425 0 0 0 0 33554432 51236 51238 1 2 1 0 0 49398 117507596 0 used time: 00:00:01.023. Execute id is 253. SQL> select file_seq,ts_id,file_id,ts_name,file_name from v$backupset_dbf; LINEID FILE_SEQ TS_ID FILE_ID TS_NAME FILE_NAME ---------- ----------- ----------- ----------- ---------- ---------------------------------- 1 1 5 0 TS_FOR_DBF +DMDATA/data/rac/ts_for_dbf_01.dbf 2 2 5 1 TS_FOR_DBF +DMDATA/data/rac/ts_for_dbf_02.dbf used time: 00:00:01.023. Execute id is 254.
V$BACKUPSET_ARCH顯示備份集中歸檔檔案的資訊,且僅歸檔備份才會有資料。
SQL> desc v$backupset_arch LINEID NAME TYPE$ NULLABLE ---------- -------------- ------------- -------- 1 DEVICE_TYPE VARCHAR(10) Y 備份集儲存介質型別 2 BACKUP_ID INTEGER Y 備份ID 3 BACKUPNAME VARCHAR(512) Y 備份名 4 BACKUPPATH VARCHAR(1024) Y 備份路徑 5 FILE_SEQ INTEGER Y 備份的資料檔案序號 6 FILE_NAME VARCHAR(1024) Y 歸檔檔案路徑 7 FILE_LEN BIGINT Y 歸檔檔案大小 8 BEGIN_LSN BIGINT Y 備份歸檔的起始LSN值 9 BEGIN_SEQNO BIGINT Y 起始備份歸檔序號 10 BEGIN_RPAG_OFF INTEGER Y 備份歸檔起始LSN對應歸檔頁內偏移 11 END_LSN BIGINT Y 結束備份歸檔的LSN值 12 CREATE_TIME DATETIME(6) Y 歸檔檔案的建立時間 13 CLOSE_TIME DATETIME(6) Y 歸檔檔案的關閉時間 14 START_BKP_SEQ INTEGER Y 起始備份片編號 15 START_BKP_OFF BIGINT Y 起始備份片偏移 16 END_BKP_SEQ INTEGER Y 結束備份片編號 17 END_BKP_OFF BIGINT Y 結束備份片偏移
備份集日誌資訊可以是聯機庫備份備份開始到備份結束這段時間伺服器產生的日誌,也可以是歸檔備份中備份的歸檔資訊。接下來以資料庫備份為例查詢備份集日誌資訊。
SQL> backup database to db_rac_bak backupset '/dm7/backup/db_rac_bak'; executed successfully used time: 00:00:01.451. Execute id is 259. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak') ---------- --------------------------------------------------------- 1 1 used time: 1.664(ms). Execute id is 260. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ---------------------- 1 /dm7/backup/db_rac_bak 2 +DMDATA/data/rac/bak used time: 0.775(ms). Execute id is 261. SQL> select * from v$backupset; 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 -274484992 -1 DB_RAC_BAK /dm7/backup/db_rac_bak 0 0 1 rac -1 2020-05-30 15:16:49.000122 0 0 0 0 33554432 51236 51244 2 6 1 0 0 49398 117507596 0 used time: 00:00:01.020. Execute id is 262. SQL> select backuppath,file_seq,file_name,begin_lsn,end_lsn from v$backupset_arch where backuppath='/dm7/backup/db_rac_bak'; LINEID BACKUPPATH FILE_SEQ FILE_NAME BEGIN_LSN END_LSN ---------- ---------------------- ----------- --------- -------------------- -------------------- 1 /dm7/backup/db_rac_bak 6 51241 51244 used time: 00:00:01.025. Execute id is 263.
V$BACKUPSET_BKP顯示備份集的備份片資訊。
SQL> desc v$backupset_bkp LINEID NAME TYPE$ NULLABLE ---------- ----------- ------------- -------- 1 DEVICE_TYPE VARCHAR(10) Y 備份集儲存介質型別 2 BACKUP_ID INTEGER Y 備份ID 3 BACKUPNAME VARCHAR(512) Y 備份名 4 BACKUPPATH VARCHAR(1024) Y 備份路徑 5 BKP_NTH INTEGER Y 備份片檔案編號 6 FILE_NAME VARCHAR(1024) Y 備份檔名 7 BKP_LEN BIGINT Y 備份片長度
以資料庫備份為例,檢視備份集中的備份片資訊。
SQL> backup database to db_rac_bak backupset '/dm7/backup/db_rac_bak'; executed successfully used time: 00:00:01.451. Execute id is 259. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak') ---------- --------------------------------------------------------- 1 1 used time: 1.664(ms). Execute id is 260. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ---------------------- 1 /dm7/backup/db_rac_bak 2 +DMDATA/data/rac/bak used time: 0.775(ms). Execute id is 261. SQL> select * from v$backupset; 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 -274484992 -1 DB_RAC_BAK /dm7/backup/db_rac_bak 0 0 1 rac -1 2020-05-30 15:16:49.000122 0 0 0 0 33554432 51236 51244 2 6 1 0 0 49398 117507596 0 used time: 00:00:01.020. Execute id is 262. SQL> select backuppath,bkp_nth,file_name,bkp_len from v$backupset_bkp where backuppath='/dm7/backup/db_rac_bak'; LINEID BACKUPPATH BKP_NTH FILE_NAME BKP_LEN ---------- ---------------------- ----------- ---------------- -------------------- 1 /dm7/backup/db_rac_bak 0 db_rac_bak.bak 26688000 2 /dm7/backup/db_rac_bak 1 db_rac_bak_1.bak 6144 used time: 00:00:01.025. Execute id is 265.
V$BACKUPSET_SEARCH_DIRS顯示備份集搜尋目錄。
SQL> desc v$backupset_search_dirs LINEID NAME TYPE$ NULLABLE ---------- ---- ------------- -------- 1 DIR VARCHAR(1024) Y 備份集搜尋目錄
查詢V$BACKUPSET_SEARCH_DIRS顯示當前會話已新增的備份目錄,即備份集搜尋目錄。若使用者沒有新增備份目錄,那麼僅顯示預設的備份目錄。
SQL> select sf_bakset_backup_dir_remove_all(); LINEID SF_BAKSET_BACKUP_DIR_REMOVE_ALL() ---------- --------------------------------- 1 1 used time: 0.882(ms). Execute id is 267. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- -------------------- 1 +DMDATA/data/rac/bak used time: 0.965(ms). Execute id is 268.
如果新增備份目錄,查詢結果包括預設備份目錄和使用者新增的備份目錄。
SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak') ---------- --------------------------------------------------------- 1 1 used time: 0.894(ms). Execute id is 269. SQL> select * from v$backupset_search_dirs; LINEID DIR ---------- ---------------------- 1 /dm7/backup/db_rac_bak 2 +DMDATA/data/rac/bak used time: 0.714(ms). Execute id is 270.
V$BACKUPSET_TABLE顯示錶備份集中備份表資訊,僅表備份有效。
SQL> desc v$backupset_table LINEID NAME TYPE$ NULLABLE ---------- ------------ ------------- -------- 1 DEVICE_TYPE VARCHAR(10) Y 備份集儲存介質型別 2 BACKUP_ID INTEGER Y 備份ID 3 BACKUPNAME VARCHAR(512) Y 備份名 4 BACKUPPATH VARCHAR(1024) Y 備份路徑 5 SCHEMANAME VARCHAR(512) Y 備份表所屬的模式名 6 USERNAME VARCHAR(512) Y 執行表備份的使用者名稱 7 TSNAME VARCHAR(512) Y 備份表儲存的表空間名 8 TABLENAME VARCHAR(512) Y 備份表名 9 TABLETYPE INTEGER Y 表型別 10 INIT_SQL VARCHAR(4096) Y 完整建表語句,忽略引用約束(語句可能會被截斷) 11 DCONS_SQL VARCHAR(4096) Y 備份表中被禁用約束的建立語句(語句可能會被截斷,DMRMAN可檢視完整語句) 12 DIDX_SQL VARCHAR(4096) Y 備份表中無效二級索引的建立語句(語句可能會被截斷,DMRMAN可檢視完整語句) 13 BIDX_NUM INTEGER Y 備份集中備份的二級索引個數 14 META_VERSION INTEGER Y 當前表備份的元資訊的版本號
下面建立表備份並檢視備份中備份名、備份路徑、表名等資訊。
SQL> create table tab_for_info(c1 int); executed successfully used time: 12.459(ms). Execute id is 277. SQL> insert into tab_for_info values(1); affect rows 1 used time: 1.779(ms). Execute id is 278. SQL> commit; executed successfully used time: 1.775(ms). Execute id is 279. SQL> backup table tab_for_info to tab_for_info_bak backupset '/dm7/backup/tab_for_info_bak'; executed successfully used time: 00:00:01.133. Execute id is 280. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/tab_for_info_bak'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/tab_for_info_bak') ---------- --------------------------------------------------------------- 1 1 used time: 1.250(ms). Execute id is 281. SQL> select * from v$backupset; 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 378752781 -1 TAB_FOR_INFO_BAK /dm7/backup/tab_for_info_bak 2 0 3 SYSDBA.TAB_FOR_INFO -1 2020-05-30 15:31:29.000827 0 0 0 0 33554432 51236 51284 1 0 1 0 0 49398 117507596 0 used time: 00:00:01.019. Execute id is 282. SQL> select backupname,tablename from v$backupset_table; LINEID BACKUPNAME TABLENAME ---------- ---------------- ------------ 1 TAB_FOR_INFO_BAK TAB_FOR_INFO used time: 00:00:01.018. Execute id is 283.
V$BACKUPSET_SUBS顯示並行備份中生成的子備份集資訊
SQL> desc v$backupset_subs LINEID NAME TYPE$ NULLABLE ---------- ----------- ------------- -------- 1 DEVICE_TYPE VARCHAR(10) Y 備份集儲存介質型別 2 BACKUPNAME VARCHAR(512) Y 備份名 3 BACKUP_ID INTEGER Y 備份ID 4 PARENT_ID INTEGER Y 子備份集所屬主備份集ID 5 BACKUPPATH VARCHAR(1024) Y 各備份集絕對路徑 6 BKP_NUM INTEGER Y 各備份集中備份片檔案個數,可能為0 7 DBF_NUM INTEGER Y 各備份集中備份資料檔案個數,可能為0
資料庫和表空間支援並行備份,備份後會在主備份集中生成多個子備份集,查詢檢視V$BACKUPSET_SUBS可獲取子備份集中包含的備份片檔案個數及備份資料檔案個數等資訊。以建立資料庫並行備份為例,檢視子備份集的相關資訊。
SQL> backup database full to db_rac_bak backupset '/dm7/backup/db_rac_bak' parallel 4; executed successfully used time: 00:00:05.766. Execute id is 304. SQL> select sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak'); LINEID SF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak') ---------- --------------------------------------------------------- 1 1 used time: 0.918(ms). Execute id is 305. SQL> select backuppath,bkp_num,dbf_num from v$backupset_subs; LINEID BACKUPPATH BKP_NUM DBF_NUM ---------- ----------------------------------- ----------- ----------- 1 /dm7/backup/db_rac_bak/db_rac_bak_2 1 1 2 /dm7/backup/db_rac_bak/db_rac_bak_3 1 1 3 /dm7/backup/db_rac_bak/db_rac_bak_0 1 2 4 /dm7/backup/db_rac_bak/db_rac_bak_1 1 1 used time: 13.850(ms). Execute id is 306.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2709391/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7使用Disql執行表還原SQL
- DM7使用Disql執行表空間還原SQL
- DM7使用DMRMAN工具刪除備份集
- DM7使用DMRMAN工具檢視備份集
- DM7使用DMRMAN執行歸檔備份
- DM7使用DMRMAN工具匯入備份集
- DM7使用Disql執行表還原的複雜用法SQL
- DM7使用DMRAMN執行備份集恢復
- DM7使用離線工具DMRMAN執行資料庫備份資料庫
- DM7使用聯機執行SQL語句進行備份還原SQL
- DM7使用DMRMAN工具執行備份集對映檔案匯出
- DM7使用DMRMAN工具執行加密備份與設定跟蹤日誌加密
- Oracle使用者管理熱備份原理Oracle
- DM7聯機執行SQL語句進行表備份SQL
- ManagerDB 備份檔案管理與異地備份
- Oracle資料庫備份與恢復之三:OS備份/使用者管理的備份與恢復Oracle資料庫
- DM7聯機執行SQL語句進行歸檔備份SQL
- 【管理篇備份恢復】備份恢復基礎
- 2 Day DBA-管理方案物件-執行備份和恢復-管理備份-顯示管理當前備份頁面物件
- Backup And Recovery User's Guide-備份RMAN備份-使用RMAN備份備份集GUIIDE
- DM7聯機執行SQL語句進行表空間備份SQL
- MONGODB使用MONGDODUMP備份來搭建備份集MongoDB
- 2 Day DBA-管理方案物件-執行備份和恢復-備份資料庫-使用Oracle建議的備份策略物件資料庫Oracle
- 2 Day DBA-管理方案物件-執行備份和恢復-管理備份-練習:刪除失效的備份物件
- 2 Day DBA-管理方案物件-執行備份和恢復-管理備份-練習:交叉檢驗所有備份物件
- SQL資料庫備份管理SQL資料庫
- 達夢DIsqlSQL
- 使用者管理備份和恢復手冊總結
- 【RMAN】使用增量備份更新資料庫備份映象資料庫
- 2 Day DBA-管理方案物件-執行備份和恢復-備份資料庫-備份標籤物件資料庫
- 使用者管理的熱備份方式複製資料庫資料庫
- NOARCHIVELOG 模式下,使用者管理的 備份和恢復Hive模式
- 2 Day DBA-管理方案物件-執行備份和恢復-備份資料庫-驗證備份並測試你的備份策略物件資料庫
- MySQL之許可權管理和備份MySql
- MySQL日誌管理,備份和恢復MySql
- SVN程式碼管理 備份與還原
- MySQL 日誌管理、備份與恢復MySql
- 使用Xtrabackup遠端備份MysqlMySql