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

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

  • 直接掛載:如果應用程式資料在掛載前不需要清除,即可使用直接掛載功能,並提供給使用者。應用程式資料可以透過標準掛載點掛載,做為單純的資料、虛擬應用程式,或是同時做為資料和虛擬應用程式。直接掛載可讓備份資料幾乎立即可用,而無須實際移動資料。
  • LiveClones:如果應用程式含有機密資料,必須先清除資料才能掛載並提供給使用者,此時通常會在備份和 DR 工作流程中使用 LiveClones。應用程式資料可以透過標準掛載點掛載,只掛載資料、虛擬應用程式,或同時掛載資料和虛擬應用程式。您可以依據排程或需求,自動更新 LiveClone、瀏覽和掛載。

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

當應用程式映像檔不含機密資料時,就會使用直接掛載備份和 DR 工作流程。這可讓備份和 DR 工作流程將應用程式資料掛載為虛擬應用程式,或僅掛載為應用程式資料,而不需要先定義 LiveClone,再清除 LiveClone。直接掛載可讓應用程式資料和虛擬應用程式幾乎立即可用。

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

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

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

  1. 依序點選「App Manager」>「工作流程」

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

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

  3. 在受管理的資料庫上按一下滑鼠右鍵,然後點選「下一步」

  4. 在「Add Workflow: Configure」頁面中,指定備份和 DR 工作流程的名稱,然後選取「Direct Mount」,並選取要管理備份和 DR 工作流程的機器。備份和 DR 工作流程名稱不得包含特殊字元。

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

  6. 在「直接掛載設定」的「來源映像檔」中,選取要執行備份和 DR 工作流程的快照映像檔,並為掛載點指定可識別的標籤。

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

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

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

  10. 視需要在以冒號分隔的 IP 位址清單中輸入 RAC 節點清單

  11. 視需要指定預先指令碼。預先指令碼可用於在掛載或卸載應用程式之前設定環境。這個指令碼必須位於主機上掛載映像檔的伺服器上,位於名為 /act/scripts 的資料夾中。如需指令碼詳細資訊,請參閱「備份和 DR 工作流程前後指令碼」。

  12. 視需要指定附註。後置指令碼用於在掛載或卸載資料後,對資料執行作業。這個指令碼必須位於掛載映像檔的伺服器上名為 /act/scripts 的資料夾中。如需指令碼詳細資訊,請參閱「備份和 DR 工作流程前後指令碼」。

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

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

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

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

  17. 在提供的空格中輸入 Oracle 相關選項。按一下問號 ?旁邊的說明文字。

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

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

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

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

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

一般來說,如果實際工作資料含有機密資訊,就會使用 LiveClone 備份和 DR 工作流程。透過 LiveClone 備份和 DR 工作流程,您可以從實際工作環境資料定義 LiveClone,然後在掛載 LiveClone 之前清除資料。

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

  • 從標示為敏感的所選正式版映像檔,產生新的 LiveClone 或更新現有 LiveClone。
  • 定義排程,以便使用最新的實際生產資料更新 LiveClone。您也可以隨時執行排定備份和災難復原工作流程。
  • 使用指令碼清除 LiveClone 中的機密資料。
  • 將已清除的虛擬應用程式標示為非敏感資料。
  • 將已修飾的映像檔掛接至指定主機,做為虛擬應用程式 (應用程式感知掛接)。

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

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

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

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

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

    LiveClone 設定會隨即開啟。

  6. 在「排程類型」中,選取「定期發布」或「隨選發布」。您也可以隨時執行排定備份和災難復原工作流程。

  7. 如果您選取「排程」,請定義執行備份和 DR 工作流程的時間表。

    時間挑選器使用 24 小時制時鐘。

  8. 針對「Source Image」(來源圖片),請從產生要清除圖片的政策中選取最新的快照圖片。

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

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

    啟用「Mount for pre-processing」後,您可以在下一個畫面中將 LiveClone 掛載至主機,然後清除掛載映像檔中的機密資料。

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

  12. 選取要掛載 LiveClone 的主機

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

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

  15. 視需要在以冒號分隔的 IP 位址清單中輸入 RAC 節點清單

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

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

    如果您需要此 LiveClone 的虛擬應用程式,請繼續閱讀本文。

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

  19. 如果您想讓備份和災難復原功能保護應用程式,請啟用「管理新應用程式」。如果選取這個選項,您必須選取要套用的政策範本和資源設定檔。

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

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

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

  23. 按一下「新增」。

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

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

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

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

本節包含以下內容:

運作方式:備份和災難復原虛擬副本,以及可傳輸的表格空間

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

  1. 設定應用程式感知型掛載備份和 DR 工作流程,以便使用暫時執行個體建立應用程式感知型掛載。
  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. 開啟管理控制台,依序前往「應用程式管理工具」>「工作流程」,然後選取「新增工作流程」
  2. 在「Add Workflow: Select an Application」清單中,以滑鼠右鍵按一下要使用的資料庫,然後點選「Next」
  3. 系統隨即會顯示「Add Workflow: Configure」頁面:

    • 請為備份和災難復原工作流程提供專屬名稱。備份和災難復原工作流程名稱不得包含特殊字元。
    • 選取「直接安裝」
    • 選取執行備份和災難復原工作流程的備份/復原設備。
    • 在「排程類型」中,選取「隨選」
    • 選取「Source」映像檔,可以是最新的快照,也可以是正式版的最新快照。
    • 在「掛載點標籤」中,提供專屬 ID,方便您在查看掛載點時,識別此備份和 DR 工作流程中的掛載點。
    • 從「Hosts」清單中選取目標「Host」
  4. 在「Mapping Options」中,完成下列操作:

    • 輸入已掛接的硬碟位置,例如:M:\、D:\testdb1 或 /oracledata/db1data (如果臨時副本將位於非 ASM 上)。
    • 新增「首選磁碟群組名稱」
    • 針對「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 軟體二進位檔的 OS 使用者名稱

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

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

  13. 選取「Standalone Non-RAC」

  14. 按一下「新增」。

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

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

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

    您可以在目標主機上監控記錄,位置如下:/var/act/log

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

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

卸載已掛載的映像檔

請按照這些操作說明卸載已掛載的映像檔。

  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」,再提交工作。

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

如果您使用的是 12c 之前的 Oracle 版本,請參閱「使用備份和 DR 工作流程來重新整理 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 資料庫,然後選取「下一步」
  3. 輸入備份和 DR 工作流程的名稱,然後選取「直接掛載」和「隨選」

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

  5. 如果要將暫存副本放在非 ASM 上,請在「Mapping Options」下方,將「Mount Action」設為「Specify Mount Location」,然後提供掛載位置。

  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 Directory,並指定臨時執行個體的 SGA 下限。

  13. 選取「Standalone Non-RAC」

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

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

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

  1. 依序點選「應用程式管理工具」>「工作流程」,然後在「備份和還原工作流程」上按一下滑鼠右鍵,接著點選「立即執行」
  2. 選取「Provision New Virtual Application」,填入詳細資料,然後點選「Submit」
  3. 您可以在目標主機上監控記錄:/var/act/log。

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

    如果必須使用最新或舊的來源資料再次重新整理目標 PDB,請按一下「Backup and DR Workflow」按鈕,然後選取「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」,再提交工作。

Oracle DBA 指南