環境:
主庫A機:在線生產環境,RHEL 6.4 + Oracle 11.2.0.3
備庫B機:新增備機,RHEL 6.4
需求:
對生產環境最小影響前提下配置DG備庫。
目錄:
一、B機安裝相同版本Oracle軟件
二、A機,B機配置網絡連接
三、配置主庫A機,需要重啟A機數據庫
四、duplicate主庫到備機
五、日常運維
一、B機安裝相同版本Oracle軟件
只需要安裝相同版本的Oracle軟件,配置環境變量,不需要建庫。 參考:《[Linux平台oracle 11g單實例 安裝部署配置 快速參考](http://www.cnblogs.com/jyzhao/p/3891769.html)》 部分內容。二、A機,B機配置網絡連接
2.1 配置listener.ora
### 2.1.1 A機配置listener.ora ### 新增下面靜態注冊內容,然后`lsnrctl reload`重載監聽,這樣重載不會影響到現有業務:SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = jingyu)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = jingyu)
)
(SID_DESC =
(GLOBAL_DBNAME = jingyu_dgmgrl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = jingyu)
)
)
2.1.2 B機配置listener.ora
加入下面靜態注冊內容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = jingyu_s)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = jingyu_s)
)
(SID_DESC =
(GLOBAL_DBNAME = jingyu_s_dgmgrl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = jingyu_s)
)
)
2.2 配置tnsnames.ora
A機、B機都配置tnsnames.ora,添加以下內容:jingyu =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.99.180)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = jingyu)
)
)
jingyu_s =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.99.183)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = jingyu_s)
)
)
2.3 生成密碼文件
A機生成密碼文件:orapwd file=$ORACLE_HOME/dbs/orapwjingyu password=oracle entries=10 ignorecase=Y
B機生成密碼文件:
orapwd file=$ORACLE_HOME/dbs/orapwjingyu_s password=oracle entries=10 ignorecase=Y
測試在A機連接到B機正常聯通:
首先確定已經關閉防火牆和SELinux。
sqlplus sys/oracle@jingyu_s as sysdba
三、配置主庫A機,需要重啟A機數據庫
添加standby logfile, 如果原來有三組聯機日志,那么添加4組standby日志。 A機確定以下目錄存在且賦予正確權限: 歸檔日志文件存放目錄:/u01/app/oracle/arch--設置數據庫為force logging
alter database force logging;
--設置db_unique_name, log_archive_config(這里主庫的db_unique_name,出於對現有的生產環境最小影響考慮沒有改)
alter system set db_unique_name='jingyu' scope=spfile;
alter system set log_archive_config='DG_CONFIG=(jingyu,jingyu_s)';
--歸檔日志目錄
alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jingyu';
alter system set log_archive_dest_2='SERVICE=jingyu_s ASYNC LGWR VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jingyu_s';
--歸檔日志文件命名規則
alter system set log_archive_format='arch_%r_%t_%s.arc' scope=spfile;
--DG的fal_server和fal_client
alter system set fal_server=jingyu_s;
alter system set fal_client=jingyu;
--設置standby_file_management為自動
alter system set standby_file_management=AUTO;
--設置備庫日志文件組,數量一般為目標庫日志文件組+1
alter database add standby logfile group 11 size 52428800;
alter database add standby logfile group 12 size 52428800;
alter database add standby logfile group 13 size 52428800;
alter database add standby logfile group 14 size 52428800;
四、duplicate主庫到備機
4.1 B機確定以下目錄存在且賦予正確權限
歸檔日志文件存放目錄:/u01/app/oracle/arch 審計文件目錄:/u01/app/oracle/admin/jingyu_s/adump 數據文件目錄:/usr2/oracle/oradata4.2 B機數據庫啟動到nomount模式
參數文件initjingyu_s.oraecho "db_name=jingyu_s" > /tmp/initjingyu_s.ora
啟動到nomount狀態
startup nomount pfile='/tmp/initjingyu_s.ora';
4.3 A機登錄,復制數據庫到B機
duplicate命令rman target / auxiliary sys/oracle@jingyu_s cmdfile=duplicate_standby.sql
vi duplicate_standby.sql
duplicate target database
for standby
from active database
DORECOVER
spfile
set db_unique_name='jingyu_s'
set audit_file_dest='/u01/app/oracle/admin/jingyu_s/adump'
set db_create_file_dest='/usr2/oracle/oradata'
--set control_files='/usr2/oracle/oradata/jingyu_s/control01.ctl','/u01/app/oracle/fast_recovery_area/jingyu_s/control02.ctl'
set log_archive_dest_1='location=/u01/app/oracle/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jingyu_s'
set log_archive_dest_2='SERVICE=jingyu ASYNC LGWR VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jingyu'
set standby_file_management='AUTO'
set fal_server='jingyu'
set fal_client='jingyu_s'
set memory_target='0'
set sga_target='1024M';
