ITPub博客

首页 > 数据库 > Oracle > Oracle Data Guard:物理Standby配置(参考文档)

Oracle Data Guard:物理Standby配置(参考文档)

原创 Oracle 作者:xing2999 时间:2011-11-20 23:40:13 0 删除 编辑

/*---------------

Author : lonion

Reference : Here.

Date : 2011-10-30

Data Guard的物理备库的配置将以此文档为参考文档

-----------------------------------------------*/


Oracle 10g - Manually Create a Physical Standby Database Using Data Guard


操作系统:
Red Hat Enterprise Linux 5

Data Guard数据保护模式:最高性能(默认)


配置Data Guard环境:


主库

● IP:192.168.1.100

● 数据库SID:lonion

● DB_NAME:lonion

● DB_UNIQUE_NAME:PRIM

● 数据库软件安装路径:/u01/app/oracle/product/10.2.0/db_1/


备库

● IP:192.168.1.105

● 数据库SID:STAN

● DB_NAME:lonion

● DB_UNIQUE_NAME:STAN

● 数据库软件安装路径:/u01/app/oracle/product/10.2.0/db_1/

● 数据文件路径:/u01/app/oracle/oradata/STAN/DATAFILE

● 本地归档路径:/u01/app/oracle/oradata/STAN/ARCHIVELOG

● Debug日志输出路径:/u01/app/oracle/oradata/STAN


PS:将主库上冷备份的数据文件、创建的备库控制文件和初始化参数文件复制到备库

[@more@]


(一)、主库上的环境配置


1、启用归档模式

SQL>startup mount;

SQL>alter database archivelog;

SQL>alter database open;

SQL>archive log list;


2、在主库上启用FORCE LOGGING

SQL> ALTER DATABASE FORCE LOGGING;


3、创建密码文件,使用orapwd命令创建。

[oracle@lonion ~]$ orapwd

file='/u01/app/oracle/product/10.2.0/db_1/orapwlonion.ora' password=oracle entries=15 force=yes


4、配置Standby Redo log

1)Standby Redo log文件的大小应与当前主库的联机日志文件一样。查询当前主库的联机日志文件的大小:

SQL> SELECT BYTES FROM V$LOG;

BYTES

----------

52428800

52428800

52428800


2)使用下面的命令确定当前主库的日志文件组:

SQL> SELECT GROUP#,MEMBER FROM V$LOGFILE ;


3)创建Standby Redo log组

假设当前主库上最初有3个日志文件组,使用下面的命令创建3个Standby Redo log组:

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4

('/u01/app/oracle/oradata/lonion/standby01.log') SIZE 50M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5

('/u01/app/oracle/oradata/lonion/standby02.log') SIZE 50M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6

('/u01/app/oracle/oradata/lonion/standby03.log') SIZE 50M;


4)验证创建的Standby Redo log组:

SQL> SELECT * FROM V$STANDBY_LOG;


5、设置主库的初始化参数

1)先从spfile文件生成pfile文件

SQL>CREATE PFILE='$ORACLE_HOME/dbs/pfilePRIM.ora' from spfile ;


2)编辑pfilePRIM.ora文件

*.DB_NAME='lonion'

*.DB_UNIQUE_NAME=PRIM

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIM,STAN)'

*.LOG_ARCHIVE_DEST_2='SERVICE=STAN LGWR ASYNC

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STAN'

*.LOG_ARCHIVE_DEST_STATE_2=DEFER

*.REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE'

#下面增加的参数是为适应角色切换后的新角色而进行的配置(即当主库切换为备库时)

*.FAL_SERVER=STAN

*.FAL_CLIENT=PRIM

*.DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/STAN/DATAFILE','/u01/app/oracle/oradata/lonion'

*.LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/STAN/ONLINELOG','/u01/app/oracle/oradata/lonion'

*.STANDBY_FILE_MANAGEMENT=AUTO


6、从pfile创建spfile文件,并且使用新的spfile重新启动主库

Data Guard必须使用SPFILE

1)创建SPFILE并重启数据库。

SQL> startup nomount pfile='$ORACLE_HOME/dbs/pfilePRIM.ora';

SQL>create spfile from pfile='$ORACLE_HOME/dbs/pfilePRIM.ora';

SQL>shutdown immediate;

SQL>startup;


2)查看spfile参数值,看是否是以新创建的spfilePRIM.ora文件启动数据库

SQL> show parameter spfile ;


7、备份数据文件和临时文件,此处采用冷备份。


8、启动mount状态,创建备库的控制文件。

SQL>startup mount;

SQL>alter database create standby controlfile as 'STAN.ctl';



(二)、备库上的环境配置


1、oracle用户创建控制文件、数据文件、联机日志文件、归档日志文件和转储(dump)文件的存放目录

[oracle@lonion ~]$ mkdir /u01/app/oracle/oradata/STAN/CONTROLFILES

[oracle@lonion ~]$ mkdir /u01/app/oracle/oradata/STAN/DATAFILE

[oracle@lonion ~]$ mkdir /u01/app/oracle/oradata/STAN/ONLINELOG

[oracle@lonion ~]$ mkdir /u01/app/oracle/oradata/STAN/ARCHIVELOG

[oracle@lonion ~]$ mkdir /u01/app/oracle/oradata/STAN/adump

[oracle@lonion ~]$ mkdir /u01/app/oracle/oradata/STAN/bdump

[oracle@lonion ~]$ mkdir /u01/app/oracle/oradata/STAN/cdump

[oracle@lonion ~]$ mkdir /u01/app/oracle/oradata/STAN/udump


2、将主库上数据文件的备份复制到备库服务器上

1)用oracle用户创建数据文件的存放目录

[oracle@lonion ~]$ mkdir /u01/app/oracle/oradata/STAN/DATAFILE


2)将主库上备份的数据文件和临时文件复制到/u01/app/oracle/oradata/STAN/DATAFILE目录下


3)检查oracle用户用户对复制过来的数据文件和临时文件是否有读写权限,如下红色字体:

[root@lonion DATAFILE]# ll

-rw-r--r-- 1 oracle oinstall 251666432 10-29 09:12 sysaux01.dbf

-rw-r--r-- 1 oracle oinstall 503324672 10-29 09:12 system01.dbf

-rw-r--r-- 1 oracle oinstall 20979712 10-27 22:05 temp01.dbf

-rw-r--r-- 1 oracle oinstall 26222592 10-29 09:12 undotbs01.dbf

-rw-r--r-- 1 oracle oinstall 5251072 10-29 09:12 users01.dbf

如果不是跟上述红色字体一样的则要进行修改,用root用户如下修改:

[root@lonion DATAFILE]# chown -R oracle:oinstall

/u01/app/oracle/oradata/STAN/DATAFILE

注:由此引述出,所有从主库上复制过来的文件都要对oracle用户的读写权限进行检查,避免不必要的错误的发生。


3、复制主库联机日志文件到备库的/u01/app/oracle/oradata/STAN/ONLINELOG目录

提示:也可以不复制由备库自行生成


4、将主库上创建的备库的控制文件STAN.ctl文件复制到到备库的/u01/app/oracle/oradata/STAN/CONTROLFILES

1)重命名控制文件为controlSTAN01.ctl

[oracle@lonion ~] mv /u01/app/oracle/oradata/STAN/CONTROLFILES/STAN.ctl /u01/app/oracle/oradata/STAN/CONTROLFILES/controlSTAN01.ctl


2)再创建2份控制文件,防止控制文件损坏的情况

[oracle@lonion~]cp 01/app/oracle/oradata/STAN/CONTROLFILES/controlSTAN01.ctl

/u01/app/oracle/oradata/STAN/CONTROLFILES/controlSTAN02.ctl

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24389441/viewspace-1056427/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 2011年11月
请登录后发表评论 登录
全部评论

注册时间:2010-09-29

  • 博文量
    42
  • 访问量
    148197