ORACLE11g R2【RAC+ASM→单实例FS】
ORACLE11g R2【RAC+ASM→单实例FS】
11g R2 RAC+ASMà单实例FS的DG,建议禁用OMF.
本演示案例所用环境:
|
|
primary |
standby |
|
OS Hostname |
node1,node2 |
std |
|
OS Version |
RHEL6.5 |
RHEL6.5 |
|
DB Version |
11.2.0.4 |
11.2.0.4 |
|
db_name |
stephen |
stephen |
|
db_unique_name |
stephen |
standby |
|
service_names |
stephen |
standby |
|
instance_name |
stephen1,stephen2 |
standby |
Primary database configure
1.启用primary force logging
SQL> select force_logging from v$database;
SQL> alter database force logging;
2.配置redo传输认证
(1) tnsnames.ora
STEPHEN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = cluster-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stephen)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = std)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = standby)
)
)
(2) tnsping命令解析网络服务名,命令须返回OK.
此时,standby端未配置监听,无法解析,可以standby配置后再测试。
$ tnsping standby
(3) 密码文件
若无密码文件,则在一个节点创建密码文件并拷贝至其余节点。格式:orapw<ORACLE_SID>
cd $ORACLE_HOME/dbs
orapwd file=orapwstephen1 password=oracle ignorecase=y force=y
scp orapwstephen1 node2:$ORACLE_HOME/dbs/orapwstephen2
3.添加standby logfiles
添加standby logfile 的要求:
(1) 确保主和备数据库上的日志文件大小是相同的
(2) 确定备库重做日志文件组的适当数目
Standby logfile数 = (每个线程的logfile数+1)* 线程数
(3) 检查create database时指定的MAXLOGFILES和MAXLOGMEMBERS参数,可以通过trace controlfile出来查看
(4) RAC环境创建standby logfile,指定thread#创建
每个thread的standby logfile数 = 每个thread的logfile数 + 1
检查当前环境的logfile:
set lines 200 pages 300
col member for a60
select a.thread#,a.group#,b.member,b.type,a.bytes/1024/1024 MB from v$log a,v$logfile b where a.group#=b.group#
union all
select a.thread#,a.group#,b.member,b.type,a.bytes/1024/1024 MB from v$standby_log a,v$logfile b where a.group#=b.group#;
根据查询的logfile 信息上文添加standby logfile的要求,添加合理的standby logfile,然后用上面的sql再次查看当前环境的logfile:
alter database add standby logfile thread 1
group 5 '+DATA/stephen/onlinelog/standby05.log' size 50M,
group 6 '+DATA/stephen/onlinelog/standby06.log' size 50M,
group 7 '+DATA/stephen/onlinelog/standby07.log' size 50M;
alter database add standby logfile thread 2
group 8 '+DATA/stephen/onlinelog/standby08.log' size 50M,
group 9 '+DATA/stephen/onlinelog/standby09.log' size 50M,
group 10 '+DATA/stephen/onlinelog/standby10.log' size 50M;
4.修改primary参数文件
备份spfile:
create pfile='/tmp/pfile.bak' from spfile;
修改以下参数,其中stephen,standby分别为primary,standby的db_unqiue_name/TNS-Alias,详见参数详解部分:
alter system set log_archive_config='dg_config=(stephen,standby)' sid='*';
alter system set log_archive_dest_1='location=+DATA/stephen/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=stephen' sid='*';
alter system set log_archive_dest_2='service=standby lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=standby' sid='*';
alter system set log_archive_max_processes=30 sid='*'; #根据需求调整个数
--确认以下参数,若不为默认值则修改:
alter system set remote_login_passwordfile=exclusive scope=spfile sid='*';
# remote_login_passwordfile=exclusive/shared
alter system set log_archive_dest_state_1=enable sid='*';
alter system set log_archive_dest_state_2=enable sid='*';
--可修改归档日志格式,与datafile区分:
alter system set log_archive_format='%t_%s_%r.arc' scope=spfile sid='*';
--备角色参数:
alter system set fal_server=standby sid='*';
alter system set standby_file_management=auto sid='*';
alter system set db_file_name_convert='/oradata/standby','+DATA/stephen/datafile' scope=spfile sid='*';
alter system set log_file_name_convert='/oradata/standby','+DATA/stephen/onlinelog' scope=spfile sid='*';
#如不采用,可禁用OMF:
alter system reset db_create_file_dest sid='*';
alter system reset db_create_online_log_dest_n sid='*'; #n为数值变量
alter system reset db_recovery_file_dest sid='*';
5.打开归档模式
首先确认当前数据库是否是归档模式,如果不是,则打开归档模式。
archive log list;
srvctl stop database -d stephen
srvctl start database -d stephen -o mount
alter database archivelog; --在一个节点执行即可
alter database open; --各节点执行
6.备份primary database
rman target / <<EOF
run{allocate channel c1 type disk;
allocate channel c2 type disk;
backup full database format '/backup/full_%U.bak' plus archivelog;
sql 'alter system switch logfile';
backup current controlfile for standby format '/backup/c_%U.bak';
release channel c1;
release channel c2;
}
EOF
Standby database configure
1.配置环境变量
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1
export ORACLE_SID=standby
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib #不同平台变量名不一样
2.配置redo传输认证
(1) listener.ora
配置静态监听:
LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=std)(PORT=1521))
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=standby)
(SID_NAME=standby)
(ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1)
)
)
启用监听:
lsnrctl start
lsnrctl status
(2) tnsnames.ora
STEPHEN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = cluster-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stephen)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = std)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = standby)
)
)
(3) tnsping命令解析网络服务名,命令须返回OK.
$ tnsping stephen
(4) 密码文件
使用主库的密码文件:
scp node1:$ORACLE_HOME/dbs/orapwstephen1 $ORACLE_HOME/dbs/orapwstandby
3.创建相关目录
mkdir -p $ORACLE_BASE/admin/standby/{adump,dpdump,pfile}
mkdir -p /oradata/{standby,arch}
4.参数文件
用primary的pfile加以修改,以保证某些参数与primary保持一致,注意主备库内存的大小适当的调整内存相关参数。
scp node1:/tmp/pfile.bak $ORACLE_HOME/dbs/initstandby.ora
修改pfile为需要的standby pfile,并创建spfile.特别注意以下事例的参数设定:
*.audit_file_dest='/oracle/app/oracle/admin/standby/adump'
*.control_files='/oradata/standby/control01.ctl'
*.cluster_database=false
*.db_name='stephen'
*.db_unique_name='standby'
*.instance_name='standby'
*.service_names='standby'
*.fal_server='STEPHEN'
*.instance_number=1
*.local_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=std)(PORT=1521))'
*.log_archive_config='dg_config=(stephen,standby)'
*.log_archive_dest_1='location=/oradata/arch valid_for=(all_logfiles,all_roles) db_unique_name=standby'
*.log_archive_dest_2='service=stephen lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=stephen'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_max_processes=30 #根据需求调整个数
*.log_archive_format='%t_%s_%r.arc'
*.remote_login_passwordfile='exclusive'
*.standby_file_management='AUTO'
*.thread=1
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.db_file_name_convert='+DATA/STEPHEN/DATAFILE','/oradata/standby'
*.log_file_name_convert='+DATA/STEPHEN/ONLINELOG','/oradata/standby'
# 取消以下参数设定:
#*.cluster_database_instances
#*.remote_listener
#如不采用OMF,可不设置以下参数禁用OMF:
#*.db_create_file_dest
#*.db_create_online_log_dest_n #n为数值变量
#*.db_recovery_file_dest
创建spfile:
create spfile from pfile;
5.恢复standby controlfile
SQL> startup nomount;
RMAN> restore standby controlfile from '/backup/c_36qn6k6t_1_1.bak';
6.恢复数据文件
RAC+ASM到单实例文件系统DG,standby 与primary数据文件存放路径不一致。
查询primary database的数据文件信息:
set lines 300 pages 300
col name for a60
col member for a60
select file#,name from v$datafile
union all
select file#,name from v$tempfile;
启动standby到mount阶段,恢复数据文件:
RMAN> sql 'alter database mount standby database';
run{
set newname for datafile 1 to '/oradata/standby/system01.dbf';
set newname for datafile 2 to '/oradata/standby/sysaux01.dbf';
set newname for datafile 3 to '/oradata/standby/undotbs1.dbf';
set newname for datafile 4 to '/oradata/standby/undotbs2.dbf';
set newname for datafile 5 to '/oradata/standby/users01.dbf';
set newname for tempfile 1 to '/oradata/standby/temp01.dbf';
restore database;
switch datafile all;
switch tempfile all;
recover database;
}
查看standby database log file:
set lines 200 pages 300
col member for a60
select a.thread#,a.group#,b.member,b.type,a.bytes/1024/1024 MB from v$log a,v$logfile b where a.group#=b.group#
union all
select a.thread#,a.group#,b.member,b.type,a.bytes/1024/1024 MB from v$standby_log a,v$logfile b where a.group#=b.group#;
7.应用日志
应用archive log:
recover managed standby database disconnect;
应用redo logfile:
recover managed standby database using current logfile disconnect;
取消应用日志:
recover managed standby database cancel;
打开数据库至read only模式并开始实时复制:
alter database open read only;
recover managed standby database using current logfile disconnect;
8.观察日志传输
跟踪primary,standby database的alert log,观察是否有错误发生,也可以看到应用日志的相关信息。
确认standby是否应用日志:
--primary端多切几次日志,观察alert log信息。
alter system switch logfile;
alter system switch logfile;
--观察主备库日志序列号
archive log list;
--primary端查询v$archived_log视图,确认日志是否被应用:
set lines 300 pages 300
col name for a20
select name,dest_id,thread#,sequence#,standby_dest,applied,registrar,completion_time from v$archived_log
where standby_dest='YES'
order by thread#,sequence#;
--primary端查询primary,standby的最大日志序列号是否一致:
select 'Primary :' "DB Role",thread#,max(sequence#)
from v$archived_log
where standby_dest='NO'
group by thread#
union
select 'Standby :' "DB Role",thread#,max(sequence#)
from v$archived_log
where standby_dest='YES' and applied='YES'
group by thread#
order by thread#;
ORACLE11g R2【RAC+ASM→单实例FS】的更多相关文章
- ORACLE10g R2【RAC+ASM→单实例FS】
ORACLE10g R2[RAC+ASM→单实例FS] 10g R2 RAC+ASMà单实例FS的DG,建议禁用OMF. 本演示案例所用环境: primary standby OS Hostnam ...
- oracle 11g r2 rac到单实例的dg
oracle 11g r2 rac到单实例的dg 1 主备环境说明 rac环境--primary CentOS release 6.5 (Final)hostname rac1 rac2ip 10.* ...
- oracle11G r2 静默安装单实例(待优化版)
测试环境:centos 6.9 X64 mini 版 oracle版本:11G r2 Oracle软件包:db_112040_Linux-x86-64_1of7.zip;db_112040_Linux ...
- ORACLE11g R2【单实例 FS→单实例FS】
ORACLE11g R2[单实例 FS→单实例FS] 本演示案例所用环境: primary standby OS Hostname pry std OS Version RHEL6.5 RHEL6 ...
- ORACLE10g R2【单实例 FS→单实例FS】
ORACLE10g R2[单实例FS→单实例FS] 本演示案例所用环境: primary standby OS Hostname pry std OS Version RHEL5.8 RHEL5. ...
- Oracle_lhr_CentOS 7.3 ECS上搭建RAC 18c+单实例DG+EMCC+DG的FSFO快速故障转移配置
Oracle_lhr_CentOS 7.3 ECS上搭建RAC 18c+单实例DG+EMCC+DG的FSFO快速故障转移配置 [大型连续免费公开课]Oracle 18c rac+dg+13.3的em ...
- 搭建rac对单实例的MAA
一:实验环境 系统:redhat 4 三台计算机rac1,rac2,dg. --其中rac为主库,单实例为备库 已在虚拟机里搭建好集群环境(rac1,rac2); dg计算机里还没有建任何数据库(只安 ...
- oracle rac搭建单实例DG步骤(阅读全篇后再做)
环境介绍 主库: 主机名 rac01 rac02 实体IP 10.206.132.232 10.206.132.233 私有IP 192.168.56.12 192.168.56.13 虚拟IP 10 ...
- Oracle - 给rac创建单实例dg,并做主从切换
一.概述 本文将介绍如何给rac搭建单节点的dg,以及如何对其进行角色转换.预先具备的知识(rac搭建,单实例-单实例dg搭建) 二.实验环境介绍 主库rac(已安装rac,并已有数据库orcl)ra ...
随机推荐
- 做raid1 经验总结
背景: MHP 3楼一台ThinkServer TS200 老服务器做RAID1,硬盘为: 2块3T RAID 设定里显示: 制作RAID1 只有700G多点可做. 系统安装: 可以正常在700G ...
- 请允许我成为你的夏季——shiro、jdbcInsertall
这两天总是觉得自己被关进了一个大笼子,日子拮据.生活不就是这样吗,一边觉得自己很差劲,一边又想成为一个更好的自己.可那又有什么办法呢,万物皆有裂痕,但那又怎样,那是光照进来的地方啊. 开始学习shir ...
- 【Linux系统引导过程】
*** 第一步 开机自检 根据主板BIOS中的启动顺序,移交系统控制权. 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它. 这是因为BIO ...
- 紫书 例题 9-4 UVa 116 ( 字典序递推顺序)
这道题在递推方式和那个数字三角形有一点相像,很容易推出来 但是这道题要求的是字典序,这里就有一个递推顺序的问题 这里用逆推,顺推会很麻烦,为什么呢? 如果顺推的话,最后一行假设有种情况是最小值,那么你 ...
- 今日SGU 5.20
SGU 404 题意:.. 收获:取模 #include<bits/stdc++.h> #define de(x) cout<<#x<<"="& ...
- 【Henu ACM Round#15 E】 A and B and Lecture Rooms
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 最近公共祖先. (树上倍增 一开始统计出每个子树的节点个数_size[i] 如果x和y相同. 那么直接输出n. 否则求出x和y的最近 ...
- XTUOJ 1205 Range
Range Time Limit : 1000 MS Memory Limit : 65536 KB Problem Description For an array, the range funct ...
- 【剑指offer】Q25:二叉树中和为某一值的路径
说明:最烦的就是看别人的博客,题解里直接上代码,一行分析都没有.只是这个题... class BTNode(): def __init__(self, val = -1): self.val = va ...
- Hadoop-2.6.0上的C的API訪问HDFS
在通过Hadoop-2.6.0的C的API訪问HDFS的时候,编译和执行出现了不少问题,花费了几天的时间,上网查了好多的资料,最终还是把问题给攻克了 參考文献:http://m.blog.csdn.n ...
- sdut 2805(最小生成树)
大家快来A水题 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 (1<= N <=2000)(1<= M <= N*(N-1)/2 ...