oracleADG搭建

整体规划
在这里插入图片描述
主库单实例>>>>>>>>备库单实例

主库操作
1.主库开启归档
检查归档模式

archive log list

开启归档

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

2.主库开启强日志

select force_logging from v$database;

开启强日志

alter database force logging;

3.主库增加standbylog
查看当前日志组大小,位置。

set linesize 200
set pagesize 1000
col group# format 99
col (a.bytes)/1024/1024 format 99
col a.thread# format 9 
col member format a50 
col a.status format a20
select a.group#,(a.bytes)/1024/1024,a.thread#,a.status,b.member from v$log a,v$logfile b where a.group#=b.group#;

整理standby

alter database add standby logfile  group 4 '/u01/app/oracle/oradata/orcl/standby.log' size 50M;
alter database add standby logfile  group 5 '/u01/app/oracle/oradata/orcl/standby.log' size 50M;
alter database add standby logfile  group 6 '/u01/app/oracle/oradata/orcl/standby.log' size 50M;
alter database add standby logfile  group 7 '/u01/app/oracle/oradata/orcl/standby.log' size 50M;

4.主库修改参数

alter system set standby_file_management=MANUAL scope=both sid='*';
alter system set log_archive_config='dg_config=(orcl,dgiscdb)' scope=both ;alter system set log_archive_dest_1='location=/u01/app/oracle/archivelog  valid_for=(all_logfiles,all_roles) db_unique_name=orcl' scope=both;alter system set log_archive_dest_2='service=dgiscdb LGWR ASYNC NOAFFIRM max_failure=10 max_connections=5 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=dgiscdb' scope=both;
alter system set log_archive_dest_state_2='enable' scope=both;
alter system set log_archive_dest_state_1='enable' scope=both;alter system set fal_server='dgiscdb' scope=both ;
alter system set log_archive_max_processes=10 scope=both;
alter system set db_file_name_convert='/u01/app/oracle/oradata/dgiscdb','/u01/app/oracle/oradata/orcl'scope=spfile;
alter system set log_file_name_convert='/u01/app/oracle/oradata/dgiscdb','/u01/app/oracle/oradata/orcl' scope=spfile;
alter system set standby_file_management=AUTO scope=both sid='*';

5.主库配置静态监听和tns
配置静态监听

SID_LIST_LISTENER_ORCL =  (SID_LIST =    (SID_DESC =      (GLOBAL_DBNAME = orcl)     (ORACLE_HOME =/u01/app/oracle/product/11.2.0/dbhome_1)     (SID_NAME = orcl)    )  )LISTENER_ORCL =  (DESCRIPTION_LIST =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.172.112)(PORT = 1523))    ) )

配置tns

orcl =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.172.112)(PORT = 1523))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = orcl)	  (SID = orcl)    )  )dgiscdb =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.172.1113)(PORT = 1523))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = dgiscdb)          (SID = dgiscdb)    )  )

**

备库操作

**
1.备库配置静态监听
配置静态监听

cd $ORACLE_HOME/network/admin

SID_LIST_LISTENER_ORCL =  (SID_LIST =    (SID_DESC =      (GLOBAL_DBNAME = dgiscdb)     (ORACLE_HOME =/u01/app/oracle/product/11.2.0/dbhome_1)     (SID_NAME = dgiscdb)    )  )LISTENER_ORCL =  (DESCRIPTION_LIST =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.172.113)(PORT = 1523))    ) )

配置tns

orcl =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.172.112)(PORT = 1523))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = orcl)	  (SID = orcl1)    )  )dgiscdb =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.172.113)(PORT = 1523))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = dgiscdb)          (SID = dgiscdb)    )  )

2.将主库密码文件传至备库

cd $ORACLE_HOME/dbs
scp -P 22 192.168.172.112:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl .

3.测试主备库监听和tnsname可用性

tnsping orcl
tnsping dgiscdb
sqlplus  sys/oracle@orcl as sysdba
sqlplus  sys/oracle@dgiscdb as sysdba

4创建审计目录

mkdir -p /u01/app/oracle/admin/dgiscdb/adump

5.备库准备脚本(复制数据库)

1)touch /home/oracle/standby_init.oracat >>/home/oracle/standby_init.ora<<ADB_NAME=orclDB_UNIQUE_NAME=dgiscdbDB_BLOCK_SIZE=8192db_create_file_dest='/u01/app/oracle/oradata/dgiscdb'  sga_target = '1G'log_archive_dest_1='LOCATION=/u01/app/oracle/archivelog'control_files='/u01/app/oracle/oradata/dgiscdb/dgsicdbcontrol.ctl' A

touch /home/oracle/init.shchmod +x  /home/oracle/init.shcat >>/home/oracle/init.sh<<Asqlplus "/ as sysdba" << !shutdown abortstartup nomount pfile='/home/oracle/standby_init.ora'connect  sys/oracle@orcl as sysdbaconnect  sys/oracle@dgiscdb as sysdba!rman target sys/oracle@orcl auxiliary sys/oracle@dgiscdb  << !run {allocate channel ch001 type disk;allocate channel ch002 type disk;allocate auxiliary channel ch003 type disk;duplicate target database for standby from active databasespfile  parameter_value_convert 'orcl','dgiscdb'  set db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/dgiscdb','/home/oracle/isc.dbf','/u01/app/oracle/oradata/dgiscdb'  set log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/dgiscdb'  set db_name='orcl'  set db_unique_name='dgiscdb'  set instance_name='dgiscdb'  set standby_file_management='AUTO'  set log_archive_dest_2='service=orcl LGWR ASYNC NOAFFIRM max_failure=10 max_connections=5 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=orcl'  set sga_target = '1024M'  set db_create_online_log_dest_1 = '/u01/app/oracle/oradata/dgiscdb'  set instance_number = '1'  set control_files='/u01/app/oracle/oradata/dgiscdb/dgiscdbcontrol.ctl'  set fal_server='orcl';release channel ch001;release channel ch002;release channel ch003;}!A

6.备库增加standby log(如果主库创建了standbyredolog那么会自动传递到备库的)

alter database add standby logfile  group 4 '/u01/app/oracle/oradata/orcl/standby.log' size 50M;
alter database add standby logfile  group 5 '/u01/app/oracle/oradata/orcl/standby.log' size 50M;
alter database add standby logfile  group 6 '/u01/app/oracle/oradata/orcl/standby.log' size 50M;
alter database add standby logfile  group 7 '/u01/app/oracle/oradata/orcl/standby.log' size 50M;

7)此时备库在mount状态,等待追归档然后open

alter database open;

发现的问题,如果备库归档目录有文件时会有如下错误
在这里插入图片描述

ADG维护常用sql
停止日志应用

alter database recover managed standby database cancel;

开启日志应用

alter database recover managed standby database using current logfile disconnect from session;

时刻监控alert日志
1.查看是否为ADG模式

select 'Using Active Data Guard' ADG from v$MANAGED_STANDBY M, v$DATABASE D WHERE M.PROCESS LIKE 'MRP%' AND D.OPEN_MODE like 'READ ONLY%';

2.查看主备日志序列号

select thread#,max(sequence#) from gv$archived_log group by thread#; 

3.查看为什么归档没有同步到standby端

set line 400
col DEST_NAME for a20
col DESTINATION for a10
select dest_id,dest_name,status,fail_date ,ERROR from V$ARCHIVE_DEST where rownum <4;

4.查看主备角色

select database_role,open_mode from v$database;
select sequence#,applied from v$archived_log order by 1;

时时观察alert日志。
5.断档处理(将主库归档拷贝至备库)

alter database register physical logfile '日志文件';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值