GD搭建

本文详细介绍Oracle Data Guard(DG)部署的全过程,从环境准备到参数配置,再到数据库复制及日志管理,最后验证同步效果,提供了一套完整的DG搭建指南。

 背景:部门oracle技术大神,实操现场演示,DG部署搭建

实操步骤如下:

1、环境说明

主机

IP

SID

DB_UNIQUE_NAME

数据库版本

ora01

192.168.xx.xx

dg1

dg1

11.2.0.4

ora02

192.168.xx.xx

dg1

dg2

11.2.0.4

注意:DB_UNIQE_NAME要不一样

2、搭建前工作检查

检查主库是否归档,是否开启强制归档

select name,open_mode,database_role,log_mode,force_logging from v$database;

--关闭数据库

shutdown immediate;

--启动到mount状态

startup mount;

--开启归档

alter database archivelog;

--打开数据库

alter database open;

--开启强制归档

alter database force logging;

3、检查目录,并在备库上创建相应的目录

创建归档目录,在主备上都创建

mkdir /u01/app/oracle/archivelog

在主库上查看控制文件目录,并在备库上查看是否有对应目录

查看数据文件目录,并在备库上查看是否有对应目录

查看参数文件、密码文件目录

一般在$ORACLE_HOME/dbs/下

创建rman备份目录,由于不停机搭建,采用rman热备,备库相同创建

mkdir  -p /u01/app/backup/rman

4、添加tnsname和监听配置,在主备库都增加

--查看主库tns(备库也是一样的)

--查看主库listener(备库也是一样的)

5、修改主库参数 ---这里的dg1和dg2都是tns中的名称

--db_config配置为主备库db_unique_name

alter system set log_archive_config='dg_config=(dg1,dg2)'; 

alter system set log_archive_dest_1='location=/data/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=dg1';

  --service配置为tns中的备库名称

alter system set log_archive_dest_2='service=dg2 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=dg2';

--fal配置为tns中的名称

alter system set fal_server=dg2;

alter system set fal_client=dg1;

alter system set standby_file_management=auto;

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;

--主备库数据文件、日志文件存放路径不一致的时候,进行转换映射

db_file_name_convert

log_file_name_convert

ALTER SYSTEM SET log_file_name_convert='/opt/app/oracle/oradata/dg1/','/opt/app/oracle/oradata/dg1/' scope=spfile;

ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/opt/app/oracle/oradata/dg1/','/opt/app/oracle/oradata/dg1/' scope=spfile;

6、在主库创建profile

create pfile from spfile;

7、在主库备份rman

rman target /

执行以下:

run

{

allocate channel c1 device type disk;

allocate channel c2 device type disk;

configure controlfile autobackup on;

configure controlfile autobackup format for device type disk to '/data/backup/rman/ctl_%F';

backup database format '/data/backup/rman/full_%d_%T_%u.bak';

backup archivelog all format '/data/backup/rman/arc_%s_%p_%t.bak';

release channel c1;

release channel c2;

}

8、复制参数文件、密码文件、rman备份集、控制文件到备库

scp initora11.ora orapwora11 192.168.17.145:/u01/app/oracle/product/11.2.0/db_1/dbs/

--复制监听和tns到备库,并修改

scp tnsnames.ora listener.ora 192.168.17.145:/u01/app/oracle/product/11.2.0/db_1/network/admin/

scp -r /u01/app/backup/rman/* 192.168.17.145:/u01/app/backup/rman/

9、修改备库参数文件     注意:到备库后标红色参数都要修改和主库是相反的了,这里我已经改了

[oracle@ora02 dbs]$ cat initora11.ora

ora11.__db_cache_size=654311424

ora11.__java_pool_size=16777216

ora11.__large_pool_size=33554432

ora11.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

ora11.__pga_aggregate_target=654311424

ora11.__sga_target=956301312

ora11.__shared_io_pool_size=0

ora11.__shared_pool_size=234881024

ora11.__streams_pool_size=0

*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/fast_recovery_area/orcl/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='dg1'

*.db_unique_name='dg2'

*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'

*.db_recovery_file_dest_size=4385144832

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

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

*.fal_client='dg2'

*.fal_server='dg1'

*.log_archive_config='dg_config=(dg1,dg2)'

*.log_archive_dest_1='location=/u01/app/oracle/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=dg2'

*.log_archive_dest_2='service=dg1 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=dg1'

*.log_file_name_convert='/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/orcl/'

*.memory_target=1604321280

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.standby_file_management='AUTO'

*.undo_tablespace='UNDOTBS1'

 

10、在备库上启动监听

lsnrctl start;

登录备库,生成动态参数文件

create spfile from pfile;

启动到nomount状态

startup nomount;

11、在主库上登录rman恢复,备库恢复后数据库状态就变成mount

rman target /

connect auxiliary sys/MCgyWLnRHEu7@dg2 --这个地方应该提示是一个空实例数据库

duplicate target database for standby nofilenamecheck;

12、在主备库上增加日志(日志大小一致)standby的日志要比日志组多一个

select a.group#,a.member,b.bytes/1024/1024 size_m from v$logfile a,v$log b

where a.group#=b.group#;

ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/opt/app/oracle/oradata/dg1/sty_redo04.log' size 200M;

ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 '/opt/app/oracle/oradata/dg1/sty_redo05.log' size 200M;

ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 '/opt/app/oracle/oradata/dg1/sty_redo06.log' size 200M;

ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 '/opt/app/oracle/oradata/dg1/sty_redo07.log' size 200M;

select group#,member member from v$logfile;

13、在备库上打开数据库,并应用日志

ALTER DATABASE OPEN;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

select t.name,t.open_mode,t.database_role,t.db_unique_name from v$database t;

14、验证

--看是否有延迟

select * from v$dataguard_stats;

--查看两表sequence是否一致

select t.sequence#,t.first_time,t.name from v$archived_log t  where t.applied='YES'order by t.first_time desc;

select max(t.sequence#) from v$archived_log t where t.applied='YES';

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值