DataGuard具体搭建环节
在上一篇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具体搭建环节的更多相关文章
- 转 DataGuard环境搭建 (一主一备一级联)
DataGuard环境搭建 (一主一备一级联) http://blog.itpub.net/30130773/viewspace-2116985/ 1.--------- primary_role / ...
- DATAGUARD的搭建
ORACLE Data Guard 理论知识 请查看此blog :http://blog.csdn.net/haibusuanyun/article/details/11519241 Oracle D ...
- 第五章 搭建 S3C6.410 开发板的 测试环境
一.简介: 对于嵌入式驱动开发者来说,你必须要了解什么是开发板:它与我们经常用的手机类似, 包含了显示屏. 键盘. Wi-Fi. 蓝牙等模块等,是开发者必备的硬件设备.但与手机不同的是:在开发板上安装 ...
- Windows GTK+ 环境搭建(详解)
来源:http://blog.sina.com.cn/s/blog_a6fb6cc901017ygy.html Windows GTK+ 环境搭建 最近要做界面的一些东西,但是对微软提供的类库MFC不 ...
- Oracle dataguard 正常切换和应急切换
oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换模拟主库出现问题无法还原,备库脱离dataguard接 ...
- oracle dataguard主从切换
前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...
- mysql同步之otter/canal环境搭建完整详细版
接上一篇mysql 5.7多源复制(用于生产库多主库合并到一个查询从库). 这一篇详细介绍otter/canal环境搭建以及当同步出现异常时如何排查.本文主要参考https://blog.csdn.n ...
- 实战dataguard主从切换
前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...
- Vultr搭建SS服务
购买VPS VPS又叫虚拟服务器,相当于是讲物理服务器的资源进行虚拟划分然后分配给不同的用户使用. Vultr服务器按小时计费,最低0.004美元/h,算起来2.5美元/月,且destory掉服务器是 ...
随机推荐
- App常用性能测试工具清单
APP的CPU,内存,耗电,流量测试工具 APP的CPU,内存,耗电,流量测试工具下载地址,后续文章会介绍如何使用Emmagee.itest.gt APP应用的CPU,内存,耗电,流量调查(可和同类产 ...
- Python基础入门-实现计算器多种姿势
在Python中,虽然定义一个函数只需要def关键字,但是他能实现多种功能和用途,比如今天我们讲解的这几种方式.如何使用函数实现一个计算器的功能呢?当然,实现计算器的方式有很多种,我们举几个比较典型的 ...
- css总结10:父标签没有定义高度,盒子异常移动
1 问题:在父标签没有定义高度的情况下,嵌套的盒子浮动后,父标签下面的元素发生位置错误. 2 解决方法: 2.1(大厂网页常用方法) 添加额外元素: 即:父标签下添加一个元素(.clearfix),去 ...
- 一步之遥——第七届蓝桥杯C语言B组(国赛)第一题
原创 一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里.矿车停在平直的废弃的轨道上.他的面前是两个按钮,分别写着“F”和“B”. 小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退.按 ...
- web开发四个作用域
web开发一共有四个作用域,范围从高到低分为appliaction作用域(全局作用域),session作用域,request作用域和page作用域.${base}是el表达式语法,它会自动先从page ...
- hbuilder h5 原生socket
在网上搜索了很多资料都不行,要么就是不能发送数据,要么就不能接收数据,使用如下的方法可以接收数据,一个一个字节接收: 有部分限制是需要明确知道要接收多少个字节,否则容易出现接收异常.. var tes ...
- [转]Marshaling a SAFEARRAY of Managed Structures by P/Invoke Part 6.
1. Introduction. 1.1 Starting from part 4 I have started to discuss how to interop marshal a managed ...
- 以太坊系列之四: 使用atomic来避免lock
使用atomic来避免lock 在程序中为了互斥,难免要用锁,有些时候可以通过使用atomic来避免锁, 从而更高效. 下面给出一个以太坊中的例子,就是MsgPipeRW,从名字Pipe可以看出, 他 ...
- A - 活动安排问题(贪心)
A - 活动安排问题 有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室? Input第一行一个正整数n (n <= ...
- js创建ActiveXObject无效
是因为使用的浏览器不是ie内核的,比如用搜狗浏览器,切换为兼容模式就正常了