生命週期作業

需要定期的生命週期維護,才能讓次要網站與主要網站保持同步。在整個生命週期中,您將能夠執行計畫的切換來切換主要與次要網站的角色,並回應非預期或非計畫的作業。

關於組態複製

位於檔案系統中的內容初始複製是在 DR 設定期間執行的。您必須定期重複檔案系統複製,以將次要網站與主要網站保持在最新狀態。

您可以使用在 DR 設定期間建立的相同命令檔、將檔案系統使用者自建物件複製到 OCI,並使用每個使用者自建物件的下列考量來排定檔案系統複本:

  • 生命週期期間複製 Oracle 本位目錄

    這是靜態使用者自建物件。它不會經常變更,因此不需要定期進行複製。只有當您在「Oracle 本位目錄」中執行修改 (例如修正活動) 時,才需要複製它。

  • 生命週期期間複製 WebLogic 網域共用組態

    這是動態使用者自建物件。此外,它還包含 ASERVER_HOME (即 SOA 網域組態的事實來源),以及每次部署、取消部署、更新應用程式時更新的 APPLICATION_HOME

    預期此 WebLogic 網域共用組態會經常變更。排定此使用者自建物件的定期複本,視您系統中組態變更的頻率而定,此複本應該會較為頻繁或較不頻繁。另一個受控制的方法是每次執行主要資料庫的組態變更時都要執行複本。

  • 生命週期期間的 WebLogic 網域專用組態複製

    這也包含動態使用者自建物件 MSERVER_HOMENM_HOME。初始設定之後,預期不會經常更新 nodemanager 本位目錄。MSERVER_HOME 的內容會經常變更為 ASERVER_HOME,因為它包含受管理伺服器所使用的網域資料夾。不過,當受管理伺服器啟動,而且使用 WebLogic 命令檔工具 (WLST) 或 Oracle WebLogic Server 管理主控台套用組態變更時,它大部分的內容 (ASERVER_HOME/config) 會從 AdminServer 重新整理和下載。經常將此使用者自建物件複寫為共用組態並不重要。只在對 MSERVER_HOME 中的其他資料夾執行修改 (例如,在 MSERVER_HOME/bin 資料夾中進行修改) 時,才需要複製此選項。

  • 共用程式實際執行資料夾複製

    如果您在此資料夾中儲存任何程式實際執行使用者自建物件,請依據您的業務需求將複本排定為待命狀態。

    您無須使用 Oracle Cloud Infrastructure File Storage 檔案系統並複寫至 rsync,即可將 Oracle Database File System (DBFS) 掛載用於共用程式實際執行內容。如此一來,內容便會駐留在資料庫中,並自動複寫至次要的底層 Oracle Data Guard 複本。請參閱「深入瞭解」中的關於 Oracle Database File System ,瞭解使用 DBFS 的詳細資訊。

下表為生命週期期間檔案系統使用者自建物件複寫建議的摘要。

產出 包含 建議
Oracle 本位目錄 FMW 本位目錄,JDK,inventory 僅依需求複製 (例如,修正後)
WebLogic 網域共用配置 ASERVER_HOME、應用程式、部署計畫、金鑰存放區 排定複寫,可能需要高頻率。頻率取決於組態變更對 SOA 系統的執行頻率。
WebLogic 網域專用組態 MSERVER_HOMESnodemanager config 排定複製。通常不需要高頻率。
共用程式實際執行 客戶特定程式實際執行使用者自建物件 (非 JMS,而非 TLOGS) 依您的需求決定。如果這是 DBFS 掛載,Oracle Data Guard 會自動複製內容。

執行切換

切換是計畫性作業,管理員可以在其中回復兩個網站的角色。切換之後,主要系統會成為次要系統,而次要系統會變成主要系統。執行切換將導致主要網站發生停止工作的情形。
SOA 混合 DR 組態中執行切換之前,請先傳輸所有擱置中的組態變更。確定次要站台沒有待處理的複製變更。
  1. 在切換執行時停用任何排定的複製,因為其可能會失敗並干擾切換作業本身。
  2. 停止主要網站中的 Oracle HTTP Server 系統。
  3. 停止主要網站中的伺服器。
    使用「WebLogic 管理伺服器主控台」或命令檔停止主要網站的 WebLogic 伺服器。

    備註:

    主要網站中的管理伺服器在切換期間可以保持啟動狀態。不過,當網站為待命角色時,建議將它停止,因為預期在生命週期的主要組態會覆寫待命網站中的網域組態。如果管理伺服器在發生時啟動,將會以過時的組態執行。
  4. 切換前端 DNS 名稱。

    在代管系統所用名稱的 DNS 伺服器,執行必要的 DNS 推送,或更改用戶端中的檔案主機解析,以將系統前端虛擬名稱指向次要網站負載平衡器所使用的公用 IP。

    對於外部前端解析 (例如 OCI DNS 或商業 DNS) 使用 DNS 的情況,您可以使用 API 推送變更。若要查看在 OCI DNS 中推送此變更的範例,請前往 GitHub 以取得範例指令碼。

    請注意,DNS 項目的 TTL 值將會影響切換的 RTO:如果 TTL 高 (例如 20 分鐘),則 DNS 變更會在從屬端生效。使用較低的 TTL 值將會變得更快;但是,這可能會造成負荷,因為用戶端會更頻繁地到達 DNS,而不需要使用快取的名稱。最好的方法是先暫時將 TTL 設為低值 (例如 1 分鐘),再變更 DNS。然後,進行變更,一旦切換程序完成後,將 TTL 回復為其原始值。

  5. 作為 oracle 使用者,使用主要資料庫主機上的 Oracle Data Guard 中介以執行資料庫切換。
    您需要系統密碼以及主要資料庫的唯一名稱。
    [oracle@dbhost1~]$ dgmgrl sys/your_sys_password@primary_db_unqname
    DGMGRL> switchover to secondary_db_unqname
  6. 如果它們尚未啟動,請在次要網站 (新主要) 中啟動 Oracle HTTP Server 系統。
  7. 在次要網站 (新主要) 中啟動「管理伺服器」,或者如果伺服器已經啟動,請重新啟動伺服器。
    若啟動「管理伺服器」,會啟用複製此待命時複製的組態變更。
  8. 在次要網站 (新主要) 中啟動次要受管理伺服器。
    您可以使用 WebLogic 主控台或命令檔啟動次要受管理伺服器。

執行容錯移轉

容錯移轉作業通常是在主要網站無法使用時執行的非計畫作業。當原始主要資料庫失敗,而且不可能及時復原待命資料庫時,您可以將待命資料庫角色傳輸至主要資料庫角色。視主要資料庫發生失敗時,主要資料庫和目標待命資料庫是否一致,可能會遺失資料。
  1. 傳播任何擱置中的組態變更 (如果可行的話)。
    請參閱將檔案系統使用者自建物件複製到 OCI,以將變更複寫至次要網站。
  2. 在切換執行時停用任何排定的複製,因為其可能會失敗並干擾切換作業本身。
  3. 停止主要網站中的 Oracle HTTP Server 系統。
  4. 如果可以,請停止主要網站中的受管理伺服器。

    您可以使用「WebLogic 管理伺服器主控台」或命令檔來停止主要中的受管理伺服器。

  5. 切換前端 DNS 名稱。

    在代管系統所用名稱的 DNS 伺服器,執行必要的 DNS 推送,或更改用戶端中的檔案主機解析,以將系統前端虛擬名稱指向次要網站負載平衡器所使用的公用 IP。

    對於外部前端解析 (OCI DNS、商業 DNS 等) 使用 DNS 的情況,請使用適當的 API 推送變更。若要查看在 OCI DNS 中推送此變更的範例,請前往此處

    備註:

    DNS 項目的 TTL 值將會影響切換的 RTO。如果 TTL 為高 (例如 20 分鐘),則 DNS 變更會花在從屬端生效的時間。使用較低的 TTL 值將會變得更快;但是,這可能會造成超載,因為用戶端會更頻繁地到達 DNS,而不是使用快取的名稱。最好的方法是先暫時將 TTL 設為低值 (例如 1 分鐘),再變更 DNS。然後,進行變更,一旦切換程序完成後,將 TTL 回復為其原始值。
  6. oracle 使用者的身分,使用次要資料庫主機中的 Oracle Data Guard 中介來執行容錯移轉。
    您需要系統密碼以及主要資料庫的唯一名稱。
    [oracle@hydrdb1 ~]$ dgmgrl sys/your_sys_password@secondary_db_unqname
    DGMGRL> failover to secondary_db_unqname
  7. 如果它們尚未啟動,請在次要網站 (新主要) 中啟動 Oracle HTTP Server 系統。
  8. 在次要網站 (新主要) 中啟動「管理伺服器」,或者如果伺服器已經啟動,請重新啟動伺服器。
    若啟動「管理伺服器」,會啟用複製此待命時複製的組態變更。
  9. 在次要網站 (新主要) 中啟動次要受管理伺服器。
    您可以使用 WebLogic 主控台或命令檔啟動次要受管理伺服器。

開啟次要驗證

您將待命資料庫轉換成快照待命資料庫,即可在不執行完整切換的情況下驗證待命網站。這可讓待命網站中的次要 SOA 伺服器啟動並驗證次要系統。待命網站資料庫在快照待命模式下執行的任何變更,一旦再次轉換為實體待命資料庫,就會被捨棄。主要資料不受次要地點驗證影響。

備註:

這項作業必須謹慎執行:如果資料庫中有待處理的訊息或複合項目轉換成快照,待命網站的 SOA 伺服器會在啟動時加以處理。檢查轉換成快照待命資料庫時,主要資料庫中沒有擱置中動作。否則,將記錄從待命資料庫中的程式實際執行 SOA 表格,在轉換成快照待命資料庫之後,以及啟動次要網站的 SOA 伺服器之前移除。請參閱在不刪除表格的情況下從程式實際執行表格移除記錄,瞭解在不執行切換的情況下驗證待命網站的步驟。
  1. 身為 oracle 使用者,請使用主要資料庫主機上的 Oracle Data Guard 中介,然後將次要中介轉換成快照待命。
    [oracle@dbhost1~]$ dgmgrl sys/your_sys_password@primary_db_unqname
    DGMGRL> convert database secondary_db_unqname to snapshot standby
    
    使用 show configuration 命令來驗證已經正確執行轉換。
  2. 驗證次要環境中沒有待處理的動作。
    當待命資料庫轉換成快照時,如果主要資料庫中有擱置中動作 (交易、訊息),則次要 SOA 伺服器會在 start.You 可以使用 SOA 截斷命令檔從次要資料庫的 SOA 程式實際執行表格中移除記錄,以在啟動次要伺服器之前清除程式實際執行資料時,嘗試進行處理。請小心執行此動作;請勿截斷主要資料庫中的表格。請參閱移除程式實際執行表格中的記錄而不刪除表格
  3. 如果它們尚未啟動,請在次要網站啟動 Oracle HTTP Server 系統。
  4. 在次要網站中啟動「管理伺服器」。
  5. 在次要站台啟動次要受管理伺服器。
    您可以使用 WebLogic 主控台或命令檔啟動次要受管理伺服器。
  6. 驗證次要地點。

    由於這不是切換,主要網站仍然為作用中,因此虛擬前端名稱將解析為主要網站的負載平衡器 IP 位址,因此預設會將所有瀏覽器存取重新導向至作用中主要網站。

    若要直接存取次要網站的 SOA 服務,您必須更新受控制用戶端 (例如,筆記型電腦) 中的 /etc/hosts 檔案,將虛擬前端名稱設定為解析為次要網站的前端負載平衡器 IP 位址,然後從此用戶端執行任何驗證。

    備註:

    確認用於驗證的用戶端不會透過 HTTP 代理存取系統,因為 HTTP 代理伺服器可以繼續使用主要網站的負載平衡器 IP 位址解析虛擬前端名稱,無論哪個名稱在用戶端的 /etc/hosts 中。

    非 Linux 用戶端可能需要重設其本機 DNS 快取,瀏覽器才能夠使用自訂主機檔案項目解析 IP 位址。

    次要網站經過驗證之後,請前往下一個步驟,將它回復回待命角色。

    備註:

    驗證次要網站可能需要一些時間。
  7. 停止次要網站中的受管理伺服器和管理伺服器。
    您可以使用次要 WebLogic 主控台關閉次要網站中的受管理伺服器和管理伺服器。
  8. 身為 oracle 使用者,請在主要資料庫主機中使用 Oracle Data Guard 中中介,然後再次將次要轉換為實體待命。
    您需要系統密碼以及主要資料庫的唯一名稱。
    [oracle@dbhost1 ~]$ dgmgrl sys/your_sys_password@primary_db_unqname
        DGMGRL> convert database secondary_db_unqname to physical standby
    使用 show configuration 驗證轉換。
  9. 回復任何更新的 /etc/hosts 檔案。
    如果您更新從屬端中的任何 /etc/hosts 檔案以指向次要網站進行驗證,請回復,讓虛擬前端名稱再次指向主要前端 IP 位址。

備註:

ORA-01403:找不到 ORA-06512 錯誤的資料

依此處所述驗證次要網站時 (未執行完整的切換,亦即,只是以快照待命模式開啟待命) 「ORA-01403:在待命 SOA 伺服器日誌中找不到 ORA-06512」錯誤。這些錯誤與 SOA 自動清除工作有關。發生這些錯誤是因為資料庫中的工作可能有資料庫角色相依性 (這些工作只有在資料庫為主要角色時才會定義為啟用)。這是一項預期與所需的行為,可防止工作重複執行 (處於主要狀態,另一次是待命狀態)。SOA 自動永久清除工作是以主要角色定義,因此當資料庫處於快照待命模式時,不會顯示在 DBA_SCHEDULER_JOBS 檢視中。檢視 DBA_SCHEDULER_JOB_ROLE 中可看到為每個工作定義的 database_role。總而言之,只要這些錯誤出現在待命系統中,即可忽略它們。只有當執行處理將角色變更為 PRIMARY 時,才會在資料庫中執行 SOA 自動整個清除的排程器工作。

OCI 上管理伺服器的本機容錯移轉

當「管理伺服器」原先執行的主機發生失敗時,您可以在相同網站的不同節點中啟動「管理伺服器」。不需要將系統完整切換至其他網站。

備註:

只有當 WebLogic 管理伺服器使用 VIP 作為本機高可用性,且管理伺服器組態資料夾 (ASERVER_HOME) 位於共用位置時,才適用此生命週期工作。

若要執行此操作,請參閱驗證管理伺服器的手動容錯移轉。這可為管理伺服器提供本機容錯移轉保護。請注意,受管理伺服器不需要此項目,因為受管理伺服器會根據「自動服務移轉」功能提供本機高可用性保護。

當主要資料庫在 OCI 網站執行時,如果您需要將管理伺服器容錯移轉至其他主機,則可以依照該程序進行。不過,「將 ADMINVHN 虛擬 IP 位址移轉至第二個主機」步驟需要其他動作。

執行下列步驟,從執行「管理伺服器」的 SOA 主機切離 VIP,然後將它連附至正在移動「管理」的 SOA 主機 (將 VIP 從 SOAHOST1 切離,然後將它連附至 OCI 網站上的 SOAHOST2):

  1. root 使用者身分,在 SOAHOST1 中執行下列命令,從網路介面移除管理伺服器的 VIP。
    1. 如果管理伺服器仍在執行中,請將其停止
    2. 確認 VIP 在哪裡執行。
      ip addr show dev ens3
    3. 從網路介面移除 IP。
      ip addr del 100.70.8.120/20 dev ens3
  2. SOAHOST1 取消連附管理伺服器的 VIP。
    1. 連線至 OCI 主控台,然後選取適當的區域與區間。
    2. 瀏覽至運算執行處理。按一下計算例項,然後按一下 SOAHOST1
    3. 按一下連附的 VNIC,然後選取「管理伺服器 VIP」連附的 VNIC。
    4. 按一下 IPv4 位址,然後編輯「管理伺服器」所使用的 VIP。
    5. 將 VIP 的 IP 位址和 fqdn 名稱儲存在備註中 (例如:100.70.8.120、Hydrsoa-vip.midtiersubnet.hydrvcn.oraclevcn.com)。
    6. 按一下刪除專用 IP
  3. 將管理伺服器的 VIP 附加至 SOAHOST2。
    1. 瀏覽至運算執行處理。按一下計算例項,然後按一下 SOAHOST2
    2. 按一下連附的 VNIC,然後選取「管理伺服器 VIP」連附的 VNIC。
    3. 按一下指定次要專用 IP 位址
    4. 按一下IPv4 位址,然後按一下指定次要專用 IP 位址
    5. 輸入之前使用的專用 IP 位址和主機名稱值。例如:100.70.8.120 (代表 IP) 和 hydrsoa-vip (代表主機名稱)。
  4. 以 root 使用者身分登入 SOAHOST2,然後執行下列命令,將管理伺服器的 VIP 連附至網路介面。
    1. 確認網路介面執行位置。
      ip addr show dev ens3
    2. 將「管理伺服器」的 VIP 新增至網路介面。
      ip addr add 100.70.8.120/20 dev ens3 label ens3:1
  5. 執行其餘步驟,如驗證管理伺服器的手動容錯移轉中所述。