Oracle 11g R2之Dataguard搭建物理standby

数据库版本:11.2.0.4

服务器版本:RedHat6.4

主库Primary:安装数据库软件及实例

备库Standby: 仅安装数据库软件

一、搭设前主备库环境:

主库Primary:

[[email protected] dbs]$ cat /home/oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=orcl
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH

备库Standby:

[[email protected] ~]$ cat /home/oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=dg
export ORACLE_UNQNAME=dg
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=dg
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH

二、搭设Dataguard

主库Primary操作:

--检查数据库是否支持Dataguard
[[email protected] dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Jul 23 10:02:01 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$option where parameter = ‘Managed Standby‘;

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
Managed Standby
TRUE
--检查主库是否开启归档模式
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/archive/orcl
Oldest online log sequence     23
Next log sequence to archive   25
Current log sequence           25

--如未开启执行下列操作
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;

--将数据库设为强制日志模式
SQL> alter database force logging;

--创建数据库密码文件(如果没有)
[oracle@oracle /]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle force=y ignorecase=y entries=5

--创建主库归档目录
[oracle@oracle /]$ cd /u01
[oracle@oracle u01]$ mkdir archive
[oracle@oracle u01]$ cd archive
[oracle@oracle archive]$ mkdir orcl

--备份数据库初始化参数文件
SQL> create pfile=‘/home/oracle/pfile.ora‘ from spfile;

--创建pfile文件,该文件方便修改初始化参数
SQL> create pfile from spfile;

--打开pfile文件,添加如下内容
DB_UNIQUE_NAME=orcl
LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(orcl,dg)‘
LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/archive/orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl‘
LOG_ARCHIVE_DEST_2=‘SERVICE=dg ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg‘
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=dg
DB_FILE_NAME_CONVERT=‘/u01/oracle/oradata/dg/‘,‘/u01/oracle/oradata/orcl/‘
LOG_FILE_NAME_CONVERT=‘/u01/archive/dg‘,‘/u01/archive/orcl‘
STANDBY_FILE_MANAGEMENT=AUTO

--关闭数据库
SQL> shutdown immediate

--通过pfile创建spfile
SQL> create spfile from pfile;

--打开数据库
SQL> startup

--备份主库Primary数据库文件
--关闭数据库
SQL> shutdown immediate  

--停止监听
[oracle@oracle /]$ lsnrctl stop

--启动数据库到mount状态
SQL> startup mount

--创建备份目录
[oracle@oracle /]$ cd /u01
[oracle@oracle u01]$ mkdir backup

--rman备份
[oracle@oracle /]$ rman target /
RMAN> backup full database format ‘/u01/backup/backup_%t_%s_%p.bak‘;

--在主库上建立备库的控制文件(2份)
SQL> alter database create standby controlfile as ‘/u01/backup/stdby_control01.ctl‘;
[oracle@oracle /]$ cd /u01/backup/
[oracle@oracle backup]$ cp stdby_control01.ctl stdby_control02.ctl

备库Standby操作:

--创建必要的目录
cd /u01
mkdir archive
cd archive
mkdir dg
cd /u01/oracle
mkdir admin
cd admin
mkdir dg
cd dg
mkdir adump
cd /u01/oracle/oradata
mkdir dg
cd /u01/oracle
mkdir fast_recovery_area
cd fast_recovery_area
mkdir dg
cd /u01
mkdir backup

--通过scp将主库中的备份文件传到备库上
[oracle@oracle backup]$ cd /u01/backup
[oracle@oracle backup]$ scp backup*.bak 192.168.8.223:/u01/backup
[oracle@oracle backup]$ scp stdby_control*.ctl 192.168.8.223:/u01/oracle/oradata/
[oracle@oracle backup]$ cd $ORACLE_HOME/dbs
[oracle@oracle dbs]$ scp initorcl.ora 192.168.8.223:$ORACLE_HOME/dbs/
传输好后,将控制文件放到初始化参数中设置的目录即可

--为备库standby创建密码文件:
[oracle@dg ~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle force=y ignorecase=y entries

--修改备库初始化参数文件(主库初始化参数文件为initorcl.ora需修改成initdg.ora),
将初始化文件中添加如下内容(主库中类似的内容删除或进行修改):
DB_UNIQUE_NAME=dg
LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(orcl,dg)‘
LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/archive/dg VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg‘
LOG_ARCHIVE_DEST_2=‘SERVICE=orcl ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl‘
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
DB_FILE_NAME_CONVERT=‘/u01/oracle/oradata/orcl/‘,‘/u01/oracle/oradata/dg/‘
LOG_FILE_NAME_CONVERT=‘/u01/archive/orcl‘,‘/u01/archive/dg‘
STANDBY_FILE_MANAGEMENT=AUTO

--通过pfile创建spfile文件
[oracle@dg ~]$ sqlplus / as sysdba
SQL> create spfile from pfile;

--启动物理备库standby
SQL> startup nomount
SQL> alter database mount standby database;

--备库standby做rman恢复
[oracle@dg ~]$ rman target /
RMAN> restore database;

配置主备库文件(备库没有可以从主库scp过来进行修改),下面仅贴出主备库相关文件内容

--主库Primary的listener.ora
# listener.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /u01/oracle

--备库standby的listener.ora
# listener.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = dg)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /u01/oracle

--主库Primary的tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

DG =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.223)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dg)
    )
  )

--备库standby的tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

DG =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dg)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dg)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.205)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

--完成后重启listener
lsnrctl stop
lsnrctl start

--tnsping主备库
tnsping orcl
tnsping dg

--tnsping时可能会有linux防火墙限制,禁用防火墙命令
service iptables stop

配置standby redolog(如果数据库是最佳性能模式可以忽略,如果以后变成备库且要转为其它两种模式则要建立)

--主库Primary上建立:
SQL> alter database add standby logfile
     group 4 (‘/u01/oracle/oradata/orcl/stdby_redo04.log‘) size 50m,
     group 5 (‘/u01/oracle/oradata/orcl/stdby_redo05.log‘) size 50m,
     group 6 (‘/u01/oracle/oradata/orcl/stdby_redo06.log‘) size 50m,
     group 7 (‘/u01/oracle/oradata/orcl/stdby_redo07.log‘) size 50m;

--备库standby上建立
SQL> alter database add standby logfile
     group 4 (‘/u01/oracle/oradata/dg/stdby_redo04.log‘) size 50m,
     group 5 (‘/u01/oracle/oradata/dg/stdby_redo05.log‘) size 50m,
     group 6 (‘/u01/oracle/oradata/dg/stdby_redo06.log‘) size 50m,
     group 7 (‘/u01/oracle/oradata/dg/stdby_redo07.log‘) size 50m;
--在备库standby上启动redo apply
SQL> alter database recover managed standby database disconnect from session;

到此物理standby创建完毕!

一些常用命令(整理中)

select switchover_status from v$database;

startup nomount
alter database mount standby database;
alter database recover managed standby database disconnect from session;

--从正在恢复状态只读打开
alter database recover managed standby database cancel;
alter database open read only;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 18:58:27

Oracle 11g R2之Dataguard搭建物理standby的相关文章

ORACLE 11G 之DATAGUARD搭建物理standby

1 安装环境 在Primary库上安装数据库软件,并建监听和实例,在Standby库上安装数据库软件,并建监听,但不建实例. Primary库 Standby库 操作系统 CentOS release 6.4 64位 CentOS release 6.4 64位 IP/主机名 192.183.3.17/nn 192.183.3.145/kk 数据库软件版本 oracle 11.2.0.1.0 oracle 11.2.0.1.0 ORACLE_HOME /home/oracle/product /

Oracle 11G R2利用RMAN搭建DataGuard环境

环境: 角色 机器名 操作系统 IP 备注 主库 db1 CentOS 5.11 x86_64 192.168.2.241 安装Oracle,创建数据库 备库 db2 CentOS 5.11 x86_64 192.168.2.242 只安装Oracle 准备工作: 在db1的/etc/hosts里增加 127.0.0.1       db1 192.168.2.242    db2 在db2的/etc/hosts里增加 127.0.0.1       db2 192.168.2.241    d

CentOS 5.11下Oracle 11G R2 Dataguard搭建

Datagard算是Oracle企业版的一种容灾方案,在企业中广泛应用,我就将搭建过程记录下来以作备用. 主机名    数据库版本    实例名    IP db1    Oracle 11G R2    member    172.16.1.250 db2    Oracle 11G R2    member    172.16.1.251 默认情况下以上都已经安装好了Oracle数据库,但是只在db1上建立了数据库和监听,db2只安装Oracle软件不建库,不建监听. 目录: 打开强制归档日

ORACLE 11G 之DATAGUARD搭建逻辑standby

Oracle Data Guard逻辑备库是利用主库的一个备份首先建立一个物理备库,然后再将其转换为逻辑备库.这之后主库将日志传递到备库,备库利用logminer从主库的日志中解析出主库所执行过的SQL,在备库上重新执行一遍,从而保证与主库的数据在逻辑上保持一致.与物理备库相对应的是,物理备库使用的是redo apply,逻辑备库使用的是sql apply.因此逻辑备库仅仅保证数据与主库是在逻辑上是一致的,从而逻辑备库可以处于open状态下并进行相应的DML操作. 在转换physical备库到l

RedHat 6.4 Enterprise x64环境下使用RHCS部署Oracle 11g R2双机HA

环境 软硬件环境 硬件环境: 浪潮英信服务器NF570M3两台,华为OceanStor 18500存储一台,以太网交换机两台,光纤交换机两台. 软件环境: 操作系统:Redhat Enterprise Linux 6.7 x64 集群环境:RHCS 数据库:Oracle 11g R2 多路径软件:UltraPath for Linux 存储划分 类型 卷 大小 挂载点 用途 备注 内置硬盘 标准 500MB /boot 启动分区 两块内置硬盘作RAID1 LVM 20GB /home 用户分区

Oracle 11g R2 备份与恢复

Oracle 11g R2 Rman备份 1. 备份与恢复的定义及分类 备份的定义及分类: 备份就是把数据库复制到转储设备的过程.其中,转储设备是指用于放置数据库副本的磁带或磁盘.通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储.备份是一份数据副本,从不同的角度分类如下: 从物理与逻辑的角度来分类: 从物理与逻辑的,备份可以分为物理备份和逻辑备份. 物理备份:对数据库操作系统的物理文件(数据文件,控制文件和日志文件)的备份.物理备份又可以分为脱机备份(冷备份)和联机备份(热备份),

Oracle 10g R2升级到Oracle 11g R2

Oracle 10g R2升级到Oracle 11g R2 系统环境: 操作系统:RedHat EL55 Oracle 软件: Oracle 10g R2.Oracle 11g R2 Oracle 升级线路 本案例是从Oracle 10.2.0.4.0升级到Oracle 11.2.0.1.0 参考文档: Oracle patch CPU Update: http://tiany.blog.51cto.com/513694/846066 Oracle 10g 升级(10.2.0.1.0升级到10.

ORACLE 11g R2数据库安装硬件环境要求

物理内存要求:最小1G,在windows7,windows8,windows8.1上最小2G. 虚拟内存(或分页空间)容量要求: Available RAM Swap Space Required Between 2GB and 16GB Equal to the size of RAM More than 16 GB 16GB 数据库软件硬盘空间要求: Installation Type Requirement for software files TEMP Space 500MB C:\Pr

Oracle 11g R2 体系结构

 Oracle 11g R2体系结构 安装oracle软件----创建数据库----在数据库中创建表----表里存储信息---这些表文件需要存储在物理硬盘上面. 假如有一个用户(这个用户可以是远程用户,也可以是本地的,也可以是一个应用程序)连接到oracle数据库上面,用户是不能直接连接在硬盘上存储的数据文件,所以在oracle中要运行一个实例,实例并不是保存在硬盘上面的,实例是内存的一部分,而库和表文件是存放在硬盘上面的,用户不能直接访问库里面的数据,只能访问实例,实例是一个特殊的内存块,只有