在設備管理控制台中,為 Oracle 資料庫建立備份和災難復原工作流程

備份和災難復原工作流程是在應用程式管理工具中定義。備份和災難復原工作流程會使用備份正式環境資料,做為生成資料的來源資料。

  • 直接掛接:如果應用程式資料不需經過清理,即可掛接並提供給使用者,則可使用直接掛接。應用程式資料可以透過標準掛接方式掛接,僅做為資料、虛擬應用程式,或同時做為資料和虛擬應用程式。直接掛接功能可讓您幾乎立即使用備份資料,而不必實際移動資料。
  • LiveClones:如果應用程式含有機密資料,必須先清除資料,才能掛接並提供給使用者,這時通常會在備份和災難復原工作流程中使用 LiveClone。應用程式資料可以透過標準掛接方式掛接為資料或虛擬應用程式,也可以同時掛接為資料和虛擬應用程式。LiveClone、拖曳和掛接作業可依排程或隨選自動更新。

將 Oracle 資料直接掛接為虛擬應用程式

如果應用程式備份不含機密資料,請使用直接掛接備份和災難復原工作流程。這樣一來,備份和災難復原工作流程就能將應用程式資料掛接為虛擬應用程式,或僅掛接為應用程式資料,不必先定義 LiveClone 再清除 LiveClone。直接掛接功能可讓應用程式資料和虛擬應用程式幾乎立即生效。

在本範例中,您將定義備份和災難復原工作流程,執行下列操作:

  • 從單一所選正式環境備份,產生或更新掛接的應用程式資料。
  • 定義排程,使用最新的實際工作環境資料更新應用程式資料。您也可以隨選執行排定的備份和災難復原工作流程。
  • 掛接應用程式資料。
  • 可讓您使用資料建立虛擬應用程式。

請按照下列操作說明,定義 Oracle 資料庫的備份和災難復原工作流程:

  1. 在備份和災難復原設備管理控制台中,依序點選「App Manager」(應用程式管理工具) >「Workflows」(工作流程)。

  2. 按一下頁面右上角的「Workflow」(工作流程)。

    「Add Workflow: Select an Application」頁面隨即開啟。

  3. 在代管資料庫上按一下滑鼠右鍵,然後點選「Next」(下一步)。

  4. 在「Add Workflow: Configure」(新增工作流程:設定) 頁面中,指定備份和災難復原工作流程的名稱,然後選取「Direct Mount」(直接掛接),並選取要管理備份和災難復原工作流程的設備。備份和災難復原工作流程名稱不得包含特殊字元。

  5. 選取「Scheduled」(已排定),並為「Schedule Type」(排程類型) 指派備份和災難復原工作流程的執行頻率。時間選取器採用 24 小時制。排定的備份和災難復原工作流程也可以隨選執行。

  6. 在「Source Image」(來源映像檔) 的「Direct Mount Settings」(直接掛接設定) 中,選取要執行備份和災難復原工作流程的快照,並為掛接作業提供可識別的標籤。

  7. 在「Hosts」(主機) 部分,選取資料掛接的伺服器。執行備份和災難復原工作流程的使用者,可以視需要將資料掛接至其他伺服器。

  8. 在「Mapping Options」(對應選項) 中,新增掛接位置。如未指定掛接,備份和災難復原代理程式會選擇掛接位置。

  9. 視需要輸入偏好的磁碟群組名稱。

  10. 視需要輸入 RAC 節點清單,並以半形冒號分隔 IP 位址。

  11. 視需要指定「Pre Script」。預先指令碼用於在掛接或卸載應用程式前設定環境。這個指令碼必須位於託管掛接備份的伺服器上,且資料夾名稱必須為 /act/scripts。如要瞭解指令碼編寫詳情,請參閱「備份和災難復原工作流程前置與後置指令碼」。

  12. 視需要指定後置指令碼。後置指令碼用於在資料掛接或卸載後執行作業。這個指令碼必須位於託管掛接備份的伺服器上,且資料夾名稱為 /act/scripts。如要瞭解指令碼編寫詳情,請參閱「備份和災難復原工作流程前置與後置指令碼」。

  13. 如果您指定了指令碼,請指定足夠的逾時時間,讓指令碼完成。

  14. 「Remove mounted backup after processing.」(處理後移除掛接的備份) 核取方塊通常用於透過指令碼處理掛接資料。指令碼完成工作後,這個選項會卸載並刪除虛擬應用程式。

  15. 請選擇下列任一選項:

    • 如果只需要資料,請按一下「Done」(完成),備份和災難復原工作流程就會按照排程執行。具備適當存取權的使用者也可以隨選執行這項備份和災難復原工作流程,使用應用程式資料佈建及重新佈建環境。
    • 如要建立虛擬應用程式,請繼續執行下列步驟。
  16. 勾選「Perform application aware mount」(執行應用程式感知掛接) 核取方塊,系統就會顯示執行應用程式感知掛接的應用程式專屬選項。

  17. 在空格中輸入 Oracle 相關選項。按一下問號 ?旁邊的

  18. 按一下黑色箭頭開啟「Advanced Options」(進階選項),並視需要完成其餘選項。

  19. 選取「使用復原功能還原」。這樣一來,資料庫就會處於可套用記錄檔的狀態,將資料庫還原至特定時間點。

  20. 此時,您可以完成下列工作:

    • 勾選「Protect new application」選項。這樣一來,您就能套用備份方案政策範本和資源設定檔,將虛擬應用程式視為新應用程式加以保護。詳情請參閱「備份計畫政策範本」和「設定檔」。
    • 按一下「Done」(完成),備份和災難復原工作流程就會按照排程執行。具備適當存取權的使用者也可以隨選執行這項備份和災難復原工作流程,透過虛擬應用程式佈建及重新佈建環境。

使用 LiveClone 和遮罩工具建立經過清理的資料或虛擬應用程式

如果正式環境資料含有機密資訊,通常會使用 LiveClone 備份和災難復原工作流程。LiveClone 備份和災難復原工作流程可讓您從正式環境資料定義 LiveClone,然後在掛接 LiveClone 的資料前先進行清理。

在以下範例中,備份和災難復原工作流程可以執行下列操作:

  • 從標示為機密的所選正式環境備份,產生新的 LiveClone 或更新現有 LiveClone。
  • 定義排程,使用最新的正式環境資料更新 LiveClone。您也可以隨選執行排定的備份和災難復原工作流程。
  • 使用指令碼清除 LiveClone 中的機密資料。
  • 將已清除的虛擬應用程式標示為非機密。
  • 將經過清理的備份掛接為虛擬應用程式 (應用程式感知掛接),並掛接至指定主機。

請按照下列操作說明定義這項備份和災難復原工作流程:

  1. 開啟設備管理控制台,依序前往「App Manager」(應用程式管理工具) >「Workflows」(工作流程)。
  2. 按一下右上角的「Add Workflow」(新增工作流程)。
  3. 在「Add Workflow: Select an Application」(新增工作流程:選取應用程式) 頁面中,在要清除機密資料的應用程式上按一下滑鼠右鍵,然後選取「Next」(下一步)。

    「Add Workflow: Configure」(新增工作流程:設定) 頁面隨即開啟。

  4. 指定備份和災難復原工作流程的名稱。備份和災難復原工作流程名稱不得包含特殊字元。

  5. 在「Workflow Type」(工作流程類型) 選取「LiveClone」。

    「LiveClone Settings」(LiveClone 設定) 隨即開啟。

  6. 在「Schedule Type」(排程類型) 部分,選取「Scheduled」(已排定) 或「On Demand」(隨選)。您也可以隨選執行排定的備份和災難復原工作流程。

  7. 如果選取「Scheduled」(已排定),請定義執行備份和災難復原工作流程的時間表。

    時間選取器採用 24 小時制。

  8. 在「Source Image」(來源映像檔) 中,選取產生要清理備份的政策最新快照。

  9. 為 LiveClone 提供可識別的標籤。

  10. 選取 LiveClone 所在的快照集區。請務必分配足夠的儲存空間,以便容納 LiveClone。

    啟用「Mount for pre-processing」(掛接以進行預先處理),下一個畫面會提供將 LiveClone 掛接至主機的選項,然後清除掛接備份中的機密資料。

  11. 只有在所選應用程式標示為含有機密資料時,系統才會顯示「Mark Data Non-Sensitive」(將資料標示為非機密) 選項。如果應用程式在清除後不含機密資料,請勾選這個選項。這樣一來,即使使用者無法存取機密資料,也能存取備份和災難復原工作流程,並佈建工作環境。

  12. 選取要掛接 LiveClone 的主機。

  13. 在「Mapping Options」(對應選項) 中,如要將備份掛接至預設位置以外的位置,請新增「Mount Location」(掛接位置)。如未指定掛接位置,備份和災難復原代理程式會指派掛接位置。

  14. 視需要輸入偏好的磁碟群組名稱。

  15. 視需要輸入 RAC 節點清單,並以半形冒號分隔 IP 位址。

  16. 您可以使用 Optim 資料隱私遮蓋功能,也可以使用自己的自訂指令碼:

    • 如果您使用 Optim 資料隱私遮罩,請輸入「Service Set」(服務集) 和「Time Out」(逾時) 值 (以分鐘為單位)。
    • 如果使用自訂指令碼,請視需要指定預先指令碼。預先指令碼用於在掛接或取消掛接應用程式前設定環境。然後視需要指定後置指令碼。本範例中的後置指令碼會在掛接後,清除應用程式中的機密資訊。請指定足夠的逾時時間,讓指令碼完成。
  17. 如果不需要虛擬應用程式,請按一下「Add」(新增),備份和災難復原工作流程就會按照排程執行。具備適當存取權的使用者可以隨選執行這項備份和災難復原工作流程,並使用應用程式資料佈建及重新佈建任何有權存取的伺服器。

    如需這個 LiveClone 的虛擬應用程式,請繼續操作。

  18. 啟用「Create New Virtual Application」,然後點選「Next」。 系統會顯示其他 Oracle 設定選項,以便完成程序。

  19. 如要讓備份和災難復原服務保護新應用程式,請啟用「Manage New Application」(管理新應用程式)。如果選取這個選項,則必須選取要套用的政策範本和資源設定檔。

  20. 按一下箭頭,開啟「進階選項」。選取「Restore with Recovery」(使用復原功能還原),套用可用的記錄,將資料庫還原至特定時間點。

  21. 繼續輸入這個資料庫所需的 Oracle 設定。點選各標籤即可查看說明。

  22. 最後,勾選「Remove mounted backup after done」(完成後移除掛接的備份) 核取方塊。通常在您使用指令碼處理掛接的資料時,會選取這個選項。指令碼完成工作後,這個選項會卸載,您也可以刪除虛擬應用程式。

  23. 按一下「新增」。

使用備份和災難復原工作流程重新整理 Oracle 資料庫結構定義

如果您使用的是 Oracle 12c 以上版本,請參閱「將 Oracle 12c 資料庫 PDB 做為虛擬 PDB 呈現給目標上的現有資料庫容器」。

如果來源資料庫執行個體有多個應用程式,且每個應用程式都有自己的結構定義,請按照下列步驟操作:

  • 在結構定義層級建立及重新整理虛擬副本,並將每個結構定義個別重新整理至相同或不同的目標。
  • 在不同結構定義下,將單一結構定義的多個虛擬副本建立並重新整理至單一目標,每個副本都有自己的重新整理排程。

這個部分包含以下項目:

運作方式:使用可傳輸資料表空間的備份和災難復原虛擬副本

您可以在單一目標 Oracle 執行個體下,從相同或多個來源執行個體建立及重新整理多個虛擬副本。

  1. 設定應用程式感知掛接備份和災難復原工作流程,使用臨時執行個體建立應用程式感知掛接。
  2. 設定要在目標執行個體上執行的預先指令碼,也就是離線並捨棄要在目標執行個體上重新整理的資料表空間。
  3. 設定要在暫時執行個體和目標執行個體上執行的後置指令碼。
  4. 在臨時執行個體上完成下列操作:
    1. 重新命名資料表空間
    2. 將資料表空間變更為唯讀
    3. 如果是 EXPDP,請匯出資料表空間中繼資料。
    4. 關閉臨時執行個體。
  5. 在目標執行個體上:
    1. 如果是 IMPDP,請匯入資料表空間中繼資料 (TRANSPORT_DATAFILES),並將結構定義重新對應至目標執行個體
    2. 將資料表空間變更為讀寫

事前準備

請先按照這些指示操作,再開始設定。

  1. 確認資料庫備份作業是按照備份方案政策執行。
  2. 在目標伺服器上設定指令碼:

    1. 以 root 身分登入資料庫伺服器。執行下列指令,將目錄變更為 /act,並建立 /act/scripts 目錄 (如果不存在)。

        cd /act
        mkdir -p /act/scripts
        cd /act/scripts
      
    2. 複製 /act/act_scripts/objectrefresh/ 中的所有檔案

    3. 將 act_<schema>_refresh.conf 移至 act_testuser_refresh.conf,目標結構定義名稱為 testuser,其中 <schema> 為 testuser。

      其中:

      • SOURCE_SCHEMA_NAME:要向目標呈現的來源資料庫結構定義。
      • TARGET_SID:目標資料庫 SID,結構定義會在這裡重新整理。
      • TARGET_SCHEMA_NAME:要以來源結構定義重新整理的目標資料庫結構定義。

建立備份和災難復原工作流程

請按照下列操作說明建立備份和災難復原工作流程,以便執行結構定義重新整理。

  1. 在設備管理控制台中,依序前往「App Manager」(應用程式管理工具) >「Workflows」(工作流程),然後選取「Add Workflow」(新增工作流程)。
  2. 在「Add Workflow: Select an Application」(新增工作流程:選取應用程式) 清單中,在要使用的資料庫上按一下滑鼠右鍵,然後點選「Next」(下一步)。
  3. 系統隨即會顯示「Add Workflow: Configure」(新增工作流程:設定) 頁面:

    • 為備份和災難復原工作流程提供不重複的名稱。備份和災難復原工作流程名稱不得包含特殊字元。
    • 選取「直接掛接」。
    • 選取執行備份和災難復原工作流程的備份/復原設備。
    • 在「Schedule Type」(排程類型) 部分,選取「On Demand」(隨選)。
    • 選取「來源」備份,可以是最新快照,也可以是正式環境的最新快照。
    • 在「Mount Label」(掛接標籤) 中,提供專屬 ID,以便在查看使用中的掛接時,識別這個備份和災難復原工作流程的掛接。
    • 從「Hosts」(主機) 清單中選取目標主機。
  4. 在「Mapping Options」中,完成下列操作:

    • 輸入掛接磁碟機的位置,例如 M:、D:\testdb1 或 /oracledata/db1data (如果暫時副本要放在非 ASM 上)。
    • 新增「Preferred Diskgroup Name」(偏好的磁碟群組名稱)。
    • 在「RAC Node List」(RAC 節點清單) 中,輸入以半形冒號分隔的 IP 位址清單。
  5. 填寫預先指令碼欄位: act_ttswfpre.sh actSCHEMArefresh.conf 其中 actSCHEMA_refresh.conf 是在步驟一建立的檔案。

  6. 填寫後置指令碼欄位: ttswfpost.sh actSCHEMArefresh.conf 其中 actSCHEMA_refresh.conf 是在步驟一建立的檔案。

  7. 輸入 1800 秒以上的逾時值。

  8. 選取「Create New Virtual Application」。

  9. 填寫目標資料庫 SID,這是暫時 SID。

  10. 提供在目標機器上擁有 Oracle 軟體二進位檔的作業系統使用者名稱。

  11. 提供設定檔中指定的 ORACLE_HOME。

  12. 按一下箭頭,開啟「進階選項」。提供目標機器上的 TNS ADMIN 目錄路徑,並指定臨時執行個體的最低 SGA%。按一下欄位標籤即可查看說明。

  13. 選取「Standalone Non-RAC」。

  14. 按一下「新增」。

執行備份和災難復原工作流程

建立備份和災難復原工作流程後,請按照下列步驟執行。

  1. 在備份和災難復原工作流程上按一下滑鼠右鍵,然後點選「Run Now」(立即執行)。
  2. 選取「立即啟動排定的工作流程」,然後按一下「提交」。

    您可以在目標主機的這個位置監控記錄:/var/act/log

  3. 備份和災難復原工作流程顯示成功狀態時,目標資料庫的結構定義就會重新整理。

    1. 如果目標資料庫中沒有 TARGET_SCHEMA_NAME,備份和災難復原會首次建立使用者,預設使用者密碼為 abc#1234。
    2. 目標資料庫上重新整理的結構定義資料表空間,會以結構定義名稱做為前置字元,呈現給目標:(結構定義)_(來源_資料表空間_名稱)

卸載已掛接的備份

請按照下列操作說明,卸載已掛接的備份。

  1. 捨棄目標資料庫上的資料表空間和資料檔案。

    ```sql
    SQL>alter tablespace <TBS_NAME> offline immediate;
    SQL>drop tablespace <TBS_NAME> including contents and datafiles;
    ```
    
  2. 依序開啟「App Manager」>「Active Mounts」頁面。在要卸載的備份上按一下滑鼠右鍵,依序選取「Unmount and Delete」(卸載並刪除) 和「Submit」(提交),提交工作。

將 Oracle 12c 以上版本的資料庫 PDB,以虛擬 PDB 的形式提供給目標上的現有資料庫容器

如果您使用的是 12c 之前的 Oracle 版本,請參閱「使用備份和災難復原工作流程重新整理 Oracle 資料庫結構定義」。

舉例來說,假設您有一個來源資料庫執行個體,其中有多個應用程式,每個應用程式都有自己的 PDB。您可以在結構定義層級建立及重新整理虛擬副本,並將每個 PDB 個別重新整理至相同或不同的目標。請按照下列步驟操作:

事前準備

開始之前,請先在目標伺服器上設定指令碼:

  1. 從 /act/act_scripts/pdbrefresh 取得指令碼 ZIP 檔案。
  2. 以 root 身分登入資料庫伺服器。
  3. 前往 /act 並建立 /act/scripts 目錄 (如果不存在):

    cd /act
    mkdir -p /act/scripts
    cd /act/scripts
    
  4. 將檔案解壓縮。

  5. 將指令碼檔案複製到 /act/scripts:

    cp /act/act_scripts/pdbrefresh/act_pdbclone_pre.sh /act/scripts/
    cp /act/act_scripts/pdbrefresh/act_pdbclone_post.sh /act/scripts/
    

建立備份和災難復原工作流程,執行 PDB 複製工作

  1. 在「App Manager Workflows」頁面,按一下「Add Workflow」。
  2. 在 Oracle 資料庫上按一下滑鼠右鍵,然後選取「Next」(下一步)。
  3. 輸入備份和災難復原工作流程的名稱,然後選取「Direct Mount」(直接掛接) 和「On Demand」(隨選)。

  4. 勾選目標主機核取方塊。

  5. 如果暫時副本將位於非 ASM,請在「Mapping Options」(對應選項) 下方,選取「Specify Mount Location」(指定掛接位置) 做為「Mount Action」(掛接動作),然後提供掛接位置。

  6. 填寫指令碼前欄位和指令碼後欄位: act_pdbclonepre.sh "TARGET_DB_SIDSOURCE_PDB_NAME-TARGET_PDB_NAME" act_pdbclonepost.sh "TARGET_DB_SIDSOURCE_PDB_NAME-TARGET_PDB_NAME" 其中: TARGET_DB_SID = 應附加 PDB 的目標資料庫 SID SOURCE_PDB_NAME = 需附加至目標容器的來源 PDB 名稱。 TARGET_PDB_NAME = 來源重新命名後的目標 PDB 名稱。

  7. 將兩個指令碼的「Timeout」設為 18000。

  8. 選取「Create New Virtual Application」。

  9. 填入目標資料庫 SID,這是 act_pdb_config.conf 檔案中定義的暫時 SID。

  10. 提供在目標機器上擁有 Oracle 軟體二進位檔的 OS 使用者名稱。

  11. 按照設定檔中的指定內容提供 ORACLE_HOME。

  12. 按一下箭頭,開啟「進階選項」。提供目標機器上的 TNS ADMIN 目錄,並指定臨時執行個體的 SGA 下限。

  13. 選取「Standalone Non-RAC」。

  14. 按一下頁面底部的「新增」。

執行備份和災難復原工作流程

建立備份和災難復原工作流程後,請按照下列操作說明執行。

  1. 依序點選「App Manager」(應用程式管理工具) >「Workflows」(工作流程),然後在備份和災難復原工作流程上按一下滑鼠右鍵,接著點選「Run Now」(立即執行)。
  2. 選取「Provision New Virtual Application」(佈建新的虛擬應用程式),填寫詳細資料,然後按一下「Submit」(提交)。
  3. 您可以在目標主機的 /var/act/log 查看記錄。

    備份和災難復原工作流程達到成功狀態後,目標資料庫上的 PDB 就會複製。

    如需使用最新或舊的來源資料再次重新整理目標 PDB,請點選「備份和災難復原工作流程」的「立即執行」Run Now按鈕,然後選取「重新整理現有的虛擬應用程式」Refresh Existing Virtual Application,再點選「完成」Done。

卸載已掛接的備份

請按照下列操作說明,卸載任何已掛接的備份:

  1. 在「Restore」(還原) 分頁中,選取要卸載的備份。
  2. 在目標資料庫中捨棄可插式資料庫和資料檔案。

    SQL>alter pluggable database <PDB_NAME> close immediate;
    SQL>drop pluggable database <PDB_NAME> including datafiles;
    

    或者,執行預先指令碼:

    cd /act/scripts
    ./ act_pdbclone_pre.sh
    
  3. 依序點選「App Manager」(應用程式管理工具) >「Active Mounts」(使用中的掛接項目) 清單,在要取消掛接的備份上按一下滑鼠右鍵,然後依序選取「Unmount and Delete」(取消掛接並刪除) 和「Submit」(提交) 工作。

Oracle DBA 指南