ORACLE 11g rac+单实例数据库构建dataguard
一、数据库及操作系统初始环境:
准备已经安装完毕可以正常运行的RAC数据库,以及一台安装完ORACLE软件未创建数据库的。
RAC和单实例安装可以参考链接:
其中RAC做为DG的主库。
1.我的规划配置如下:
RAC 节点1:-IP192.168.1.221 主机名 bysrac1.bys.com ,以及数据库名 bysrac,Database unique name: bysrac
备库 IP 192.168.1.211 主机名racdg.bys.com,实例名 racdg,数据库名 bysrac,Database unique name: racdg
如下:
[grid@bysrac1 ~]$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6localhost6
192.168.1.221 bysrac1 bysrac1.bys.com
192.168.1.226 bysrac1-vip
192.168.1.222 bysrac2 bysrac2.bys.com
192.168.1.227 bysrac2-vip
192.168.10.1 bysrac1-priv
192.168.10.2 bysrac2-priv
192.168.1.228 bysrac-cluster bysrac-cluster-scan
192.168.1.211 racdg racdg.bys.com
[grid@bysrac1 ~]$ srvctl config database -d bysrac -a
Database unique name: bysrac
Database name: bysrac
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +BYSASMDATA/bysrac/spfilebysrac.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: bysrac
Database instances: bysrac1,bysrac2
Disk Groups: BYSASMDATA,BYSASMDG
备库: /etc/hosts与主库完全相同即可。
[oracle@racdg ~]$ cat .bash_profile
ORACLE_BASE=/u01
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=racdg
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH:$HOME/bin
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
2.RAC数据库中各文件位置--恢复到备库时转化文件名字用
SYS@bysrac1>archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +BYSASMDATA
Oldest online log sequence 156
Next log sequence to archive 157
Current log sequence 157
SYS@bysrac1>show parameter recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string +BYSASMDG
db_recovery_file_dest_size big integer 4977M
recovery_parallelism integer 0
SYS@bysrac1>select db_unique_name,name from v$database;
DB_UNIQUE_NAME NAME
------------------------------ ---------
bysrac BYSRAC
SYS@bysrac1>select name from v$datafile;
NAME
----------------------------------------------------------------------------------------------------
+BYSASMDATA/bysrac/datafile/system.259.818615175
+BYSASMDATA/bysrac/datafile/sysaux.260.818615237
+BYSASMDATA/bysrac/datafile/undotbs1.261.818615291
+BYSASMDATA/bysrac/datafile/undotbs2.263.818615365
+BYSASMDATA/bysrac/datafile/users.264.818615419
+BYSASMDATA/bysrac/datafile/test1_undo.dbf
+BYSASMDATA/bysrac/datafile/test1.dbf
BYS@bysrac1>selectname,block_size*file_size_blks/1024/1024 as bytes_m from v$controlfile;
NAME BYTES_M
-------------------------------------------------- ----------
+BYSASMDATA/bysrac/controlfile/current.256.8186151 17.6875
19
+BYSASMDG/bysrac/controlfile/current.256.818615127 17.6875
BYS@bysrac1>select group#,member from v$logfile;
GROUP# MEMBER
---------- --------------------------------------------------
1+BYSASMDATA/bysrac/onlinelog/group_1.257.818615137
1+BYSASMDG/bysrac/onlinelog/group_1.257.818615145
2+BYSASMDATA/bysrac/onlinelog/group_2.258.818615153
2+BYSASMDG/bysrac/onlinelog/group_2.258.818615163
3+BYSASMDATA/bysrac/onlinelog/group_3.265.818619941
3+BYSASMDG/bysrac/onlinelog/group_3.259.818619949
4+BYSASMDATA/bysrac/onlinelog/group_4.266.818619961
4+BYSASMDG/bysrac/onlinelog/group_4.260.818619967
二、修改RAC中初始化参数
3.在RAC主库中修改初始化参数
SQL> alter system set standby_file_management=auto scope=spfile;
SQL> alter system set log_archive_config="DG_CONFIG=(bysrac,racdg)"scope=spfile;
SQL> alter system set log_archive_dest_2="SERVICE=racdg LGWRSYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=racdg" scope=spfile;
SQL> alter system set fal_server=racdg scope=spfile;
SQL> alter system set fal_client=bysrac;
SQL> alter system setdb_file_name_convert="+BYSASMDATA/bysrac/datafile/","/u01/oradata/racdg",'+BYSASMDATA/bysrac/tempfile/','/u01/oradata/racdg/' scope=spfile;
SQL> alter system set log_file_name_convert="+BYSASMDATA/bysrac/onlinelog/","/u01/oradata/racdg",'+BYSASMDG/bysrac/onlinelog/','/u01/oradata/racdg/' scope=spfile;
SQL>create pfile='/home/oracle/initaa.ora' from spfile; ------这里创建的PFILE第五步时候发送到备库racdg。
三、配置双方监听互相通过服务名访问
4.双方监听配置文件示例如下:
RAC的listener.ora 就使用RAC安装好后的不用修改。
[oracle@bysrac1 admin]$ cat tnsnames.ora
BYSRAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = bysrac-cluster-scan)(PORT =1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bysrac)
)
)
racdg =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = racdg)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = racdg)
)
)
racdg的tnsnames.ora同上:
[oracle@racdg admin]$ cat listener.ora
LISTENER =