Dataguad RAC配置【一】

时间:2022-06-26 07:21:12

Data Guard配置步骤

生产端配置步骤

1.关闭一个实例。

用oracle用户登录192.166.1.190,执行以下SQL关闭其上的实例:

SQL>shutdown immediate;

2.检查另一个实例以确保它是打开的。

用oracle用户登录192.166.1.191,用以下SQL确保其上的实例是打开状态:

SQL> select status from v$instance;

STATUS

------------------------------------

OPEN

3.在192.166.1.191上用show parameter<parameter name>;检查以下参数是否正确配置(<parameter name>用以下:左边的参数名替换,包括参数值的一对’是为步骤4所用,检查参数值时可以忽略):

DB_NAME : ‘ipcc’

DB_UNIQUE_NAME : ‘ipccp’

LOG_ARCHIVE_CONFIG : ‘dg_config=(ipccp,ipccs)’

CONTROL_FILES : ‘+DG_ORA(CONTROLFILE)/ipccp/ora_ctl01’, ‘+DG_ORA(CONTROLFILE)/ipccp/ora_ctl02’, ‘+DG_ORA(CONTROLFILE)/ipccp/ora_ctl03’

LOG_ARCHIVE_DEST_1 : ‘LOCATION=+DG_BACKUP valid_for=                                                         (ALL_LOGFILES,ALL_ROLES)’

LOG_ARCHIVE_DEST_2 : ‘service="ipccs" LGWR ASYNC NOAFFIRM delay=0 optional compression=disable max_failure=0 max_connections=1 reopen=300 db_unique_name="ipccs" net_timeout=30 valid_for=(all_logfiles, primary_role)’

LOG_ARCHIVE_DEST_STATE_1 : enable

LOG_ARCHIVE_DEST_STATE_2 : enable

REMOTE_LOGIN_PASSWORDFILE : ‘EXCLUSIVE’

LOG_ARCHIVE_FORMAT : ‘%t_%s_%r.dbf’

LOG_ARCHIVE_MAX_PROCESSES : 30

FAL_SERVER : ‘ipccs’

DB_FILE_NAME_CONVERT : ‘+DG_DATA’, ‘+DG_DATA’

LOG_FILE_NAME_CONVERT : ‘+DG_ORA/ipccs’, ‘+DG_ORA/ipccp’

STANDBY_FILE_MANAGEMENT : ‘AUTO’

& 说明:

  • 数据库参数db_file_name_convert和log_file_name_convert这两个参数里的路径对里,前者必须是容灾端的路径,后者必须是生产端的路径。
  • LOG_ARCHIVE_CONFIG : ‘dg_config=(ipccp,ipccs)’里的ipccp和ipccs均为db_uniqe_name参数值。
  • LOG_ARCHIVE_DEST_2 里‘service="ipccs"的ipccs是生产端tnsnames.ora里的用于连接容灾端的连接字符串别名。
  • FAL_SERVER 里‘ipccs’的ipccs是生产端tnsnames.ora里的用于连接容灾端的连接字符串别名。

4.如果以上检查结果与规划不一致,在生产端节点192.166.1.191上按照以下方法对这些参数进行修改,然后重启实例使其生效(<parameter name>用步骤3里:前的参数名替换,<parameter value>用步骤3里:后的参数值替换):

SQL>alter system set <parameter name>=<parameter value> scope=spfile;

利用以上语句修改了所有参数之后,执行以下语句使其生效:

SQL>shutdown immediate;

SQL>startup;

5.配置生产端所有节点的监听:

以grid用户登录192.166.1.191,执行以下命令:

grid@DB1:/opt/oracrs/product/11gR2/grid/network/admin> srvctl add listener -l listener_db2 -p "TCP:1526"

grid@DB1:/opt/oracrs/product/11gR2/grid/network/admin> srvctl start listener -l listener_db2

& 说明:

  • 如果生产端已经配置了监听,则不需要执行srvctl add listener命令直接执行以下步骤。另外,如果生产端的监听是在oracle用户下配置的,则以下关于监听的配置均在oracle用户下进行,而不是grid用户下进行。

以grid用户登录192.166.1.191,进入到$ORACLE_HOME/network/admin下,编辑listener.ora添加以下内容:

SID_LIST_LISTENER_DB2 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = ipccp)

(ORACLE_HOME = /opt/oracle/product/11gR2/db)

(SID_NAME = ipccp1)

)

)

以oracle用户登录192.166.1.191上数据库实例,修改LOCAL_LISTENER参数值:

oracle@DB1:/opt/oracle/product/11gR2/db/network/admin> sqlplus / as sysdba

SQL>alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.166.1.104)(PORT=1526))))' scope=both sid=’ipccp1’;

以grid用户登录192.166.1.191,重启监听:

grid@DB1:~> srvctl stop listener -l listener_db2

grid@DB1:~> srvctl start listener -l listener_db2

以grid用户登录192.166.1.190,进入到$ORACLE_HOME/network/admin下,编辑listener.ora添加以下内容:

SID_LIST_LISTENER_DB2 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = ipccp)

(ORACLE_HOME = /opt/oracle/product/11gR2/db)

(SID_NAME = ipccp2)

)

)

以oracle用户登录192.166.1.190上数据库实例,修改LOCAL_LISTENER参数值:

oracle@DB1:/opt/oracle/product/11gR2/db/network/admin> sqlplus / as sysdba

SQL>startup;

SQL>alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.166.1.105)(PORT=1526))))' scope=both sid=’ipccp2’;

以grid用户登录192.166.1.190,重启监听:

grid@DB1:~> srvctl stop listener -l listener_db2

grid@DB1:~> srvctl start listener -l listener_db2

& 说明:

  • 上面所用的/opt/oracle/product/11gR2/db是oracle用户下echo $ORACLE_HOME的返回值。
  • GLOBAL_DBNAME = ipccp里的ipccp是生产端的db_unique_name参数值。

6.配置生产端所有节点的tnsnames.ora:

以oracle用户登录192.166.1.191,进入到$ORACLE_HOME/network/admin下,编辑tnsnames.ora添加以下内容:

ipccs =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.166.1.50)(PORT = 1525))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ipccs)

)

)

以oracle用户登录192.166.1.190,进入到$ORACLE_HOME/network/admin下,编辑tnsnames.ora添加以下内容:

ipccs =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.166.1.50)(PORT = 1525))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ipccs)

)

)

7.在生产端节点192.166.1.191添加容灾日志组:

SQL> alter database add standby logfile thread 1 group 5 '+DG_ORA/ipccp/ora_sdb05_1' size 524288000;

SQL> alter database add standby logfile thread 1 group 6 '+DG_ORA/ipccp/ora_sdb06_1' size 524288000;

SQL> alter database add standby logfile thread 1 group 7 '+DG_ORA/ipccp/ora_sdb07_1' size 524288000;

SQL> alter database add standby logfile thread 2 group 8 '+DG_ORA/ipccp/ora_sdb08_1' size 524288000;

SQL> alter database add standby logfile thread 2 group 9 '+DG_ORA/ipccp/ora_sdb09_1' size 524288000;

SQL> alter database add standby logfile thread 2 group 10 '+DG_ORA/ipccp/ora_sdb010_1' size 524288000;

& 说明:

  • 容灾日志组用于容灾端的REDO应用。因为生产端在switchover或failover之后也会变为容灾端,所以生产端也必须配置容灾日志组。
  • 生产端容灾日志组必须要比容灾端对应thread的重做日志组的组数至少大于一,如容灾端两个thread的重做日志组均为3,则生产端的两个thread的容灾日志组必须至少均为4。容灾日志组大小必须和重做日志一样。

可以利用生产端的备份集配置容灾端,也可用RMAN的duplicate命令配置容灾端。这里对这两种方法分别介绍。