Panduan ini menguraikan deployment konfigurasi Oracle Data Guard yang sangat tersedia di cluster standar Google Distributed Cloud (GDC) dengan air gap. 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 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. Operator ini menyederhanakan tugas-tugas kompleks seperti patching, pencadangan, dan pemulihan, sehingga memudahkan menjalankan workload Oracle stateful di lingkungan dalam container.
- Database utama: instance database dalam container baca-tulis yang aktif.
- Database standby: instance database replika hanya baca (atau baca-tulis selama failover).
- Data Guard Broker: mengatur konfigurasi dan transisi peran (switchover/failover) di antara database.
- Harbor: Container Registry pribadi yang digunakan untuk menghosting image database, operator, dan klien dalam lingkungan air-gapped.
- Cert-manager: operator mengandalkan
cert-manageruntuk mengelola sertifikat webhook.cert-managersudah diinstal sebelumnya di cluster standar GDC.
Dalam panduan ini, Anda akan men-deploy operator di namespace-nya sendiri
(oracle-database-operator-system) dan instance database di namespace
terpisah (oracle-dbs). Namespace ini diilustrasikan dengan kotak berbatas putus-putus
dalam diagram arsitektur.
Pemisahan ini direkomendasikan untuk kejelasan dan kemudahan pengelolaan. Namun, Anda bebas memutuskan cara mengatur database Anda. Misalnya, Anda dapat mengelompokkan database tertentu dalam 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 sepanjang panduan ini.
Beri pengguna Anda peran Cluster Admin dan Standard Cluster Admin untuk project Anda. Dengan demikian, Anda dapat membuat cluster Kubernetes standar dan mengelola resource-nya:
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 Harbor Instance Admin agar Anda dapat mengupload image ke instance Harbor:
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 di secret Kubernetes, sehingga cluster dapat mengambil image dari Harbor saat membuat instance container.
Buat cluster Kubernetes standar dengan setidaknya dua worker node, 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. Variabel ini akan digunakan di seluruh panduan untuk membuat dan mereferensikan resource:
Catatan:
- Dua instance database diberi nama arbitrer
bluedangreendi 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 diberi nama arbitrer
Catatan jaringan: Panduan ini mengasumsikan bahwa panduan ini 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 mesin tanpa akses internet, Anda harus mendapatkan aset ini secara terpisah (misalnya, menggunakan
docker saveuntuk mengekspor image dari mesin 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 image ke Harbor
Karena cluster dalam Google Distributed Cloud dengan air gap tidak dapat mengakses registry eksternal, Anda harus menduplikasi image yang diperlukan ke instance Harbor pribadi Anda.
Login ke Oracle Container Registry
Anda harus melakukan autentikasi terlebih dahulu dengan registry Oracle resmi untuk mengambil image dasar:
docker --config=./docker-oracle login container-registry.oracle.com
Setelah login berhasil, 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 image
Download image dari container registry Oracle resmi dan kirim ke project Harbor internal Anda. Anda akan menduplikasi operator, database perusahaan, dan klien instan untuk pengujian.
Duplikasi 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}Duplikasi image Oracle Database Enterprise:
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}Duplikasi 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 mengambil image dari Harbor menggunakan kredensial yang disimpan di ./docker-harbor/config.json lokal Anda. Anda
memerlukan secret ini di namespace operator (untuk mengambil image operator)
dan namespace database (untuk mengambil 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 pull 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 Oracle Database Operator
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, memasukkan konfigurasi
imagePullSecretsagar 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 akan 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 dicolokkan (PDB).edition: menentukan edisi database (enterprisedalam hal ini).image: mengarah ke image registry Harbor pribadi Anda.persistence: meminta volume persisten 50Gi menggunakan StorageClassstandard-rwo, yang membuat persistent disk zona di GDC.replicas: menetapkan jumlah pod ke 1 untuk instance.archiveLog: mengaktifkan mode Archive Log, yang diperlukan untuk Data Guard.flashBack: mengaktifkan Flashback Database, sehingga Anda dapat mengembalikan database ke titik waktu sebelumnya.forceLog: mengaktifkan Force Logging, memastikan semua perubahan dicatat ke dalam log, bahkan untuk operasi yang biasanya mengabaikan 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 database utama agar dapat diakses 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! #########################Pastikan 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 responsif, deploy instance standby. Perhatikan bahwa parameter Data Guard (archiveLog, flashBack, forceLog) diwarisi dari parameter utama dan tidak boleh ditentukan dalam manifes standby:
Men-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! #########################Pastikan 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 Data Guard Broker
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, bertransisi ke mode asinkron jika setidaknya satu standby dapat dijangkau.fastStartFailover: ditetapkan 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 yang 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. Dapatkan 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 yang 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 broker. Awalnya, layanan ini 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 menghubungkan IP:
kk get pod -n ${DB_NAMESPACE} -o wide
Menguji sinkronisasi data dan peran
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 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 peralihan manual untuk membalikkan peran, sehingga database hijau menjadi
database utama yang 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 peralihan:
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 instance database telah beralih peran dan database hijau kini menjadi database 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