持續可用性的代碼

您的應用系統在計畫性維護、非計畫性停機和資料庫負載不平衡時,會從應用系統隱藏持續提供。結合應用程式最佳實務、簡單組態和 Oracle Autonomous AI Database,可確保您的應用程式持續可供使用。

將計畫性維護活動從應用程式隱藏的最佳方式,是在維護時段之前,從每個資料庫工作負載位置通透地清空工作。Oracle 的連線集區和中間層 (包括 WebLogic Server、Oracle Universal Connection Pool (UCP)、OCI Session Pool 和 ODP.NET Unmanaged Provider) 均會感知快速應用程式通知 (FAN),因此在資料庫服務排定移動之前會收到通知,以允許在維護之前正常清空工作。FAN 通知會自動觸發關閉閒置連線、在新的服務位置開啟新連線,並允許在即將關閉的服務位置中完成作用中工作的可設定時間。主要的協力廠商 JDBC 中間層 (例如 IBM WebSphere) 允許在設定 UCP 時使用相同的行為。對於無法使用 UCP 的 JDBC 型應用程式,Oracle 會使用 Oracle 驅動程式和連線測試來提供解決方案。

為了隱藏因元件或通訊失敗而導致的非計畫性停機,Oracle 提供:

在配置的清空間隔期間,TAC 或 AC 也會在未清空 (完成其目前資料庫作業) 的階段作業進行計畫性維護時執行。

應用程式組態檢查清單

您可以依照下列準則,讓應用程式持續可供使用:

提示:請參閱 ATP-Direct 白皮書的持續可用性應用系統,瞭解使用自治式 AI 資料庫導入持續可用性應用系統的最佳做法。

使用資料庫服務連線

資料庫服務提供基礎基礎架構的透明度:FAN、連線資料、通透應用程式連續性 (TAC)、應用程式連續性 (AC)、切換、用戶群組,以及許多其他功能和作業都會在服務的使用上進行預測。

專用 Exadata 基礎架構上的自治式 AI 資料庫提供數對預先定義的資料庫服務供您選擇,如自治式 AI 資料庫的預先定義資料庫服務名稱中所述。所有提供 FAN 與清空功能,且兩個異動處理配對預設為啟用 TAC。API 可用來變更所有預先定義服務上的 TAC 或 AC 設定值 (請參閱啟用容錯移轉的服務屬性 )。

設定高可用性連線字串

Oracle 建議在連線至 Oracle Autonomous AI Database 時,使用下方顯示的連線字串組態。Oracle 提供的 tnsnames.ora 檔案中內嵌的連線字串會以此方式設定。請勿在用戶端上使用簡易連線命名,因為這類連線沒有高可用性功能。

所有 Oracle 從屬端版本 12.2 或更新版本都使用此 TNS:

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)
 (ADDRESS_LIST =
   (LOAD_BALANCE=on)
   (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
 (CONNECT_DATA=(SERVICE_NAME = *service-name*)))

使用 Oracle 驅動程式版本 12.1 或更舊版本的 JDBC 連線時,請使用下列項目

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 15)(RETRY_COUNT=20)(RETRY_DELAY=3)
(ADDRESS_LIST =
  (LOAD_BALANCE=on)
  (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME = *service-name*)))

使用快速應用程式通知 (FAN)

FAN 會在服務中斷或恢復時,立即通知應用程式。若無 FAN,應用程式可能會在硬體和網路故障後暫停 TCP/IP 逾時,並在資源繼續時省略以重新平衡。所有 Oracle 集區和所有 Oracle 應用程式伺服器都使用 FAN。第三方 JAVA 應用程式伺服器可以使用 UCP 來啟用 FAN。

使用 FAN 時不需要變更任何應用程式。這些只是組態變更。

若要在計畫性維護期間持續提供服務,請使用 FAN 搭配:

若為非計畫性停機期間的持續服務,請使用 FAN 搭配:

FAN 涵蓋範圍

FAN 事件與下列項目整合:

在用戶端中啟用 FAN

使用設定高可用性的連線字串中顯示的 TNS 別名。此連線字串用於在使用 Oracle Database 12c 或更新版本的從屬端驅動程式時,自動在從屬端設定 FAN 事件接收的 Oracle Notification Service (ONS) 訂閱。ONS 提供資料庫層與從屬端層之間的安全通訊路徑,讓從屬端能夠收到服務可用性 (元件停止或啟動) 的通知,以及執行時期負載平衡建議,以便在正常作業期間有更好的工作位置。

視用戶端而定,在應用程式組態特性中啟用 FAN,如下所示:

預先定義的資料庫服務提供使用 TLS 公事包式認證的 TCPS 連線。視應用程式類型 (JDBC 或 Oracle Call Interface) 而定,公事包組態必須遵循特定的規則,如設定 FAN 的從屬端 (包括選擇性公事包) 中所述。

使用建議的課堂練習允許清空

應用程式使用狀況的最佳作法是取出需要的時間連線,然後在目前的動作完成時將它們重新存入集區。這對於實現良好效能、在程式實際執行時重新平衡工作,以及在維護時段進行清空工作十分重要。

Oracle 建議您使用 FAN 感知 Oracle 連線集區來隱藏計畫性維護。您的應用程式使用具有 FAN 的 Oracle 集區並在要求之間傳回集區連線時,不會影響使用者。您不需要進行任何應用程式變更,即可使用 FAN。當 Oracle 連線集區收到 FAN 事件以進行計畫性停機時,會將執行處理的所有連線標示為要清空。已存回的連線會立即關閉,這樣就不會重複使用。當使用中的連線返回集區時,系統會關閉這些連線。這可讓所有連線在一段時間內正常關閉。

如果您使用第三方 Java 型應用程式伺服器,則達到清空和容錯移轉的最有效方法就是將集區化資料來源取代為 UCP。許多應用程式伺服器都支援這種方法,包括 Oracle WebLogic Server、IBM WebSphere、IBM Liberty、Apache Tomcat、Red Hat WildFly (JBoss)、Spring、Hibernate 以及其他。來自 Oracle 和其他提供者的白皮書 (例如 IBM) 說明如何將 UCP 與這些應用程式伺服器搭配使用。使用 UCP 作為資料來源,可允許將 UCP 功能 (例如快速連線容錯移轉、程式實際執行負載平衡、應用程式連續性和通透應用程式連續性) 與完整認證搭配使用。

啟用通透應用程式連續性 (TAC) 或應用程式連續性 (AC)

TAC 會以通透的方式追蹤和記錄階段作業和交易狀態,以便在可復原的中斷後復原資料庫階段作業。預先定義之資料庫服務的兩組異動處理預設為啟用 TAC。

AC 可自訂,讓您選擇重新執行副作用,或在 TAC 不允許的容錯移轉時新增複雜的回呼。如果您使用 Oracle 12c 驅動程式 (JDBC-thin 或 Oracle Call Interface),或者想要使用副作用或回呼進行自訂,或讓應用程式使用階段作業持續時間暫時表格等狀態,且不會跨要求進行清除,請使用 AC。

使用通透應用程式連續性的步驟

使用應用程式連續性的步驟

相關內容