oracle dataguard详细,Oracle 11g搭建DataGuard详细步骤(物理standby所有操作总结)

序言:

DataGuard是通过建立一个PRIMARY和STANDBY组来确立其参照关系;STANDBY一旦创建,DataGuard就会通过将主数据库(PRIMARY)的REDO传递给STANDBY数据库,然后在STANDBY中应用REDO实现数据库的同步。

有两种类型的STANDBY:物理STANDBY和逻辑STANDBY

物理STANDBY提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。它是直接应用REDO实现同步的。

逻辑STANDBY则不是这样,在逻辑STANDBY中,逻辑信息是相同的,但物理组织和数据结构可以不同,它和主库保持同步的方法是将接收的REDO转换成SQL语句,然后在STANDBY上执行SQL语句。逻辑STANDBY除灾难恢复外还有其它用途,比如用于用户进行查询和报表。

1、安装环境

在primary搭建数据库软件,建立lsnrctl监听,采用dbca搭建实例,在standby上搭建数据库软件,建立监听,但是不需要采用dbca建立实例。

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法 http://www.linuxidc.com/Linux/2013-03/82009.htm

项目列表

primary库

standby库

操作系统:

都是centos6.4

都是centos6.4

oracle软件版本:

oracle 11.2.0.1.0

oracle 11.2.0.1.0

IP地址:

192.168.121.217

192.168.121.218

db_unique_name:

pdunq

pdunq_dg

2、准备工作 在primary上操作

2.1、打开Forced Logging 模式

先确认primary库处于归档模式

SQL> archive log list;

Database log mode      Archive Mode

Automatic archival      Enabled

Archive destination      USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence    362

Next log sequence to archive  364

Current log sequence      364

SQL>

强制归档

SQL> alter database force logging;

Database altered.

SQL>

确认primary库是归档模式

添加standby文件

alter database add standby logfile group 4 ('/home/oradata/powerdes/redo_dg_021.log') size 20M;

alter database add standby logfile group 5 ('/home/oradata/powerdes/redo_dg_022.log') size 20M;

alter database add standby logfile group 6 ('/home/oradata/powerdes/redo_dg_023.log') size 20M;

alter database drop standby logfile group 4;

alter database drop standby logfile group 5;

alter database drop standby logfile group 6;

查看所有redo文件列表,select * from v$logfile order by 1;

SQL> select * from v$logfile order by 1;

1  ONLINE  /home/oradata/powerdes/redo03.log          NO

2  ONLINE  /home/oradata/powerdes/redo02.log          NO

3  ONLINE  /home/oradata/powerdes/redo01.log          NO

4  STANDBY /home/oradata/powerdes/redo_dg_021.log          NO

5  STANDBY /home/oradata/powerdes/redo_dg_022.log          NO

6  STANDBY /home/oradata/powerdes/redo_dg_023.log          NO

6 rows selected.

SQL>

2.3 准备参数文件

2.3.1 生成pfile

create pfile from spfile;

shutdown immediate

2.3.2 修改pfile

cp $ORACLE_HOME/dbs/initpowerdes.ora $ORACLE_HOME/dbs/initpowerdes.ora.bak

vim $ORACLE_HOME/dbs/initpowerdes.ora

*.db_unique_name=pdunq

*.diagnostic_dest='/oracle/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=powerdesXDB)'

*.fal_client='pdunq'

*.fal_server='pdunq_dg'

*.standby_file_management='AUTO'

*.db_file_name_convert='/home/oradata/powerdes','/home/oradata/pwerdes'

*.log_file_name_convert='/home/oradata/powerdes','/home/oradata/powerdes'

*.log_archive_config='DG_CONFIG=(pdunq,pdunq_dg)'

*.log_archive_dest_2='SERVICE=pdunq_dg  lgwr sync affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pdunq_dg'

*.log_archive_dest_state_2='ENABLE'

2.3.3 生成spfile

create spfile from pfile;

startup #这里可以启动也可以不启动,这里不启动,后面就要记得startup;让新的参数文件生效

2.4 修改监听文件

[oracle@powerlong4 admin]$ vim listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/dbhome_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = powerdes)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/dbhome_1)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

ADR_BASE_LISTENER = /oracle/app/oracle

INBOUND_CONNECT_TIMEOUT_listener=10

2.5,修改tns配置文件

[oracle@powerlong4 admin]$ vim tnsnames.ora

PD =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVICE_NAME = pdunq)

)

)

SC_SID =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SID = powerdes)

(SERVER = DEDICATED)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

2.6 监听服务重启

lsnrctl stop

lsnrctl start

2.7 primary上配置最大可用模式:

SQL>startup

SQL>alter database set standby database to maximize availability;

2.8 备份数据库

backup database plus archivelog;

backup current controlfile for standby;

exit;

备份结束后会在闪回区产生备份文件

3,数据库配置 standby上

3.1 建立相应的文件目录

包括dump文件目录,数据文件目录,通过show parameter dest;查看,保持和primary一样的路径地址

3.2 从primary上copy数据文件到standby上

在主库上执行:

ps:在primary上执行

copy闪回区内容

copy闪回文件

cd /oracle/app/oracle/flash_recovery_area/

scp -r ./* 192.168.121.218:/oracle/app/oracle/flash_recovery_area/

copy参数文件

cd /oracle/app/oracle/product/11.2.0/dbhome_1/dbs

scp -r ./* 192.168.121.218:/oracle/app/oracle/product/11.2.0/dbhome_1/dbs

copy监听文件

cd /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/

scp -r ./* 192.168.121.218:/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/

3.3 在standby库 修改配置文件 在standby上修改

[oracle@powerlong5 admin]$ vim listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/dbhome_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = powerdes)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/dbhome_1)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

在standby修改tns文件

3.4,修改参数文件

*.db_unique_name='pdunq_dg'

*.diagnostic_dest='/oracle/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=powerdes)'

*.fal_client='pdunq'

*.fal_server='pdunq_dg'

*.standby_file_management='AUTO'

*.db_file_name_convert='/home/oradata/powerdes','/home/oradata/powerdes'

*.log_file_name_convert='/home/oradata/powerdes','/home/oradata/powerdes'

*.log_archive_config='DG_CONFIG=(pdunq,pdunq_dg)'

*.log_archive_dest_2='SERVICE=pdunq_dg  lgwr sync affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pdunq_dg'

*.log_archive_dest_state_2='ENABLE'

PS:将*.log_archive_dest_2=后面的DB_UNIQUE_NAME改成primary的DB_UNIQUE_NAME值改为pdunq,这样在做switchover的时候,新的primary能通过这个将redo日志传到新的standby上面去。

log_archive_dest_N 目的是告诉数据库,把归档放到那里去可选项,首先是本地,然后考虑远程的从库,所以,假设A是主库,B是从库,切换之后B是主库,A是从库,所以,log_archive_dest_N需要设置为对方

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是Oracle 11g Active Dataguard的具体配置实例: 1. 确保主库和备库的数据库版本和操作系统版本一致。 2. 确保主库和备库之间可以互相访问。 3. 在主库上启用归档模式,将日志归档到指定的归档目录中。可以使用以下命令启用归档模式: ``` SQL> alter database archivelog; ``` 然后使用以下命令指定归档目录: ``` SQL> alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/arch'; ``` 注意,这里的归档目录需要在主库和备库上都存在,并且需要有足够的空间存储归档文件。 4. 在主库上创建一个备库管理账号,并授权给备库使用。 ``` SQL> create user standby identified by passwd; SQL> grant connect, resource, dba to standby; ``` 5. 在备库上创建一个新的数据库实例,并确保实例名和主库不同。例如,假设主库实例名为ORCL,备库实例名为STBY。 ``` $ export ORACLE_SID=STBY $ sqlplus / as sysdba SQL> create spfile from pfile; SQL> startup nomount; ``` 6. 在备库上创建一个与主库相同的目录结构,并将备库管理账号添加到目录的权限列表中。 ``` $ mkdir -p /u01/app/oracle/oradata/STBY $ chown -R oracle:oinstall /u01/app/oracle/oradata/STBY $ chmod -R 775 /u01/app/oracle/oradata/STBY $ mkdir -p /u01/app/oracle/fast_recovery_area/STBY $ chown -R oracle:oinstall /u01/app/oracle/fast_recovery_area/STBY $ chmod -R 775 /u01/app/oracle/fast_recovery_area/STBY $ mkdir -p /u01/app/oracle/arch/STBY $ chown -R oracle:oinstall /u01/app/oracle/arch/STBY $ chmod -R 775 /u01/app/oracle/arch/STBY $ vi /etc/oratab # 添加STBY实例的启动配置 STBY:/u01/app/oracle/product/11.2.0/dbhome_1:N $ echo "export ORACLE_SID=STBY" >> /home/oracle/.bash_profile $ echo "export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1" >> /home/oracle/.bash_profile $ su - oracle ``` 注意,这里的目录结构需要在主库和备库上都创建,并且需要确保权限设置正确。 7. 在备库上创建一个pfile或spfile文件,并指定主库的连接信息和归档目录的位置。例如: ``` $ vi $ORACLE_HOME/dbs/initSTBY.ora *.db_name='STBY' *.db_unique_name='STBY' *.log_archive_dest_1='LOCATION=/u01/app/oracle/arch/ORCL' *.standby_file_management='AUTO' *.fal_client='STBY' *.fal_server='ORCL' *.db_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/STBY' *.log_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/STBY' ``` 这里的参数需要根据实际情况进行调整。 8. 在备库上启动数据库实例,并将其连接到主库。 ``` $ sqlplus / as sysdba SQL> alter system set standby_file_management='AUTO'; SQL> alter database mount standby database; SQL> alter system set log_archive_dest_state_1='ENABLE'; SQL> alter system set log_archive_dest_2='SERVICE=ORCL LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCL'; SQL> alter system switch logfile; ``` 9. 在主库上创建一个standby控制文件,并将其传输到备库上。 ``` SQL> alter database create standby controlfile as '/u01/app/oracle/oradata/ORCL/control01.ctl'; $ scp /u01/app/oracle/oradata/ORCL/control01.ctl oracle@stby:/u01/app/oracle/oradata/STBY/control01.ctl ``` 10. 在备库上执行数据复制命令,将主库上的数据复制到备库上。 ``` SQL> create standby database; ``` 这个命令会自动从主库上复制数据到备库上,需要一定的时间。 11. 在主库上启用Active Dataguard,并将备库设置为read-only模式。 ``` SQL> alter database open read only; SQL> alter system set standby_file_management='AUTO'; SQL> alter system set log_archive_dest_state_2='ENABLE'; SQL> alter system set log_archive_dest_2='SERVICE=STBY LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STBY'; ``` 这样就可以启用Active Dataguard了,备库会自动从主库上同步数据,并且可以进行读取操作。 以上就是Oracle 11g Active Dataguard详细配置实例,需要根据实际情况进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值