建立 Oracle 資料庫的備份和災難復原工作流程

備份和災難復原工作流程是在應用程式管理員中定義。備份和災難復原工作流程會使用備份的正式版資料做為來源資料,並從中產生資料。

  • 直接掛接:如果應用程式資料不需要先經過清除,即可掛接並提供給使用者,則可使用直接掛接。應用程式資料可透過標準掛接方式掛接為資料、虛擬應用程式,或同時掛接為資料和虛擬應用程式。直接掛接功能可讓您幾乎立即存取備份資料,不必實際移動資料。
  • LiveClones:如果應用程式含有機密資料,必須先清除這些資料,才能掛接並提供給使用者,通常會在備份和 DR 工作流程中使用 LiveClones。應用程式資料可以透過標準掛接方式掛接為資料或虛擬應用程式,也可以同時掛接為資料和虛擬應用程式。LiveClone、清除和掛接作業可以自動執行,無論是依排程或隨選皆可。

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

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

在本範例中,您定義的 Backup and DR Workflow 會執行下列操作:

  • 從單一選取的正式版映像檔產生或更新已掛接的應用程式資料。
  • 定義更新應用程式資料的時間表,以取得最新的正式版資料。您也可以視需要執行排定的備份和災難復原工作流程。
  • 掛接應用程式資料。
  • 可讓您使用資料建立虛擬應用程式。

請按照下列操作說明,為 Oracle 資料庫定義 Backup and DR 工作流程:

  1. 在備份和災難復原服務管理控制台中,依序點選「應用程式管理員」>「工作流程」

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

    「Add Workflow: Select an Application」(新增工作流程:選取應用程式) 頁面隨即開啟。

  3. 以滑鼠右鍵按一下代管資料庫,然後點選「下一步」

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

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

  6. 在「Source Image」的「Direct Mount Settings」中,選取要執行 Backup and DR 工作流程的快照圖片,並為掛接點加上可識別的標籤。

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

  8. 在「對應選項」中,新增「掛接位置」。如果未指定掛接點,Backup and DR 代理程式會選擇掛接位置。

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

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

  11. 視需要指定「前置指令碼」。前置指令碼用於在掛接或卸載應用程式之前,設定環境。這個指令碼必須位於伺服器上名為 /act/scripts 的資料夾中,該伺服器會代管已掛接的映像檔。如需指令碼詳細資料,請參閱「備份和災難復原工作流程的前置和後置指令碼」。

  12. 視需要指定 Post Script。後置指令碼用於在資料掛接或卸載後,對資料執行作業。這個指令碼必須位於伺服器上名為 /act/scripts 的資料夾中,該伺服器會代管已掛接的映像檔。如需指令碼詳細資料,請參閱「備份和災難復原工作流程的前置和後置指令碼」。

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

  14. 使用指令碼處理已掛接的資料時,通常會勾選「處理後移除已掛接的映像檔」核取方塊。指令碼完成工作後,這個選項會卸載並刪除虛擬應用程式。

  15. 選擇下列任一選項:

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

  17. 在提供的空格中,輸入 Oracle 相關選項。按一下問號 ? 選項旁的圖示,即可查看說明文字。

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

  19. 勾選「使用復原功能還原」。這麼做會讓資料庫處於某種狀態,如果記錄可用,即可套用記錄,將資料庫還原至特定時間點。

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

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

使用 LiveClone 和遮蓋工具建立已清除機密資訊的資料或虛擬應用程式

如果生產資料含有機密資訊,通常會使用 LiveClone 備份和 DR 工作流程。透過 LiveClone Backup and DR Workflow,您可以從實際工作環境資料定義 LiveClone,然後在掛接 LiveClone 的資料前清除資料。

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

  • 從標示為私密內容的所選製作圖片,生成新的或更新現有的 LiveClone。
  • 定義時間表,以便使用最新的正式版資料更新 LiveClone。您也可以視需要執行排定的備份和災難復原工作流程。
  • 使用指令碼清除 LiveClone 中的機密資料。
  • 將已清除敏感資訊的虛擬應用程式標示為非敏感。
  • 將清除後的映像檔掛接為虛擬應用程式 (應用程式感知掛接),並掛接到指定主機。

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

  1. 開啟管理控制台,依序點選「應用程式管理員」>「工作流程」
  2. 按一下右上角的「新增工作流程」
  3. 在「Add Workflow: Select an Application」(新增工作流程:選取應用程式) 頁面中,以滑鼠右鍵點選要清除敏感資料的應用程式,然後選取「Next」(下一步)

    「新增工作流程:設定」頁面隨即開啟。

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

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

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

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

  7. 如果選取「已排程」,請定義執行 Backup and DR 工作流程的排程。

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

  8. 在「來源映像檔」中,選取產生要清除映像檔的政策中,最新的快照映像檔。

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

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

    啟用「Mount for pre-processing」(掛接以進行預先處理),然後在下一個畫面中將 LiveClone 掛接到主機,並清除掛接的映像檔中的機密資料。

  11. 只有在所選應用程式標示為含有機密資料時,系統才會顯示「將資料標示為非機密」選項。如果應用程式在清除後不含私密資料,請勾選這個選項。這樣一來,即使使用者無法存取機密資料,也能存取 Backup and DR 工作流程,並佈建工作環境。

  12. 選取要掛接 LiveClone 的主機

  13. 在「對應選項」中,如要將映像檔掛接到預設以外的位置,請新增「掛接位置」。如未指定掛接位置,備份和災難復原代理程式會指派掛接位置。

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

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

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

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

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

  18. 啟用「建立新的虛擬應用程式」,然後點選「下一步」。 畫面上會顯示其他 Oracle 設定選項,請完成程序。

  19. 如要讓 Backup and DR 保護新應用程式,請啟用「Manage New Application」(管理新應用程式)。 選取這個選項後,您必須選取要套用的政策範本和資源設定檔。

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

  21. 視需要繼續輸入這個資料庫的 Oracle 設定。 按一下各個標籤即可取得說明。

  22. 最後,選取「完成後移除已掛接的映像檔」核取方塊。使用指令碼處理已掛接的資料時,通常會選取這個選項。指令碼完成工作後,這個選項就會卸載,您可以刪除虛擬應用程式。

  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. 以根使用者身分登入資料庫伺服器。將目錄變更為 /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:要以來源結構定義重新整理的目標資料庫結構定義。

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

請按照下列操作說明建立 Backup and DR 工作流程,執行結構定義重新整理作業。

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

    • 為備份和災難復原工作流程提供專屬名稱。備份和災難復原工作流程名稱不得包含特殊字元。
    • 選取「直接掛載」
    • 選取執行 Backup and DR Workflow 的備份/復原設備。
    • 在「Schedule Type」(排程類型) 中,選取「On Demand」(隨選)
    • 選取「來源」映像檔,可以是最新快照或最新正式版快照。
    • 在「掛接標籤」中,提供專屬 ID,以便在查看有效掛接時,識別來自這個 Backup and DR 工作流程的掛接。
    • 從「主機」清單中選取目標「主機」
  4. 在「對應選項」中,完成下列操作:

    • 輸入掛接磁碟機的位置,例如 M:、D:\testdb1 或 /oracledata/db1data,前提是臨時副本將位於非 ASM。
    • 新增偏好的磁碟群組名稱
    • 在「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. 按一下「新增」

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

建立 Backup and DR 工作流程後,請按照下列步驟執行。

  1. 在「Backup and DR Workflow」上按一下滑鼠右鍵,然後點選「Run Now」
  2. 選取「立即啟動排程工作流程」,然後按一下「提交」

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

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

    1. 如果目標資料庫中沒有 TARGET_SCHEMA_NAME,Backup and DR 會首次建立使用者,預設使用者密碼為 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」頁面。在要卸載的映像檔上按一下滑鼠右鍵,然後依序選取「卸載並刪除」和「提交」工作。

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

如果您使用的 Oracle 版本低於 12c,請參閱「使用 Backup and DR 工作流程重新整理 Oracle 資料庫結構定義」。

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

事前準備

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

  1. 從 /act/act_scripts/pdbrefresh 取得指令碼 zip 檔案。
  2. 以根使用者身分登入資料庫伺服器。
  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. 在「應用程式管理員工作流程」頁面中,按一下「新增工作流程」
  2. 以滑鼠右鍵按一下 Oracle 資料庫,然後選取「下一步」
  3. 輸入備份與 DR 工作流程的名稱,然後選取「直接掛接」和「隨選」

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

  5. 如果臨時副本要放在非 ASM 上,請在「對應選項」下方,選取「指定掛接位置」做為「掛接動作」,然後提供掛接位置。

  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」(工作流程) ,然後在「Backup and DR Workflow」(備份和 DR 工作流程) 上按一下滑鼠右鍵,並點選「Run Now」(立即執行)
  2. 選取「Provision New Virtual Application」(佈建新的虛擬應用程式),填寫詳細資料,然後按一下「Submit」(提交)
  3. 您可以在目標主機的 /var/act/log 監控記錄。

    備份與 DR 工作流程達到成功狀態後,系統會複製目標資料庫中的 PDB。

    如果目標 PDB 必須再次使用最新或舊的來源資料重新整理,請按一下「Backup and DR Workflow」的「Run Now」按鈕,然後選取「Refresh Existing Virtual Application」並按一下「Done」

卸載已掛接的映像檔

請按照下列操作說明解除掛接所有已掛接的映像檔:

  1. 在「還原」分頁中,選取要解除掛接的映像檔。
  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 指南