Oracle 11g ADG 部署(duplicate)快速参考
本文旨在指导客户完成Oracle 11g的ADG部署工作,主库环境已具备,备库环境已安装完成数据库软件。
环境:RHEL 6.8 + Oracle 11.2.0.4
- 1.确认主库运行在归档模式
- 2.确认主库开启Force Logging
- 3.主库参数文件修改
- 4.创建SRLs
- 5.备份数据库
- 6.创建备库参数
- 7.更新tnsnames.ora文件
- 8.拷贝主库RMAN备份和参数文件到备库
- 9.拷贝主库密码文件到备库
- 10.创建备库需要的目录
- 11.修改备库参数文件
- 12.拷贝主库tnsnames.ora文件到备库
- 13.备库启动实例到nomount状态
- 14.初始化standby数据库
- 15.确认数据库各类文件路径
- 16.创建spfile然后使用spfile启动数据库
- 17.启动MRP,验证DG同步成功
- 18.部署定时任务进行历史归档清理
1.确认主库运行在归档模式
这里设置归档存放路径为/u01/arch:
mkdir /u01/arch
chown oracle:oinstall /u01/arch
SQL>
archive log list
alter system set log_archive_dest_1 = 'LOCATION=/u01/arch';
shutdown immediate
startup mount
alter database archivelog;
alter database open;
archive log list
2.确认主库开启Force Logging
SQL>
select FORCE_LOGGING FROM V$DATABASE;
alter database force logging;
select FORCE_LOGGING FROM V$DATABASE;
3.主库参数文件修改
set linesize 500
col value for a70
col name for a50
select name, value
from v$parameter
where name in ('db_name','db_unique_name','log_archive_config', 'log_archive_dest_1','log_archive_dest_2',
'log_archive_dest_state_1','log_archive_dest_state_2', 'remote_login_passwordfile',
'log_archive_format','log_archive_max_processes','fal_server','db_file_name_convert',
'log_file_name_convert', 'standby_file_management');
alter system set log_archive_config='DG_CONFIG=(jingyu,jingyus)';
alter system set log_archive_dest_1='LOCATION=/u01/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jingyu';
alter system set log_archive_dest_2='SERVICE=jingyus VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jingyus';
alter system set log_archive_dest_state_1=enable;
alter system set log_archive_dest_state_2=enable;
alter system set FAL_SERVER='jingyus';
--数据文件路径主备库设计规范(主要依赖于db_unique_name,这里源端和目标端用于数据存储的磁盘组名字一致,用于归档的磁盘组名字不一致,需要转换):
alter system set db_file_name_convert='jingyus','jingyu' scope=spfile;
alter system set log_file_name_convert='jingyus','jingyu' scope=spfile;
alter system set standby_file_management=AUTO;
4.创建SRLs
ALTER DATABASE ADD STANDBY LOGFILE thread 1 group 101 ('/u01/oradata/jingyu/srl101.rdo') SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE thread 1 group 102 ('/u01/oradata/jingyu/srl102.rdo') SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE thread 1 group 103 ('/u01/oradata/jingyu/srl103.rdo') SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE thread 1 group 104 ('/u01/oradata/jingyu/srl104.rdo') SIZE 52428800;
5.备份数据库
使用传统比如RMAN备份的方式恢复备库,这里需要备份数据库。
而本次使用duplicate方式,无需备份,关于duplicate,后面章节会具体描述。
6.创建备库参数
create pfile='/tmp/pfile_for_standby.txt' from spfile;
7.更新tnsnames.ora文件
JINGYU =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test04)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jingyu)
)
)
JINGYUS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test05)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jingyus)
)
)
8.拷贝主库RMAN备份和参数文件到备库
参数文件拷贝到备库:
scp /tmp/pfile_for_standby.txt 192.168.1.125:$ORACLE_HOME/dbs/
RMAN备份本次不需要,使用duplicate方式,后面章节会具体介绍。
注:使用scp拷贝时,如果两端$ORACLE_HOME变量值不一样,目标端需要修改为具体的绝对路径。
9.拷贝主库密码文件到备库
scp $ORACLE_HOME/dbs/orapwjingyu 192.168.1.125:$ORACLE_HOME/dbs/orapwjingyu
10.创建备库需要的目录
# audit_file_dest
mkdir -p /u01/app/oracle/admin/jingyus/adump
# db_recovery_file_dest
mkdir -p /u01/app/oracle/fast_recovery_area
# db_file
mkdir -p /u01/oradata/jingyus
mkdir -p /u01/app/oracle/fast_recovery_area/jingyus
11.修改备库参数文件
# vi pfile_for_standby.txt
:%s#jingyus#TTTTT#g
:%s#jingyu#jingyus#g
:%s#TTTTT#jingyu#g
# update:
*.db_name='jingyu'
*.db_unique_name='jingyus'
下面这段参数文件配置信息只是示例,实际需要根据主库的参数文件进行修改,要关注内存、进程数以及cursors等相关参数:
*.audit_file_dest='/u01/app/oracle/admin/jingyus/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/oradata/jingyus/control01.ctl','/u01/app/oracle/fast_recovery_area/jingyus/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_file_name_convert='jingyu','jingyus'
*.db_name='jingyu'
*.db_unique_name='jingyus'
*.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=jingyusXDB)'
*.fal_server='jingyu'
*.log_archive_config='DG_CONFIG=(jingyus,jingyu)'
*.log_archive_dest_1='LOCATION=/u01/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jingyus'
*.log_archive_dest_2='SERVICE=jingyu VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jingyu'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_file_name_convert='jingyu','jingyus'
*.open_cursors=300
*.pga_aggregate_target=294649856
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.service_names='demo'
*.sga_target=883949568
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
12.拷贝主库tnsnames.ora文件到备库
scp $ORACLE_HOME/network/admin/tnsnames.ora 192.168.1.125:$ORACLE_HOME/network/admin/tnsnames.ora
13.备库启动实例到nomount状态
sqlplus / as sysdba
startup nomount pfile=$ORACLE_HOME/dbs/pfile_for_standby.txt
14.初始化standby数据库
本次选用使用duplicate命令创建standby数据库,因为duplicate时间较长,需在后台运行防止过程中断:
vi dup_dg.sh
rman target sys/oracle@jingyu auxiliary sys/oracle@jingyus <<EOF
duplicate target database for standby from active database dorecover nofilenamecheck;
EOF
nohup sh dup_dg.sh > dup_dg.log &
tail -200f dup_dg.log
注意:为保证duplicate连接正常,可以先这样测试连接可用:
sqlplus sys/oracle@jingyu as sysdba
sqlplus sys/oracle@jingyus as sysdba
--备库连接报错:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
因为备库目前是nomount状态,如果需要连接就配置静态监听:
在备库listener.ora配置文件中增加(注意这里的GLOBAL_DBNAME对应的service_name我这里选择为原始的):
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = jingyus)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = jingyu)
)
)
再次查看监听状态,Service "jingyus"部分有UNKNOWN,即静态监听标识,再次尝试连接成功:
Service "jingyus" has 2 instance(s).
Instance "jingyu", status UNKNOWN, has 1 handler(s) for this service...
Instance "jingyu", status BLOCKED, has 1 handler(s) for this service...
[oracle@test05 admin]$ sqlplus sys/oracle@jingyus as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Jul 14 11:46:33 2020
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select status from v$Instance;
STATUS
------------------------
STARTED
正常完成duplicate后,数据库处于mount状态,且可以open只读打开:
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> alter database open;
Database altered.
SQL>
SQL>
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY
15.确认数据库各类文件路径
a)确认已创建ORLs和SRLs:
SQL> SELECT MEMBER FROM V$LOGFILE;
在对应存储目录中查询没有也会后续自动创建的,确定路径没问题就可以,路径如果有问题,很可能是之前的convert参数设置有问题,设置convert参数,重启生效。
b)确认数据文件路径
select name from v$datafile;
select checkpoint_change# from v$datafile_header;
如果这个查询结果都是0,需要catalog start with 正确的路径,然后switch database to copy进行更正。
我这里检查都没有问题。
16.创建spfile然后使用spfile启动数据库
create spfile from pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/pfile_for_standby.txt';
17.启动MRP,验证DG同步成功
--RECOVER:
recover managed standby database disconnect;
--CANCEL:
recover managed standby database cancel;
--RTA(最终要求这种方式):
recover managed standby database using current logfile disconnect;
--DG LAG:
set lines 1000
col value for a15
select * from v$dataguard_stats;
查询结果显示,在DATUM_TIME列是接近当前时间的情况下,transport lag和apply lag两列的值均为0或是接近0,一般认定是同步正常。
还可以查询备库的SCN,观察是否随着时间不断增长,以此来辅助判断DG实时同步:
select current_scn from v$database;
如果同步有问题,主库查询对应dest_id的error信息:
select error from v$archive_dest where dest_id = 2;
18.部署定时任务进行历史归档清理
因为备库没有备份任务,为防止后续备库端归档满,需要部署定时任务进行历史归档清理,下面给出一个示例:
mkdir /home/oracle/scripts
cd /home/oracle/scripts
vi del_arch.sh
rman target / <<EOF >> /home/oracle/scripts/del_arch.log
delete noprompt archivelog all completed before 'sysdate - 1/24';
EOF
crontab -e
0 * * * * /bin/sh /home/oracle/scripts/del_arch.sh
至此,Oracle 11g ADG 部署(duplicate)整个过程已完成。
Oracle 11g ADG 部署(duplicate)快速参考的更多相关文章
- Linux平台oracle 11g单实例 安装部署配置 快速参考
1.重建主机的Oracle用户 组 统一规范 uid gid 以保证共享存储挂接或其他需求的权限规范 userdel -r oracle groupadd -g 7 oinstall groupadd ...
- RHEL6.4 + Oracle 11g DG测试环境快速搭建参考
环境现状: 两台虚拟主机A和B: 1. A机器已安装ASM存储的Oracle 11g 实例 参考:http://www.cnblogs.com/jyzhao/p/4332410.html 2 ...
- ORACLE 11g RAC-RAC DG Duplicate 搭建(生产操作文档)
环境:rhel 6.7 64位源库:ORACLE 11204 RAC 未打PSU备库:ORACLE 11204 RAC PSU 20170718 一.停止中间件并做全库备份 1.在节点2做全备 2.首 ...
- 组态ORACLE 11G ADG
一旦载10g的,没有票据.昨天使用duplicate方法一安装11g ADG,过程艰辛,记录: 一.环境配置 主图书馆 IP地址:192.168.233.128/24 操作系统版本号:rhel5.8 ...
- Centos 下oracle 11g 安装部署及手动建库过程
Oracle 11g 手动建库,在虚拟环境中,不使用DBCA工具进行创建数据库 1.Linux环境的基本配置 2.ip 10.11.30.60 3.Oracle 11g安装过程 ---------- ...
- 转载:oracle 11g ADG实施手册(亲测,已成功部署多次)
https://www.cnblogs.com/yhfssp/p/7815078.html 一:实验环境介绍 虚拟机系统: RHEL Linux 6.4(64位) 数据库版本: Oracle 11gR ...
- oracle 11g ADG实施手册(亲测,已成功部署多次)
一:实验环境介绍 虚拟机系统: RHEL Linux 6.4(64位) 数据库版本: Oracle 11gR2 11.2.0.4 (64位) IP地址规划: 主数据库 192.168.11 ...
- Oracle 11g streams部署
环境 源服务器 目标服务器 系统版本 CentOS Linux release 7.3.1611 (Core) CentOS Linux release 7.3.1611 (Core) 主机名 s ...
- Oracle 11G DBMS包和类型参考
参阅:https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_lob.htm#ARPLS66712
- 安装oracle 11g详细过程仅供参考
随机推荐
- P5731
https://www.luogu.com.cn/problem/P5731 这道题被标为红题,真实难度应该介于红题和橙题之间,问题在于我高估了它的难度,以为至少有橙题的难度,一般不打表的我毫不犹豫选 ...
- 何时使用Kafka而不是RabbitMQ
Kafka 和 RabbitMQ 都是流行的开源消息系统,它们可以在分布式系统中实现数据的可靠传输和处理.Kafka 和 RabbitMQ 有各自的优势和特点,它们适用于不同的场景和需求.本文将比较 ...
- shell脚本(1)-shell介绍
一.shell介绍 1.什么是shell shell是c语法编写的,是用户和liunx内核沟通的桥梁,即是命令语法,也是解释性编程语言. 内核处理的都是二进制,而用户处理的都是高级语法,系统开发人员可 ...
- 机器学习-决策树系列-决策树-剪枝-CART算法-27
目录 1. 剪枝 2. CCP-代价复杂度剪枝(CART) 4. α值的确定 1. 剪枝 将子树还原成一个叶子节点: 是解决过拟合的一个有效方法.当树训练得过于茂盛的时候会出现在测试集上的效果比训练集 ...
- Java 如何将Excel转换为TXT文本格式
TXT文件是一种非常简单.通用且易于处理的文本格式.在处理大规模数据时,将Excel转为TXT纯文本文件可以提高处理效率.此外,许多编程语言和数据处理工具都有内置的函数和库来读取和处理TXT文件,因此 ...
- 21-CMOS门电路的逻辑式
CMOS门电路的逻辑式 通过CMOS门电路,写出门电路的表达式. 方法 只看下方,因为电路上下是对称的: 先找L(输出)的非,找的输出到地的通路,以原变量进行书写.最后将表达式取非,即可得到L.这种方 ...
- MCU芯片设计流程
MCU设计流程 1.产品开发整体流程 Integrated Product Development(IPD) TR-Technique Review-技术评审 xDCP-管理层决定是否开发 这里的验证 ...
- CS2打开可以听到声音,但黑屏问题?
1.问题 我这里原先是可以启动CS2的,但是后来在CS2中重新调整了分辨率等等,之后由于某种原因又调整了屏幕分辨率,导致后面一进入CS2登录界面,橙色登陆界面就会缩在左上角一小块,并且之后就会陷入黑屏 ...
- 【ThreadX-FileX】Azure RTOS FileX概述
Azure RTOS FileX嵌入式文件系统是Azure RTOS的高级工业级解决方案,适用于Microsoft FAT文件格式,专门针对深度嵌入式,实时和IoT应用程序而设计.Azure RTOS ...
- Python Code_06基础篇
条件表达式 # coding:utf-8 # author : 写bug的盼盼 # development time : 2021/8/28 7:38 num_a = input('请输入第一个整数' ...