久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

使用Data Guard Broker進行Data Guard物理備用庫配置的方法是什么

138次閱讀
沒有評論

共計 12133 個字符,預計需要花費 31 分鐘才能閱讀完成。

這篇文章主要介紹“使用 Data Guard Broker 進行 Data Guard 物理備用庫配置的方法是什么”,在日常操作中,相信很多人在使用 Data Guard Broker 進行 Data Guard 物理備用庫配置的方法是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”使用 Data Guard Broker 進行 Data Guard 物理備用庫配置的方法是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

1、主服務器配置 1.1 歸檔模式

檢查主數據庫是否處于歸檔日志模式。

SELECT log_mode FROM v$database; 
LOG_MODE
------------
NOARCHIVELOG 
SQL

如果是  NOARCHIVELOG 模式,則切換到 ARCHIVELOG 模式。

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

通過發出以下命令啟用強制日志記錄。

ALTER DATABASE FORCE LOGGING;
--  確保至少存在一個日志文件。ALTER SYSTEM SWITCH LOGFILE;

在主數據庫上創建備用重做日志(在切換的情況下)。備用重做日志應該至少和最大的聯機重做日志一樣大,并且與聯機重做日志相比,每個線程應該有一個額外的組。在我的例子中,必須在兩臺服務器上創建以下備用重做日志。

--  如果使用 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;

如果您想使用閃回數據庫,請立即在主數據庫上啟用它,因此它也將在備用數據庫上啟用。它非常有用,你可以使用以下命令啟用閃回:

ALTER DATABASE FLASHBACK ON;

1.2 初始化參數

檢查  DB_NAME 和 DB_UNIQUE_NAME 參數的設置。在這種情況下,在主數據庫上都設置為“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

備用數據庫的  DB_NAME 與主數據庫的 DB_NAME 相同,但它必須具有不同的 DB_UNIQUE_NAME 值。對于此示例,備用數據庫的值為“cdb1_stby”。

確保已設置  STANDBY_FILE_MANAGEMENT 參數。可以使用以下命令進行設置:

ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

1.3 服務配置

兩臺服務器上的  “$ORACLE_HOME/network/admin/tnsnames.ora”文件中都需要主數據庫和備用數據庫的條目。您可以使用網絡配置實用程序(netca)或手動創建這些。在本示例都使用以下條目。請注意在條目中使用 SID 而不是 SERVICE_NAME。這很重要,因為代理在關閉時需要連接到數據庫,因此服務將不存在。

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)
 )
 )

主服務器上的  “$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

備用服務器上的  “$ORACLE_HOME/network/admin/listener.ora”文件包含以下配置。由于代理在關閉時需要連接到數據庫,因此我們不能依賴于監聽器的自動注冊,因此數據庫的顯式條目。

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 修改后,請使用以下命令在兩臺服務器上重新啟動監聽器。

lsnrctl stop
lsnrctl start

2、備用服務器配置 2.1 準備 DUPLICATE

為備用數據庫創建名為  “/tmp/initcdb1”的參數文件,內容如下:

*.db_name= cdb1

在備用服務器上創建必要的目錄。

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

創建密碼文件,SYS 密碼與主數據庫的密碼匹配。

$ orapwd file=/u01/app/oracle/product/19.0.0/db_1/dbs/orapwcdb1 password=Password1 entries=10

2.2 使用 DUPLICATE 創建備用

使用臨時  “init.ora”文件啟動備用服務器上的輔助實例。

$ 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

現在發出以下  DUPLICATE 命令:

DUPLICATE TARGET DATABASE
 FOR STANDBY
 FROM ACTIVE DATABASE
 DORECOVER
 SPFILE
SET db_unique_name= cdb1_stby  COMMENT  Is standby 
 NOFILENAMECHECK;

如果需要轉換文件位置或更改任何初始化參數,可以在  DUPLICATE 期間使用 SET 命令執行此操作。如下所示:

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 命令將用于備用數據庫,因此它不會強制更改 DBID。

· FROM ACTIVE DATABASE:DUPLICATE 將直接從源數據文件創建,無需額外的備份步驟。

· DORECOVER:DUPLICATE 將包括恢復步驟,使待機狀態達到當前時間點。

· SPFILE:允許我們在從源服務器復制 spfile 時重置它。

· NOFILENAMECHECK:不檢查目標文件位置。

以上命令完成后,我們就可以開始使用  Broker 了。

3、啟用 Broker

此時我們有一個主數據庫和一個備用數據庫,所以現在我們需要開始使用  Data Guard Broker 來管理它們。連接到兩個數據庫(主數據庫和備用數據庫)并發出以下命令:

ALTER SYSTEM SET dg_broker_start=true;

在主服務器上,發出以下命令以向代理注冊主服務器:

$ 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

現在添加備用數據庫。

DGMGRL  ADD DATABASE cdb1_stby AS CONNECT IDENTIFIER IS cdb1_stby MAINTAINED AS PHYSICAL;
Database  cdb1_stby  added
DGMGRL

現在我們啟用新配置。

DGMGRL  ENABLE CONFIGURATION;
Enabled.
DGMGRL

以下命令顯示如何從  broker 檢查數據庫的配置和狀態:

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):
 
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):
 
Database Status:
SUCCESS
 
DGMGRL

4、數據庫切換

數據庫可以是兩種互斥模式之一(主用或備用)。可以在運行時更改這些角色,而不會丟失數據或重置日志。此過程稱為“切換”,可以使用以下命令執行。連接到主數據庫(cdb1)并切換到備用數據庫(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

讓我們切換回原來的主數據庫。連接到新主服務器(cdb1_stby)并切換到新的備用數據庫(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

5、數據庫故障轉移

如果主數據庫不可用,則可以使用以下語句將備用數據庫激活為主數據庫。連接到備用數據庫(cdb1_stby)并進行故障轉移。

$ 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

由于備用數據庫現在是主數據庫,因此應立即進行數據庫備份。

現在可以將原始主數據庫配置為備用數據庫。如果在主數據庫上啟用了閃回數據庫,則可以使用以下命令相對輕松地完成此操作。

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

如果未啟用閃回數據庫,則必須手動將  cdb1 重新創建為備用數據庫。基本過程與您之前所做的相反。如下命令:

# 1)  清理舊實例。sqlplus / as sysdba  EOF
SHUTDOWN IMMEDIATE;
EXIT;
 
rm -Rf /u01/app/oracle/oradata/cdb1/*
rm -Rf /u01/app/oracle/fast_recovery_area/cdb1
rm -Rf /u01/app/oracle/fast_recovery_area/cdb1_stby
rm -Rf /u01/app/oracle/admin/cdb1mkdir -p /u01/app/oracle/fast_recovery_area/cdb1mkdir -p /u01/app/oracle/admin/cdb1/adumpmkdir -p /u01/app/oracle/oradata/cdb1/pdbseedmkdir -p /u01/app/oracle/oradata/cdb1/pdb1
rm $ORACLE_HOME/dbs/spfilecdb1.ora
 
export ORACLE_SID=cdb1
sqlplus / as sysdba  EOF
STARTUP NOMOUNT PFILE= /tmp/initcdb1_stby.ora 
EXIT;
# 2)  連接到  RMAN.
$ rman TARGET sys/Password1@cdb1_stby AUXILIARY sys/Password1@cdb1
# 3)  復制數據庫。DUPLICATE TARGET DATABASE
FOR STANDBY
FROM ACTIVE DATABASE
DORECOVER
SPFILE
SET db_unique_name= cdb1  COMMENT  Is standby 
NOFILENAMECHECK;
# 4)  連接到當前主節點上的  DGMDRL。$ dgmgrl sys/Password1@cdb1_stby
# 5)  啟用新備用數據庫。DGMGRL  ENABLE DATABASE cdb1;

6、閃回數據庫

在上一節中已經提到過,但值得再次關注閃回數據庫。雖然切換 / 切換對主數據庫和備用數據庫都是安全的,但故障轉移會使原始主數據庫無法轉換為備用數據庫。如果未啟用閃回數據庫,則必須廢棄原始主數據庫并將其重新創建為備用數據庫。

另一種方法是在主服務器上啟用閃回數據庫(如果需要,還可以啟用備用數據庫),以便在發生故障轉移時,可以將主數據庫閃回到故障轉移之前的時間并快速轉換為備用數據庫,如上所示。

7、只讀備用和 Active Data Guard

配置備用數據庫后,可以以只讀模式打開它以允許查詢訪問。這通常用于將報告卸載到備用服務器,從而釋放主服務器上的資源。以只讀模式打開時,歸檔日志傳送將繼續,但托管恢復將停止,因此備用數據庫將逐漸過時,直到恢復管理恢復。

要將備用數據庫切換到只讀模式,請執行以下操作。

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE OPEN READ ONLY;

重置管理恢復,請執行以下操作。

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

在  11g 中,Oracle 引入了活動數據保護功能。這允許備用數據庫以只讀模式打開,但仍應用重做信息。這意味著一個備用系統可以用于查詢,但仍然是最新的。此功能存在許可問題,但以下命令顯示如何啟用活動數據保護。

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE OPEN READ ONLY;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

由于托管恢復繼續使用  Active Data Guard,因此在這種情況下無需從只讀模式切換回托管恢復。

8、快照備用

在  11g 中引入,快照備用允許備用數據庫以讀寫模式打開。當切換回備用模式時,在讀寫模式下所做的所有更改都將丟失。這是使用閃回數據庫實現的,可以正常工作,備用數據庫不需要顯式啟用閃回數據庫來利用此功能。

連接到主(cdb1)數據庫并將備用數據庫(cdb1_stby)轉換為快照備用數據庫。

$ 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

完成快照備用后,將其轉換回備用數據庫。

$ 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

備用數據庫再次處于托管恢復狀態,并恢復歸檔日志傳送。請注意,閃回數據庫仍未啟用。

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

到此,關于“使用 Data Guard Broker 進行 Data Guard 物理備用庫配置的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-26發表,共計12133字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 保亭| 都江堰市| 巫山县| 奎屯市| 景德镇市| 万盛区| 洞口县| 荆门市| 石门县| 义马市| 肇东市| 大丰市| 仪征市| 墨玉县| 雷州市| 柘城县| 张家川| 盐亭县| 土默特右旗| 手机| 姜堰市| 白玉县| 灌云县| 南宁市| 通化县| 南昌县| 旺苍县| 云南省| 双桥区| 阆中市| 洛南县| 栖霞市| 灵宝市| 海宁市| 南投市| 玉门市| 刚察县| 金湖县| 伊宁县| 芦溪县| 千阳县|