构建RAC架构Data Guard及异地单机Data Guard

构建RAC架构Data Guard
及异地单机Data Guard

实施方案


目录
文档控制 3
修改记录 3
文档分发 3
概述 4
实施过程 5
一、RAC架构Data Guard 5
(一)、配置standby库rac环境。 5
(二)、配置rac架构data guard 10
二、异地单机Data Guard 17

 

 


1、需求概述:

某某公司现有4节点RAC架构数据库ERP一套。现需要与ERP数据库在同一机房内,构建一套RAC架构Data Guard(本方案采用2节点),并采用max aviliable保护模式,用以在CRM主库出现故障时,可及时切换到RAC架构的Data Guard备库上,并且最大限度的保障性能。
同时,需要在异地机房内,构建一台单机Data Guard,用以对CRM数据库进行容灾。
       

2、环境概述:

        操作系统均采用Redhat Enterprise Linux 4,共享存储采用OCFS2格式。
        本文中,除CRM数据库4个节点的相关配置信息为实际信息外,其他服务器配置信息均为虚构信息,实施过程中需要根据实际情况进行修改。

下文中----
primary库代表rac架构的crm主库;
standby库代表rac架构的Data guard数据库,2个节点,主机名分别为crm-std1 、 crm-std2;
remote库代表异地单机Data guard数据库。

本文作为方案实施的参考性文档,仅列出了关键性配置。具体实施过程中,配置、参数需要根据实际情况进行调整。其中关于RAC环境的详细配置,请参考之前提供的RAC实施文档。

 


实施过程
一、RAC架构Data Guard

(一)、配置standby库rac环境。

1、设置主机名,修改hosts文件。
 
(1). 修改standby库的两个节点的/etc/sysconfig/network文件中的hostname为对应的主机名。

(2). 修改所有主机的/etc/hosts 文件,包括primary库的4个节点主机,内容如下


# for standby
192.168.1.151    crm-std1      
192.168.1.152    crm-std2
10.1.1.151       crm-std1-priv
10.1.1.152       crm-std2-priv

# for remote
192.168.10.51    remote

# Primary db network
192.168.9.51    CRM-RAC01
192.168.9.53    CRM-RAC02
192.168.9.52    CRM-RAC03
192.168.9.54    CRM-RAC04

10.1.1.51    CRM-RAC01-priv
10.1.1.53    CRM-RAC02-priv
10.1.1.52    CRM-RAC03-priv
10.1.1.54    CRM-RAC04-priv

 

 

 

 

2、配置共享存储

(1) 安装 OCFS2

下载下面的安装包
 OCFS2对应版本的内核模块
 OCFS2 tools
 OCFS2 console
然后通过rpm -i 在standby库的两个节点主机分别安装。

(2).配置ocfs2系统服务
在standby库两个节点主机分别用root用户执行---
/etc/init.d/o2cb configure
选择系统启动时候自动加载

(3).配置ocfs2 cluster节点信息。

在standby库两个节点主机,用root用户编辑"/etc/ocfs2/cluster.conf"文件,
内容如下


node:
        ip_port = 7777
        ip_address = 192.168.1.151
        number = 1
        name = crm-std1
        cluster = ocfs2
 
node:
        ip_port = 7777
        ip_address = 192.168.1.152
        number = 2
        name = crm-std2
        cluster = ocfs2
cluster:
        node_count = 2
        name = ocfs2


然后运行如下命令,重新加载ocfs2模块,使新配置生效。
[root@crm-std1 ~]# service o2cb restart
(4).格式化共享磁盘
使用mkfs.ocfs2命令格式化共享磁盘(在一个节点上操作即可)。
以格式化一个可被4个节点使用,Volumn Label为ora_data 的磁盘为例,命令如下----
[root@crm-std1 ~]# mkfs.ocfs2  -N 4  -L ora_data   /dev/sdb5

注:步骤3、4可通过图形工具ocfs2console来完成。通过ocfs2console添加节点前,应先将/etc/ocfs2/cluster.conf文件删除,否则添加节点会报错。


(5).在所有standby库节点主机上,挂载OCFS2共享磁盘
 服务器开机自动挂载:
编辑/etc/fstab文件,添加下面的行
/dev/sdb5  /oradata   ocfs2   _netdev,datavolume,nointr 0 0

 使用命令挂载:
# mount -o datavolume,nointr -t ocfs2 /dev/sdb5 /oradata


(6).创建quorum文件
在任一standby节点主机上,以root用户执行—


#  dd if=/dev/zero f=/oradata/quorum.dbf bs=1M count=100
#  chown root:oinstall /oradata/quorum.dbf
#  chmod 664 /oradata/quorum.dbf


(7).创建srvm文件
在任一standby节点主机上,以root用户执行


#  dd if=/dev/zero f=/oradata/srvm.dbf bs=1M count=100
#  chown oracle:oinstall  /oradata/srvm.dbf
#  chmod 664 /oradata/srvm.dbf


(8). 创建srvConfig.loc文件
在任一standby节点主机上,以root用户执行


# mkdir -p /var/opt/oracle 
# touch /var/opt/oracle/srvConfig.loc
# chmod 755 /var/opt/oracle/srvConfig.loc 
# chown oracle:dba /var/opt/oracle/srvConfig.loc


并在srvConfig.loc文件中添加以下内容: 
srvconfig_loc=/oradata/srvm.dbf 

(9). 配置环境变量
在standby库两个节点的oracle用户初始化.bash_profile文件中添加下列内容:

if [ $USER = "oracle" ]; then
ulimit -u 16384 -n 65536
fi
ORACLE_BASE=/oradata
ORACLE_HOME=/opt/oracle/product/9.2.0
ORACLE_TERM=xterm
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
PATH=$HOME/bin:$ORACLE_HOME/bin:$PATH
export LIBPATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
export ORACLE_BASE ORACLE_HOME ORACLE_TERM NLS_LANG ORA_LNS33 LD_LIBRARY_PATH PATH
LD_ASSUME_KERNEL=2.4.1
ORACLE_SID=crmstd1  
export ORACLE_SID
umask 022

注:主机crm-std1设置ORACLE_SID= crmstd1
主机crm-std2设置ORACLE_SID= crmstd2

(10). 安装集群软件及数据库软件
可将已有primary库任一节点上的oracle软件拷贝到crm-std1和crm-std2主机的相同路径下。
或者,
按照之前提供的rac安装文档,安装Oracle Cluster Manager及Oracle 数据库软件,并升级到9.2.0.8。


(11). 修改Oracle Cluster Manager配置文件。
编辑standby库各节点的 $ORACLE_HOME/oracm/admin/cmcfg.ora 文件

节点crm-std1---
ClusterName=Oracle Cluster Manager, version 9i
MissCount=210
PrivateNodeNames=crm-std1-priv crm-std2-priv
PublicNodeNames=crm-std1 crm-std2
ServicePort=9998
CmDiskFile=/oradata/quorum.dbf
HostName=crm-std1
KernelModuleName=hangcheck-timer

 

节点crm-std2---

ClusterName=Oracle Cluster Manager, version 9i
MissCount=210
PrivateNodeNames = crm-std1-priv crm-std2-priv
PublicNodeNames = crm-std1 crm-std2
ServicePort=9998
CmDiskFile=/oradata/quorum.dbf
HostName=crm-std2
KernelModuleName=hangcheck-timer

 

(12). 加载hangcheck-timer模块
$modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
为了开机既加载此模块,应将此命令写到/etc/rc.local开机执行脚本中。

 

(二)、配置rac架构data guard
1、修改standby库两个节点的$ORACLE_HOME/network/admin/tnsnames.ora文件内容如下

CRM =
  (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = CRM-RAC01)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = CRM-RAC02)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = CRM-RAC03)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = CRM-RAC04)(PORT = 1521))
      (LOAD_BALANCE = yes)
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = CRM)
    )
  )


STAND =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = crm-std1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = crm-std2)(PORT = 1521))
      (LOAD_BALANCE = yes)
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = CRM)
    )
  )


REMOTE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = remote)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = CRM)
      (INSTANCE_NAME = remote)
    )
  )

 

 


2、修改standby库两个节点的 $ORACLE_HOME/network/admin/sqlnet.ora文件
添加  SQLNET.EXPIRE_TIME=2
3、primary库端配置及操作
(1). 将primary库设为force logging模式

SQL> ALTER DATABASE FORCE LOGGING;

(2). 停止primary库的所有实例,将primary库做一个全库的冷备份。

停止primary库的所有实例,关闭数据库。

将所有数据文件,日志文件,临时表空间文件 拷贝到 /oradata/stand/ 相应目录下。

mkdir –p /oradata/stand/data/crm/
mkdir –p /oradata/stand/index/crm/
mkdir –p /oradata/stand/lob/crm/
mkdir –p /oradata/stand/other/crm/
mkdir –p /oradata/stand/spfile/crm/

cp /oradata/data/crm/*   /oradata/stand/data/crm/  
cp /oradata/index/crm/*  /oradata/stand/index/crm/ 
cp /oradata/lob/crm/*    /oradata/stand/lob/crm/   
cp /oradata/other/crm/*  /oradata/stand/other/crm/ 
cp /oradata/spfile/crm/* /oradata/stand/spfile/crm/


(3). 重新启动primary库,并创建standby控制文件。


SQL> startup;
SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/oradata/stand/stand.ctl';


(4). 创建pfile


SQL> CREATE PFILE='/oradata/stand/initcrm.ora' FROM SPFILE;

 

 

 


(5). 将数据文件、日志文件、临时文件,控制文件,参数文件 拷贝到standby库的共享存储上。

1).在standby库的共享存储上创建相同的目录结构。


mkdir –p /oradata/data/crm/
mkdir –p /oradata/index/crm/
mkdir –p /oradata/lob/crm/
mkdir –p /oradata/other/crm/
mkdir –p /oradata/spfile/crm/

mkdir –p /opt/oracle/admin/crm/bdump
mkdir –p /opt/oracle/admin/crm/cdump
mkdir –p /opt/oracle/admin/crm/udump


2). 将备份的主库数据文件、日志文件、临时文件拷贝到standby库的共享存储上


scp /oradata/stand/data/crm/*     crm-std1:/oradata/data/crm/    
scp /oradata/stand/index/crm/*   crm-std1:/oradata/index/crm/   
scp /oradata/stand/lob/crm/*      crm-std1:/oradata/lob/crm/     
scp /oradata/stand/other/crm/*   crm-std1:/oradata/other/crm/   
scp /oradata/stand/spfile/crm/*  crm-std1:/oradata/spfile/crm/  

 

3). 将生成的standby 控制文件拷贝到 standby 库的共享存储上并重命名。


scp /oradata/stand/stand.ctl std1:/oradata/data/crm/control01.ctl
scp /oradata/stand/stand.ctl std1:/oradata/index/crm/control02.ctl
scp /oradata/stand/stand.ctl std1:/oradata/lob/crm/control03.ctl 

 

4). 将主库的文本参数文件拷贝到standby库的共享存储上。


scp /oradata/stand/initstd.ora  std1:/oradata/spfile/crm/

 

 

4、 在standby库两个节点上上分别创建密码文件

crm-std1

[oracle@crm-std1~]$ orapwd file=$ORACLE_HOME/dbs/orapwcrmstd1 password=sys entries=5;

 

crm-std2

[oracle@crm-std2 ~]$ orapwd file=$ORACLE_HOME/dbs/orapwcrmstd2 password=sys entries=5;

5、 生成standby库参数文件。

(1).  修改standby库共享存储上/oradata/spfile/crm/initstd.ora文件。

修改下列内容----

*.cluster_database_instances=2
*.cluster_database=TRUE
*.db_name=CRM
*.log_archive_start=TRUE
*.log_archive_format=%t_%s.dbf       /*归档文件格式中必须包含%t (线程号)参数*/
*.log_archive_dest_1=('LOCATION=/oradata/arch/crm/ mandatory')
*.standby_archive_dest='/oradata/arch/crm/'
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
crmstd1.instance_name=crmstd1
crmstd2.instance_name=crmstd2
crmstd1.instance_number=1
crmstd2.instance_number=2
crmstd1.thread=1
crmstd2.thread=2
crmstd1.undo_tablespace=UNDOTBS1
crmstd2.undo_tablespace=UNDOTBS2
*.fal_client='STAND'
*.fal_server='CRM ' 


注意:由于此参数文件是由primary库生成,应将参数文件中与primary库实例有关的特殊条目删除。如:crm3.instance_name 、crm3.thread、crm3.undo_tablespace等参数。


(2). 生成standby库的SPFILE

    在任一standby节点上用oracle用户执行---

# sqlplus /nolog
# conn /as sysdba;
SQL> create spfile=’/oradata/spfile/crm/spfilecrmstd.ora’ from pfile=’/oradata/spfile/crm/initstd.ora’;

 

(3).在standby库的两个节点,分别创建文本参数文件,指向新生成的SPFILE。

 crm-std1
# echo "spfile='/oradata/spfile/crm/spfilecrmstd.ora' " > $ORACLE_HOME/dbs/initcrmstd1.ora


crm-std2
# echo "spfile='/oradata/spfile/crm/spfilecrmstd.ora' " > $ORACLE_HOME/dbs/initcrmstd2.ora


6、 启动standby库两个节点上的oracm
 

$ su root        /*从oracle用户带环境变量,切换到root用户*/
  # $ORACLE_HOME/oracm/bin/ocmstart.sh


7、 启动standby库到mount状态。

在两个节点依次执行

SQL>host lsnrctl start
SQL>conn /as sysdba;
SQL>alter database nomount;
SQL>alter database mount standby database;

 

8、 在standby库创建standby logfile

使用max protection 或 max aviliable 级别data guard 需要在standby 库创建 standby logfile.


SQL>alter database add standby logfile
      group 11 ('/oradata/other/crm/crm_std_redo_11.log') size 50m,
      group 12 ('/oradata/other/crm/crm_std_redo_12.log') size 50m,
      group 13 ('/oradata/other/crm/crm_std_redo_13.log') size 50m,
      group 14 ('/oradata/other/crm/crm_std_redo_14.log') size 50m,
      group 15 ('/oradata/other/crm/crm_std_redo_15.log') size 50m,
      group 16 ('/oradata/other/crm/crm_std_redo_16.log') size 50m,
      group 17 ('/oradata/other/crm/crm_std_redo_17.log') size 50m,
      group 18 ('/oradata/other/crm/crm_std_redo_18.log') size 50m,
      group 19 ('/oradata/other/crm/crm_std_redo_19.log') size 50m,
      group 20 ('/oradata/other/crm/crm_std_redo_20.log') size 50m,
      group 21 ('/oradata/other/crm/crm_std_redo_21.log') size 50m;

 

注:(1)standby库上standby logfile 的组数量,至少要比主库的日志组多一个。
(2)另外,还必须注意控制文件的最大日志组限制,如果超过了最大日志组数量的限制,则需要重新创建控制文件。
(3)若想要在primary库和standby库间自由切换角色,则primary库也应增加standby logfile。

 

9、修改primary库初始化参数,将数据库置于max availability 保护模式。

(1).关闭数据库的集群属性(修改数据库的保护模式要在单实例状态下修改)。


SQL>alter system set cluster_database=false scope=spfile;

 

(2).添加归档目的地。


SQL>alter system set log_archive_dest_2=’service=stand LGWR SYNC AFFIRM reopen=5’ scope=spfile;

 

(3). 若需要primary库和standby库可自由切换,可再设置以下参数。


SQL>alter system set standby_archive_dest='/oradata/arch/crm/';
SQL>alter system set fal_client='CRM'
SQL>alter system set fal_server='STAND' 

 

(4).停止primary库的所有实例。


(5).在primary库的任意一个节点,将primary库启动到mount状态,并修改数据库保护模式。

SQL>startup mount;
SQL>alter database  set standby database to MAXIMIZE AVAILABILITY;

 

(6).恢复primary库的集群属性,并启动数据库(启动所有节点实例)。


SQL> alter system set cluster_database=TRUE scope=spfile;
SQL>shutdown immediate;
SQL>startup;

注意:
1. 如果standby 库没有启动或没有启动监听,则primary库在启动时会由于LGWR进程无法找到归档目的地而导致实例崩溃,数据库无法启动。
2. 不建议将primary 库设为 Max Protection 保护模式,在此模式下,primary库和standby 库都无法正常停库,且如果standby库出现异常,会导致primary库挂起。


10、将standby库置于自动应用归档模式。

此操作在standby的一个节点上,或所有节点上做都可以。


SQL>alter database recover managed standby database disconnect from session;

 

11、至此RAC 架构Data Guard配置完成。可用下列命令在standby库检查日志及归档是否成功接收及应用。


SQL>select sequence#,archived,applied from v$archived_log  order by sequence#;

SQL>select group#,thread#,sequence#,used,archived,status from v$standby_log;

 

 

 
二、异地单机Data Guard

1、设置主机名,修改hosts文件

(1). 修改/etc/sysconfig/network文件,将hostname的值改为remote。

(2). 修改remote主机的/etc/hosts 文件内容如下---


# for standby
192.168.1.151    crm-std1      
192.168.1.152    crm-std2
10.1.1.151       crm-std1-priv
10.1.1.152       crm-std2-priv

# for remote
192.168.10.51    remote

# Primary db network
192.168.9.51    CRM-RAC01
192.168.9.53    CRM-RAC02
192.168.9.52    CRM-RAC03
192.168.9.54    CRM-RAC04

10.1.1.51    CRM-RAC01-priv
10.1.1.53    CRM-RAC02-priv
10.1.1.52    CRM-RAC03-priv
10.1.1.54    CRM-RAC04-priv

 


2、修改环境变量

在初始化.bash_profile文件中添加下列内容:

if [ $USER = "oracle" ]; then
ulimit -u 16384 -n 65536
fi
ORACLE_BASE=/oradata
ORACLE_HOME=/opt/oracle/product/9.2.0
ORACLE_TERM=xterm
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
PATH=$HOME/bin:$ORACLE_HOME/bin:$PATH
export LIBPATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
export ORACLE_BASE ORACLE_HOME ORACLE_TERM NLS_LANG ORA_LNS33 LD_LIBRARY_PATH PATH
LD_ASSUME_KERNEL=2.4.1
ORACLE_SID=remote
export ORACLE_SID
umask 022

 

3、安装Oracle软件,并升级到9.2.0.8。

   
4、修改 $ORACLE_HOME/network/admin/tnsnames.ora文件


CRM =
  (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = CRM-RAC01)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = CRM-RAC02)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = CRM-RAC03)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = CRM-RAC04)(PORT = 1521))
      (LOAD_BALANCE = yes)
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = CRM)
    )
  )

STAND =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = crm-std1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = crm-std2)(PORT = 1521))
      (LOAD_BALANCE = yes)
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = CRM)
    )
  )

REMOTE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = remote)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = CRM)
      (INSTANCE_NAME = remote)
    )
  )

 

5、修改 $ORACLE_HOME/network/admin/sqlnet.ora 文件
添加  SQLNET.EXPIRE_TIME=2


6、将数据文件、日志文件、临时文件,控制文件,参数文件 拷贝到remote主机。

(1).在remote主机上创建相同的目录结构。


mkdir –p /oradata/data/crm/
mkdir –p /oradata/index/crm/
mkdir –p /oradata/lob/crm/
mkdir –p /oradata/other/crm/
mkdir –p /oradata/spfile/crm/

mkdir –p /opt/oracle/admin/crm/bdump
mkdir –p /opt/oracle/admin/crm/cdump
mkdir –p /opt/oracle/admin/crm/udump

 


(2). 将备份的primary库数据文件、日志文件、临时文件拷贝到remote主机

在primary库的任一节点上执行---


scp /oradata/stand/data/crm/*     remote:/oradata/data/crm/    
scp /oradata/stand/index/crm/*   remote:/oradata/index/crm/   
scp /oradata/stand/lob/crm/*      remote:/oradata/lob/crm/     
scp /oradata/stand/other/crm/*   remote:/oradata/other/crm/   
scp /oradata/stand/spfile/crm/*  remote:/oradata/spfile/crm/

  

(3). 将生成的standby 控制文件拷贝到 remote主机并重命名。

在primary库的任一节点上执行---

scp /oradata/stand/stand.ctl remote:/oradata/data/crm/control01.ctl
scp /oradata/stand/stand.ctl remote:/oradata/index/crm/control02.ctl
scp /oradata/stand/stand.ctl remote:/oradata/lob/crm/control03.ctl 

  


(4). 将主库的文本参数文件拷贝到crm-std1/crmstd2主机的共享存储上。

在primary库的任一节点上执行---


scp /oradata/stand/initstd.ora  remote:/oradata/spfile/crm/

  

7、 在remote主机上创建密码文件


[oracle@remote~]$ orapwd file=$ORACLE_HOME/dbs/orapwremote password=sys entries=5;

  


8、 修改remote库参数文件。

(1).  修改remote主机上的 /oradata/spfile/crm/initstd.ora文件。

修改下列内容----

*.db_name='CRM'
*.fal_client='remote'
*.fal_server='master'
*.instance_name='remote'
*.log_archive_dest_1='location=/oradata/rac/arch'
*.log_archive_format='%t_%s.dbf'
*.log_archive_start=TRUE
*.standby_archive_dest='/oradata/rac/arch'
*.standby_file_management='AUTO'
*.thread=1
*.undo_tablespace='UNDOTBS1'
*.fal_client='REMOTE'
*.fal_server='CRM ,STAND'    

  
注意:由于此参数文件是由rac架构的primary库生成,应将参数文件中与rac有关的特殊条目删除。
应删除的条目有---


*.cluster_database_instances=4
*.cluster_database=TRUE
crm1.instance_name=crm1
crm2.instance_name=crm2
crm3.instance_name=crm3
crm4.instance_name=crm4
crm1.instance_number=1
crm2.instance_number=2
crm3.instance_number=3
crm4.instance_number=4
crm1.thread=1
crm2.thread=2
crm3.thread=3
crm4.thread=4
crm1.undo_tablespace=UNDOTBS1
crm2.undo_tablespace=UNDOTBS2
crm3.undo_tablespace=UNDOTBS3
crm4.undo_tablespace=UNDOTBS4

  

 (2). 生成SPFILE

    在remote主机上用oracle用户执行---

   # sqlplus /nolog
   # conn /as sysdba;
SQL> create spfile from pfile=’/oradata/spfile/crm/initstd.ora’;

  


9、启动remote库到mount状态。


SQL>host lsnrctl start
SQL>conn /as sysdba;
SQL>alter database nomount;
SQL>alter database mount standby database;

  

 

10、修改primary库参数,将remote库设为归档目的地。

     在primary库任一节点执行----


SQL> alter system set log_archive_dest_2='service=REMOTE';

  


11、将remote 库置于自动应用归档模式


SQL>alter database recover managed standby database disconnect from session;

  


12、至此Data Guard配置完成。可用下列命令在standby库检查日志及归档是否成功接收及应用。


SQL>select sequence#,archived,applied from v$archived_log  order by sequence#;

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23184238/viewspace-664904/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23184238/viewspace-664904/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值