Oracle dataGuard专题:利用冷备创建standby

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 13:30 点击:

dataGuard是oracle提供的一种数据库级别的HA方案,最主要功能是冗灾、数据保护、故障恢复等。当然根据配置的不同,DATA GUARD还可以具备以下特点:高可用、性能提升、数据保护以及故障恢复等。
DATA GUARD可以分为物理STANDBY和逻辑STANDBY两种。二者的最大差别在于,物理STANDBY应用的是主库的归档日志,而逻辑STANDBY应用的是主库的归档日志中提取的SQL语句。由于二者这一点的区别,决定了物理STANDBY无论从逻辑结构和物理结构都是和主库保持一致,而逻辑STANDBY则只需保证逻辑结构一致,且逻辑STANDBY在应用SQL语句的时候,数据库可以处于打开的状态。

 如果从DATA GUARD的保护模式分,可以分为三种不同的保护模式:
最大性能(maximize performance):这是data guard默认的保护模式。primay上的事务commit前不需要从standby上收到反馈信息,该模式在primary故障时可能丢失数据,但standby对primary的性能影响最小。
最大可用(maximize availability):在正常情况下,最大可用模式和最大保护模式一样;在standby不可用时,最大可用模式会自动降低成最大性能模式,所以standby故障不会导致primay不可用。只要至少有一个standby可用的情况下,即使primary down机,也能保证不丢失数据。
最大保护(maximize protection):最高级别的保护模式。primay上的事务在commit前必须确认redo已经传递到至少一个standby上,如果所有standby不可用,则primary会挂起。该模式能保证零数据丢失。

下面就通过实例演示下如何利用冷备创建standby database。

一、演示环境说明
primary server:
CentOS Linux4.4 + oracle 10.2.0.1
ORACLE_SID:orcl
主库ip:192.168.60.144
ORACLE_HOME: /free/oracle/product/10.2.0/db_1/
standby server:
SUSE Linux9 + oracle 10.2.0.1
ORACLE_SID:orcl
备库ip:192.168.60.253
ORACLE_HOME: /free/oracle/product/10.2.0/db_1/

二、配置步骤
首先,装好primary和standby上的oracle,建SID同为orcl的库,所有设置完全相同。然后停止shutdown两台上的oracle,将primary上的所有数据文件,控制文件,redo文件和password文件都copy到standby机器的相应位置。这样,我们就拥有了两台完全一样的oracle server。

1. 在primary database上设置force logging
SQL>alter database force logging;
2. 修改primary databse的初始化参数,主要增加参数如下:
*.control_files='/free/oracle/oradata/orcl/control01.ctl','/free/oracle/oradata/orcl/control02.ctl','/free/oracle/oradata/orcl/control03.ctl'
*.service_names=’primary’  #这个参数指定了主库的service name
*.log_archive_config='DG_CONFIG=(PRIMAYR,STANDBY)'
*.DB_UNIQUE_NAME='PRIMARY'
*.LOG_ARCHIVE_DEST_1= 'LOCATION=/free/oracle/orabak'
*.LOG_ARCHIVE_DEST_2= 'SERVICE=STANDBY VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STANDBY LGWR SYNC AFFIRM'  #如果不指定REOPEN,默认为300
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.LOG_ARCHIVE_FORMAT='arc%s%t%r.arc'
*.FAL_SERVER=' STANDBY '
*.FAL_CLIENT=' PRIMARY '
*.STANDBY_FILE_MANAGEMENT='AUTO'
*.standby_archive_dest='/free/oracle/orabak'

LOCK_NAME_SPACE
---这是参数当主数据库和备用数据在同一台机上时要设该参数,设为备用数据库的SID

3. 设置primary database为archivelog模式
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
4. 在primary database上创建standby database的控制文件
SQL>shutdown immedaite;
SQL>startup mount;   
SQL>alter database create standby controlfile as ‘/free/oracle/oradata/orcl/controlstandby.ctl’
SQL>alter database open;
然后将该controlfile复制到standby server的对应位置。

5. 修改standby databse的初始化参数
*.service_names=’standby’ #这个参数指定了备库的service name
*.control_files='/free/oracle/oradata/orcl/controlstandby.ctl'
*.log_archive_config='DG_CONFIG=(PRIMARY,STANDBY)'
*.LOG_ARCHIVE_DEST_1= 'LOCATION=/free/oracle/orabak VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STANDBY'
*.LOG_ARCHIVE_DEST_2= &

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Table函数使用简介
    • Oracle数据库Constraint约束的常用操作及异常处理
    • Bulk Collect性能分析(zz)
    • export/import的使用
    • OCP043第十五讲 Database Security
    • ORACLE10gr2数据导入MySQL方案
    • oracle 让sys用户可以使用isqlplus
    • 在oracle数据库下使用iSQL*Plus DBA访问数据库
    • Oracle行列转换小结
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1