ORACLE11g R2【单实例 FS→单实例FS】

ORACLE11g R2【单实例 FS→单实例FS】

本演示案例所用环境:


 


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)

)

)

 

(2) tnsping命令解析网络服务名,命令须返回OK.

此时,standby端未配置监听,无法解析,可以standby配置后再测试。

$ tnsping standby

 

(2) 密码文件

若无密码文件,则创建密码文件。格式: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 ‘/oradata/stephen/redo04.log‘ size 50M,

group 5 ‘/oradata/stephen/redo05.log‘ size 50M,

group 6 ‘/oradata/stephen/redo06.log‘ size 50M,

group 7 ‘/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;

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 standby_file_management=auto;

# primary和standby的datafile和logfile存储路径不一样时,设定以下参数:

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;

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 = 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.

此时,standby端未配置监听,无法解析,可以standby配置后再测试。

$ tnsping stephen

 

(4) 密码文件

使用主库的密码文件:

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.参数文件

用primary的pfile加以修改,以保证某些参数与primary保持一致,注意主备库内存的大小适当的调整内存相关参数。

scp pry:/tmp/pfile.bak $ORACLE_HOME/dbs/initstandby.ora

修改pfile为需要的standby pfile,并创建spfile.特别注意以下事例的参数设定:

*.audit_file_dest=‘/oracle/app/oracle/admin/standby/adump‘

*.audit_trail=‘db‘

*.control_files=‘/oradata/standby/control01.ctl‘

*.db_name=‘stephen‘

*.db_unique_name=‘standby‘

*.instance_name=‘standby‘

*.service_names=‘standby‘

*.remote_login_passwordfile=‘EXCLUSIVE‘

*.undo_tablespace=‘UNDOTBS1‘

*.log_archive_format=‘%t_%s_%r.arc‘

*.log_archive_config=‘dg_config=(standby,stephen)‘

*.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_1=‘enable‘

*.log_archive_max_processes=30 #根据需求调整个数

*.fal_server=‘stephen‘

*.standby_file_management=auto

*.remote_login_passwordfile=‘EXCLUSIVE‘

#主、备库日志文件和数据文件存放路径不一致,设定以下参数:

*.db_file_name_convert=‘/oradata/stephen‘,‘/oradata/standby‘

*.log_file_name_convert=‘/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.恢复数据文件

启动数据库到mount阶段,恢复数据文件。

(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;

11g Physical standby database可打开至read only模式,也就是常说的Active Dataguard.可迁移查询的业务至Active DG上,减小primary DB的压力。

打开数据库至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#;

时间: 2024-12-12 15:36:03

ORACLE11g R2【单实例 FS→单实例FS】的相关文章

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

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 Prim

ORACLE10g R2【RAC+ASM→单实例FS】

ORACLE10g R2[RAC+ASM→单实例FS] 10g R2 RAC+ASMà单实例FS的DG,建议禁用OMF. 本演示案例所用环境:   primary standby OS Hostname node1,node2 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

mvc area区域和异步表单,bootstrap简单实例

码农最怕眼高手低 今天来练习mvc Area技术和bootstrap以及异步表单的C#代码实现. 1.area区域架构对于建立复杂业务逻辑很有帮助,由  AreaRegistration.RegisterAllAreas()方法遍历路由表,获得所有注册的路由.参见 建立类库Common,下设一个文件夹BookStore 在其中建立model和controller.(注意引用System.Web.Mvc这个dll) 项目结构如图: 其中book.cs为model模型 namespace Commo

Oracle Data Guard 单实例到单实例配置(物理standby)

接上一篇oracle dataguard概念篇,现在进行下详细的配置,此次配置的是单实例到单实例,也就是说主库和备库都是基于文件系统的单实例. 主机环境:Red Hat Enterprise Linux Server release 6.3 Rdbms版本:11.2.0.3 其他详细信息如下所示: 需要注意的是,两边的/etc/hosts文件保证都包含对方的ip对应关系 oracle安装的目录是相同的 编辑/etc/hosts,分别添加以下内容 192.168.1.241 db1 192.168

单实例和多实例的区别以及用途

1.单实例和多实例 单实例一般会在类中自己实例化,通过getInstance获取该实例.ps: /** * 单例模式 */ public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() {} public static Singleton getInstance() { return singleton; } 多实例则可以随意new.ps: public cla

单Tomcat的多实例配置原理及应用

转自 http://www.cher7.com/?id=12919 我们常有在JAVAWeb应用部署或依赖Tomcat应用中遇到单机多实例的需求,解决方案一般有: 1.复制Tomcat到不同目录,更改Server.xml等配置文件: 2.部署不同应用实例到webapps目录下或直接将多项目部署到同一Tomcat实例中. 以此解决多项目部署问题,不能说以上两种解决方案不对,只是这种解决思路有以下几个问题: 复制多Tomcat难于维护.两三个实例还好说,如果配置十个以上的实例,那对于统一启动.Tom

Struts学习(五)-表单标签,一个实例练习

表单标签将在 HTML 文档里被呈现为一个表单元素 使用表单标签的优点: 表单回显 对页面进行布局和排版 标签的属性可以被赋值为一个静态的值或一个 OGNL 表达式. 如果在赋值时使用了一个 OGNL 表达式并把它用 %{} 括起来, 这个表达式将会被求值. 表单标签的共同属性 * 该属性只在没有使用 simple 主题时才可以使用. form标签 默认情况下, form 标签将被呈现为一个表格形式的 HTML 表单. 嵌套在 form 标签里的输入字段将被呈现为一个表格行. 每个表格行由两个字

Linux下安装Oracle11G R2详解

环境说明: 在Vmware虚拟机上搭建的环境, 操作系统: Centos7.0 数据库版本:Oracle11G R2 系统内存:3G 硬盘:40G 安装过程中,也遇到了几个问题,此处不详细说明,下一篇专门总结遇到的问题及解决方法. 安装准备: 修改主机名 # sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=Oracletest/" /etc/sysconfig/network # hostname Oracletest 添加主机名与I