LOGICAL BACKUP 和 LOGICAL RESTORE 的指令語法
授權
執行 LOGICAL_BACKUP 儲存程序需要下列所有權限和許可權:
-
SYSPROC.LOGICAL_BACKUP 程序 (預設「未」授與 PUBLIC)
-
下列其中一項來存取表格資料:
- 資料庫或綱目的 DATAACCESS 權限
- 綱目上的 SELECTIN 專用權
- 綱目中所有表格的 SELECT 專用權
-
如果綱目中的一或多個表格已啟用「列和欄存取 (RCAC)」控制項
- 綱目上 RCAC 受保護資料的邏輯備份及還原專用權
- 附註: 如同任何專用權,使用者無法將許可權授與相同的使用者。 不過,可以將專用權授與使用者所屬的群組或角色。
- E.gbluadmin 使用者無法將該專用權授與 bluadmin 使用者,但可以授與 bluadmin 群組。
- 綱目上 RCAC 受保護資料的邏輯備份及還原專用權
-
下列程序的 EXECUTE 許可權:
- SYSPROC.ADMIN_GET_DEPTREE
- SYSPROC.WLM_SET_CLIENT_INFO
- SYSPROC.MONITOR_UTIL
- SYSPROC.ADMIN_SET_MAINT_MODE
執行 LOGICAL_RESTORE 儲存程序需要下列所有權限:
-
SYSPROC.LOGICAL_RESTORE 程序 (預設「未」授與 PUBLIC)
-
如果是綱目還原及 drop-existing 選項
- 綱目上的 SCHEMAADM 權限
-
在綱目中捨棄/建立表格的下列其中一項
- 綱目上的 SCHEMAADM 權限
- 綱目上的 DROPIN 及 CREATEIN 權限
-
移入表格資料的 INSERTIN 權限
-
如果還原增量/差異備份映像檔
- 綱目上的 ALTERIN、DELETEIN、SELECTIN 權限
-
如果綱目中的一或多個表格已啟用「列和欄存取 (RCAC)」控制項
- 綱目上 RCAC 受保護資料的邏輯備份及還原專用權
- 附註: 如同任何專用權,使用者無法將許可權授與相同的使用者。 不過,可以將專用權授與使用者所屬的群組或角色。
- E.gbluadmin 使用者無法將該專用權授與 bluadmin 使用者,但可以授與 bluadmin 群組
- 綱目上 RCAC 受保護資料的邏輯備份及還原專用權
-
下列程序的 EXECUTE 許可權:
- SYSPROC.ADMIN_DROP_SCHEMA
- SYSPROC.WLM_SET_CLIENT_INFO
- SYSPROC.MONITOR_UTIL
- SYSPROC.ADMIN_SET_MAINT_MODE
需要下列所有權限才能執行 LOGICAL_BACKUP_DETAILS 儲存程序: SYSPROC.LOGICAL_BACKUP_DETAILS 程序 (預設「未」授與 PUBLIC)
使用 -path 選項建立的備份映像檔將由連接的使用者 (頂端資料夾、所有子資料夾及所有檔案) 所擁有。
必要連線
隱含或明確
LOGICAL_BACKUP 的指令語法
透過使用 -schema 選項將綱目名稱傳遞至 LOGICAL_BACKUP 儲存程序,可以執行綱目層次備份。 發生錯誤時,將移除局部備份映像檔。 成功時,會傳回時間戳記作為回覆 sqlcode 的一部分。 此時間戳記將用作標籤以參照備份映像檔,例如還原映像檔。 邏輯備份可確保在同時啟動數個備份時,時間戳記是唯一的。
在雲端環境中使用此指令時,請勿使用 -path 或 -tsm 選項,且不要指定任何 -errorlogdir 路徑。 您無法在管理實例的伺服器上檢視本端檔案。
綱目備份下不同表格類型的處理:
-
外部表格-將擷取及還原外部表格的定義,但不會還原內容。
-
具體化查詢表格-將擷取及還原 MQT 的定義,但不擷取內容。 還原之後,使用者將需要重新整理 MQT。
-
暫存表格-綱目備份不會擷取這些表格。
-
任何未依直欄組織的永久表格都會導致啟用橫列修改追蹤之綱目的綱目備份失敗 (因為這些表格不會啟用橫列修改追蹤)。
LOGICAL_RESTORE 的指令語法
透過使用 -schema 選項將綱目名稱傳遞至 LOGICAL_RESTORE 儲存程序,可以執行綱目層次還原。 若要還原單一或多個表格,也可以分別使用 -table 或 -tablefile 選項。
LOGICAL_BACKUP_DETAILS 的指令語法
儲存程序會傳回指定路徑/媒體上可用的時間戳記標籤清單。 依預設,EXECUTE 許可權會授與 PUBLIC。
指令參數
-type FULL|INC|DEL
-
- FULL-完整備份。
-
- INC-累積增量備份。
-
- DEL-差異增量備份 (也稱為差異備份)。
-schema SCHEMANAME
- 要備份的綱目。 多個綱目名稱必須以空格區隔。
-path <path>
- 備份映像檔的目標目錄。 與 -tsm、-s3 及 -cos 選項互斥。 多個路徑字串必須以空格區隔。 必須指向不同的裝載點。 備份目錄及檔案是由呼叫邏輯備份的使用者所擁有。 受限於 extbl_strict_io 和 extbl_location 配置參數。
-tsm
- 備份映像檔要儲存在 IBM Spectrum Protect 伺服器中。 與 path 及 s3 選項互斥。
-s3
- 備份映像檔將儲存在 S3 雲端中。 與 -path、-tsm 及 -cos 選項互斥。-bucket_url、access-key、-secret-key 以及 -default-region 或 -endpoint 選項是必要的。 如果同時指定 -default-region 和 -endpoint,則 -endpoint 中的地區必須符合 -default-region 中的地區。 資料直接傳送至雲端,不需要任何本端暫時儲存體。
-cos
- 備份映像檔將儲存在 IBM COS 中。 與 -path、-tsm 及 -s3 選項互斥。-bucket_url -access-key、-secret-key 及 -endpoint 選項是必要的。 若已指定,則會忽略 -default-region。 資料直接傳送至雲端,不需要任何本端暫時儲存體。
-errorlogdir <path>
- 將儲存診斷日誌檔的路徑 (在伺服器上)。 預設值為 sqllib/tmp/bnr/logs,遵循 extbl_strict_io 及 extbl_location 配置參數。
雲端用戶端不應該設定此參數,因為它們無法存取伺服器上的檔案。
-keeplogs {on_error | summary_in_backup | all_in_errorlogdir}
-
失敗時,會保留所有診斷日誌檔。 此選項指出在順利完成作業之後如何處理診斷日誌檔。-keeplogs on_error-移除所有診斷日誌檔。summary_in_backup-將主要追蹤日誌儲存至備份映像檔 (變成備份映像檔的一部分)。 s3、cos 及 tsm 的預設值。all_in_errorlogir-保留 errorlogidr 中的所有診斷日誌檔。 path 的預設值。
-sessions <N>(optional)
-
大量產生 N 個執行緒/連線,以並行備份個別表格。 預設值為 4。 若為多綱目備份,則會針對每一個綱目大量產生 N 個執行緒。
-compress NO|GZIP|LZ4 (optional)
-
備份的壓縮設定。 依預設,它會設為 LZ4。
-format TEXT|BINARY (optional)**
-
備份檔的格式。 依預設,它會設為 BINARY。
-media-connection-timeout <milliseconds>(optional)
-
在 TSM、S3 或 IBM COS 連線逾時之前等待的時間上限 (毫秒)。
-bucket-url <bucket-url>
-
雲端儲存區的 URL。
-access-key <access-key>
-
儲存區的存取金鑰 ID。
-secret-key <secret-key>
-
儲存區的秘密存取金鑰。
-default-region <region>
-
儲存區的預設區域。
-endpoint
-
連接至 Amazon S3 或 IBM COS 的閘道端點。 如果同時指定 -default-region 和 -endpoint,則 -endpoint 中的地區必須符合 -default-region 中的地區。
-multipart-size-mb <multipart size mb>
-
-multipart-size-mb 的值 (MB)。 預設值為 105。
-delete-backup
-
永久移除備份映像檔。 需要提供路徑/媒體及時間戳記。 不能與 -type 或 -schema 一起指定
-table (optional)
-
要還原的表格。 表格不得存在,或必須指定 -drop-existing 選項。
-target-schema name (optional)
-
使用不同的綱目名稱還原備份映像檔,而不捨棄原始綱目。-drop-existing 會影響新的綱目名稱。
-drop-existing (optional)
-
還原之前,請先捨棄現有的綱目及其表格/非表格物件。 如果與 -table 選項一起使用,則只會捨棄受影響的表格。
-keep-rcac
-
還原已啟用 RCAC 的表格、遮罩及許可權,而不捨棄它們。
-replace-rcac
-
捨棄並重建 RCAC 啟用的表格、遮罩及許可權,以還原它們。
-enable-row-mod-tracking (optional)
-
還原從未啟用列修改追蹤的綱目中取得的綱目備份映像檔,並啟用目標綱目以進行列修改追蹤。
image-check HASH, SIZE, NAME, NONE, ONLY (optional)
-
對於備份: 在備份作業之後進行後處理綱目備份映像檔,以在綱目層次還原之前啟用映像檔完整性驗證。 可以同時選取這兩個值。 依預設,兩者都未開啟。 一律會收集用來驗證 NAME 選項 (備份映像檔中所有檔案的名稱清單) 的資訊。
-
若為還原: 在還原之前驗證綱目備份映像檔。 依預設,會啟用備份期間指定的所有選項 (包括隱含的 NAME)。 只會驗證指定的選項。 將無聲自動忽略備份期間未收集之選項的驗證。
- HASH-計算並記錄備份映像檔中所有檔案的雜湊值。 僅容許用於
-path
備份。 - SIZE-備份映像檔中所有檔案的記錄大小。
- NAME-識別遺漏或非預期的檔名。
- NONE-不執行任何完整性檢查。
- 僅-僅執行完整性檢查而不呼叫還原 (驗證備份映像檔)。
-unlockschema (optional)
- 在還原失敗之後解除鎖定綱目。 未完成先前失敗的作業。
-cleanup-failed-restore (optional)
- 在還原失敗之後清除。 捨棄所有物件及綱目本身。 如果無法捨棄綱目,則仍會解除鎖定。
-backup-migrate (optional)
- 對尚未啟用橫列修改追蹤的綱目進行邏輯備份,以協助即將進行的還原 -enable-row-modification-tracking 如果來源表格無法作為橫列修改追蹤 (例如依橫列組織),則備份會失敗。 僅適用於 -type FULL 作業。
新建 sqlcode
在 LOGICAL_BACKUP () 成功時,將會傳回 SQL1796I。 E.g.:
SQL1796I Logical backup utility has completed successfully, timestamp for the
backup image is "20220817203500". SQLSTATE=01541
如果 LOGICAL_RESTORE () 成功,將會傳回 sqlcode 0。
$ db2 "call sysproc.logical_restore('-type frh -schema rmt -timestamp 20220902105215 -s3 ...
Return Status = 0
On success of LOGICAL_BACKUP_DETAILS() table with list timestamps will be returned:
$ db2 call SYSPROC.LOGICAL_BACKUP_DETAILS('-path ...')
Result set 1
--------------
TIMESTAMP
--------------------
20220805182316
1 record(s) selected.
Return Status = 0
當 LOGICAL_BACKUP ()、LOGICAL_RESTORE () 或 LOGICAL_BACKUP_DETAILS () 失敗時,將會傳回 SQL1797。 E.g.:
SQL1797N The "SYSPROC.LOGICAL_RESTORE" utility has failed with error "Valid path required". SQLSTATE=5UA0Q