oracle 读写分离 DG,数据库读写分离解决方案--DG实施方案

本文详细介绍了如何配置Oracle DataGuard,包括创建口令文件、传输控制文件、修改初始化参数,确保主库和备库之间的数据同步和故障切换。重点讨论了SID_DESC配置、归档模式设置以及日志传输的重要性。
摘要由CSDN通过智能技术生成

Oracle Data Guard实施方案

(SID_DESC =

(GLOBAL_DBNAME = orcl) (SID_NAME = orcl)

(ORACLE_HOME = /home/db/oracle/product/11.2.0/db_1) ) )

注意:SID_LIST_LISTENER 配置的是静态注册,如果没有该参数,而且Data Guard 启动顺序又不正确,那么在主库可能会报 PING[ARC1]: Heartbeat failed to connect to standby 'orcl_st'. Error is 12514. 错误,导致归档无法完成。

[oracle@localhost admin]$ vi tnsnames.ora ORCL =

(DESCRIPTION = (ADDRESS_LIST =

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

(CONNECT_DATA =

(SERVICE_NAME = orcl) ) )

ORCLDG =

(DESCRIPTION = (ADDRESS_LIST =

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

(CONNECT_DATA =

(SERVICE_NAME = orcldg) ) )

? 备库

[oracle@localhost admin]$ vi listener.ora

LISTENER =

(DESCRIPTION_LIST = (DESCRIPTION =

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

SID_LIST_LISTENER = (SID_LIST = (SID_DESC =

Oracle Data Guard实施方案

(GLOBAL_DBNAME = orcldg) (SID_NAME = orcl)

(ORACLE_HOME = /home/db/oracle/product/11.2.0/db_1) ) )

[oracle@localhost admin]$ vi tnsnames.ora ORCL =

(DESCRIPTION = (ADDRESS_LIST =

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

(CONNECT_DATA =

(SERVICE_NAME = orcl) ) )

ORCLDG =

(DESCRIPTION = (ADDRESS_LIST =

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

(CONNECT_DATA =

(SERVICE_NAME = orcldg) ) )

5.5 主库前期准备

设置强制写日志

SQL> select FORCE_LOGGING from v$database; NO

SQL> alter database force logging;

SQL> select FORCE_LOGGING from v$database; YES

Oracle Data Guard实施方案

5.6 创建口令文件并将文件传输到备库

在主库上创建密码文件,并将文件传到备库的相关位置 [oracle@localhost dbs]$ pwd

/home/db/oracle/product/11.2.0/db_1/dbs

[oracle@localhost bin]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle [oracle@localhost bin]$ cd $ORACLE_HOME/dbs/ [oracle@localhost dbs]$ ls

缺省情况下,win下口令文件的格式是pwdsid.ora,unix下的格式是orapwSID(大小写敏感)

传送文件:

[oracle@localhost

dbs]$scp

-cp

orapworcl

oracle@192.168.204.132://home/db/oracle/product/11.2.0/db_1/dbs

orapworcl 100% 1536 1.5KB/s 00:00 [oracle@localhost dbs]$

5.7 创建备份库需要的控制文件并传输到备库

创建控制文件

SQL>shutdown immediate SQL>startup mount;

SQL>alter database create standby controlfile as '/tmp/stdby_control01.ctl'; SQL>alter database open;

$scp -rp /tmp/stdby_control01.ctl

oracle@192.168.204.132://home/db/oracle/oradata/ORCL/controlfile/

$scp -rp /tmp/stdby_control01.ctl

oracle@192.168.204.132://home/db/oracle/flash_recovery_area/ORCL/controlfile/

----------------------------------------------------------- 手工复制几份(未执行) $ cd /tmp/

$ cp sdtby_control01.ctl stdby_control02.ctl $ cp sdtby_control01.ctl stdby_control03.ctl

Oracle Data Guard实施方案

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

5.8 修改主库初始化参数

创建主库pfile

sql > create pfile from spfile; 修改pfile

[oracle@localhost dbs]$vi initorcl.ora

*.db_unique_name=orcl

*.log_archive_config='dg_config=(orcl,orcldg)'

*.log_archive_dest_1='location=/home/db/oracle/oradata/ORCL/archive valid_for=(all_logfiles,all_roles) db_unique_name=orcl' *.log_archive_dest_2='service=orcldg lgwr async

valid_for=(online_logfiles,primary_role) db_unique_name=orcldg' *.log_archive_dest_state_1=enable *.log_archive_dest_state_2=defer *.log_archive_format=%t_%s_%r.arc *.fal_server=orcldg *.fal_client=orcl

*.standby_file_management=auto

pfile 拷贝到备库上

[oracle@localhost dbs]$scp –rp

/home/db/oracle/product/11.2.0/db_1/dbs/initorcl.ora

oracle@192.168.204.132:/home/db/oracle/product/11.2.0/db_1/dbs/

创建主库spfile

SQL>Shutdown immediate

SQL>startup pfile='//home/db/oracle/product/11.2.0/db_1/dbs/initorcl.ora'

SQL> create spfile from pfile='//home/db/oracle/product/11.2.0/db_1/dbs/initorcl.ora'; SQL> shutdown immediate; SQL > startup

5.9 修改数据库运行在归档模式下

SQL > SHUTDOWN IMMEDIATE; SQL > STARTUP MOUNT;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值