Oracle dataGuard专题:利用冷备创建standby
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= &
- 发表评论
-
- 最新评论 更多>>