RMAN DUPLICATE ADG DEMO
RMAN DUPLICATE ADG DEMO
生产环境谨慎使用,建议生产环境采用RMAN备份恢复的方式。
本演示案例所用环境:
|
|
primary |
standby |
|
OS Hostname |
pry |
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 |
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)
(UR = A)
)
)
(2) tnsping命令解析网络服务名,命令须返回OK.
此时,standby端未配置监听,无法解析,可以standby配置后再测试。
$ tnsping standby
(3) 密码文件
若无密码文件,则创建密码文件。格式:orapw<ORACLE_SID>
cd $ORACLE_HOME/dbs
orapwd file=orapwstephen password=oracle ignorecase=y 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=/oradata/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;
# remote_login_passwordfile=exclusive/shared
alter system set log_archive_dest_state_1=enable;
alter system set log_archive_dest_state_2=enable;
--可修改归档日志格式,与datafile区分:
alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
--备角色参数:
alter system set fal_server=standby;
alter system set standby_file_management=auto;
alter system set db_file_name_convert='/oradata/standby','/oradata/stephen' scope=spfile;
alter system set log_file_name_convert='/oradata/standby','/oradata/stephen' scope=spfile;
注:以上参数,指定spfile修改的,在实例重启后生效。
5.打开归档模式
首先确认当前数据库是否是归档模式,如果不是,则打开归档模式。
archive log list;
shutdown immediate;
startup mount;
alter database archivelog;
archive log list;
alter database open;
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 = 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)
(UR = A)
)
)
(2) tnsping命令解析网络服务名,命令须返回OK.
$ tnsping stephen
(3) 密码文件
使用主库的密码文件:
scp pry:$ORACLE_HOME/dbs/orapwstephen $ORACLE_HOME/dbs/orapwstandby
3.创建相关目录
mkdir -p $ORACLE_BASE/admin/standby/{adump,dpdump,pfile}
mkdir -p /oradata/{standby,arch}
4.参数文件
只需要设置一个参数:db_name
echo '*.db_name=standby’>$ORACLE_HOME/dbs/initstandby.ora
5.RMAN duplicate ADG
启动数据库到nomount阶段:
startup nomount;
在primary端执行以下SQL进行 RMAN duplicate创建ADG,Oracle自动mount standby db:
$ rman target / auxiliary sys/oracle@standby
RMAN> run {allocate channel pry1 type disk;
allocate channel pry2 type disk;
allocate channel pry3 type disk;
allocate channel pry4 type disk;
allocate auxiliary channel stby type disk;
duplicate target database for standby from active database
spfile
parameter_value_convert 'stephen','standby'
set db_unique_name='standby'
set instance_name='standby'
set service_names='standby'
set db_file_name_convert='/oradata/stephen','/oradata/standby'
set log_file_name_convert='/oradata/stephen','/oradata/standby'
set control_files='/oradata/standby/control01.ctl'
set log_archive_max_processes='4'
set fal_server='stephen'
set standby_file_management='AUTO'
set log_archive_config='dg_config=(stephen,standby)'
set log_archive_dest_2='service=stephen lgwr async valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=stephen'
;
}
6.Fetch Gap
如果打开standby db至read only时,报以下错误:
SQL> alter database open read only;
alter database open read only
*
ERROR at line 1:
ORA-10458: standby database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/oradata/standby/system01.dbf'
只需要在mount阶段,执行归档日志应用,Fetch Archive Gap即可,primary端切换几次日志,确保standby一致后再打开standby db至read only:
SQL> recover managed standby database disconnect from session;
7.应用日志
打开standby至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#;
RMAN DUPLICATE ADG DEMO的更多相关文章
- 使用RMAN DUPLICATE...FROM ACTIVE DATABASE创建物理standby database
Applies to: Oracle Server - Enterprise Edition - Version 11.1.0.6 to 11.2.0.4 [Release 11.1 to 11.2] ...
- Oracle 11gR2 使用RMAN Duplicate复制数据库
Oracle 11gR2 使用RMAN Duplicate复制数据库 前言: 上周刚做完一个项目,用户要求RAC的数据库可以自己主动备份到另外一个单节点上,单节点可以正常拿起来就能用. ...
- 11g 使用rman duplicate复制数据库,创建辅助实例
一,创建所需目录 1)创建审计文件目录 PROD1@dbrac1 /dsg/oracle11$ cd $ORACLE_BASE/admin PROD1@dbrac1 /u01/app/oracle/a ...
- RMAN duplicate from active遇到ora-17167,ora-12154
最近在从活动数据库进行异机克隆时碰到了ORA-17629,ORA-17627,ORA-12154的错误,起初以为是一个Bug呢.Oracle Bug着实太多了,已经成了习惯性思维了.汗!错误提示是无法 ...
- 基于RMAN从活动数据库异机克隆(rman duplicate from active DB)
Oracle 11g RMAN能够实现基于活动数据库进行异机克隆,从而省去需要先备份再ftp到辅助服务器的过程.这一切可以全部交给Oracle来搞定.在克隆期间,Oracle会读取Target DB的 ...
- 基于RMAN的异机数据库克隆(rman duplicate)
对于基于生产环境下的数据库的版本升级或者测试新的应用程序的性能及其影响,备份恢复等等,我们可以采取从生产环境以克隆的方式将其克隆到本地而不影响生产数据库的正常使用.实现这个功能我们可以借助rman d ...
- oracle 11g 基于磁盘的备份rman duplicate
基于磁盘的备份rman duplicate 命令创建standby database 前提条件: 确保原始库数据库的备份.存档standby 结束是完全可见, 这里,如果原始文库和靶 - 侧数据文件, ...
- RMAN duplicate from active 时遭遇 ORA-17627 ORA-12154
最近在从活动数据库进行异机克隆时碰到了ORA-17629,ORA-17627,ORA-12154的错误,起初以为是一个Bug呢.Oracle Bug着实太多了,已经成了习惯性思维了.汗!错误提示是无法 ...
- 利用rman duplicate重建oracle dataguard standby数据库
问题背景 适用情况: 操作系统: redhat 6.5 数据库: oracle 11g r2 问题描述: failover后原主库无法恢复和启动或者丢失主备关系 优点 不需要对primary数据库停机 ...
随机推荐
- HAProxy高可用配置视频教程
HAProxy提供高可用性.负载均衡等,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上, ...
- 轻松掌握Ubuntu Linux的3D桌面快捷键使用
视频下载地址: http://115.com/file/be4n23v6#linux3d.rar 轻松掌握Ubuntu Linux的3D桌面快捷键使用 高级3D桌面展示 本文出自 "李晨光原 ...
- K-近邻算法学习
# -- coding: utf-8 -- from numpy import * import operator def createDataSet(): group = array([[1.0,1 ...
- ExtAspNet依据Grid导出Excel
protected void Button1_Click(object sender, EventArgs e) { Response.ClearContent(); Response.AddHead ...
- shell学习四十九天----进程建立
进程 前言:进程指的是运行中程序的一个实例.新进程由fork()与execve()等系统调用所起始,然后运行,知道他们下达exit()系统调用为止. linux系统都支持多进程.尽管计算机看起来像是一 ...
- Git版本号控制
Git是分布式版本号控制系统.与SVN类似的集中化版本号控制系统相比.集中化版本号控制系统尽管可以令多个团队成员一起协作开发,但有时假设中央server宕机的话,谁也无法在宕机期间提交更新和协 ...
- AVEVA PDMS 三维文字工具
AVEVA PDMS 三维文字工具 eryar@163.com 网上有个文字工具插件,可以在PDMS中创建三维的字母和数字,且字体样式只有一种,其下载地址为:http://www.plantcon.d ...
- Kali的源得数字验证问题
装上之后第一件事就是执行apt-get update && apt-get upgrade,结果却出现了这样的错误 我添加的是中科大的更新源,在浏览器中是可以正常打开的: deb ht ...
- less---查看文件
- 用内置的库turtle来画一朵花,python3
题目:用内置的库turtle来画一朵花 看了群主最后成像的图片,应该是循环了36次画方框,每次有10度的偏移. 当然不能提前看答案,自己试着写代码. 之前有用过海龟画图来画过五角星.奥运五环.围棋盘等 ...