ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DG搭建

2021-12-27 17:04:23  阅读:190  来源: 互联网

标签:log standby DG app db oracle 搭建 u01


1.主库修改确认参数

select log_mode from v$database;
ALTER DATABASE FORCE LOGGING;
select * from v$standby_log;

show parameter name
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
log_archive_config string dg_config=(fmisdb,fmis2db,dgfmisdb)
log_archive_dest_1 string location=/u01/arch
log_archive_dest_2 string service=fmisdb LGWR ASYNC valid_for=(online_logfiles,primary_role) db_unique_name=fmisdb
log_archive_dest_state_1 string enable
fal_client string fmis2db
fal_server string fmisdb1, fmisdb2
db_file_name_convert string +DATA/fmisdb/datafile/, /u01/app/oracle/oradata/fmis2db/, +DATA/fmisdb/tempfile/, /u01/app/oracle/oradata/fmis2db/
log_file_name_convert string +DATA/fmisdb/onlinelog/, /u01/app/oracle/oradata/fmis2db/

 

2.备库配置静态监听,主备修改tnsnames.ora

listener.ora

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME=FMISDB)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
(SID_NAME=FMISDB1)
))


TNSNAMES.ORA for the Primary and Standby should have BOTH entries
fmis2db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =XXXX)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = FMIS2DB)
)
)
fmisdb1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =XXXXX)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FMISDB)
(INSTANCE_NAME = FMISDB1)
)
)

3. 备库创建密码文件,参数文件
1)密码文件

scp oracle@ip:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwfmis2db /u01/app/oracle/product/11.2.0/db_1/dbs/
mv orapwfmis2db orapwFMISDB1

scp oracle@ip:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwfmis2db /u01/app/oracle/product/11.2.0/db_1/dbs/
mv orapwfmis2db orapwFMISDB2

或者:自己创建密码文件:进入$ORACLE_HOME/dbs   +  orapwd file=文件名 +回车;


2) 参数文件

*.archive_lag_target=900
*.audit_file_dest='/u01/app/oracle/admin/FMISDB/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files='+DATA/fmisdb/controlfile/current.260.885312761'#Restore Controlfile
*.db_file_name_convert='/u01/app/oracle/oradata/fmis2db','+DATA'
*.log_file_name_convert='/u01/app/oracle/oradata/fmis2db','+DATA'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='FMISDB'
*.db_unique_name='fmisdb'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=FMISDBXDB)'
*.fal_client='FMISDB'
*.fal_server='fmis2db','dgfmisdb'
FMISDB2.instance_number=2
FMISDB1.instance_number=1
*.log_archive_config='dg_config=(fmisdb,fmis2db,dgfmisdb)'
*.log_archive_dest_1='LOCATION=+DATA'
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=1000
*.open_links=20
*.open_links_per_instance=20
*.pga_aggregate_target=2147483648
*.processes=1500
*.remote_listener='fmisdb-scan:1521'
*.remote_login_passwordfile='exclusive'
*.sessions=555
*.sga_target=4294967296
*.standby_file_management='AUTO'
FMISDB2.thread=2
FMISDB1.thread=1
FMISDB1.undo_tablespace='UNDOTBS1'
FMISDB2.undo_tablespace='UNDOTBS2'

(1)控制文件无须创建,dulplicate会自动创建。只需要在参数文件中指定路径即可。
(2)db_name 主备库名字一样,dbid一样
(3)db_unique_name 数据库别名:默认使用db_name: 建议主库无需修改db_unique_name,备库需要修改。
(4)fal_client tns字符串的名字
(5)fal_server tns字符串的名字;向主库取归档
(6)log_archive_config dg成员,配置的是db_unique_name
(7)log_archive_dest_1 本地归档路径
(8)log_archive_dest_state_1 上面参数的状态
(9)log_file_name_convert 日志文件路径转换,要写路径并且‘/’要匹配(要加都加,要不加都不加);前主后备,多路径要隔开;
(10)db_file_name_convert 要点同上
(11)standby_file_management 自动生成standby redo log文件
(12)job_queue_processes:备库的job_queue_processes参数要设置为0,主库不为0,因为存在一些job任务(业务相关,数据库的统计信息收集等)。

 

2.LOG_ARCHIVE_DEST_n参数
LOG_ARCHIVE_DEST_n = {LOCATION=path_name | SERVICE=service_name, attribute, attribute, ...}
SERIVCE: 用于指定备用数据库的TNSNAMES描述符,Oralce会将重做日志传送到这个TNSNAMES指定的备库。
SYNC: 用于指定使用同步传输方式到备库。即LGWR进程需要等待来自LNS的确认消息后,然后告知客户端事务已提交。最高可用性及最大保护模式下,至少有一个备用目标应指定为SYNC。
ASYNC:与SYNC相反,指定使用异步传输模式,此为默认的传输方法。
NET_TIMEOUT: 指定LGWR进程等待LNS进程的最大时间数,单位为秒(缺省30)。如果超出该值,则主库放弃备库,继续执行主库上的事务。
REOPEN:主库遇到备库故障后尝试重新连接备库所需等待的时间,单位为秒(缺省300)。
DB_UNIQUE_NAME:主库与备库连接时会发送自己的唯一名称,同时要求备库返回其唯一名称,并结合LOG_ARCHIVE_CONFIG验证其存在性。
VALID_FOR:定义何时使用(角色相关)LOG_ARCHIVE_DEST_n参数以及应该在哪类重做日志文件上运行。
可用日志文件类型:online_logfile,standby_logfile, all_logfiles
可用的角色类型:primary_role, standby_role, all_roles

 

3) 起到nomount状态(有参数文件和密码文件)

startup nomount pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/pfilefmisdb.ora';

4)连接测试

sqlplus sys/passwd@ip:1521/fmis2db as sysdba
sqlplus sys/passwd@ip:1521/fmisdb as SYSDBA


5)在备库上duplicate(在nomount状态进行,结束后,自动到mount状态)

nohup sh dulplicate.sh &
vi dulplicate.sh

#!/bin/bash
rman target sys/passwd@ip:1521/fmis2db auxiliary sys/passwd@ip:1521/fmisdb log=/tmp/dup.log <<EOF
run {
allocate channel p1 type disk;
allocate channel p2 type disk;
allocate channel p3 type disk;
allocate channel p4 type disk;
allocate channel p5 type disk;
allocate channel p6 type disk;
allocate auxiliary channel s1 type disk;
allocate auxiliary channel s2 type disk;
allocate auxiliary channel s3 type disk;
allocate auxiliary channel s4 type disk;
allocate auxiliary channel s5 type disk;
allocate auxiliary channel s6 type disk;
duplicate target database for standby from active database nofilenamecheck;
}
EOF
date >>/tmp/dup.log

速度:
50 1m
3000 60m

7.开启实时应用归档日志

--recover managed standby database cancel;
alter database open READ ONLY;
实时同步 alter database recover managed standby database using current logfile disconnect from session;

/* 延时测试(备份库执行)
alter database recover managed standby database delay 120 disconnect from session; 
*/

 实时同步默认会根据cpu个数开并行度,也可以手工执行并行度。

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

参考mos:Step by Step Guide on Creating Physical Standby Using RMAN DUPLICATE...FROM ACTIVE DATABASE (Doc ID 1075908.1)

注意事项:

1.添加日志组

添加规则:每个日志组线程比主库多一组,日志文件大小相同
15:13:32 SYS@oa2db>select * from v$standby_log;
no rows selected

----主库6组在线日志,每组两个;standby redo log 8组
15:10:17 SYS@oarac1>select * from v$logfile;
15:20:29 SYS@oarac1>select GROUP#,THREAD#, BYTES/1024/1024,MEMBERS from v$log;

    GROUP#    THREAD# BYTES/1024/1024    MEMBERS
---------- ---------- --------------- ----------
         1          1             300          2
         2          1             300          2
         3          1             300          2
         4          2             300          2
         5          2             300          2
         6          2             300          2

----备库6组在线日志,每组两个;
每个日志组线程比主库多一组,日志文件大小相同       
alter database add standby logfile thread 1 group 11('/u01/app/oracle/oradata/oa2db/std_redo11.log') size 300m;
alter database add standby logfile thread 1 group 12('/u01/app/oracle/oradata/oa2db/std_redo12.log') size 300m;
alter database add standby logfile thread 1 group 13('/u01/app/oracle/oradata/oa2db/std_redo13.log') size 300m;
alter database add standby logfile thread 1 group 14('/u01/app/oracle/oradata/oa2db/std_redo14.log') size 300m;
                                           
alter database add standby logfile thread 2 group 21('/u01/app/oracle/oradata/oa2db/std_redo21.log') size 300m;
alter database add standby logfile thread 2 group 22('/u01/app/oracle/oradata/oa2db/std_redo22.log') size 300m;
alter database add standby logfile thread 2 group 23('/u01/app/oracle/oradata/oa2db/std_redo23.log') size 300m;
alter database add standby logfile thread 2 group 24('/u01/app/oracle/oradata/oa2db/std_redo24.log') size 300m;

2. Oracle Dataguard 的三种保护模式
最大性能(maximize performance)模式:最大性能(maximize performance)是data guard默认的保护模式。primay上的事务commit前不需要从standby上收到反馈信息,该模式在primary故障时可能丢失数据,但standby对primary的性能影响最小。
最大可用(maximize availability)模式:在正常情况下,最大可用模式和最大保护模式一样;在standby不可用时,最大可用模式会自动降低成最大性能模式,所以standby故障不会导致primay不可用。只要至少有一个standby可用的情况下,即使primary down机,也能保证不丢失数据。
最大保护(maximize protection)模式:最大保护(maximize protection)是最高级别的保护模式。primay上的事务在commit前必须确认redo已经传递到至少一个standby上,如果所有standby不可用,则primary会挂起。该模式能保证零数据丢失。

Oracle Dataguard两种日志传输方式
2.1 Arch:传统的日志传送方式。现在只有在最大性能模式时才能采用。归档日志通过primary上的arch进程传送给standby的RFS进程。
2.2 LGWR:oracle9i开始可以使用LGWR即时将日志传送到standby,而不再需要等到归档操作时才传送,已减少可能的数据丢失。在三种保护模式下都可以使用该方式传送日志。使用LGWR方式传送,在standby库上必须先建立standby redo logfile。其中LGWR还分为LGWR ASYNC(异步)和LGWR SYNC(同步)两种。

标签:log,standby,DG,app,db,oracle,搭建,u01
来源: https://www.cnblogs.com/annez/p/15599427.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有