某控股公司OA系统ORACLE DG搭建
*此处安装ORACLE DATAGUARD是利用ORACLE RMAN DUPLICATE方式安装。
*可以搭建好ORACLE DG再来impdp生产数据,也可以先导入主库数据再来做DG
*注意看下面的配置文件,此处LISTENER TNSNAMES里的SID_NAME我都是用的db_name的ora,没有测试其它的
*TNSNAMES的起名orcl_pd orcl_sd我都用用和db_unique_name一样的
*版本CENTOS6.5 ORACLE11.2.0.4
1、两台服务器上分别安装数据库软件,只安装软件不安装实例,为了减少复杂度,所有目录都一样
安装请参考其他文档
2、在主库上安装数据库实例ORA
DBCA安装
修改日志文件大小
内存分配好
3、在主库上创建与旧库一样的用户名表空间
create tablespace ekp
datafile '/u01/app/oracle/oradata/ora/ora01.dbf'
size 10240M
autoextend on
next 512M
extent management local; create temporary tablespace ora_temp
tempfile'/u01/app/oracle/oradata/ora/ora_temp.dbf'
size 10240m
autoextend on
next 512m
extent management local; create user ora identified by abcABC123 default tablespace ekp temporary tablespace ora_temp;
grant connect,resource,dba to ora;
4、停止应用,到旧库上导出用户数据
expdp ora/abcABC123 DIRECTORY=oa_databackup dumpfile=oadb1010.dmp logfile=oadbf111.log schemas=ora compression=all
5、把备份文件拷贝到主库上,创建directory,然后导入数据IMPDP
mkdir -p /u01/app/oracle/bakdump
create or replace directory oa_databackup as '/u01/app/oracle/bakdump';
6、主库参数修改
1)开启归档
shutdown immediate;
startup mount;
alter database archivelog;
archive log list;
alter database open;
2)强制写日志
alter database force logging;
3)增加备库日志
ALTER DATABASE ADD STANDBY LOGFILE GROUP ('/u01/app/oracle/oradata/ora/redo04.log') size 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP ('/u01/app/oracle/oradata/ora/redo05.log') size 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP ('/u01/app/oracle/oradata/ora/redo06.log') size 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP ('/u01/app/oracle/oradata/ora/redo07.log') size 50M;
4)监听
--主库
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora)
(ORACLE_HOME = /u01/app/oracle/product/11.2./dbhome_1)
(SID_NAME = ora)
)
) LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.3.28)(PORT = ))
) ADR_BASE_LISTENER = /u01/app/oracle
--从库
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora)
(ORACLE_HOME = /u01/app/oracle/product/11.2./dbhome_1)
(SID_NAME = ora)
)
) LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.3.29)(PORT = ))
) ADR_BASE_LISTENER = /u01/app/oracle
5)tnsname
--主库从库一样
orcl_pd =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.3.28)(PORT = ))
)
(CONNECT_DATA =
(SERVICE_NAME = ora)
)
) orcl_sd =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.3.29)(PORT = ))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora)
)
)
6)参数文件
主库参数
ora.__db_cache_size=
ora.__java_pool_size=
ora.__large_pool_size=
ora.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
ora.__pga_aggregate_target=
ora.__sga_target=
ora.__shared_io_pool_size=
ora.__shared_pool_size=
ora.__streams_pool_size=
*.audit_file_dest='/u01/app/oracle/admin/ora/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/ora/control01.ctl','/u01/app/oracle/fast_recovery_area/ora/control02.ctl'
*.db_block_size=
*.db_domain=''
*.db_name='ora'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oraXDB)'
*.open_cursors=
*.pga_aggregate_target=
*.processes=
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=
*.sga_target=
*.undo_tablespace='UNDOTBS1' DB_UNIQUE_NAME=orcl_pd
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl_pd,orcl_sd)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl_pd'
LOG_ARCHIVE_DEST_2='SERVICE=orcl_sd ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl_sd'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=orcl_sd
STANDBY_FILE_MANAGEMENT=AUTO
从库参数
ora.__db_cache_size=
ora.__java_pool_size=
ora.__large_pool_size=
ora.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
ora.__pga_aggregate_target=
ora.__sga_target=
ora.__shared_io_pool_size=
ora.__shared_pool_size=
ora.__streams_pool_size=
*.audit_file_dest='/u01/app/oracle/admin/ora/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/ora/control01.ctl','/u01/app/oracle/fast_recovery_area/ora/control02.ctl'
*.db_block_size=
*.db_domain=''
*.db_name='ora'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oraXDB)'
*.open_cursors=
*.pga_aggregate_target=
*.processes=
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=
*.sga_target=
*.undo_tablespace='UNDOTBS1' DB_UNIQUE_NAME=orcl_sd
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl_pd,orcl_sd)'
LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl_sd'
LOG_ARCHIVE_DEST_2='SERVICE=orcl_pd ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl_pd'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=orcl_pd
STANDBY_FILE_MANAGEMENT=AUTO
7) impdp 旧数据
impdp ora/abcABC123 DIRECTORY=oa_databackup DUMPFILE=oadb1010.dmp SCHEMAS=ora
7、 备库操作
从主课拷贝密码文件initoracle_sid listener.ora tnsname.ora 到从库对应位置,注意修改相对应的内容,如initora.ora修改上面从库增加的内容,listener.ora修改IP。其它一样
并在从库新建相关目录:
cd /u01/app/oracle
mkdir archivelog
mkdir -p oradata/ora
mkdir -p fast_recovery_area/ora
mkdir -p /u01/app/oracle/admin/ora/adump
mkdir -p /u01/app/oracle/bakdump
mkdir -p /u01/app/oracle/admin/ora/adump
注意修改etc/hosts
8、备库duplicate
备库利用拷贝过来的参数文件启动到nomount
sqlplus / as sysdba
startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initora.ora'
另开窗口rman duplicate复制
rman target sys/oracleadmin@orcl_pd auxiliary sys/oracleadmin@orcl_sd nocatalog
duplicate target database for standby nofilenamecheck from active database;
9、打开备库数据库并开启主从复制
sqlplus / as sysdba
alter database open;
alter database recover managed standby database using current logfile disconnect from session;
10、检查状态
正常情况下主库OPEN_MODE 是WIRITE READ 从库是READ ONLY WITH APPLY
SELECT OPEN_MODE,DATABASE_ROLE,DB_UNIQUE_NAME,SWITCHOVER_STATUS FROM V$DATABASE;
主备库查询下面语句,看看日志是否一致
SELECT MAX(SEQUENCE#) FROM V$ARCHIVED_LOG;
不一致时,主库切换一下日志在查看
ALTER SYSTEM SWITCH LOGFILE;
11、角色切换SWITCHOVER
)主库上
select switchover_status from v$database;
如果状态为SESSION ACTIVE则执行下面
alter database commit to switchover to physical standby with session shutdown;
如果状态为TO_STANDBY则执行下面
alter database commit to switchover to physical standby
(如果切换失败后要重启一下库)
否则要切换一下日志看看alter system switch logfile;
)备库上
select switchover_status from v$database
switchover_status 为NOT ALLOWED
alter database commit to switchover to primary;
)原来主库上
shutdown immediate
startup
alter database recover managed standby database using current logfile disconnect from session;
(上面是开启日志传输,这个是关闭alter database recover managed standby database cancel;)
)原来备库上
shutdown immediate
startup
12、failover灾难切换
假设物理主库宕机,无法启动,紧急启用备库
直接在备库上操作,将备库转换为主库角色
备库上执行下面四条命令即可
SQL > alter database recover managed standby database finish;
SQL > alter database commit to switchover to primary;
SQL > shutdown immediate;
SQL > startup;
某控股公司OA系统ORACLE DG搭建的更多相关文章
- oracle DG搭建
Oracle DG 搭建1. 环境 OS IP hostname db_name DB_UNIQUE_NAME主库 RHEL 5.4 192.168.12.20 edgzrip1.oracle.com ...
- 【Oracle】搭建DG(DataGuard)
操作系统:OEL 5.6 Oracle 版本:11.2.0.4.0 DataGuard规划说明 DATABASE_ROLE DB_NAME IPADDR Primary lgr 192.168.10. ...
- linux/windows系统oracle数据库简单冷备同步
linux/windows系统oracle数据库简单冷备同步 我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows).备份环境 ...
- oracle DG 主备切换语句整理
今日花了一下午时间进行了Oracle DataGuard的切换练习,参考了网上好多文章,最后将一些语句进行摘录,以备以后查询使用.之后有时间会带来Oracle DG的搭建和切换全过程文章. DataG ...
- 浅谈OA系统与Portal门户的区别
随着社会信息化的发展与进步,OA办公自动化软件打破了传统复杂的办公方式,使各个行业实现了高效的无纸化办公.由此一来OA快速成长为继财务软件.ERP软件之后的第三大管理软件.随着企业信息化系统的不断增多 ...
- OA系统高性能解决方案(史上最全的通达OA系统优化方案)
序: 这是一篇针对通达OA系统的整体优化方案,文档将硬件.网络.linux操作系统.程序本身(包括web和数据库)以及现有业务有效结合在一起,进行了系统的整合优化.该方案应用于真实生产环境,部署完成后 ...
- DG搭建方式区分
DG搭建三种方式: 一.异机恢复,restore database,recover database 二. duplicate target database for standby from act ...
- 分享泛微公司OA系统用于二次开发的sql脚本
本单位用的oa系统就是泛微公司的oa协同办公平台,下面是我对他进行二次开发统计用到的写数据库脚本,只做开发参考使用,对于该系统的二次开发技术交流可以加我q:2050372586 [仪表盘]格式sql编 ...
- nginx整合php+lua+oracle环境搭建
nginx整合php+lua+oracle环境搭建 标签: nginxluaoraclephplinux -- : 1473人阅读 评论() 收藏 举报 分类: 技术() 版权声明:本文为博主原创文章 ...
随机推荐
- iOS学习之Map,定位,标记位置的使用
iOS上使用地图比Android要方便,只需要新建一个MKMapView,addSubView即可.这次要实现的效果如下: 有标注(大头针),定位,地图. 1.添加地图 1.1 新一个Single V ...
- OOAD之策略模式(1)
在引入策略模式之前.先用一个小项目解释为什么要有策略模式.这是一个模拟鸭子的小游戏.最开始需求为,所有的鸭子都会叫以及都会游泳且叫声游泳姿势都一样.因此我们用原始OO的思维去编写代码时很容易做到 pu ...
- VS code注释快捷键
注释: 先CTRL+K,然后CTRL+C 取消注释: 先CTRL+K,然后CTRL+U
- Codeforces 900D Unusual Sequences 容斥原理
题目链接:900D Unusual Sequences 题意: 给出两个数N,M.让你求数列(和为M,gcd为N)的个数. 题解: 首先,比较容易发现的是M%N如果不为零,那么一定不能构成这样的序列 ...
- Mysql Nested-Loop Join Algorithms
MySQL在多表之间执行join时,利用一种nested-loop algorithm 或者其变种:(嵌套循环) Nested-Loop Join Algorithm 一个简单的嵌套循环连 ...
- springboot之fastjson
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifac ...
- GPU 实现 RGB -- YUV 转换 (OpenGL)
GPU 实现 RGB -- YUV 转换 前言 RGB --> YUV 转换的公式是现成的,直接在 CPU 端转换的话,只需要遍历每个像素,得到新的 YUV 值,根据其内存分布规律,合理安排分布 ...
- SuperMap iClient for JavaScript初入
SuperMap iClient for JavaScript初入 介绍SuperMap for Js的简单使用. 推荐先看下这篇文档:SuperMap iClient for JavaScript ...
- 错误:The request sent by the client was syntactically incorrect的解决
问题: 错误400-The request sent by the client was syntactically incorrect. springMVC中,某个页面提交时报400错误,如下图. ...
- Tomcat配置(三):tomcat处理连接的详细过程
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...