11.2.0.4 dataguard环境准备

本文详细介绍了如何在Oracle数据库环境下,通过一系列步骤完成主库与备库的准备、配置及连接设置,确保数据库系统的高可用性和容灾能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



主库信息:数据库:11.2.0.4 OSrhel as6.4 64 SIDprimary  db_nameprimary db_unique_nameprimary

备库信息:数据库:11.2.0.4 OSrhel as6.4 64 SIDstandby  db_nameprimary db_unique_namestandby

 

1.主库准备:

1.1 Enable ForcedLogging

  select FORCE_LOGGING from v$database;

  alter database force logging;

 

1.2 Configure Redotransport Authentication

  orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SIDpassword=redhat entries=10 force=yes

 

1.3 Configure thePrimary Database to Receive Redo data

  ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/primary/slog1.rdo') SIZE 50M;

  ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/primary/slog2.rdo') SIZE 50M;

  ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/primary/slog3.rdo') SIZE 50M;

  ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/primary/slog4.rdo') SIZE 50M;

  select * from V$STANDBY_LOG

 

1.4 Set PrimaryDatabase Initialization Parameters

  DB_NAME=primary

  DB_UNIQUE_NAME=primary

 LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)'

 LOG_ARCHIVE_DEST_1='LOCATION=/archivelog/primary/VALID_FOR=(ALL_LOGFILES,ALL_ROLES)        DB_UNIQUE_NAME=primary'

  LOG_ARCHIVE_DEST_2='SERVICE=standby ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby'

  LOG_ARCHIVE_DEST_STATE_1=ENABLE

  LOG_ARCHIVE_DEST_STATE_2=ENABLE 

  LOG_ARCHIVE_FORMAT=%t_%s_%r.arc

  FAL_SERVER=standby

  STANDBY_FILE_MANAGEMENT=AUTO

 #DB_FILE_NAME_CONVERT='standby','primary'  因为主库和备库的目录结构一致所以不用此参数

  #LOG_FILE_NAME_CONVERT='/arch1/standby','/arch1/primary' 因为主库和备库的目录结构一致所以不用此参数

 

 

1.5 Enable Archiving

  shutdown immediate;

  startup mount;

  alter database archivelog;

  alter database open;

 

1.6create listener and tnsnames file

 [oracle@primary dbs]$cd /u01/oracle/product/11g/network/admin/

 [oracle@primaryadmin]$ vi listener.ora

 

SID_LIST_LISTENER=   

  (SID_LIST =

     (SID_DESC =

      (GLOBAL_DBNAME = primary)

      (ORACLE_HOME = /u01/oracle/product/11g)

      (SID_NAME = primary)

     )

   )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

     (ADDRESS = (PROTOCOL = TCP)(HOST =primary)(PORT = 1521))

     (ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))

    )

  )

 

ADR_BASE_LISTENER =/u01/oracle

 

[oracle@primaryadmin]$ vitnsnames.ora

PRIMARY =

  (DESCRIPTION =

    (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.100.30)(PORT = 1521))

    )

    (CONNECT_DATA =

     (SERVICE_NAME = primary)

    )

  )

 

STANDBY =

  (DESCRIPTION =

    (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.100.20)(PORT = 1521))

    )

    (CONNECT_DATA =

     (SERVICE_NAME = standby)

    )

  )

 

 

2.备库准备

2.1 Create a Control File for the StandbyDatabase 在主库上操作为备库创建一个standbycontrolfile

  startup mount;

 alter database create standby controlfile as'/tmp/control01.ctl';

  alter database open;

 

2.2Create aParameter File for the Standby Database在主库上操作为备库创建一个pfile;

 createpfile='/tmp/initstandby.ora' from spfile;

 然后修改pfile

 DB_NAME=primary

  DB_UNIQUE_NAME=standby

 LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)'

 #DB_FILE_NAME_CONVERT='primary','standby'因为主库和备库的目录结构一致所以不用此参数

  #LOG_FILE_NAME_CONVERT='/arch1/primary','/arch1/standby'因为主库和备库的目录结构一致所以不用此参数

  LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc

 LOG_ARCHIVE_DEST_1='LOCATION=/archivelog/standby/VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=standby'

  LOG_ARCHIVE_DEST_2='SERVICE=primary ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary'

  LOG_ARCHIVE_DEST_STATE_1=ENABLE

  LOG_ARCHIVE_DEST_STATE_2=ENABLE

  STANDBY_FILE_MANAGEMENT=AUTO

  FAL_SERVER=primary

 

2.3在备库上创建相应的目录并复制相应的文件到备库

 [oracle@standbyoracle]$ mkdir -p $ORACLE_BASE/admin/primary/adump

 [oracle@standbyoracle]$ mkdir -p $ORACLE_BASE/admin/primary/dpdump

 [oracle@standbyoracle]$ mkdir -p $ORACLE_BASE/admin/primary/pfile

 [oracle@standbyoracle]$ mkdir -p $ORACLE_BASE/oradata/primary 

 [oracle@standbyoracle]$ mkdir -p $ORACLE_BASE/fast_recovery_area/primary

 [oracle@standbyoracle]$ mkdir -p $ORACLE_BASE/diag/rdbms/primary/primary

 

 [oracle@primaryprimary]$ pwd

 /u01/oracle/oradata/primary

 [oracle@primary primary]$ scp *standby:/u01/oracle/oradata/primary/    复制数据文件和日志文件

 

 [oracle@primary tmp]$pwd

 /tmp

 [oracle@primary tmp]$ scp control01.ctlstandby:/u01/oracle/oradata/primary复制standby控制文件到备库

 [oracle@primary tmp]$scp control01.ctl standby:/u01/oracle/fast_recovery_area/primary/control02.ctl

 

 将修改后的参数文件也复制到备库的 $ORACLE_HOME/dbs目录下

 [oracle@primary tmp]$scp initstandby.ora standby:/u01/oracle/product/11g/dbs/

 

2.4 create listener and tnsnames file备库上也需要创建监听文件和tns文件

 

 [oracle@standby dbs]$ cd/u01/oracle/product/11g/network/admin/

 [oracle@standby admin]$ vi listener.ora

 

SID_LIST_LISTENER=   

  (SID_LIST =

     (SID_DESC =

      (GLOBAL_DBNAME = standby)

      (ORACLE_HOME = /u01/oracle/product/11g)

      (SID_NAME = standby)

     )

   )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

     (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))

     (ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))

    )

  )

 

ADR_BASE_LISTENER =/u01/oracle

 

[oracle@primaryadmin]$ vitnsnames.ora

PRIMARY =

  (DESCRIPTION =

    (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.100.30)(PORT = 1521))

    )

    (CONNECT_DATA =

     (SERVICE_NAME = primary)

    )

  )

 

STANDBY =

  (DESCRIPTION =

    (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.100.20)(PORT = 1521))

    )

    (CONNECT_DATA =

     (SERVICE_NAME = standby)

    )

  )

 

2.5ConfigureRedo transport Authentication备库也需要创建密码文件密码和主库的密码一致

  orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SIDpassword=redhat entries=10 force=yes

 

到此环境准备完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值