在上一篇blog中,详细介绍DataGuard实现的原理,本篇介绍DataGuard的具体搭建过程。

主库打开日志,并强制force logging

SQL>shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
select force_logging from v$database;
alter database force logging;

主库打开主库打开dataguard开关

语句

--alter system set log_archive_config='dg_config=(主库的唯一名,从库1的唯一名,从库2的唯一名...)';

样例中使用名字是orcl和aux1

SQL>alter system set log_archive_config='dg_config=(orcl,aux1)';

修改主库本地归档参数

mkdir -p /home/oracle/arc_orcl_dest1/

--alter system set log_archive_dest_1='location=/home/oracle/arc_orcl_dest1/ valid_for=(日志类型,数据库的角色) db_unique_name=orcl';

具体参考的

SQL>alter system set log_archive_dest_1='location=/home/oracle/arc_orcl_dest1/ valid_for=(online_logfiles,primary_role) db_unique_name=orcl';

其中参数解释

日志类型:all_logfiles | online_logfiles | standby_logfiles

数据库的角色:all_roles | primary_role | standby_role

激活主库本地归档路径

SQL>alter system set log_archive_dest_state_1='enable';

主库打开远程归档

--alter system set log_archive_dest_3='service=服务命名 valid_for=(日志类型,数据库的角色) db_unique_name=从库唯一名';

SQL>alter system set log_archive_dest_3='service=aux1srv valid_for=(online_logfiles,primary_role) db_unique_name=aux1';

.激活主库远程归档路径

SQL>alter system set log_archive_dest_state_3='enable';

为从库准备口令文件

scp $ORACLE_HOME/dbs/orapw$ORACLE_SID oracle@install0:$GRID_HOME/dbs/orapwaux1

其中 $ORACLE_HOME/dbs/orapw$ORACLE_SID 是oracle的口令文件,这一步可以不做,这样做是为了保持密码一致。

为从库准备参数文件

在主库生成pfile,修改:

create pfile='/home/oracle/p.ora' from spfile;

然后 scp pfile 到从从库的 $ORACLE_HOME/dbs/initaux1.ora

修改 $ORACLE_HOME/dbs/initaux1.ora

注意路径


*.aq_tm_processes=1

*.compatible='11.2.0.4.0'

*.db_block_size=8192

*.db_domain='example.com'

*.db_name='orcl'

*.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=orclXDB)'

*.job_queue_processes=100

*.memory_max_target=943718400

*.memory_target=843055104

*.open_cursors=500

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

*.utl_file_dir='/home/oracle'

log_archive_config='dg_config=(orcl,aux1)'

db_unique_name='aux1'

audit_file_dest='/u01/app/oracle/admin/aux1/adump'

control_files='/u01/app/oracle/oradata/aux1/control01.ctl'

standby_file_management=auto

log_archive_dest_2='location=/home/oracle/arc_aux1_dest2/ valid_for=(standby_logfiles,standby_role) db_unique_name=aux1'

db_file_name_convert='/home/oracle/coldbk/','/u01/app/oracle/oradata/aux1/'

log_file_name_convert='/home/oracle/coldbk/','/u01/app/oracle/oradata/aux1/'


从库相关路径

mkdir -p /u01/app/oracle/fast_recovery_area

mkdir -p /u01/app/oracle/admin/aux1/adump

mkdir -p /u01/app/oracle/oradata/aux1

mkdir -p /home/oracle/arc_aux1_dest2

chmod -R 775 /u01/app/oracle/admin/aux1/adump

启动从库实例

export ORACLE_SID=aux1

sqlplus / as sysdba

create spfile from pfile;

startup nomount

在从库配置并启动监听程序

lsnrctl stop

vi $ORACLE_HOME/network/admin/listener.ora


SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = aux1.example.com)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

(SID_NAME = aux1)

)

)

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.0.11)(PORT = 1521))

)


lsnrctl start

其中 172.25.0.11 是从库ip地址

在主库配置服务命名

vi $ORACLE_HOME/network/admin/tnsnames.ora


aux1srv =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.0.11)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = aux1.example.com)

)

)


在主库使用网络连接从库(测试)

sqlplus sys/oracle@aux1srv as sysdba

在主库启动rman复制从库

rman target / auxiliary sys/oracle@aux1srv

RMAN> duplicate target database for standby from active database;

如果数据库文件的目录和主库一样

RMAN> duplicate target database for standby from active database nofilenamecheck;

这是一个常用方法,包括如果迁移数据库的时候也可以用这个办法

检查

在完成以上工作以后需要做最后一次检查

查看归档徐磊

SQL>select sequence#,name from v$archived_log;

在主库切换日志查看从库是否得到新的日志

SQL>alter system switch logfile;

ll /home/oracle/arc_aux1_dest2/ ()

在主库查看远程归档有什么错误

SQL>select error from v$archive_dest where dest_id=3;

如果发现错误,排除错误以后

SQL>alter system set log_archive_dest_state_3='enable';

按照主库连机日志的大小在从库创建standby log

SQL>alter database add standby logfile '/u01/app/oracle/oradata/aux1/redo04.log' size 52428800;

SQL>alter database add standby logfile '/u01/app/oracle/oradata/aux1/redo05.log' size 52428800;

SQL>alter database add standby logfile '/u01/app/oracle/oradata/aux1/redo06.log' size 52428800;

以只读方式打开从库

SQL>alter database open read only;

至此大功告成。

DataGuard具体搭建环节的更多相关文章

  1. 转 DataGuard环境搭建 (一主一备一级联)

    DataGuard环境搭建 (一主一备一级联) http://blog.itpub.net/30130773/viewspace-2116985/ 1.--------- primary_role / ...

  2. DATAGUARD的搭建

    ORACLE Data Guard 理论知识 请查看此blog :http://blog.csdn.net/haibusuanyun/article/details/11519241 Oracle D ...

  3. 第五章 搭建 S3C6.410 开发板的 测试环境

    一.简介: 对于嵌入式驱动开发者来说,你必须要了解什么是开发板:它与我们经常用的手机类似, 包含了显示屏. 键盘. Wi-Fi. 蓝牙等模块等,是开发者必备的硬件设备.但与手机不同的是:在开发板上安装 ...

  4. Windows GTK+ 环境搭建(详解)

    来源:http://blog.sina.com.cn/s/blog_a6fb6cc901017ygy.html Windows GTK+ 环境搭建 最近要做界面的一些东西,但是对微软提供的类库MFC不 ...

  5. Oracle dataguard 正常切换和应急切换

    oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换模拟主库出现问题无法还原,备库脱离dataguard接 ...

  6. oracle dataguard主从切换

    前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...

  7. mysql同步之otter/canal环境搭建完整详细版

    接上一篇mysql 5.7多源复制(用于生产库多主库合并到一个查询从库). 这一篇详细介绍otter/canal环境搭建以及当同步出现异常时如何排查.本文主要参考https://blog.csdn.n ...

  8. 实战dataguard主从切换

    前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...

  9. Vultr搭建SS服务

    购买VPS VPS又叫虚拟服务器,相当于是讲物理服务器的资源进行虚拟划分然后分配给不同的用户使用. Vultr服务器按小时计费,最低0.004美元/h,算起来2.5美元/月,且destory掉服务器是 ...

随机推荐

  1. Linux下的fdlisk - l 用法解析-入门篇

    fdlisk - l 的含义是查看linux下面的磁盘分区大小.这个大小包含了很多信息. 我们来看度娘的一则介绍: FDISK进行硬盘分区从实质上说就是对硬盘的一种格式化.当我们创建分区时,就已经设置 ...

  2. wpf控件开发基础

    wpf控件开发基础(3) -属性系统(2) http://www.cnblogs.com/Clingingboy/archive/2010/02/01/1661370.html 这个有必要看看 wpf ...

  3. Eclipse中连接数据库错误:com.microsoft.sqlserver.jdbc.SQLServerException: 之类的错误

    原创 错误:org.apache.jasper.JasperException: Unable to compile class for JSP 原因是页面指令中 import="java. ...

  4. EasyUI控件combobox重复请求后台,dialog窗口数据异常

    最近在用Easy UI+Dapper+MVC4 开发一个财务收款系统,其中就发现一些小问题,供有需要的人参考. 1.EasyUI控件combobox 数据绑定 出现重复请求后台 上代码: <td ...

  5. 关于C#中Timer定时器的重入问题解决方法(也适用于多线程)

    项目中用到了定时器随着服务启动作定时任务,按指定的准点时间定时执行相关操作,但是在指定准点时间内我只想让它执行一次,要避免重入问题的发生. 首先简单介绍一下timer,这里所说的timer是指的Sys ...

  6. kali linux之拒绝服务

    Dos不是DOS(利用程序漏洞或一对一资源耗尽的denial of service拒绝服务) DDoS分布式拒绝服务(多对一的攻击汇聚资源能力,重点在于量大,属于资源耗尽型) 历史 以前:欠缺技术能力 ...

  7. kali linux之skipfish,arachni

    c语言编写,实验性的主动web安全评估工具,递归爬网,基于字典的探测,速度较快--(多路单线程,启发式自动内容识别),误报率低 常用参数 -I 只检查包含/xx/的url -X 不检查包含/xx/的u ...

  8. 类1(this指针/const成员函数/类作用域/外部成员函数/返回this对象的函数)

    假设我们要设计一个包含以下操作的 Sales_data 类: 1.一个 isbn 成员函数,用于返回对象的 book_no 成员变量 2.一个 combine 成员函数,用于将一个 Sales_dat ...

  9. express + vue 项目搭建

    最近建了一个node服务端加vue前端的项目 安装node :npm install node 安装express :npm install express -g (-g全局安装) 构建express ...

  10. Centos7服务器启动jar包项目最佳方式

    jar后台运行:nohup java -jar xx.jar >/dev/null & 此处的“>/dev/null”作用是将终端输出信息输出到空洞中,即不保存输出信息,若要查看输 ...