博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DG_Oracle DataGuard Primary/Standby物理主备节点安装实践(案例)
阅读量:7003 次
发布时间:2019-06-27

本文共 7169 字,大约阅读时间需要 23 分钟。

2014-09-09 Created By BaoXinjian

一、摘要


Oracle DataGuard是一种数据库级别的HA方案,最主要功能是冗灾、数据保护、故障恢复等。

在生产数据库的"事务一致性"时,使用生产库的物理全备份(或物理COPY)创建备库,备库会通过生产库传输过来的归档日志(或重做条目)自动维护备用数据库,将重做数据应用到备用库。

本文介绍使用RMAN备份创建备库(DataGuard)。

 

二、Oracle DataGuard环境概述


1. 软件环境

操作系统Red Linux Enterprise as 5

数据库版本Oracle 10g release 2

 

2. primary databae

IP: 192.168.37.135

ORACLE_SID=gavinprod

db_unique_name=gavinprod

 

3. standby database

IP:192.168.37.140

ORACLE_SID=gavinstandby

db_unique_name=gavinstandby

 

三、主数据库(gavinprod)做准备


1. 设置主数据库为Force logging

SQL> alter database force logging;

 

SQL> startupORACLE instance started.Total System Global Area  417546240 bytesFixed Size                  2213936 bytesVariable Size             322963408 bytesDatabase Buffers           88080384 bytesRedo Buffers                4288512 bytesDatabase mounted.Database opened. SQL> alter database force logging;Database altered.

 

 

2. 创建密码文件

[oracle@gavinprod dbs]$ cd $ORACLE_HOME/dbs[oracle@gavinprod dbs]$ orapwdfile=orapwgavinprod password=oracle force=y[oracle@gavinprod dbs]$ ls -ltr

 

 

3. 修改主库的初始化参数

alter system set log_archive_config='dg_config=(gavinprod,gavinstandby)' scope=both; 

alter system set log_archive_dest_1='location=/opt/gavinprod/archivelog' scope=both; 

alter system set db_unique_name='gavinprod' scope=both; 

SQL> alter system set log_archive_config='dg_config=(gavinprod,gavinstandby)' scope=both;  System altered.SQL> alter system set log_archive_dest_1='location=/opt/gavinprod/archivelog' scope=both; System altered.SQL> alter system set db_unique_name='gavinprod' scope=both; alter system set db_unique_name='gavinprod' scope=both                 *ERROR at line 1:ORA-02095: specified initialization parameter cannot be modified

 

SQL> select name,log_mode from v$database;NAME      LOG_MODE--------- ------------GAVINPRO  ARCHIVELOG

 

 

4. 生成数据库备份

RMAN> connect target sys/123456 

RMAN> backup database format='/opt/gavinprod/rmanback/%d_%s.dbf' plus archivelog; 

[oracle@oracle rmanback]$ ls  DB1_1.dbfDB1_2.dbf 

[oracle@gavinprod dbs]$ rman target /Recovery Manager: Release 11.2.0.1.0 - Production on Thu Jan 15 18:58:38 2015Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.connected to target database: GAVINPRO (DBID=1066005526)RMAN> connect target sys/oracleRMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-06167: already connectedRMAN>  backup database format='/opt/gavinprod/rmanback/%d_%s.dbf' plus archivelog;  Starting backup at 15-JAN-15channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 15-JAN-15

 

 

5. 生成备库的control file

SQL> alter database create standby controlfile as '/opt/gavinprod/rmanback/contrl01.ctl';Database altered.

 

[oracle@gavinprod oracle]$ cd /opt/gavinprod/rmanback[oracle@gavinprod rmanback]$ ls -ltrtotal 1264500-rw-r----- 1 oracle oinstall 1273921536 Jan 15 19:02 GAVINPRO_2.dbf-rw-r----- 1 oracle oinstall    9863168 Jan 15 19:02 GAVINPRO_3.dbf-rw-r----- 1 oracle oinstall    9781248 Jan 15 19:05 contrl01.ctl

 

 

 

 

6. 配置listener.ora 和tnsnames.ora文件

6.1 启动lintener.ora,

[oracle@oracle dbs]$ lsnrctl status 

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 14-JUN-2009 02:54:29  Service "db1" has 1 instance(s). 

Instance "db1", status READY, has 1 handler(s) for this service...  Service "db1_XPT" has 1 instance(s). 

Instance "db1", status READY, has 1 handler(s) for this service...  The command completed successfully 

 

6.2 配置rnsnames.ora

vi $ORACLE_HOME/network/admin/tnsnames.ora 

GAVINPROD =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = gavinprod.com)(PORT = 1521))    )    (CONNECT_DATA =      (SERVICE_NAME = gavinprod)    )  )GAVINSTANDBY =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = gavinstandby.com)(PORT = 1521))    )    (CONNECT_DATA =      (SERVICE_NAME = gavinstandby)    )  )

 

 

四、创建备份数据库(gavinprod_standby)做准备


1.设置环境变量并安装oracle软件

#环境变量设成与主库一样 

#只安装软件不安装库 

./runInstaller

 

2.建立相关的目录

cd $ORACLE_HOME/dbs/ 

orapwdfile=orapwgavinstandby password=oracle force=y 

#注要密码要与主库的一样, 否则会归档失败 

 

3.建立密码文件

cd $ORACLE_HOME/dbs/ 

orapwd file=orapwgavinstandby password=oracle force=y 

#注要密码要与主库的一样, 否则会归档失败

 

4.建立参数文件(pfile)

vi $ORACLE_HOME/dbs/initgavinstandby.ora 

 

db_name =gavinprod

shared_pool_size = 120M 

undo_management = AUTO 

undo_tablespace = undotbs 

sga_max_size = 200M 

sga_target = 160M 

db_2k_cache_size = 4M    

standby_file_management=AUTO 

fal_server='gavinprod'

fal_client='gavinprod'

log_archive_dest_1='location=/opt/oracle/product/11.2.0/gavinstandby/archivelog'

log_archive_dest_2='SERVICE=gavinprod REOPEN=300'

log_archive_dest_state_1='ENABLE'

log_archive_dest_state_2='ENABLE' 

 

5.CP主数据库RMAN备份及控制文件到备库

注意:备份存放位置要与primary database RMAN备份文件的位置相同. 控制文件存放位置要与生成standby database controlfile的位置相同

 

scp /oracle/rmanback/*.dbf root@192.168.18.2:/oracle/rmanback/ 

scp /oracle/rmanback/*.ctl root@192.168.18.2:/oracle/oradata/standby/ 

 

 

scp /opt/gavinprod/rmanback/*.dbf root@gavinstandby.com:/opt/gavinprod/rmanback/ scp /opt/gavinprod/rmanback/*.ctl root@gavinstandby.com:/opt/gavinprod/rmanback/ scp $ORACLE_HOME/dbs/initgavinprod.ora root@gavinstandby.com:/opt/gavinprod/rmanback
cp contrl01.ctl /opt/oracle/product/11.2.0/gavinstandby/dbs/cntrlgavinstandby.dbf

 

 

 

6. 利用备用的控制文件,把备用数据库启到mount

SQL>connect / as sysdba 

connnpcted to an idle instance. 

 

SQL>startup nomount pfile=$ORACLE_HOME/dbs/initgavinprod.ora

 

SQL>alter database mount

 

 

SQL> startup nomount pfile=$ORACLE_HOME/dbs/initgavinstandby.ora  ORACLE instance started.Total System Global Area  208769024 bytesFixed Size                  2211928 bytesVariable Size             176164776 bytesDatabase Buffers           25165824 bytesRedo Buffers                5226496 bytesSQL> alter database mount;Database altered.

 

 

 

 

7. 配置listener.ora 和tnsnames.ora文件.

与主库相同启动listener,tnsnames.ora也与主库配置的一样,

当主备库的监听都启动后,进行测试,以例下面能顺利进行

tnsping gaivnprod 

tnsping gavinstandby

SQL> sqlplus sys/oracle@gavinprod

SQL> sqlplus sys/oracle@gavinstandby

 

8. 转储数据库

RMAN>connect target /  connected to target database:TEST(DBID=788075692) 

RMAN> restore database 

 

9. 恢复数据库。

SQL>recover managed standby database disconnect from session; 

#如果有需要应用的日志并想手工应用,可以运行如下命令 

SQL>recover automatic standby database; 

 

10. 检查standby database是否创建成功

a.在primary database 上切换日志

SQL> alter system switch logfile 

 

b.在primary database上运行下面的语句

SQL> select max(sequence#) from v$archived_log; 

MAX(SEQUENCE#)  --------------  17 

 

c. 在standby database上运行下面的语句

SQL> select sequence# ,applied from v$archived_log order by sequence#;  

SEQUENCE# APP  --------------------- ---  15YES  16YES  17YES 

若在上步中的max sequence#在的的app状态为YES说明standby database 成功创建.

 

11. 以spfile启动并设为只读

SQL> create spfile from pfile; 

SQL> shutdown immedaite;

SQL> startup mount;

SQL> alter database recover managed standby database disconnect from session; 

SQL> alter database open read only; 

 

Thanks and Regards

参考: http://blog.chinaunix.net/uid-182041-id-84254.html

参考: 51CTO - http://database.51cto.com/art/200907/133644.htm

http://blog.chinaunix.net/uid-20728886-id-138190.html

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建

转载地址:http://tkgvl.baihongyu.com/

你可能感兴趣的文章
MySQL vs PostgreSQL干掉你的,往往不是你的对手
查看>>
创建消息队列(Kafka)源表
查看>>
elasticsearch windows 安装
查看>>
WPF listview item mouse enter/over popup
查看>>
Android项目实战(二十三):仿QQ设置App全局字体大小
查看>>
响应式面包屑菜单
查看>>
揭秘天猫双11背后:国内首次IPv6大规模商用实践
查看>>
window bat 批处理 修改注册表键值
查看>>
WPF触控程序开发(四)——MultiTouchVista_-_second_release_-_refresh_2的救赎
查看>>
mysql @value := 用法
查看>>
ASP.NET CORE系列【二】使用Entity Framework Core进行增删改查
查看>>
C# 判断用户是否对路径拥有访问权限
查看>>
Dubbo 源码分析 - 服务导出
查看>>
sqlserver 存储过程中使用临时表到底会不会导致重编译
查看>>
webpack-cli解决办法
查看>>
防火墙
查看>>
Confluence 6 自定义默认空间内容
查看>>
[剑指offer] 连续子数组的最大和
查看>>
HDU 2147 kiki's game(规律,博弈)
查看>>
TP5视频上传,商城增加视频上传功能
查看>>