共計 4929 個字符,預(yù)計需要花費 13 分鐘才能閱讀完成。
這篇文章主要介紹“如何執(zhí)行 SQL 語句進(jìn)行表備份”,在日常操作中,相信很多人在如何執(zhí)行 SQL 語句進(jìn)行表備份問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何執(zhí)行 SQL 語句進(jìn)行表備份”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學(xué)習(xí)吧!
與備份數(shù)據(jù)庫與表空間不同,備份表不需要服務(wù)器配置歸檔,DIsql 中輸入以下即可備份用戶表:
SQL backup table t1 backupset tab_t1_bak_01
executed successfully
used time: 00:00:14.215. Execute id is 77.
SQL select * from v$backupset where backup_path like +DMDATA/data/rac/bak/tab%
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 -1366932633 -1 TAB_T1_20200529_144738_000092 +DMDATA/data/rac/bak/tab_t1_bak_01 2 0 3 SYSDBA.T1 -1 2020-05-29 14:47:45.000864 0 0 0 0 33554432 50908 51025 1 0 1 0 0 49398 117507596 0
used time: 00:00:01.064. Execute id is 79.
備份集“tab_t1_bak_01”會生成到默認(rèn)的備份路徑下。如要設(shè)置其他備份選項需參考下文的備份表語法。
語法如下:
BACKUP TABLE 表名
[TO 備份名]
BACKUPSET [ 備份集路徑] [DEVICE TYPE 介質(zhì)類型 [PARMS 介質(zhì)參數(shù)]]
[BACKUPINFO 備份集描述]
[MAXPIECESIZE 備份片限制大小]
[IDENTIFIED BY 加密密碼 [WITH ENCRYPTION][ENCRYPT WITH 加密算法]]
[COMPRESSED [LEVEL 壓縮級別]]
[TRACE FILE ] [TRACE LEVEL ]
TABLE:指定備份的表,只能備份用戶表。
TO:指定生成備份名稱。若未指定,系統(tǒng)隨機(jī)生成,默認(rèn)備份名格式為:DB_備份類型_表名_備份時間。其中,備份時間為開始備份的系統(tǒng)時間。
BACKUPSET:指定當(dāng)前備份集生成路徑,若指定為相對路徑,則在默認(rèn)備份路徑中生成備份集。若不指定具體備份集路徑,則在默認(rèn)備份路徑下以約定規(guī)則生成默認(rèn)的表備份集目錄。表備份默認(rèn)備份集目錄名生成規(guī)則:TAB_表名_BTREE_時間,如
TAB_T1_BTREE_20160518_143057_123456。表明該備份集為 2016 年 5 月 18 日 14 時 30 分 57 秒 123456 毫秒時生成的表名為 T1 的表備份集。若表名超長,使上述完整名稱長度大于 128 個字節(jié),則去掉表名字段,調(diào)整為 TAB_BTREE_時間。
DEVICE TYPE:指存儲備份集的介質(zhì)類型,表備份暫時只支持 DISK,表示存儲備份集到磁盤。
PARMS:只對介質(zhì)類型為 TAPE 時有效。
BACKUPINFO:備份的描述信息。最大不超過 256 個字節(jié)。
MAXPIECESIZE:最大備份片文件大小上限,以 M 為單位,最小 128M,32 位系統(tǒng)最大 2G,64 位系統(tǒng)最大 128G。
IDENTIFIED BY:指定備份時的加密密碼。密碼應(yīng)用雙引號括起來,這樣避免一些特殊字符通不過語法檢測。密碼的設(shè)置規(guī)則遵行 ini 參數(shù) pwd_policy 指定的口令策略。
WITH ENCRYPTION:指定加密類型,0 表示不加密,不對備份文件進(jìn)行加密處理;1 表示簡單加密,對備份文件設(shè)置口令,但文件內(nèi)容仍以明文存儲;2 表示完全數(shù)據(jù)加密,對備份文件進(jìn)行完全的加密,備份文件以密文方式存儲。
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。
TRACE FILE:指定生成的 TRACE 文件。啟用 TRACE,但不指定 TRACE FILE 時,默認(rèn)在 DM 數(shù)據(jù)庫系統(tǒng)的 log 目錄下生成 DM_SBTTRACE_年月.LOG 文件;若使用相對路徑,則生成在執(zhí)行碼同級目錄下。若用戶指定,則指定的文件不能為已經(jīng)存在的文件,否則報錯;也不可以為 ASM 文件。
TRACE LEVEL:有效值 1、2,默認(rèn)為 1 表示不啟用 TRACE,此時若指定了 TRACE FILE,會生成 TRACE 文件,但不寫入 TRACE 信息;為 2 啟用 TRACE 并寫入 TRACE 相關(guān)內(nèi)容。
使用說明:
1. 支持對用戶的非分區(qū)行存儲表和堆表進(jìn)行備份。其中,系統(tǒng)表、臨時表、物化視圖表、物化視圖附屬表和日志表、特定模式(DBG_PKG/INFORMATION_SCHEMA/INFO_SCHEM/SYSREP/SYSGEO/SYSJOB/SYSCPT/SYS)下的表不支持備份。表列類型為對象類型的表不支持表備份。表備份不備份表上的注釋,default 表達(dá)式中函數(shù)定義,所以還原時需用戶自行確認(rèn)。
2. 當(dāng)備份數(shù)據(jù)超過限制大小時,會生成新的備份文件,新的備份文件名是初始文件名后加文件編號。
3. 表備份時,其所屬表空間必須處于聯(lián)機(jī)狀態(tài)。
4. 目前表備份不支持備份到 TAPE 介質(zhì)上。
2. 設(shè)置備份選項
表備份常用的備份選項有設(shè)置備份名、設(shè)置備份集路徑、指定介質(zhì)參數(shù)、添加備份描述等,設(shè)置方式同數(shù)據(jù)庫備份相同。
3. 備份表
表備份拷貝指定表所使用的所有數(shù)據(jù)頁到備份集中,并記錄各個數(shù)據(jù)頁之間的邏輯關(guān)系用來恢復(fù)表數(shù)據(jù)結(jié)構(gòu)。表備份均為聯(lián)機(jī)完全備份,不需要備份歸檔日志,不存在增量備份之說。當(dāng)數(shù)據(jù)庫中某張表比較重要而又沒必要備份整個數(shù)據(jù)庫或表空間時就可以選擇表備份。完整的備份表步驟如下:
1) 保證數(shù)據(jù)庫處于 OPEN 狀態(tài)。
2) 創(chuàng)建待備份的表 TAB_01:
SQL create table tab_01(c1 int);
executed successfully
used time: 32.117(ms). Execute id is 80.
3) DIsql 中輸入備份表語句,簡單的備份語句如下:
SQL backup table tab_01 to tab_tab_01_backup_20200529 backupset table_tab_01_backup_20200529
executed successfully
used time: 00:00:13.981. Execute id is 81.
上面的語句將在默認(rèn)備份目錄 +DMDATA/data/rac/bak(由 BAK_PATH 參數(shù)所指定)中生成備份集
SQL select * from v$backupset where backup_path= +DMDATA/data/rac/bak/table_tab_01_backup_20200529
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 2025284018 -1 TAB_TAB_01_BACKUP_20200529 +DMDATA/data/rac/bak/table_tab_01_backup_20200529 2 0 3 SYSDBA.TAB_01 -1 2020-05-29 15:08:24.000485 0 0 0 0 33554432 50908 51055 1 0 1 0 0 49398 117507596 0
used time: 00:00:01.063. Execute id is 82.
到此,關(guān)于“如何執(zhí)行 SQL 語句進(jìn)行表備份”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>