ORACLE10g R2【单实例 FS→单实例FS】
ORACLE10g R2【单实例FS→单实例FS】
本演示案例所用环境:
|
|
primary |
standby |
|
OS Hostname |
pry |
std |
|
OS Version |
RHEL5.8 |
RHEL5.8 |
|
DB Version |
10.2.0.5 |
10.2.0.5 |
|
db_name |
stephen |
stephen |
|
db_unique_name |
stephen |
standby |
|
service_names |
stephen |
standby |
|
instance_name |
stephen |
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 = pry)(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=orapwstephen password=oracle force=y
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:
SQL> alter database add standby logfile
group 4 '/u01/oradata/stephen/redo04.log' size 50M,
group 5 '/u01/oradata/stephen/redo05.log' size 50M,
group 6 '/u01/oradata/stephen/redo06.log' size 50M,
group 7 '/u01/oradata/stephen/redo07.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)';
alter system set log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=stephen';
alter system set log_archive_dest_2='service=standby lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=standby';
alter system set log_archive_max_processes=30; #根据需求调整个数
确认以下参数默认值,如不为以下参数值,则修改:
alter system set remote_login_passwordfile=exclusive scope=spfile; #exclusive/shared
alter system set log_archive_dest_state_1=enable;
alter system set log_archive_dest_state_2=enable;
log_archive_format参数控制归档文件名称格式,默认值以.dbf结尾,为了与datafile区分,建议修改为.arc结尾:
alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
当primary切换为standby角色后,需要增加修改以下参数,建议配置:
alter system set fal_server=standby;
alter system set fal_client=stephen;
alter system set standby_file_management=auto;
# primary和standby的datafile和logfile存储路径不一样时,设定以下参数:
alter system set db_file_name_convert='/oradata/standby','/u01/oradata/stephen' scope=spfile;
alter system set log_file_name_convert='/oradata/standby','/u01/oradata/stephen' scope=spfile;
注:以上参数,指定spfile修改的,实例重启后生效。
5.打开归档模式
首先确认当前数据库是否是归档模式,如果不是,则打开归档模式。
archive log list;
shutdown immediate;
startup mount;
alter database archivelog;
archive log list;
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=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1
export ORACLE_SID=standby
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=/u01/app/oracle/product/10.2/db_1)
)
)
启用监听:
lsnrctl start
lsnrctl status
(2) tnsnames.ora
STEPHEN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pry)(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
...
OK (0 msec)
(4) 密码文件
使用主库的密码文件:
scp pry:$ORACLE_HOME/dbs/orapwstephen $ORACLE_HOME/dbs/orapwstandby
3.创建相关目录
mkdir -p $ORACLE_BASE/admin/standby/{adump,bdump,cdump,dpdump,pfile,udump,hdump}
mkdir -p /oradata/{standby,arch}
4.参数文件
用primary的pfile加以修改,以保证某些参数与primary保持一致,注意主备库内存的大小适当的调整内存相关参数。
scp pry:/tmp/pfile.bak $ORACLE_HOME/dbs/initstandby.ora
修改pfile为需要的standby pfile,并创建spfile.特别注意以下事例的参数设定:
*.audit_file_dest='/u01/app/oracle/admin/standby/adump'
*.background_dump_dest='/u01/app/oracle/admin/standby/bdump'
*.core_dump_dest='/u01/app/oracle/admin/standby/cdump'
*.user_dump_dest='/u01/app/oracle/admin/standby/udump'
*.control_files='/oradata/standby/control01.ctl'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_config='dg_config=(standby,stephen)'
*.log_a rchive_dest_1='location=/oradata/arch valid_for=(all_logfiles,all_roles) db_unique_name=standby'
*.log_a rchive_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 #根据需求调整个数
*.db_name='stephen'
*.db_unique_name='standby'
*.instance_name='standby'
*.service_names='standby'
*.fal_server='stephen'
*.fal_client='standby'
*.standby_file_management=auto
*.remote_login_passwordfile='EXCLUSIVE' #exclusive/shared
#主、备库日志文件和数据文件存放路径不一致,设定以下参数:
*.db_file_name_convert='/u01/oradata/stephen','/oradata/standby'
*.log_file_name_convert='/u01/oradata/stephen','/oradata/standby'
创建spfile:
create spfile from pfile;
5.恢复standby controlfile
SQL> startup nomount;
RMAN> restore standby controlfile from '/backup/c_05qlbira_1_1.bak';
6.恢复数据文件
(1)standby 与primary数据文件存放路径一致:
RMAN> sql 'alter database mount standby database';
run
{allocate channel c1 type disk;
allocate channel c2 type disk;
resotore database;
recover database;
release channel c1;
release channel c2;
}
(2) 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/user01.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;
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#;
ORACLE10g R2【单实例 FS→单实例FS】的更多相关文章
- ORACLE10g R2【RAC+ASM→单实例FS】
ORACLE10g R2[RAC+ASM→单实例FS] 10g R2 RAC+ASMà单实例FS的DG,建议禁用OMF. 本演示案例所用环境: primary standby OS Hostnam ...
- ORACLE11g R2【RAC+ASM→单实例FS】
ORACLE11g R2[RAC+ASM→单实例FS] 11g R2 RAC+ASMà单实例FS的DG,建议禁用OMF. 本演示案例所用环境: primary standby OS Hostnam ...
- ORACLE11g R2【单实例 FS→单实例FS】
ORACLE11g R2[单实例 FS→单实例FS] 本演示案例所用环境: primary standby OS Hostname pry std OS Version RHEL6.5 RHEL6 ...
- [转]单例模式——C++实现自动释放单例类的实例
[转]单例模式——C++实现自动释放单例类的实例 http://www.cnblogs.com/wxxweb/archive/2011/04/15/2017088.html http://blog.s ...
- Oracle 11g 单实例到单实例OGG同步实施文档-OGG initial load
Oracle 11g 单实例到单实例OGG同步实施文档-OGG initial load 2018-06-07 00:514730原创GoldenGate 作者: leo 本文链接:https://w ...
- Oracle 11g 单实例到单实例OGG同步实施文档-RMAN 初始化
Oracle 11g 单实例到单实例OGG同步实施文档-RMAN 初始化 2018-06-07 13:455170原创GoldenGate 作者: leo 本文链接:https://www.cndba ...
- Oracle 11g 单实例到单实例OGG同步实施文档-EXPDP初始化
Oracle 11g 单实例到单实例OGG同步实施文档-EXPDP初始化 2018-06-07 00:446470原创GoldenGate 作者: leo 本文链接:https://www.cndba ...
- JavaScript 小实例 - 表单输入内容检测,对页面的增删改
JavaScript 小实例 - 表单输入内容检测,对页面的增删改 效果体验地址:https://xpwi.github.io/js/JavaScript01/jsForm.html 功能: 1.向页 ...
- php常用表单验证类用法实例
<?php /** * 页面作用:常用表单验证类 * 作 者:欣然随风 * QQ:276624915 */ class class_post { //验证是否为指定长度的字母/数字组合 func ...
随机推荐
- Ionic2集成ngx-datatable,ng2-tree第三方控件.md
1. 基本环境配置 1.1. 命令安装相应的依赖 1.2. 在Module定义中引入对应Module 1.3. 引入对应的CSS 2. 简单使用示例验证是否集成成功 2.1. ngx-datatabl ...
- Python正则表达式初识(六)
继续分享Python正则表达式基础,今天给大家分享的正则表达式特殊符号是“[]”.中括号十分实用,其有特殊含义,其代表的意思是中括号中的字符只要满足其中任意一个就可以.其用法一共有三种,分别对其进行具 ...
- 用vuex构建单页
原文地址:点我 前言:在最近学习 Vue.js 的时候,看到国外一篇讲述了如何使用 Vue.js 和 Vuex 来构建一个简单笔记的单页应用的文章.感觉收获挺多,自己在它的例子的基础上进行了一些优化和 ...
- 分享到twitter,facebook,google,yahoo,linkedined,msn
编辑器加载中... 1. 分享到twitter的代码” title=”分享到 Twitter” target=”_blank” rel=”nofollow”>Twitter 2. 分享到Face ...
- XTUOJ 1238 Segment Tree
Segment Tree Accepted : 3 Submit : 21Time Limit : 9000 MS Memory Limit : 65536 KB Problem Descriptio ...
- Android数据库高手秘籍(三)——使用LitePal升级表
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/39151617 在上一篇文章中,我们学习了LitePal的基本使用方法,体验了使用框 ...
- css3中关于伪类的使用
目标: css中after伪类,last-child伪类的使用.以及部分css3的属性. 过程: 在制作导航时.常常会遇到在每个li后面加入一个切割符号,到最后一个元素的时候,切割符就会去掉的一种效果 ...
- OSX: 禁止iCloud钥匙链?
自从10.9有了一个新的功能叫viewlocale=zh_CN">iCloud钥匙串的,就出现了不少的麻烦.一是在10.9.3之前.好多人出现无限循环地要求用户输入Local item ...
- WPF通用管理框架 项目客户端基础结构介绍
介绍 首先, 粗糙的展示一下目前的结构设计理念, 因为这几天一直在忙于工作, 所以跟进有些缓慢, 整体的设计是支持多种服务模式.目前只针对MSSQL做数据库接口, ORM选型则用的是微软的EF(PS: ...
- 4455: [Zjoi2016]小星星|状压DP|容斥原理
OrzSDOIR1ak的晨神 能够考虑状压DP枚举子集,求出仅仅保证连通性不保证一一相应的状态下的方案数,然后容斥一下就是终于的答案 #include<algorithm> #includ ...