DM7聯機執行SQL語句進行表備份
聯機執行SQL語句進行表備份
下面將介紹使用DIsql完成表備份及實施一些備份策略,如限制備份集大小、加密備份等。主要內容包括:
1. 概述
2. 設定備份選項
3. 備份表
與備份資料庫與表空間不同,備份表不需要伺服器配置歸檔,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”會生成到預設的備份路徑下。如要設定其他備份選項需參考下文的備份表語法。
語法如下:
BACKUP TABLE < 表名> [TO < 備份名>] BACKUPSET ['< 備份集路徑>'] [DEVICE TYPE < 介質型別> [PARMS '< 介質引數>']] [BACKUPINFO '< 備份集描述>'] [MAXPIECESIZE < 備份片限制大小>] [IDENTIFIED BY < 加密密碼>[WITH ENCRYPTION][ENCRYPT WITH < 加密演算法>]] [COMPRESSED [LEVEL < 壓縮級別>]] [TRACE FILE ''] [TRACE LEVEL ]
TABLE:指定備份的表,只能備份使用者表。
TO:指定生成備份名稱。若未指定,系統隨機生成,預設備份名格式為:DB_備份型別_表名_備份時間。其中,備份時間為開始備份的系統時間。
BACKUPSET:指定當前備份集生成路徑,若指定為相對路徑,則在預設備份路徑中生成備份集。若不指定具體備份集路徑,則在預設備份路徑下以約定規則生成預設的表備份集目錄。表備份預設備份集目錄名生成規則:TAB_表名_BTREE_時間,如
TAB_T1_BTREE_20160518_143057_123456。表明該備份集為2016年5月18日14時30分57秒123456毫秒時生成的表名為T1的表備份集。若表名超長,使上述完整名稱長度大於128個位元組,則去掉表名欄位,調整為TAB_BTREE_時間。
DEVICE TYPE:指儲存備份集的介質型別,表備份暫時只支援DISK,表示儲存備份集到磁碟。
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。
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相關內容。
使用說明:
1. 支援對使用者的非分割槽行儲存表和堆表進行備份。其中,系統表、臨時表、物化檢視表、物化檢視附屬表和日誌表、特定模式(DBG_PKG/INFORMATION_SCHEMA/INFO_SCHEM/SYSREP/SYSGEO/SYSJOB/SYSCPT/SYS)下的表不支援備份。表列型別為物件型別的表不支援表備份。表備份不備份表上的註釋,default表示式中函式定義,所以還原時需使用者自行確認。
2. 當備份資料超過限制大小時,會生成新的備份檔案,新的備份檔名是初始檔名後加檔案編號。
3. 表備份時,其所屬表空間必須處於聯機狀態。
4. 目前表備份不支援備份到TAPE介質上。
2. 設定備份選項
表備份常用的備份選項有設定備份名、設定備份集路徑、指定介質引數、新增備份描述等,設定方式同資料庫備份相同。
3. 備份表
表備份複製指定表所使用的所有資料頁到備份集中,並記錄各個資料頁之間的邏輯關係用來恢復表資料結構。表備份均為聯機完全備份,不需要備份歸檔日誌,不存在增量備份之說。當資料庫中某張表比較重要而又沒必要備份整個資料庫或表空間時就可以選擇表備份。完整的備份表步驟如下:
1) 保證資料庫處於OPEN狀態。
2) 建立待備份的表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.
上面的語句將在預設備份目錄+DMDATA/data/rac/bak(由BAK_PATH引數所指定)中生成備份集
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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2709372/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7聯機執行SQL語句進行表空間備份SQL
- DM7聯機執行SQL語句進行歸檔備份SQL
- DM7使用聯機執行SQL語句進行備份還原SQL
- DM聯機執行SQL語句進行資料庫備份SQL資料庫
- DM7聯機執行SQL語句進行加密備份與設定跟蹤日誌SQL加密
- SQL語句執行順序SQL
- sql語句如何執行的SQL
- DM7使用DMRMAN執行歸檔備份
- DM7使用DMRAMN執行備份集恢復
- sql語句執行緩慢分析SQL
- mysql的sql語句執行流程MySql
- SQL 語句的執行順序SQL
- 後臺執行SQL語句(oracle)SQLOracle
- mysql執行sql語句過程MySql
- Mybatis 動態執行SQL語句MyBatisSQL
- Laravel 獲取執行的sql語句LaravelSQL
- MySQL cron定時執行SQL語句MySql
- java連線oracle執行sql語句JavaOracleSQL
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- SQL Server 查詢歷史執行的SQL語句SQLServer
- [20181119]sql語句執行緩慢分析.txtSQL
- SQL語句各子句的執行順序SQL
- mysql sql語句執行超時設定MySql
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- Mybatis原始碼解析之執行SQL語句MyBatis原始碼SQL
- 一條sql語句的執行過程SQL
- 使用聯機SQL執行表空間還原(一)SQL
- 根據emp,dept,salgrade表進行的sql查詢語句(1)SQL
- DM7使用離線工具DMRMAN執行資料庫備份資料庫
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- GaussDB SQL查詢語句執行過程解析SQL
- SQL 查詢語句的執行順序解析SQL
- 一條update SQL語句是如何執行的SQL
- python關於pymysql 執行sql語句in的用法PythonMySql
- 一條SQL更新語句是如何執行的SQL
- Hive SQL語句的正確執行順序HiveSQL
- 一條SQL更新語句是如何執行的?SQL
- mySQL 執行語句執行順序MySql