使用函數和自治式 JSON 監控 Oracle Cloud Infrastructure 備份

此函數會將 Oracle Cloud 備份事件插入自治式資料庫。此使用範例和 Oracle 建議您使用自治式 JSON,因為 Oracle Cloud Infrastructure (OCI) 上的事件是 JSON 文字。例如,使用 OCI File Storage 時,快照 (亦即備份) 會建立類似以下的事件:
```
{
  "eventType" : "com.oraclecloud.filestorage.createsnapshot",
  "cloudEventsVersion" : "0.1",
  "eventTypeVersion" : "2.0",
  "source" : "FileStorage",
  "eventTime" : "2022-11-23T21:30:20Z",
  "contentType" : "application/json",
  "data" : {
    "compartmentId" : "ocid1.compartment.oc1..********************",
    "compartmentName" : "ChristophePruvost",
    "resourceName" : "Snapshot-20221123-2130-10",
    "resourceId" : "ocid1.snapshot.oc1.********************",
    "availabilityDomain" : "AD2",
    "freeformTags" : { },
    "definedTags" : {
      "Mandatory_Tags" : {
        "Owner" : "oracleidentitycloudservice/firstname.name@company.com",
        "Schedule" : "OnDemand_UTC+1",
        "CreatedOn" : "2022-11-23T21:30:11.405Z"
      }
    },
    "additionalDetails" : {
      "X-Real-Port" : 60458
    }
  },
  "eventID" : "d520f88c-cd3d-4d1f-9a39-d935db5dcd8b",
  "extensions" : {
    "compartmentId" : "ocid1.compartment.oc1..*****************************"
  }
}
```

將事件插入 Autonomous JSON 之後,您可以輕鬆建立 APEX 應用程式,以便在單一位置監控所有 OCI 備份。此外,身為 OCI 管理員,您可以避免大量的電子郵件通知,還可以使用 APEX 建立有效的備份報表。若要啟用此功能,您必須停用下列架構圖表中顯示的「電子郵件傳遞」元件。

架構

下圖說明此解決方案的參考架構。

mon-bu-funs-auto-json-arch.png 的描述如下
mon-bu-funs-auto-json-arch.png 圖解描述

mon-bu-funs-auto-json-arch-oracle.zip

注意:

「檔案儲存快照」和「DBCS 備份」只是本實行的兩個範例。它的執行方式與 OCI 上的所有備份事件類似,包括區塊儲存備份、開機儲存備份、ExaCS 備份等等。

架構具有下列元件:

  • 區域

    Oracle Cloud Infrastructure 區域是一個本地化的地理區域,包含一或多個資料中心 (稱為可用性網域)。區域與其他區域無關,因此廣大的距離可加以區隔 (跨國家或甚至洲)。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。就像傳統的資料中心網路,VCN 可讓您完全控制網路環境。VCN 可以有多個非重疊 CIDR 區塊,而您可以在建立 VCN 之後進行變更。您可以將 VCN 區隔成子網路,然後對區域或可用性網域進行調整。每個子網路都是由不與 VCN 中其他子網路重疊的連續位址範圍所組成。您可以在建立子網路後變更其大小。子網路可以是公用網路或專用子網路。

  • 檔案儲存

    Oracle Cloud Infrastructure File Storage 服務提供持久、可擴展、安全的企業級網路檔案系統。您可以從任何裸機、虛擬機器或容器執行處理連線至檔案儲存服務檔案系統。「檔案儲存快照」是檔案系統的備份,可在您想要回復檔案系統以進行複製時使用。

  • Database Cloud Service (DBCS)

    DBCS 是 Oracle Database 的完整託管服務。DBCS 備份是您可以用來回復資料庫的資料備份。

  • OCI 事件服務

    Oracle Cloud Infrastructure Events Service 使用符合 Cloud Native Computing Foundation (CNCF) Cloud 活動標準的事件來追蹤資源變更。開發者可以使用 Functions 觸發程式碼、寫入串流或使用 Notifications 傳送警示,即時回應變更。

  • OCI 函數

    Oracle Cloud Infrastructure OCI Functions 是一款無伺服器、事件導向的服務,可讓開發者建置、執行及擴展應用程式,而無需佈建或管理任何基礎架構。您只需支付函數執行時使用的資源。Functions 可與其他 OCI 服務和 Oracle Saar 應用程式整合。根據開放的架構,OCI Functions 可移植到其他雲端或內部部署環境。

  • 自治式 JSON

    Oracle Autonomous JSON Database 是一項功能範圍的服務,可使用 SQL 或文件 API 儲存和擷取 JSON 文件集合。

  • 電子郵件傳遞

    Oracle Cloud Infrastructure Email Delivery 服務提供快速可靠的託管解決方案,以發送安全、大量行銷和交易電子郵件。

建議

若要實作此功能,Oracle 建議您完成部分可用的 LiveLabs 以更加瞭解程序並準備環境。

  • Oracle OCI 函數

    首先,您必須熟悉 OCI Functions 的實作。遵循 LiveLab 的設定 Oracle Functions 。若要加速處理,請從 GitHub 上的 oracle-functions-samples 複製並貼上範例代碼。

  • 自治式 JSON

    接下來,若要熟悉在 Oracle 資料庫中使用 JSON,請按照 LiveLab 的指示進行,在 Oracle Database 中開發 JSON 和 SODA 。然後,依照 LiveLab 的 Event Driven Oracle Functions with Autonomous Data Warehouse 進行。

  • 使用 APEX 監督

    最後,瞭解如何監控 APEX 中的流程,遵循 LiveLabs Low Code Development with Autonomous Database

    完成 LiveLab 之後,請建立 JSON 事件的 SQL 檢視,並使用下列程式碼範例建立自己的 APEX 監督應用程式。請注意,此視觀表與「瞭解如何使用 Functions 和 Autonomous JSON 監控 Oracle Cloud Infrastructure 備份」中顯示的 JSON 事件範例結構相關。
     CREATE OR REPLACE VIEW j_backup_detail_view
        AS SELECT ba.id, ba.created_on, ba.last_modified, ba.version, jt.*
        FROM backup ba,
        json_table(ba.json_document, '$'
                    COLUMNS (
                        eventtype        VARCHAR2(100)        PATH '$.eventType',
                        cloudeventsversion        VARCHAR2(10)  PATH '$.cloudEventsVersion',
                        eventtypeversion        VARCHAR2(10) PATH '$.eventTypeVersion',
                        source           VARCHAR2(50)  PATH '$.source',
                        compartmentid    VARCHAR2(200) PATH '$.data.compartmentId',
                        compartmentname    VARCHAR2(100) PATH '$.data.compartmentName',
                        resourcename    VARCHAR2(200) PATH '$.data.resourceName',
                        resourceid    VARCHAR2(200) PATH '$.data.resourceId',
                        availabilitydomain    VARCHAR2(200) PATH '$.data.availabilityDomain'
                    )) jt;
    
        create search index srchidx on backup (json_document) for json; 

    現在開始自己的實作。

探索更多

進一步瞭解使用 Functions 和自治式 JSON 監控 OCI 備份。

檢閱這些其他解決方案:

確認

  • 作者:Christophe Pruvost

  • 貢獻者:Oracle EMEA 解決方案中心