Panduan ini menguraikan deployment konfigurasi Oracle Data Guard multi-zona dengan ketersediaan tinggi di cluster standar air gap Google Distributed Cloud (GDC). Penyiapan ini menggunakan Oracle Database Enterprise Edition dan memanfaatkan kemampuan GDC yang ada untuk penyimpanan dan jaringan.
Deployment ini menggunakan Oracle Database Operator for Kubernetes resmi, yang mengotomatiskan pengelolaan siklus proses database.
Arsitektur
Arsitektur ini menjelaskan deployment Oracle Database dengan ketersediaan tinggi yang dikelola oleh Oracle Database Operator dalam cluster standar GDC. Deployment dengan ketersediaan tinggi terdiri dari database utama dan database standby yang dikonfigurasi dengan Data Guard untuk replikasi dan failover.

Komponen utamanya adalah sebagai berikut:
- Project GDC: container project untuk resource Anda.
- Cluster Kubernetes standar: cluster standar yang menyediakan resource komputasi.
- Oracle Database Operator: operator Kubernetes yang mengotomatiskan penyediaan, pengelolaan siklus proses, dan kemampuan observasi database Oracle. Layanan ini menyederhanakan tugas-tugas kompleks seperti patching, pencadangan, dan pemulihan, sehingga memudahkan Anda menjalankan workload Oracle stateful di lingkungan dalam container.
- Database utama: instance database dalam container baca-tulis aktif.
- Database standby: instance database replika hanya baca (atau baca-tulis selama failover).
- Broker Data Guard: mengorkestrasi konfigurasi dan transisi peran (pengalihan/pengalihan ke server cadangan) antara database.
- Harbor: registry container pribadi yang digunakan untuk menghosting database, operator, dan image klien dalam lingkungan yang terisolasi.
- Cert-manager: operator mengandalkan
cert-manageruntuk mengelola sertifikat webhook.cert-managersudah diinstal sebelumnya di cluster standar GDC.
Dalam panduan ini, Anda men-deploy operator di namespace-nya sendiri
(oracle-database-operator-system) dan instance database di namespace
terpisah (oracle-dbs). Namespace ini diilustrasikan dengan kotak
berbingkai putus-putus dalam diagram arsitektur.
Pemisahan ini direkomendasikan untuk kejelasan dan kemudahan pengelolaan. Namun, Anda yang memutuskan cara mengatur database Anda. Misalnya, Anda dapat mengelompokkan database tertentu di namespace yang berbeda untuk mengelola kontrol akses terperinci (RBAC) berdasarkan kebutuhan workload, kepemilikan tim, atau spesifikasi keamanan.
Sebelum memulai
Sebelum memulai deployment, Anda harus memastikan bahwa lingkungan Anda memenuhi persyaratan berikut:
- Buat project yang akan berfungsi sebagai penampung untuk semua resource yang dihasilkan di seluruh panduan ini.
Berikan peran Cluster Admin dan Standard Cluster Admin kepada pengguna Anda untuk project Anda. Dengan begitu, Anda dapat membuat cluster Kubernetes standar dan mengelola sumber dayanya:
export PROJECT_ID=PROJECT_ID export USER_NAME=USER_NAME gdcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="user:${USER_NAME}" \ --role=cluster-admin gdcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="user:${USER_NAME}" \ --role=standard-cluster-adminBuat instance Harbor dan project Harbor untuk menghosting image container yang diperlukan untuk panduan ini.
Beri pengguna Anda peran Admin Instance Harbor agar Anda dapat mengupload image ke instance Harbor Anda:
gdcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="user:${USER_NAME}" \ --role=harbor-instance-adminBuat akun robot Harbor di project Harbor Anda. Selanjutnya dalam panduan ini, kredensial akun robot akan disimpan dalam secret Kubernetes, sehingga cluster dapat menarik image dari Harbor saat membuat instance container.
Buat cluster Kubernetes standar dengan minimal dua node pekerja, yang masing-masing memiliki memori minimal 16 GB. Contoh:
kubectl --kubeconfig MGMT_API_KUBECONFIG create -f - <<EOF apiVersion: cluster.gdc.goog/v1 kind: Cluster metadata: name: ${CLUSTER_NAME} namespace: ${PROJECT_ID} spec: nodePools: - machineTypeName: n3-standard-8-gdc nodeCount: 2 name: ${CLUSTER_NAME}-node-pool EOFSiapkan variabel lingkungan Anda. Ini akan digunakan di seluruh panduan untuk membuat dan mereferensikan resource:
Catatan:
- Dua instance database tersebut diberi nama
bluedangreensecara acak di seluruh panduan ini. Awalnya, instanceblueadalah instance utama, dangreenadalah instance standby.
# General info export PROJECT_ID="PROJECT_ID" export ZONE="ZONE" export ORG_NAME="ORG_NAME" export CLUSTER_NAME="CLUSTER_NAME" # Software versions export ORACLE_OPERATOR_VERSION="2.1.0" export ORACLE_DB_VERSION="21.3.0.0" # Namespaces export ORACLE_OPERATOR_NAMESPACE="ORACLE_OPERATOR_NAMESPACE" export DB_NAMESPACE="DATABASE_NAMESPACE" # Harbor config export HARBOR_INSTANCE_PROJECT_ID="HARBOR_PROJECT_ID" export HARBOR_INSTANCE_NAME="HARBOR_INSTANCE_NAME" export HARBOR_INSTANCE_URL="HARBOR_INSTANCE_URL" export HARBOR_PROJECT="HARBOR_PROJECT" export HARBOR_PULL_SECRET_NAME="HARBOR_PULL_SECRET_NAME" export HARBOR_ROBOT_ACCOUNT="robot\$HARBOR_PROJECT+ROBOT_NAME" export HARBOR_ROBOT_SECRET="HARBOR_ROBOT_SECRET" # Oracle database config export ADMIN_PASSWORD="ADMIN_PASSWORD" export ADMIN_PASSWORD_SECRET_NAME="ADMIN_PASSWORD_SECRET_NAME" # Database names export DB_NAME_BLUE="database-blue" export DB_NAME_GREEN="database-green"- Dua instance database tersebut diberi nama
Catatan jaringan: Panduan ini mengasumsikan bahwa panduan dijalankan dari node bastion yang memiliki akses ke GDC API dan juga memiliki akses ke internet untuk mendownload manifes dan image container Oracle Operator. Jika Anda menjalankan ini dari komputer tanpa akses internet, Anda harus mendapatkan aset ini secara terpisah (misalnya, menggunakan
docker saveuntuk mengekspor gambar dari komputer yang terhubung dandocker loaduntuk mengimpornya) dan menguploadnya dengan aman ke lingkungan Anda sebelum melanjutkan.Sebelum melanjutkan, Anda harus membuat akun dan mendapatkan token API di container-registry.oracle.com, lalu menyetujui perjanjian lisensi untuk image Oracle Database Enterprise Edition dan Oracle Instant Client.
Memuat gambar ke Harbor
Karena cluster dalam Google Distributed Cloud dengan air gap tidak dapat mengakses registry eksternal, Anda harus mencerminkan image yang diperlukan ke instance Harbor pribadi Anda.
Login ke Oracle Container Registry
Anda harus melakukan autentikasi terlebih dahulu dengan registry Oracle resmi untuk menarik image dasar:
docker --config=./docker-oracle login container-registry.oracle.com
Setelah berhasil login, kredensial akan disimpan di
./docker-oracle/config.json.
Login ke Harbor
Lakukan autentikasi dengan instance Harbor pribadi Anda:
docker --config=./docker-harbor login ${HARBOR_INSTANCE_URL} \
-u ${HARBOR_ROBOT_ACCOUNT} \
-p ${HARBOR_ROBOT_SECRET}
Setelah berhasil login, kredensial akun robot akan disimpan di
./docker-harbor/config.json.
Menarik, memberi tag, dan mengirim gambar
Download image dari registry container Oracle resmi dan kirim ke project Harbor internal Anda. Anda akan mencerminkan operator, database perusahaan, dan klien instan untuk pengujian.
Cerminkan image operator database Oracle:
docker --config=./docker-oracle pull \ container-registry.oracle.com/database/operator:${ORACLE_OPERATOR_VERSION} \ --platform linux/amd64 docker tag container-registry.oracle.com/database/operator:${ORACLE_OPERATOR_VERSION} \ ${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-operator:${ORACLE_OPERATOR_VERSION} docker --config=./docker-harbor push \ ${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-operator:${ORACLE_OPERATOR_VERSION}Mencerminkan image Enterprise database Oracle:
docker --config=./docker-oracle pull \ container-registry.oracle.com/database/enterprise:${ORACLE_DB_VERSION} \ --platform linux/amd64 docker tag container-registry.oracle.com/database/enterprise:${ORACLE_DB_VERSION} \ ${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-enterprise:${ORACLE_DB_VERSION} docker --config=./docker-harbor push \ ${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-enterprise:${ORACLE_DB_VERSION}Mirror image klien instan Oracle:
docker --config=./docker-oracle pull \ container-registry.oracle.com/database/instantclient:latest \ --platform linux/amd64 docker tag container-registry.oracle.com/database/instantclient:latest \ ${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-instantclient:latest docker --config=./docker-harbor push \ ${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-instantclient:latest
Mengonfigurasi akses cluster
Sebelum men-deploy resource, ambil kredensial untuk cluster standar Anda dan buat alias yang mudah:
Ambil file kubeconfig untuk cluster standar Anda:
KUBECONFIG=kubeconfig-${CLUSTER_NAME}.yaml gdcloud clusters \ get-credentials ${CLUSTER_NAME} \ --standard \ --project ${PROJECT_ID} \ --zone ${ZONE}Buat alias
kkuntuk menyederhanakan perintah berikutnya:alias kk="kubectl --kubeconfig kubeconfig-${CLUSTER_NAME}.yaml"
Membuat secret
Buat Secret Kubernetes untuk mengizinkan cluster menarik image dari Harbor menggunakan kredensial yang disimpan di ./docker-harbor/config.json lokal Anda. Anda
memerlukan secret ini di namespace operator (untuk menarik image operator)
dan namespace database (untuk menarik image database).
Buat namespace untuk operator:
kk create ns ${ORACLE_OPERATOR_NAMESPACE}Buat secret pull untuk operator:
kk create secret docker-registry ${HARBOR_PULL_SECRET_NAME} \ --from-file=.dockerconfigjson=./docker-harbor/config.json \ -n ${ORACLE_OPERATOR_NAMESPACE}Buat namespace untuk database:
kk create ns ${DB_NAMESPACE}Buat secret penarikan image untuk container database:
kk create secret docker-registry ${HARBOR_PULL_SECRET_NAME} \ --from-file=.dockerconfigjson=./docker-harbor/config.json \ -n ${DB_NAMESPACE}Buat secret untuk sandi administratif database:
kk create secret generic ${ADMIN_PASSWORD_SECRET_NAME} \ --from-literal=password=${ADMIN_PASSWORD} \ -n ${DB_NAMESPACE}
Menginstal Operator Database Oracle
Sekarang, instal Oracle Database Operator ke cluster Anda dengan menerapkan tiga manifes:
Cluster Role Binding: Menyiapkan izin yang diperlukan agar operator dapat berfungsi di seluruh cluster.
kk apply -f https://raw.githubusercontent.com/oracle/oracle-database-operator/refs/tags/v${ORACLE_OPERATOR_VERSION}/rbac/cluster-role-binding.yamlRBAC Node: Memberikan izin untuk membaca topologi node, yang sangat penting untuk penjadwalan pod yang benar.
kk apply -f https://raw.githubusercontent.com/oracle/oracle-database-operator/refs/tags/v${ORACLE_OPERATOR_VERSION}/rbac/node-rbac.yamlDeployment Operator: Men-deploy pod operator dan definisi resource kustom. Perintah ini mendownload manifes resmi, mengganti jalur image dengan URL Harbor Anda, menyuntikkan konfigurasi
imagePullSecretssehingga Kubernetes dapat melakukan autentikasi dengan Harbor, dan menerapkan hasilnya:curl -L https://raw.githubusercontent.com/oracle/oracle-database-operator/refs/tags/v${ORACLE_OPERATOR_VERSION}/oracle-database-operator.yaml \ | sed "s|container-registry.oracle.com/database/operator:latest|${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-operator:${ORACLE_OPERATOR_VERSION}|g" \ | awk "/terminationGracePeriodSeconds: 10/{print; print \" imagePullSecrets:\n - name: ${HARBOR_PULL_SECRET_NAME}\"; next}1" \ | kk apply -f -Tunggu hingga pod operator berjalan:
kk get pods -n ${ORACLE_OPERATOR_NAMESPACE} --watchOutputnya akan terlihat seperti berikut ini:
NAME READY STATUS RESTARTS AGE oracle-database-operator-controller-manager-5f7b56874d-k9v4z 1/1 Running 0 45s oracle-database-operator-controller-manager-5f7b56874d-n2x8m 1/1 Running 0 45s oracle-database-operator-controller-manager-5f7b56874d-r6z7q 1/1 Running 0 45s
Men-deploy database utama dan standby
Sekarang Anda men-deploy dua instance database di namespace yang sama secara berurutan.
Men-deploy instance utama
Jalankan perintah berikut untuk membuat instance database utama:
apiVersion: database.oracle.com/v4 kind: SingleInstanceDatabase metadata: name: ${DB_NAME_BLUE} namespace: ${DB_NAMESPACE} spec: replicas: 1 edition: enterprise image: pullFrom: "${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-enterprise:${ORACLE_DB_VERSION}" pullSecrets: ${HARBOR_PULL_SECRET_NAME} prebuiltDB: true sid: ORCLBLUE pdbName: ORCLPDB1 archiveLog: true flashBack: true forceLog: true adminPassword: secretName: "${ADMIN_PASSWORD_SECRET_NAME}" secretKey: "password" persistence: size: "50Gi" storageClass: "standard-rwo" accessMode: "ReadWriteOnce" resources: requests: memory: "4Gi"Parameter konfigurasi utama:
sid/pdbName: menentukan ID sistem (SID) dan nama database yang dapat di-plug (PDB).edition: menentukan edisi database (enterprisedalam kasus ini).image: mengarah ke image registry Harbor pribadi Anda.persistence: meminta volume persisten 50 Gi menggunakan StorageClassstandard-rwo, yang membuat persistent disk zona di GDC.replicas: menetapkan jumlah pod menjadi 1 untuk instance.archiveLog: mengaktifkan mode Log Arsip, yang diperlukan untuk Data Guard.flashBack: mengaktifkan Flashback Database, sehingga Anda dapat mengembalikan database ke titik waktu sebelumnya.forceLog: mengaktifkan Logging Paksa, sehingga memastikan semua perubahan dicatat, bahkan untuk operasi yang biasanya melewati logging.
Untuk mengetahui daftar lengkap opsi konfigurasi, termasuk parameter init kustom dan batas resource, lihat dokumentasi resmi.
Pembuatan database memerlukan banyak resource dan mungkin memerlukan waktu 10 hingga 20 menit.
Tunggu hingga database siap sepenuhnya sebelum melanjutkan. Hal ini sangat penting karena database standby memerlukan akses ke database utama untuk membuat replikasi.
Tunggu hingga pod database berstatus
Running:kk get po -n ${DB_NAMESPACE} -l app=${DB_NAME_BLUE} -wOutput akan terlihat seperti berikut:
NAME READY STATUS RESTARTS AGE database-blue-i5xdj 0/1 Pending 0 0s database-blue-i5xdj 0/1 Pending 0 0s database-blue-i5xdj 0/1 Pending 0 1s database-blue-i5xdj 0/1 Init:0/1 0 1s database-blue-i5xdj 0/1 PodInitializing 0 98s database-blue-i5xdj 0/1 Running 0 99s database-blue-i5xdj 1/1 Running 0 99sKemudian, amati log dan tunggu pesan
DATABASE IS READY TO USE!:kk logs -n ${DB_NAMESPACE} -l app=${DB_NAME_BLUE} -fOutput harus berisi hal berikut:
######################### DATABASE IS READY TO USE! #########################Verifikasi bahwa statusnya adalah
Healthydan perannya adalahPRIMARY:kk get sidb -n ${DB_NAMESPACE} ${DB_NAME_BLUE}Output akan terlihat seperti berikut:
NAME EDITION STATUS ROLE database-blue Enterprise Healthy PRIMARY
Men-deploy instance standby
Setelah instance utama dalam kondisi baik, deploy instance standby. Perhatikan bahwa parameter Data
Guard (archiveLog, flashBack, forceLog) diwarisi dari
primer dan tidak boleh ditentukan dalam manifes standby:
Deploy instance standby:
apiVersion: database.oracle.com/v4 kind: SingleInstanceDatabase metadata: name: ${DB_NAME_GREEN} namespace: ${DB_NAMESPACE} spec: replicas: 1 edition: enterprise image: pullFrom: "${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-enterprise:${ORACLE_DB_VERSION}" pullSecrets: ${HARBOR_PULL_SECRET_NAME} prebuiltDB: true sid: ORCLGREEN pdbName: ORCLPDB1 adminPassword: secretName: "${ADMIN_PASSWORD_SECRET_NAME}" secretKey: "password" createAs: standby primaryDatabaseRef: ${DB_NAME_BLUE} persistence: size: "50Gi" storageClass: "standard-rwo" accessMode: "ReadWriteOnce" resources: requests: memory: "4Gi"Tunggu hingga pod database berstatus
Running:kk get po -n ${DB_NAMESPACE} -l app=${DB_NAME_GREEN} -wOutput akan terlihat seperti berikut:
NAME READY STATUS RESTARTS AGE database-green-q1gur 0/1 Pending 0 0s database-green-q1gur 0/1 Pending 0 0s database-green-q1gur 0/1 Pending 0 1s database-green-q1gur 0/1 Init:0/1 0 1s database-green-q1gur 0/1 PodInitializing 0 98s database-green-q1gur 0/1 Running 0 99s database-green-q1gur 1/1 Running 0 99sKemudian, amati log dan tunggu pesan
DATABASE IS READY TO USE!:kk logs -n ${DB_NAMESPACE} -l app=${DB_NAME_GREEN} -fOutput harus berisi hal berikut:
######################### DATABASE IS READY TO USE! #########################Verifikasi bahwa statusnya adalah
Healthydan perannya adalahPHYSICAL_STANDBY:kk get sidb -n ${DB_NAMESPACE}Output akan terlihat seperti berikut:
NAME EDITION STATUS ROLE database-blue Enterprise Healthy PRIMARY database-green Healthy PHYSICAL_STANDBY
Mengonfigurasi Broker Data Guard
Deploy
DataguardBrokeruntuk mengelola konfigurasi Data Guard:apiVersion: database.oracle.com/v4 kind: DataguardBroker metadata: name: broker-blue-green namespace: ${DB_NAMESPACE} spec: primaryDatabaseRef: ${DB_NAME_BLUE} standbyDatabaseRefs: - ${DB_NAME_GREEN} protectionMode: MaxAvailability fastStartFailover: false loadBalancer: trueParameter konfigurasi utama:
protectionMode: ditetapkan keMaxAvailabilityuntuk memastikan tidak ada kehilangan data jika setidaknya satu standby tersedia, beralih ke mode asinkron jika setidaknya satu standby dapat dijangkau.fastStartFailover: tetapkan kefalseuntuk menonaktifkan failover otomatis. Jika diaktifkan, proses Observer dapat otomatis memicu failover jika database utama tidak tersedia.loadBalancer: ditetapkan ketrueuntuk membuat layananLoadBalancerKubernetes untuk broker, yang menyediakan alamat IP eksternal stabil yang selalu merutekan ke database utama saat ini.
Pantau status broker hingga melaporkan
Healthy:kk get dataguardbroker -n ${DB_NAMESPACE} -wOutput akan terlihat seperti berikut:
NAME PRIMARY STANDBYS PROTECTION MODE CONNECT STR STATUS FSFO broker-blue-green MaxAvailability Creating broker-blue-green MaxAvailability Creating broker-blue-green ORCLBLUE ORCLGREEN MaxAvailability 10.0.0.25:32345/DATAGUARD Creating false broker-blue-green ORCLBLUE ORCLGREEN MaxAvailability 10.0.0.25:32345/DATAGUARD Healthy falseDataguardBrokermembuat layanan Kubernetes (broker-blue-green) yang secara otomatis merutekan traffic ke database utama saat ini. Hal ini memberikan titik koneksi yang stabil untuk aplikasi. Mendapatkan layanan ini:kk get svc -n ${DB_NAMESPACE} broker-blue-greenOutput akan terlihat seperti berikut. Perhatikan penyediaan
CLUSTER-IPuntuk klien dalam cluster, danEXTERNAL-IPuntuk klien eksternal menggunakan load balancer:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE broker-blue-green LoadBalancer 10.0.19.198 100.66.38.138 1521:31116/TCP,5500:31842/TCP 8mPeriksa endpoint layanan pialang. Awalnya harus mengarah ke alamat IP pod biru:
kk get endpoints -n ${DB_NAMESPACE} broker-blue-greenOutput-nya akan terlihat seperti berikut, dengan IP pod biru akan muncul, bukan
BLUE_POD_IP:NAME ENDPOINTS broker-blue-green [BLUE_POD_IP]:5500,[BLUE_POD_IP]:1521Periksa pod database untuk mengorelasikan IP:
kk get pod -n ${DB_NAMESPACE} -o wide
Menguji sinkronisasi dan peran data
Sekarang Anda memverifikasi replikasi dengan menulis data ke database utama dan membacanya dari database standby menggunakan pod klien dalam cluster.
Menulis ke database utama dengan layanan broker
Deploy pod sementara untuk terhubung ke database utama menggunakan layanan broker yang stabil:
kk run sqlplus -n ${DB_NAMESPACE} --rm -it --restart=Never \ --image=${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-instantclient:latest \ --image-pull-policy=Always \ --overrides='{"spec": {"imagePullSecrets": [{"name": "'${HARBOR_PULL_SECRET_NAME}'"}]}}' \ -- sqlplus sys/${ADMIN_PASSWORD}@broker-blue-green:1521/ORCLPDB1 as sysdbaBuat tabel pengujian:
CREATE TABLE employees (id NUMBER, name VARCHAR2(50)); INSERT INTO employees VALUES (1, 'John Doe'); COMMIT; SELECT * FROM employees; exit;Output akan terlihat seperti berikut:
ID NAME ---------- -------------------------------------------------- 1 John Doe
Membaca dari standby (akses langsung)
Deploy pod sementara untuk terhubung langsung ke layanan standby:
kk run sqlplus -n ${DB_NAMESPACE} --rm -it --restart=Never \ --image=${HARBOR_INSTANCE_URL}/${HARBOR_PROJECT}/oracle-instantclient:latest \ --image-pull-policy=Always \ --overrides='{"spec": {"imagePullSecrets": [{"name": "'${HARBOR_PULL_SECRET_NAME}'"}]}}' \ -- sqlplus sys/${ADMIN_PASSWORD}@${DB_NAME_GREEN}:1521/ORCLPDB1 as sysdbaVerifikasi replikasi data:
SELECT * FROM employees; exit;Output akan terlihat seperti berikut:
ID NAME ---------- -------------------------------------------------- 1 John Doe
Melakukan pengalihan manual
Picu switchover manual untuk membalikkan peran, sehingga database hijau menjadi
database utama baru. Operator memerlukan SID (misalnya, ORCLGREEN) untuk
target pengalihan.
Jalankan perintah berikut:
kk patch dataguardbroker broker-blue-green -n ${DB_NAMESPACE} --type='merge' \ -p "{\"spec\":{\"setAsPrimaryDatabase\":\"ORCLGREEN\"}}"Pantau progres pengalihan:
kk get sidb -n ${DB_NAMESPACE} -wOutput akan terlihat seperti berikut setelah pengalihan selesai:
NAME EDITION STATUS ROLE database-blue Enterprise Healthy PHYSICAL_STANDBY database-green Healthy PRIMARYPastikan bahwa instance database telah beralih peran dan database hijau kini menjadi yang utama:
kk get dataguardbroker -n ${DB_NAMESPACE}Outputnya akan terlihat seperti berikut ini:
NAME PRIMARY STANDBYS PROTECTION MODE broker-blue-green ORCLGREEN ORCLBLUE MaxAvailabilityPastikan endpoint layanan
broker-blue-greentelah diperbarui untuk mengarah ke IP pod hijau:kk get endpoints -n ${DB_NAMESPACE} broker-blue-greenOutput akan terlihat seperti berikut, dengan IP pod hijau akan muncul, bukan
GREEN_POD_IP:NAME ENDPOINTS broker-blue-green [GREEN_POD_IP]:5500,[GREEN_POD_IP]:1521
Langkah berikutnya
- Arsitektur referensi database Oracle yang dikelola sendiri
- Men-deploy database Oracle yang dikelola sendiri