在上一篇博客中,我在oracle 數據庫一體機(打了最新的19.14補丁)中使用Oracle 21c安裝了2個數據庫。現在,讓我們繼續演示如何在這兩臺服務器之間配置Date Guard。
一種可供選擇的方式是在比如非ODA環境中那樣手動創建Date Guard。我展示的第二種方式,通過使用odacli命令配置Date Guard。
Oracle文檔中描述了所有步驟
第一步是創建備份配置。/u01/backup可以設置為NFS共享,也可以不是。在本文示例中,它只是我在每個服務器中創建的一個本地目錄。
[root@mdidbi42 u01]# odacli create-backupconfig -n nfsbkup -w 10 -d NFS -c /u01/backup/
{
"jobId" : "b051745b-702a-48ff-92c2-3c80a16e73f2",
"status" : "Created",
"message" : "backup config creation",
"reports" : [ ],
"createTimestamp" : "April 29, 2022 09:28:37 AM CEST",
"resourceList" : [ {
"resourceId" : "8da9a983-6afa-45b9-bd66-a66d1420e048",
"resourceType" : null,
"resourceNewType" : "BackupConfig",
"jobId" : "b051745b-702a-48ff-92c2-3c80a16e73f2",
"updatedTime" : null
} ],
"description" : "create backup config:nfsbkup",
"updatedTime" : "April 29, 2022 09:28:37 AM CEST"
}
[root@mdidbi42 u01]#
檢查任務狀態
[root@mdidbi42 u01]# odacli describe-job -i "b051745b-702a-48ff-92c2-3c80a16e73f2"
Job details
----------------------------------------------------------------
ID: b051745b-702a-48ff-92c2-3c80a16e73f2
Description: create backup config:nfsbkup
Status: Success
Created: April 29, 2022 9:28:37 AM CEST
Message: backup config creation
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Backup config metadata persist April 29, 2022 9:28:37 AM CEST April 29, 2022 9:28:37 AM CEST Success
[root@mdidbi42 u01]#
然后,我們需要將備份相關配置與數據庫進行關聯
[root@mdidbi42 orabackups]# odacli modify-database -in MDIDB1 -bin nfsbkup
{
"jobId" : "1220f80f-098e-4a3f-98db-e83f00a260a4",
"status" : "Created",
"message" : "Modify database",
"reports" : [ ],
"createTimestamp" : "April 29, 2022 09:30:03 AM CEST",
"resourceList" : [ {
"resourceId" : "f964b35e-7209-4d2d-9fca-5387c61c2148",
"resourceType" : "DB",
"resourceNewType" : null,
"jobId" : "1220f80f-098e-4a3f-98db-e83f00a260a4",
"updatedTime" : "April 29, 2022 09:30:03 AM CEST"
} ],
"description" : "Modify database : MDIDB1",
"updatedTime" : "April 29, 2022 09:30:03 AM CEST"
}
[root@mdidbi42 orabackups]#
查看job詳細信息
[root@mdidbi42 orabackups]# odacli describe-job -i "1220f80f-098e-4a3f-98db-e83f00a260a4"
Job details
----------------------------------------------------------------
ID: 1220f80f-098e-4a3f-98db-e83f00a260a4
Description: Modify database : MDIDB1
Status: Success
Created: April 29, 2022 9:30:03 AM CEST
Message: Modify database
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Validate OMF parameter values April 29, 2022 9:30:09 AM CEST April 29, 2022 9:30:11 AM CEST Success
update db with backupconfig attributes April 29, 2022 9:30:28 AM CEST April 29, 2022 9:30:31 AM CEST Success
Enable Database Autobackup April 29, 2022 9:30:31 AM CEST April 29, 2022 9:30:31 AM CEST Success
Enable Archivelog Autobackup April 29, 2022 9:30:31 AM CEST April 29, 2022 9:30:31 AM CEST Success
Configure Control file Auto Backup Format April 29, 2022 9:30:31 AM CEST April 29, 2022 9:30:35 AM CEST Success
Backup Current Control file April 29, 2022 9:30:35 AM CEST April 29, 2022 9:30:49 AM CEST Success
Update metadata for database:MDIDB1 April 29, 2022 9:30:50 AM CEST April 29, 2022 9:30:50 AM CEST Success
[root@mdidbi42 orabackups]#
現在,是時候對你的主庫進行備份了。
[root@mdidbi42 orabackups]# odacli create-backup --backupType Regular-L0 -in MDIDB1
{
"jobId" : "be3e4d32-12f7-4b6e-8fc2-0d1d3f7d982e",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "April 29, 2022 09:31:51 AM CEST",
"resourceList" : [ ],
"description" : "Create Regular-L0 Backup[TAG:auto][Db:MDIDB1][NFS:/u01/backup/orabackups/dbs0fab9fed3/database/3671723533/MDIDB1_42]",
"updatedTime" : "April 29, 2022 09:31:51 AM CEST"
}
[root@mdidbi42 orabackups]#
[root@mdidbi42 orabackups]# odacli describe-job -i "be3e4d32-12f7-4b6e-8fc2-0d1d3f7d982e"
Job details
----------------------------------------------------------------
ID: be3e4d32-12f7-4b6e-8fc2-0d1d3f7d982e
Description: Create Regular-L0 Backup[TAG:auto][Db:MDIDB1][NFS:/u01/backup/orabackups/dbs0fab9fed3/database/3671723533/MDIDB1_42]
Status: Success
Created: April 29, 2022 9:31:51 AM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Validate backup config April 29, 2022 9:31:55 AM CEST April 29, 2022 9:31:55 AM CEST Success
NFS location existence validation April 29, 2022 9:31:55 AM CEST April 29, 2022 9:31:55 AM CEST Success
Backup Validations April 29, 2022 9:31:55 AM CEST April 29, 2022 9:32:02 AM CEST Success
Recovery Window validation April 29, 2022 9:32:02 AM CEST April 29, 2022 9:32:04 AM CEST Success
Archivelog deletion policy configuration April 29, 2022 9:32:04 AM CEST April 29, 2022 9:32:07 AM CEST Success
Database backup April 29, 2022 9:32:07 AM CEST April 29, 2022 9:33:32 AM CEST Success
[root@mdidbi42 orabackups]#
當備份結束后,在json文件中保存備份相關報告。首先,查看備份的id
[root@mdidbi42 ~]# odacli list-backupreports | grep Regular-L0
ce3b0eb9-3976-45f2-829e-c39cc5d21e43 e5fbd9e1-ccb6-4d3e-88cb-ece45007a549 3671906653 MDIDB1 MDIDB1_42 Regular-L0 auto April 29, 2022 3:16:36 PM CEST April 29, 2022 3:16:36 PM CEST Configured
[root@mdidbi42 ~]
然后,將其保存
[root@mdidbi42 ~]# odacli describe-backupreport -i ce3b0eb9-3976-45f2-829e-c39cc5d21e43 > backup_report_mdidb1.json
[root@mdidbi42 ~]#
下面是json文件的內容
[root@mdidbi42 ~]# cat backup_report_mdidb1.json
{
"id" : "ce3b0eb9-3976-45f2-829e-c39cc5d21e43",
"dbResId" : "e5fbd9e1-ccb6-4d3e-88cb-ece45007a549",
"tag" : "auto",
"dbId" : "3671906653",
"dbName" : "MDIDB1",
"dbUniqueName" : "MDIDB1_42",
"backupType" : "Regular-L0",
"keepDays" : null,
"backupLocation" : "/u01/backup/orabackups/dbs0fab9fed3/database/3671906653/MDIDB1_42/db",
"cfBackupHandle" : "/u01/backup/orabackups/dbs0fab9fed3/database/3671906653/MDIDB1_42/db/c-3671906653-20220429-05",
"spfBackupHandle" : "/u01/backup/orabackups/dbs0fab9fed3/database/3671906653/MDIDB1_42/db/c-3671906653-20220429-05",
"pitrTimeStamp" : "April 29, 2022 15:17:33 PM CEST",
"pitrSCN" : "1842740",
"resetLogsTimeStamp" : "April 29, 2022 14:05:17 PM CEST",
"resetLogsSCN" : "1712336",
"oraHomeVersion" : "21.5.0.0.220118",
"sqlPatches" : null,
"backupLogLoc" : "/u01/backup/orabackups/dbs0fab9fed3/database/3671906653/MDIDB1_42/rmanlog/2022-04-29/rman_backup_auto_2022-04-29_15-16-40.0579.log",
"tdeWalletLoc" : null,
"dbConfigLoc" : "/u01/backup/orabackups/dbs0fab9fed3/database/3671906653/MDIDB1_42/dbconfig/2022-04-29/DBCONFIG_auto_2022-04-29_15-17-50.0845.tar.gz",
"name" : "Backup_Report_MDIDB1",
"createTime" : "April 29, 2022 15:16:36 PM CEST",
"state" : {
"status" : "CONFIGURED"
},
"updatedTime" : "April 29, 2022 15:16:36 PM CEST",
"backupReportLogDetail" : "/u01/backup/orabackups/dbs0fab9fed3/database/3671906653/MDIDB1_42/rmandetaillogreport/2022-04-29/rman_list_backup_detail_auto_2022-04-29_15-17-44.0692.log",
"dbInfo" : {
"dbClass" : "OLTP",
"dbType" : "SI",
"dbShape" : "odb2",
"dbEdition" : "EE",
"dbStorage" : "ASM",
"dbRedundancy" : null,
"pdbName" : "PDB1",
"isCdb" : true
},
"dbDataSize" : "4202M",
"dbRedoSize" : "12306M",
"rmanBackupPieces" : "/u01/backup/orabackups/dbs0fab9fed3/database/3671906653/MDIDB1_42/backuppieces/2022-04-29/backupPieces_auto_e5fbd9e1-ccb6-4d3e-88cb-ece45007a549_20220429151749.json",
"compressionAlgo" : "BASIC",
"cpuPool" : null,
"numberOfCores" : null
}
[root@mdidbi42 ~]#
現在,將備份復制到備用數據庫系統中的同一文件位置,同時將備份報告復制到備用系統,并將備份恢復到備用數據庫。不要忘記將備份文件的訪問權限授予oracle用戶
[root@mdidbi42 backup]# pwd
/u01/backup
[root@mdidbi42 backup]# scp -r orabackups/ mdidbi43:$PWD
FIPS mode initialized
root@mdidbi43's password:
scp -r backup_report_mdidb1.json mdidbi43:$PWD
現在是在備用服務器上恢復備份的時候了。就我個人而言,我已經刪除了在備用服務器上創建DB系統時附帶的現有數據庫
[root@mdidbi43 ~]# odacli irestore-database -r backup_report_mdidb1.json -u MDIDB2_43 -ro STANDBY -dh b3da570b-acd1-41fa-8c8c-1c16fd66 abb3
Enter SYS user password:
Retype SYS user password:
{
"jobId" : "aa280ddf-f215-452a-833c-4912d68aa2e5",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "April 29, 2022 15:26:56",
"resourceList" : [ ],
"description" : "Database service recovery with db name: MDIDB1",
"updatedTime" : "April 29, 2022 15:26:56"
}
[root@mdidbi43 ~]# odacli describe-job -i "aa280ddf-f215-452a-833c-4912d68aa2e5"
Job details
----------------------------------------------------------------
ID: aa280ddf-f215-452a-833c-4912d68aa2e5
Description: Database service recovery with db name: MDIDB1
Status: Success
Created: April 29, 2022 3:26:56 PM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Check if cluster ware is running April 29, 2022 3:26:58 PM CEST April 29, 2022 3:26:58 PM CEST Success
Creating DbStorage for DbRestore April 29, 2022 3:26:58 PM CEST April 29, 2022 3:27:00 PM CEST Success
Validating DiskSpace for DATA April 29, 2022 3:26:58 PM CEST April 29, 2022 3:26:59 PM CEST Success
Generating SSH key April 29, 2022 3:26:59 PM CEST April 29, 2022 3:27:00 PM CEST Success
SSH key April 29, 2022 3:27:00 PM CEST April 29, 2022 3:27:00 PM CEST Success
SSH key scan April 29, 2022 3:27:00 PM CEST April 29, 2022 3:27:00 PM CEST Success
Audit directory creation April 29, 2022 3:27:00 PM CEST April 29, 2022 3:27:00 PM CEST Success
Create pfile for Auxiliary Instance April 29, 2022 3:27:01 PM CEST April 29, 2022 3:27:01 PM CEST Success
Deleting FRA April 29, 2022 3:27:01 PM CEST April 29, 2022 3:27:02 PM CEST Success
Rman duplicate April 29, 2022 3:27:02 PM CEST April 29, 2022 3:29:10 PM CEST Success
Creating pfile from spfile April 29, 2022 3:29:11 PM CEST April 29, 2022 3:29:11 PM CEST Success
Set PFile Ownership April 29, 2022 3:29:11 PM CEST April 29, 2022 3:29:11 PM CEST Success
Customize Db Parameters April 29, 2022 3:29:11 PM CEST April 29, 2022 3:29:12 PM CEST Success
Shutdown And Start database April 29, 2022 3:29:12 PM CEST April 29, 2022 3:29:33 PM CEST Success
Create spfile for restore db April 29, 2022 3:29:33 PM CEST April 29, 2022 3:29:33 PM CEST Success
Set PFile Ownership April 29, 2022 3:29:33 PM CEST April 29, 2022 3:29:33 PM CEST Success
Shutdown And Mount database April 29, 2022 3:29:33 PM CEST April 29, 2022 3:29:51 PM CEST Success
Register Database taskflow April 29, 2022 3:29:55 PM CEST April 29, 2022 3:31:33 PM CEST Success
Create SPFile in shared loc April 29, 2022 3:29:55 PM CEST April 29, 2022 3:30:03 PM CEST Success
Delete Local Spfile April 29, 2022 3:30:03 PM CEST April 29, 2022 3:30:03 PM CEST Success
Register DB with clusterware April 29, 2022 3:30:03 PM CEST April 29, 2022 3:30:31 PM CEST Success
Set SysPassword and Create PwFile April 29, 2022 3:30:31 PM CEST April 29, 2022 3:30:33 PM CEST Success
Enable block change tracking April 29, 2022 3:30:33 PM CEST April 29, 2022 3:30:37 PM CEST Success
Creating pfile April 29, 2022 3:30:37 PM CEST April 29, 2022 3:30:38 PM CEST Success
Updating db env April 29, 2022 3:30:38 PM CEST April 29, 2022 3:30:39 PM CEST Success
Enable DbSizing Template April 29, 2022 3:30:39 PM CEST April 29, 2022 3:31:06 PM CEST Success
Create tns entry April 29, 2022 3:31:06 PM CEST April 29, 2022 3:31:07 PM CEST Success
Running datapatch April 29, 2022 3:31:07 PM CEST April 29, 2022 3:31:08 PM CEST Success
Set CPU pool April 29, 2022 3:31:08 PM CEST April 29, 2022 3:31:08 PM CEST Success
Reset Associated Networks April 29, 2022 3:31:34 PM CEST April 29, 2022 3:31:38 PM CEST Success
Set log_archive_dest for Database April 29, 2022 3:31:38 PM CEST April 29, 2022 3:31:43 PM CEST Success
Copy Pwfile to Shared Storage April 29, 2022 3:31:43 PM CEST April 29, 2022 3:31:49 PM CEST Success
[root@mdidbi43 ~]#
備份恢復到備用數據庫后,我們可以連接到備用數據庫,并可以看到它處于裝載狀態
[oracle@mdidbi43 ~]$ . oraenv
ORACLE_SID = [MDIDB1] ?
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@mdidbi43 ~]$ sqlplus / as sysdba
SQL*Plus: Release 21.0.0.0.0 - Production on Fri Apr 29 10:01:23 2022
Version 21.5.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.5.0.0.0
SQL> select db_unique_name ,open_mode from v$database;
DB_UNIQUE_NAME OPEN_MODE
------------------------------ --------------------
MDIDB2_43 MOUNTED
好了,現在我們可以通過從主服務器運行configure dataguard命令來配置Data Guard。
你會遇到一些問題需要解決。
[root@mdidbi42 ~]# odacli configure-dataguard
Standby site address: mdidbi43
BUI username for Standby site. If Multi-user Access is disabled on Standby site, enter 'oda-admin'; otherwise, enter the name of the use who has irestored the Standby database (default: oda-admin):
BUI password for Standby site:
root@mdidbi43's password:
Database name for Data Guard configuration: MDIDB1
Primary database SYS password:
*******************************************************************************************
Data Guard default settings
Primary site network for Data Guard configuration: Public-network
Standby site network for Data Guard configuration: Public-network
Primary database listener port: 1521
Standby database listener port: 1521
Transport type: ASYNC
Protection mode: MAX_PERFORMANCE
Data Guard configuration name: MDIDB1_42_MDIDB2_43
Active Data Guard: disabled
Do you want to edit this Data Guard configuration? (Y/N, default:N): Y
*******************************************************************************************
Primary site network for Data Guard configuration [Public-network] (default: Public-network):
Standby site network for Data Guard configuration [Public-network] (default: Public-network):
Primary database listener port (default: 1521):
Standby database listener port (default: 1521):
Transport type [ASYNC, FASTSYNC, SYNC] (default: ASYNC):
Protection mode [MAX_PROTECTION, MAX_PERFORMANCE, MAX_AVAILABILITY] (default: MAX_PERFORMANCE):
Data Guard configuration name (default: MDIDB1_42_MDIDB2_43):
Primary database is missing certain archivelogs for Data Guard configuration. We need to restore those from backup.
Enter RMAN backup encryption password:
Do you want to provide another RMAN backup encryption password? [y/n] (default 'n'): n
Enable Active Data Guard? (Y/N, default:N):
Standby database's SYS password will be set to Primary database's after Data Guard configuration. Ignore warning and proceed with Data Gard configuration? (Y/N, default:N): Y
*******************************************************************************************
Configure Data Guard MDIDB1_42_MDIDB2_43 started
*******************************************************************************************
Step 1: Validate Data Guard configuration request (Primary site)
Description: Validate DG Config Creation for db MDIDB1
Job ID: eb1c048d-4a26-44f6-972d-d0923b43a30c
Started April 29, 2022 15:36:13 PM CEST
Validate create Data Guard configuration request
Finished April 29, 2022 15:36:17 PM CEST
*******************************************************************************************
Step 2: Validate Data Guard configuration request (Standby site)
Description: Validate DG Config Creation for db MDIDB1
Job ID: 81d48002-8478-4c4b-a49c-89f7babe8764
Started April 29, 2022 15:36:18 PM CEST
Validate create Data Guard configuration request
Finished April 29, 2022 15:36:23 PM CEST
*******************************************************************************************
Step 3: Restore missing archivelog (Primary site)
Description: Create Archivelog Restore for db:MDIDB1
Job ID: ca35287b-e306-4372-a1ad-84ed61185b55
Started April 29, 2022 15:36:24 PM CEST
Restore Archivelog validation
Restore Archivelog
Finished April 29, 2022 15:36:43 PM CEST
*******************************************************************************************
Step 4: Download password file from Primary database (Primary site)
Description: Download orapwd file from Primary database
Started April 29, 2022 15:36:43 PM CEST
Prepare orapwd file for Primary database MDIDB1
Finished April 29, 2022 15:36:45 PM CEST
*******************************************************************************************
Step 5: Upload password file to Standby database (Standby site)
Description: Upload orapwd file to Standby database
Started April 29, 2022 15:36:45 PM CEST
Write orapwd file to Standby database MDIDB1
Finished April 29, 2022 15:36:58 PM CEST
*******************************************************************************************
Step 6: Configure Primary database (Primary site)
Description: DG Config service for db MDIDB1 - ConfigurePrimary
Job ID: 55c4622f-3190-4ac6-9344-9e551075bc21
Started April 29, 2022 15:36:59 PM CEST
Configure host DNS on primary env
Configure Data Guard Tns on primary env
Enable Data Guard related Db parameters for primary env
Enable force logging and archivelog mode in primary env
Enable FlashBack
Configure network parameters for local listener on primary env
Restart listener on primary env
Create services for primary db
Finished April 29, 2022 15:37:26 PM CEST
*******************************************************************************************
Step 7: Configure Standby database (Standby site)
Description: DG Config service for db MDIDB1 - ConfigureStandby
Job ID: 642866cc-c2e3-49fd-99af-7017bcf23ae2
Started April 29, 2022 15:37:27 PM CEST
Configure Data Guard Tns on standby env
Configure host DNS on standby env
Clear Data Guard related Db parameters for standby env
Enable Data Guard related Db parameters for standby env
Enable force logging and archivelog mode in standby env
Populate standby database metadata
Configure network parameters for local listener on standby env
Reset Db sizing and hidden parameters for ODA best practice
Restart Listener on standby env
Create services for standby db
Finished April 29, 2022 15:38:39 PM CEST
*******************************************************************************************
Step 8: Configure and enable Data Guard (Primary site)
Description: DG Config service for db MDIDB1 - ConfigureDg
Job ID: e6882484-c946-4b4e-b51e-ddca8886449d
Started April 29, 2022 15:38:40 PM CEST
Config and enable Data Guard
Post check Data Guard configuration
Finished April 29, 2022 15:40:22 PM CEST
*******************************************************************************************
Step 9: Enable Flashback (Standby site)
Description: DG Config service for db MDIDB1 - EnableFlashback
Job ID: e9e0d091-7bc2-4185-901d-7914168f32bb
Started April 29, 2022 15:40:23 PM CEST
Enable FlashBack
Finished April 29, 2022 15:40:36 PM CEST
*******************************************************************************************
Step 10: Re-enable Data Guard (Primary site)
Description: DG Config service for db MDIDB1 - ReenableDg
Job ID: d83d2779-f7fd-4d90-b5eb-58fda4792f15
Started April 29, 2022 15:40:37 PM CEST
Re-enable Data Guard if inconsistent properties found
Post check Data Guard configuration
Finished April 29, 2022 15:40:39 PM CEST
*******************************************************************************************
Step 11: Create Data Guard status (Primary site)
Description: DG Status operation for db MDIDB1 - NewDgconfig
Job ID: cb590d03-3795-4dfe-b374-69212f8aecd8
Started April 29, 2022 15:40:40 PM CEST
Create Data Guard status
Finished April 29, 2022 15:40:42 PM CEST
*******************************************************************************************
Step 12: Create Data Guard status (Standby site)
Description: DG Status operation for db MDIDB1 - NewDgconfig
Job ID: ba68bda7-f705-4a6e-9e96-d37d042603f0
Started April 29, 2022 15:40:43 PM CEST
Create Data Guard status
Finished April 29, 2022 15:40:44 PM CEST
*******************************************************************************************
Configure Data Guard MDIDB1_42_MDIDB2_43 completed
*******************************************************************************************
[root@mdidbi42 ~]#
成功完成配置后,我們可以列出Date Guard的狀態
[root@mdidbi42 ~]# odacli list-dataguardstatus
Updated about 4 minute(s) ago
ID Name Database Name Role Protection Mode Apply Lag Transport Lag Apply Rate Status
---------------------------------------- -------------------------------- -------------------- ---------- ------------------ --------------- --------------- --------------- ----------
b297b32d-987e-407d-9422-6d3748481907 MDIDB1_42_MDIDB2_43 MDIDB1 PRIMARY MAX_PERFORMANCE 18 seconds 0 seconds 19.00 KByte/s CONFIGURED
[root@mdidbi42 ~]#
[root@mdidbi42 ~]# odacli describe-dataguardstatus -i b297b32d-987e-407d-9422-6d3748481907
Updated about 4 minute(s) ago
Dataguard Status details
----------------------------------------------------------------
ID: b297b32d-987e-407d-9422-6d3748481907
Name: MDIDB1_42_MDIDB2_43
Database Name: e5fbd9e1-ccb6-4d3e-88cb-ece45007a549
Role: PRIMARY
Protection Mode: MAX_PERFORMANCE
Apply Lag: 0 seconds
Transport Lag: 0 seconds
Apply Rate: 1.00 KByte/s
Status: CONFIGURED
Updated Time: April 29, 2022 3:45:05 PM CEST
[root@mdidbi42 ~]#
我們還可以通過dgmgrl命令連接并驗證(請注意:當前MDIDB1_42是主庫,MDIDB2_43是備庫)
DGMGRL> show configuration
Configuration - MDIDB1_42_MDIDB2_43
Protection Mode: MaxPerformance
Members:
MDIDB1_42 - Primary database
MDIDB2_43 - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 58 seconds ago)
DGMGRL>
在主庫服務器上通過運行以下命令進行主備庫切換操作
[root@mdidbi42 ~]# odacli switchover-dataguard -i b297b32d-987e-407d-9422-6d3748481907 -u MDIDB2_43
Password for target database:
{
"jobId" : "758d015e-c208-4313-b989-5ffb4fd9fa7c",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "April 29, 2022 15:59:47 PM CEST",
"resourceList" : [ ],
"description" : "Dataguard operation for MDIDB1_42_MDIDB2_43 - SwitchoverDg",
"updatedTime" : "April 29, 2022 15:59:47 PM CEST"
}
[root@mdidbi42 ~]#
[root@mdidbi42 ~]# odacli describe-job -i "758d015e-c208-4313-b989-5ffb4fd9fa7c"
Job details
----------------------------------------------------------------
ID: 758d015e-c208-4313-b989-5ffb4fd9fa7c
Description: Dataguard operation for MDIDB1_42_MDIDB2_43 - SwitchoverDg
Status: Success
Created: April 29, 2022 3:59:47 PM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Precheck switchover DataGuard April 29, 2022 3:59:47 PM CEST April 29, 2022 3:59:58 PM CEST Success
Switchover DataGuard April 29, 2022 3:59:58 PM CEST April 29, 2022 4:01:07 PM CEST Success
Postcheck switchover DataGuard April 29, 2022 4:01:07 PM CEST April 29, 2022 4:01:08 PM CEST Success
Check if DataGuard config is updated April 29, 2022 4:01:09 PM CEST April 29, 2022 4:01:19 PM CEST Success
[root@mdidbi42 ~]#
我們可以連接到DG BROKER時驗證切換結果(請注意:當前MDIDB1_43是主庫,MDIDB2_42是備庫,主備已經成功切換)
DGMGRL> show configuration
Configuration - MDIDB1_42_MDIDB2_43
Protection Mode: MaxPerformance
Members:
MDIDB2_43 - Primary database
MDIDB1_42 - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 19 seconds ago)
DGMGRL>
要重新切換回MDIDB1_42作為主庫,只需在當前為主庫的服務器(MDIDB1_43)上運行switchover命令
[root@mdidbi43 ~]# odacli switchover-dataguard -i b297b32d-987e-407d-9422-6d3748481907 -u MDIDB1_42
Password for target database:
{
"jobId" : "17eef433-7e8e-4d4d-95e3-defe8724cb99",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "April 29, 2022 16:05:49 PM CEST",
"resourceList" : [ ],
"description" : "Dataguard operation for MDIDB1_42_MDIDB2_43 - SwitchoverDg",
"updatedTime" : "April 29, 2022 16:05:49 PM CEST"
}
[root@mdidbi43 ~]#
在切換回來后,主備庫情況如下:
DGMGRL> show configuration
Configuration - MDIDB1_42_MDIDB2_43
Protection Mode: MaxPerformance
Members:
MDIDB1_42 - Primary database
MDIDB2_43 - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 70 seconds ago)
DGMGRL>
我們同樣可以通過在備庫服務器上運行以下命令進行故障轉移:
[root@mdidbi42 ~]# odacli failover-dataguard -i 96e5c5cf-f710-4a14-a506-9024e4952ba4 -u MDIDB2_43
Password for target database:
DCS-10001:Internal error encountered: Invalid role for FailoverDg:Primary. Execute this command on the Standby site mdidbi43.dbi-lab.ch.
[root@mdidbi42 ~]#
檢查任務狀態
[root@mdidbi43 ~]# odacli describe-job -i "7c0dd208-1fca-4c03-99e1-7d896f79c1b5"
Job details
----------------------------------------------------------------
ID: 7c0dd208-1fca-4c03-99e1-7d896f79c1b5
Description: Dataguard operation for MDIDB1_42_MDIDB2_43 - FailoverDg
Status: Success
Created: April 29, 2022 4:11:09 PM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Precheck failover DataGuard April 29, 2022 4:11:09 PM CEST April 29, 2022 4:11:12 PM CEST Success
Failover DataGuard April 29, 2022 4:11:12 PM CEST April 29, 2022 4:11:33 PM CEST Success
Postcheck DataGuard status April 29, 2022 4:11:33 PM CEST April 29, 2022 4:11:37 PM CEST Success
Check if DataGuard config is updated April 29, 2022 4:11:37 PM CEST April 29, 2022 4:11:47 PM CEST Success
[root@mdidbi43 ~]#
在mdidbi43所在服務器上檢查Data Guard的狀態
DGMGRL> show configuration
Configuration - MDIDB1_42_MDIDB2_43
Protection Mode: MaxPerformance
Members:
MDIDB2_43 - Primary database
MDIDB1_42 - Physical standby database (disabled)
ORA-16661: the standby database needs to be reinstated
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 59 seconds ago)
DGMGRL>
在之前的主庫 mdidbi42服務器上查看狀態
DGMGRL> show configuration
Configuration - MDIDB1_42_MDIDB2_43
Protection Mode: MaxPerformance
Members:
MDIDB1_42 - Primary database
MDIDB2_43 - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
DISABLED
DGM-17290: Role change detected. This database may no longer be the primary database.
DGMGRL>
///譯者備注:在mdidbi43上執行故障轉移前,mdidbi42是主庫,mdidbi43是備庫,現在由于故障轉移,將mdidbi42作為有問題的備庫下線,并且將mdidbi43提升為主庫。因此,在故障轉移后,mdidbi42上看的信息,主庫雖然還是寫的是MDIDB1_42,但是他的配置狀態為DISABLED,并提示DGM-17290: Role change detected. This database may no longer be the primary database.(檢測到角色更改。此數據庫可能不再是主數據庫),而在mdidbi43,顯示的為準確的信息,MDIDB2_43 為主庫,并提示MDIDB2_42已經是備庫了,且需要被恢復后才能使用。///
讓我們恢復以前的主數據庫MDIDB1_42。因此,連接到mdidbi43運行以下命令
[root@mdidbi43 ~]# odacli reinstate-dataguard -i b297b32d-987e-407d-9422-6d3748481907 -u MDIDB1_42
Password for target database:
{
"jobId" : "cfe917c4-85f6-4469-b8e0-e6c6e602c54e",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "April 29, 2022 16:16:56 PM CEST",
"resourceList" : [ ],
"description" : "Dataguard operation for MDIDB1_42_MDIDB2_43 - ReinstateDg",
"updatedTime" : "April 29, 2022 16:16:56 PM CEST"
}
[root@mdidbi43 ~]#
[root@mdidbi43 ~]# odacli describe-job -i "cfe917c4-85f6-4469-b8e0-e6c6e602c54e"
Job details
----------------------------------------------------------------
ID: cfe917c4-85f6-4469-b8e0-e6c6e602c54e
Description: Dataguard operation for MDIDB1_42_MDIDB2_43 - ReinstateDg
Status: Success
Created: April 29, 2022 4:16:56 PM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Precheck reinstate DataGuard April 29, 2022 4:16:56 PM CEST April 29, 2022 4:16:59 PM CEST Success
Reinstate DataGuard April 29, 2022 4:16:59 PM CEST April 29, 2022 4:18:13 PM CEST Success
Postcheck DataGuard status April 29, 2022 4:18:13 PM CEST April 29, 2022 4:18:17 PM CEST Success
Check if DataGuard config is updated April 29, 2022 4:18:17 PM CEST April 29, 2022 4:18:27 PM CEST Success
[root@mdidbi43 ~]#
查看最新狀態:
DGMGRL> show configuration
Configuration - MDIDB1_42_MDIDB2_43
Protection Mode: MaxPerformance
Members:
MDIDB2_43 - Primary database
MDIDB1_42 - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 19 seconds ago)
DGMGRL>
原文標題:Configure Data Guard between 2 DB Systems with Oracle 21c
原文作者:Mouhamadou Diaw
原文地址:https://www.dbi-services.com/blog/configure-data-guard-between-2-db-systems-with-oracle-21c/




