十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要介紹“使用Data Guard Broker進行Data Guard物理備用庫配置的方法是什么”,在日常操作中,相信很多人在使用Data Guard Broker進行Data Guard物理備用庫配置的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”使用Data Guard Broker進行Data Guard物理備用庫配置的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)是一家專業(yè)提供龍?zhí)镀髽I(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為龍?zhí)侗姸嗥髽I(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。
檢查主數(shù)據(jù)庫是否處于歸檔日志模式。
SELECT log_mode FROM v$database; LOG_MODE ------------ NOARCHIVELOG SQL>
如果是 NOARCHIVELOG 模式,則切換到 ARCHIVELOG 模式。
SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
通過發(fā)出以下命令啟用強制日志記錄。
ALTER DATABASE FORCE LOGGING; -- 確保至少存在一個日志文件。 ALTER SYSTEM SWITCH LOGFILE;
在主數(shù)據(jù)庫上創(chuàng)建備用重做日志(在切換的情況下)。備用重做日志應(yīng)該至少和最大的聯(lián)機重做日志一樣大,并且與聯(lián)機重做日志相比,每個線程應(yīng)該有一個額外的組。在我的例子中,必須在兩臺服務(wù)器上創(chuàng)建以下備用重做日志。
-- 如果使用Oracle Managed Files(OMF)。 ALTER DATABASE ADD STANDBY LOGFILE SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE SIZE 50M; -- 如果未使用Oracle Managed Files(OMF)。 ALTER DATABASE ADD STANDBY LOGFILE ('/u01/oradata/cdb1/standby_redo01.log') SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE ('/u01/oradata/cdb1/standby_redo02.log') SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE ('/u01/oradata/cdb1/standby_redo03.log') SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE ('/u01/oradata/cdb1/standby_redo04.log') SIZE 50M;
如果您想使用閃回數(shù)據(jù)庫,請立即在主數(shù)據(jù)庫上啟用它,因此它也將在備用數(shù)據(jù)庫上啟用。它非常有用,你可以使用以下命令啟用閃回:
ALTER DATABASE FLASHBACK ON;
檢查 DB_NAME 和 DB_UNIQUE_NAME 參數(shù)的設(shè)置。在這種情況下,在主數(shù)據(jù)庫上都設(shè)置為 “cdb1”。
SQL> show parameter db_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_name string cdb1 SQL> show parameter db_unique_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_unique_name string cdb1SQL>
備用數(shù)據(jù)庫的 DB_NAME 與主數(shù)據(jù)庫的 DB_NAME 相同,但它必須具有不同的DB_UNIQUE_NAME 值。對于此示例,備用數(shù)據(jù)庫的值為 “cdb1_stby”。
確保已設(shè)置 STANDBY_FILE_MANAGEMENT 參數(shù)??梢允褂靡韵旅钸M行設(shè)置:
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
兩臺服務(wù)器上的 “$ORACLE_HOME/network/admin/tnsnames.ora” 文件中都需要主數(shù)據(jù)庫和備用數(shù)據(jù)庫的條目。您可以使用網(wǎng)絡(luò)配置實用程序(netca)或手動創(chuàng)建這些。在本示例都使用以下條目。請注意在條目中使用 SID 而不是 SERVICE_NAME。這很重要,因為代理在關(guān)閉時需要連接到數(shù)據(jù)庫,因此服務(wù)將不存在。
cdb1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ol7-19-dg1)(PORT = 1521)) ) (CONNECT_DATA = (SID = cdb1) ) ) cdb1_stby = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ol7-19-dg2)(PORT = 1521)) ) (CONNECT_DATA = (SID = cdb1) ) )
主服務(wù)器上的 “$ORACLE_HOME/network/admin/listener.ora” 文件包含以下配置。
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ol7-19-dg1)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = cdb1_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/db_1) (SID_NAME = cdb1) ) ) ADR_BASE_LISTENER = /u01/app/oracle
備用服務(wù)器上的 “$ORACLE_HOME/network/admin/listener.ora” 文件包含以下配置。由于代理在關(guān)閉時需要連接到數(shù)據(jù)庫,因此我們不能依賴于監(jiān)聽器的自動注冊,因此數(shù)據(jù)庫的顯式條目。
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ol7-19-dg2)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = cdb1_stby_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/db_1) (SID_NAME = cdb1) ) ) ADR_BASE_LISTENER = /u01/app/oracle
完成 listener.ora 修改后,請使用以下命令在兩臺服務(wù)器上重新啟動監(jiān)聽器。
lsnrctl stop lsnrctl start
為備用數(shù)據(jù)庫創(chuàng)建名為 “/tmp/initcdb1” 的參數(shù)文件,內(nèi)容如下:
*.db_name='cdb1'
在備用服務(wù)器上創(chuàng)建必要的目錄。
mkdir -p /u01/app/oracle/oradata/cdb1/pdbseed mkdir -p /u01/app/oracle/oradata/cdb1/pdb1 mkdir -p /u01/app/oracle/fast_recovery_area/cdb1 mkdir -p /u01/app/oracle/admin/cdb1/adump
創(chuàng)建密碼文件,SYS密碼與主數(shù)據(jù)庫的密碼匹配。
$ orapwd file=/u01/app/oracle/product/19.0.0/db_1/dbs/orapwcdb1 password=Password1 entries=10
使用臨時 “init.ora” 文件啟動備用服務(wù)器上的輔助實例。
$ export ORACLE_SID=cdb1 $ sqlplus / as sysdba SQL> STARTUP NOMOUNT PFILE='/tmp/initcdb1_stby.ora';
連接到 RMAN,為 TARGET 和 AUXILIARY 實例指定完整的連接字符串。請勿嘗試使用 OS 身份驗證。
$ rman TARGET sys/Password1@cdb1 AUXILIARY sys/Password1@cdb1_stby
現(xiàn)在發(fā)出以下 DUPLICATE 命令:
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER SPFILE SET db_unique_name='cdb1_stby' COMMENT 'Is standby' NOFILENAMECHECK;
如果需要轉(zhuǎn)換文件位置或更改任何初始化參數(shù),可以在 DUPLICATE 期間使用 SET 命令執(zhí)行此操作。如下所示:
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER SPFILE SET db_unique_name='cdb1_stby' COMMENT 'Is standby' SET db_file_name_convert='/original/directory/path2/','/new/directory/path2/','/original/directory/path3/','/new/directory/path3/' SET log_file_name_convert='/original/directory/path2/','/new/directory/path2/','/original/directory/path3/','/new/directory/path3/' SET job_queue_processes='0' NOFILENAMECHECK;
命令中各個項的簡要說明如下:
· FOR STANDBY:這告訴 DUPLICATE 命令將用于備用數(shù)據(jù)庫,因此它不會強制更改 DBID。
· FROM ACTIVE DATABASE:DUPLICATE 將直接從源數(shù)據(jù)文件創(chuàng)建,無需額外的備份步驟。
· DORECOVER:DUPLICATE 將包括恢復(fù)步驟,使待機狀態(tài)達到當(dāng)前時間點。
· SPFILE:允許我們在從源服務(wù)器復(fù)制 spfile 時重置它。
· NOFILENAMECHECK:不檢查目標(biāo)文件位置。
以上命令完成后,我們就可以開始使用 Broker 了。
此時我們有一個主數(shù)據(jù)庫和一個備用數(shù)據(jù)庫,所以現(xiàn)在我們需要開始使用 Data Guard Broker 來管理它們。連接到兩個數(shù)據(jù)庫(主數(shù)據(jù)庫和備用數(shù)據(jù)庫)并發(fā)出以下命令:
ALTER SYSTEM SET dg_broker_start=true;
在主服務(wù)器上,發(fā)出以下命令以向代理注冊主服務(wù)器:
$ dgmgrl sys/Password1@cdb1 DGMGRL for Linux: Release 19.0.0.0.0 - Production on Tue Feb 26 22:39:33 2018 Version 19.2.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Connected as SYSDBA. DGMGRL> CREATE CONFIGURATION my_dg_config AS PRIMARY DATABASE IS cdb1 CONNECT IDENTIFIER IS cdb1; Configuration "my_dg_config" created with primary database "cdb1" DGMGRL>
現(xiàn)在添加備用數(shù)據(jù)庫。
DGMGRL> ADD DATABASE cdb1_stby AS CONNECT IDENTIFIER IS cdb1_stby MAINTAINED AS PHYSICAL; Database "cdb1_stby" added DGMGRL>
現(xiàn)在我們啟用新配置。
DGMGRL> ENABLE CONFIGURATION; Enabled. DGMGRL>
以下命令顯示如何從 broker 檢查數(shù)據(jù)庫的配置和狀態(tài):
DGMGRL> SHOW CONFIGURATION; Configuration - my_dg_config Protection Mode: MaxPerformance Members: cdb1 - Primary database cdb1_stby - Physical standby database Fast-Start Failover: DISABLED Configuration Status:SUCCESS (status updated 26 seconds ago) DGMGRL> SHOW DATABASE cdb1; Database - cdb1 Role: PRIMARY Intended State: TRANSPORT-ON Instance(s): cdb1 Database Status: SUCCESS DGMGRL> SHOW DATABASE cdb1_stby; Database - cdb1_stby Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 0 seconds (computed 1 second ago) Average Apply Rate: 5.00 KByte/s Real Time Query: OFF Instance(s): cdb1 Database Status: SUCCESS DGMGRL>
數(shù)據(jù)庫可以是兩種互斥模式之一(主用或備用)??梢栽谶\行時更改這些角色,而不會丟失數(shù)據(jù)或重置日志。此過程稱為“切換”,可以使用以下命令執(zhí)行。連接到主數(shù)據(jù)庫(cdb1)并切換到備用數(shù)據(jù)庫(cdb1_stby)。
$ dgmgrl sys/Password1@cdb1 DGMGRL for Linux: Release 19.0.0.0.0 - Production on Tue Feb 26 22:39:33 2018Version 19.2.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Connected as SYSDBA. DGMGRL> SWITCHOVER TO cdb1_stby; Performing switchover NOW, please wait... Operation requires a connection to instance "cdb1" on database "cdb1_stby" Connecting to instance "cdb1"... Connected as SYSDBA. New primary database "cdb1_stby" is opening... Operation requires start up of instance "cdb1" on database "cdb1"Starting instance "cdb1"...ORACLE instance started.Database mounted.Switchover succeeded, new primary is "cdb1_stby" DGMGRL>
讓我們切換回原來的主數(shù)據(jù)庫。連接到新主服務(wù)器(cdb1_stby)并切換到新的備用數(shù)據(jù)庫(cdb1)。
$ dgmgrl sys/Password1@cdb1_stby DGMGRL for Linux: Release 19.0.0.0.0 - Production on Tue Feb 26 22:53:36 2018Version 19.2.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Connected as SYSDBA. DGMGRL> SWITCHOVER TO cdb1; Performing switchover NOW, please wait... Operation requires a connection to instance "cdb1" on database "cdb1" Connecting to instance "cdb1"... Connected as SYSDBA. New primary database "cdb1" is opening... Operation requires start up of instance "cdb1" on database "cdb1_stby"Starting instance "cdb1"...ORACLE instance started.Database mounted.Switchover succeeded, new primary is "cdb1" DGMGRL>
如果主數(shù)據(jù)庫不可用,則可以使用以下語句將備用數(shù)據(jù)庫激活為主數(shù)據(jù)庫。連接到備用數(shù)據(jù)庫(cdb1_stby)并進行故障轉(zhuǎn)移。
$ dgmgrl sys/Password1@cdb1_stby DGMGRL for Linux: Release 19.0.0.0.0 - Production on Tue Feb 26 22:53:36 2018Version 19.2.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Connected as SYSDBA. DGMGRL> FAILOVER TO cdb1_stby; Performing failover NOW, please wait... Failover succeeded, new primary is "cdb1_stby" DGMGRL>
由于備用數(shù)據(jù)庫現(xiàn)在是主數(shù)據(jù)庫,因此應(yīng)立即進行數(shù)據(jù)庫備份。
現(xiàn)在可以將原始主數(shù)據(jù)庫配置為備用數(shù)據(jù)庫。如果在主數(shù)據(jù)庫上啟用了閃回數(shù)據(jù)庫,則可以使用以下命令相對輕松地完成此操作。
DGMGRL> REINSTATE DATABASE cdb1; Reinstating database "cdb1", please wait... Operation requires shut down of instance "cdb1" on database "cdb1" Shutting down instance "cdb1"... ORACLE instance shut down. Operation requires start up of instance "cdb1" on database "cdb1"Starting instance "cdb1"...ORACLE instance started.Database mounted. Continuing to reinstate database "cdb1" ... Reinstatement of database "cdb1" succeeded DGMGRL>
如果未啟用閃回數(shù)據(jù)庫,則必須手動將 cdb1 重新創(chuàng)建為備用數(shù)據(jù)庫?;具^程與您之前所做的相反。如下命令:
# 1) 清理舊實例。 sqlplus / as sysdba <ENABLE DATABASE cdb1;
在上一節(jié)中已經(jīng)提到過,但值得再次關(guān)注閃回數(shù)據(jù)庫。雖然切換/切換對主數(shù)據(jù)庫和備用數(shù)據(jù)庫都是安全的,但故障轉(zhuǎn)移會使原始主數(shù)據(jù)庫無法轉(zhuǎn)換為備用數(shù)據(jù)庫。如果未啟用閃回數(shù)據(jù)庫,則必須廢棄原始主數(shù)據(jù)庫并將其重新創(chuàng)建為備用數(shù)據(jù)庫。
另一種方法是在主服務(wù)器上啟用閃回數(shù)據(jù)庫(如果需要,還可以啟用備用數(shù)據(jù)庫),以便在發(fā)生故障轉(zhuǎn)移時,可以將主數(shù)據(jù)庫閃回到故障轉(zhuǎn)移之前的時間并快速轉(zhuǎn)換為備用數(shù)據(jù)庫,如上所示。
配置備用數(shù)據(jù)庫后,可以以只讀模式打開它以允許查詢訪問。這通常用于將報告卸載到備用服務(wù)器,從而釋放主服務(wù)器上的資源。以只讀模式打開時,歸檔日志傳送將繼續(xù),但托管恢復(fù)將停止,因此備用數(shù)據(jù)庫將逐漸過時,直到恢復(fù)管理恢復(fù)。
要將備用數(shù)據(jù)庫切換到只讀模式,請執(zhí)行以下操作。
SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE OPEN READ ONLY;
重置管理恢復(fù),請執(zhí)行以下操作。
SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
在 11g 中,Oracle 引入了活動數(shù)據(jù)保護功能。這允許備用數(shù)據(jù)庫以只讀模式打開,但仍應(yīng)用重做信息。這意味著一個備用系統(tǒng)可以用于查詢,但仍然是最新的。此功能存在許可問題,但以下命令顯示如何啟用活動數(shù)據(jù)保護。
SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE OPEN READ ONLY; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
由于托管恢復(fù)繼續(xù)使用 Active Data Guard,因此在這種情況下無需從只讀模式切換回托管恢復(fù)。
在 11g 中引入,快照備用允許備用數(shù)據(jù)庫以讀寫模式打開。當(dāng)切換回備用模式時,在讀寫模式下所做的所有更改都將丟失。這是使用閃回數(shù)據(jù)庫實現(xiàn)的,可以正常工作,備用數(shù)據(jù)庫不需要顯式啟用閃回數(shù)據(jù)庫來利用此功能。
連接到主(cdb1)數(shù)據(jù)庫并將備用數(shù)據(jù)庫(cdb1_stby)轉(zhuǎn)換為快照備用數(shù)據(jù)庫。
$ dgmgrl sys/Password1@cdb1 DGMGRL for Linux: Release 19.0.0.0.0 - Production on Tue Feb 26 22:53:36 2018Version 19.2.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Connected as SYSDBA. DGMGRL> CONVERT DATABASE cdb1_stby TO SNAPSHOT STANDBY; Converting database "cdb1_stby" to a Snapshot Standby database, please wait... Database "cdb1_stby" converted successfully DGMGRL>
完成快照備用后,將其轉(zhuǎn)換回備用數(shù)據(jù)庫。
$ dgmgrl sys/Password1@cdb1 DGMGRL for Linux: Release 19.0.0.0.0 - Production on Tue Feb 26 22:53:36 2018Version 19.2.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Connected as SYSDBA. DGMGRL> CONVERT DATABASE cdb1_stby TO PHYSICAL STANDBY; Converting database "cdb1_stby" to a Physical Standby database, please wait... Operation requires shut down of instance "cdb1" on database "cdb1_stby" Shutting down instance "cdb1"... Database closed. Database dismounted. ORACLE instance shut down. Operation requires start up of instance "cdb1" on database "cdb1_stby"Starting instance "cdb1"...ORACLE instance started.Database mounted. Continuing to convert database "cdb1_stby" ...Database "cdb1_stby" converted successfully DGMGRL>
備用數(shù)據(jù)庫再次處于托管恢復(fù)狀態(tài),并恢復(fù)歸檔日志傳送。請注意,閃回數(shù)據(jù)庫仍未啟用。
DGMGRL> SHOW CONFIGURATION; Configuration - my_dg_config Protection Mode: MaxPerformance Members: cdb1 - Primary database cdb1_stby - Physical standby database Fast-Start Failover: DISABLED Configuration Status:SUCCESS (status updated 38 seconds ago) DGMGRL>
到此,關(guān)于“使用Data Guard Broker進行Data Guard物理備用庫配置的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
本文名稱:使用DataGuardBroker進行DataGuard物理備用庫配置的方法是什么
鏈接分享:http://m.jiaotiyi.com/article/jhpisp.html