oracle10g data guard创建物理standby数据库的例子

data guard主备数据库是在不现的机器上

主数据库的db_name=jytest db_unique_name=jytest

备份数据库db_name=jytest db_unique_name=jyrac1

演示用的示例足够了,我们分两阶段配置,分别是配置primary数据库和配置standby数据库,如下:

一、Primary

数据库配置及相关操作

1、确认主库处于归档模式

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/app/oracle/arch/jytest

Oldest online log sequence     124

Next log sequence to archive   126

Current log sequence           126

2、将primary数据库置为FORCE LOGGING模式。通过下列语句:

SQL> alter database force  logging;

数据库已更改。

3、创建standby数据库控制文件

SQL> alter database create standby controlfile as  '/u01/app/oracle/jyrac1_01.ctl';

 

Database altered.

 

4、创建primary数据库客户端初始化参数文件

注:主要此处修改项较多,为了方便,我们首先创建并修改pfile,然后再通过pfile重建spfile,你当

然也可以通过alter system set命令直接修改spfile内容。

SQL> create pfile from spfile;

文件已创建。

将该初始化参数文件复制一份,做为standby数据库的客户端初始化参数文件

SQL> host copy /u01/app/oracle/product/10.2.0/db/dbs/initjytest.ora

/u01/app/oracle/product/10.2.0/db/dbs/initjytest01.ora

已复制1个文件。

修改客户端初始化参数文件,增加下列内容

DB_UNIQUE_NAME='jytest'

 

LOG_ARCHIVE_CONFIG='DG_CONFIG=(jytest,jyrac1)'

 

LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch/jytest VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jytest'

 

LOG_ARCHIVE_DEST_2='SERVICE=jyrac1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jyrac1'

 

LOG_ARCHIVE_DEST_STATE_1='ENABLE'

 

LOG_ARCHIVE_DEST_STATE_2='ENABLE'

 

REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE'

#--------配置standby角色的参数用于角色转换

FAL_CLIENT='jytest'

FAL_SERVER='jyrac1'

DB_FILE_NAME_CONVERT=/u01/app/oracle/oradata/jytest','/u01/app/oracle/oradata/jytest'

在备位置后面指定主数据库文件的路径名和文件名位置。这

个参数将主数据库的数据文件路径名转换成备数据文件路

径名。如果备数据库与主数据库处于同一系统上或如果数据

文件在备站点上的目录结构与主站点不同,则需要这个参

数。注意这个参数只是用于转换物理备数据库的路径名。这

个参数可以指定多对路径。(我这里主备数据库目录路径相同也可以不配置)

LOG_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/jytest',' /u01/app/oracle/oradata/jytest'

在备位置后面指定主数据库联机重做日志文件的位置。这个

参数将主数据库日志文件的路径名转换成备数据库上的路

径名。如果备数据库与主数据库处于同一系统上或如果数据

文件在备站点上的目录结构与主站点不同,则需要这个参

数。这个参数可以指定多对路径(我这里主备数据库目录路径相同也可以不配置)

STANDBY_FILE_MANAGEMENT='AUTO'

通过pfile重建spfile

SQL> shutdown immediate

...

SQL> create spfile from pfile

文件已创建。

5、复制数据文件到standby服务器(方式多样,不详述)

将adump,bdump,cdump,dpdump,pfile,udump目录复制到weblogic29机器上来

[root@weblogic28 ~]# scp -r /u01/app/oracle/admin/* root@10.138.130.29:/u01/app/oracle/admin

root@10.138.130.29's password:

将数据文件,控制文件和重做日志文件复制到weblogic29这台机器上

[root@weblogic28 ~]# scp -r /u01/app/oracle/oradata/* root@10.138.130.29:/u01/app/oracle/oradata

root@10.138.130.29's password:

redo07a.log                                   100%   50MB  25.0MB/s   00:02

hygeia01.dbf                                  100%   20GB  42.9MB/s   07:57

redo04a.log                                   100%   50MB  50.0MB/s   00:01

control02.ctl                                 100% 6896KB   6.7MB/s   00:00

temp01.dbf                                    100% 5120MB  43.4MB/s   01:58

redo06b.log                                   100%   50MB  25.0MB/s   00:02

users01.dbf                                   100% 5128KB   5.0MB/s   00:00

control03.ctl                                 100% 6896KB   6.7MB/s   00:00

redo06a.log                                   100%   50MB  25.0MB/s   00:02

control01.ctl                                 100% 6896KB   6.7MB/s   00:00

redo05a.log                                   100%   50MB  50.0MB/s   00:01

redo07b.log                                   100%   50MB  50.0MB/s   00:01

redo05b.log                                   100%   50MB  50.0MB/s   00:01

sysaux01.dbf                                  100% 5120MB  43.0MB/s   01:59

redo04b.log                                   100%   50MB  50.0MB/s   00:01

redo01.log                                    100%   50MB  50.0MB/s   00:01

redo03.log                                    100%   50MB  25.0MB/s   00:02

redo02.log                                    100%   50MB  50.0MB/s   00:01

system01.dbf                                  100% 5120MB  41.0MB/s   02:05

undotbs01.dbf                                 100% 5120MB  34.1MB/s   02:30

还要将参数文件和口令文件复制过来

[root@weblogic28 ~]# scp -r /u01/app/oracle/product/10.2.0/db/dbs/* root@10.138.130.29:/u01/app/oracle/product/10.2.0/db/dbs

root@10.138.130.29’s password:

alert_jytest.log 100% 435 0.4KB/s 00:00

hc_jytest.dat 100% 1552 1.5KB/s 00:00

initdw.ora 100% 13KB 12.6KB/s 00:00

initjytest.ora 100% 1753 1.7KB/s 00:00

init.ora 100% 8385 8.2KB/s 00:00

lkJYTEST 100% 24 0.0KB/s 00:00

orapwjytest 100% 1536 1.5KB/s 00:00

spfilejytest.ora 100% 4608 4.5KB/s 00:00

注意需要复制所有数据文件,备份的控制文件及客户端初始化参数文件

6、配置listener及net service names(方式多样,不详述)。

分别在主数据库和备份数据库上进行配置

Jytest主数据库(weblogic28)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME =jytest)

(ORACLE_HOME =/u01/app/oracle/product/10.2.0/db)

(SID_NAME =jytest)

)

)

 

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = weblogic28)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

 

Jyrac1备份数据库(weblogic29)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME =jytest)

(ORACLE_HOME =/u01/app/oracle/product/10.2.0/db)

(SID_NAME =jytest)

)

)

 

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = weblogic29)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

 

在tnsnames.ora文件加入主数据库和备份数据库的服务名

jytest =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.138.130.28)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = jytest)

)

)

 

jyrac1 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.138.130.29)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME =jytest)

)

)

完之后重启listener:

[oracle@weblogic28 ~]$ lsnrctl stop

[oracle@weblogic28 ~]$lsnrctl start

通过tnsping测试tnsnames是否正确有效:

C:\Documents and Settings\Administrator>tnsping jyrac1

 

TNS Ping Utility for 32-bit Windows: Version10.2.0.1.0 - Production on 01-12月-

2012 21:29:27

 

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

 

已使用的参数文件:

C:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora

 

 

已使用TNSNAMES适配器来解析别名

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)

(HOST = 10.138.130.29)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME =jytest)))

OK (10毫秒)

 

C:\Documents and Settings\Administrator>tnsping jytest

 

TNS Ping Utility for 32-bit Windows: Version10.2.0.1.0 - Production on 01-12月-

2012 21:31:57

 

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

 

已使用的参数文件:

C:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora

 

 

已使用TNSNAMES适配器来解析别名

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)

(HOST = 10.138.130.28)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME =jytest)))

OK (0毫秒)

 

 

二、Standby

数据库配置及相关操作

1、通过ORADIM创建新的OracleService

2、创建密码文件,注意保持sys密码与primary数据库一致。

[oracle@weblogic29 ~]$orapwd file=/u01/app/oracle/product/10.2.0\db\dba\PWDjytest

.ora password=system entries=30

3、创建目录

[root@weblogic28 ~]# mkdir /u01/app/oracle /admin/jytest/adump

4、复制文件,不做过多描述

5、修改初始化参数文件

增加下列参数

db_unique_name=jyrac1

LOG_ARCHIVE_CONFIG='DG_CONFIG=(jytest,jyrac1)'

 

DB_FILE_NAME_CONVERT=/u01/app/oracle/oradata/jytest','/u01/app/oracle/oradata/jytest'

在备位置后面指定主数据库文件的路径名和文件名位置。这

个参数将主数据库的数据文件路径名转换成备数据文件路

径名。如果备数据库与主数据库处于同一系统上或如果数据

文件在备站点上的目录结构与主站点不同,则需要这个参

数。注意这个参数只是用于转换物理备数据库的路径名。这

个参数可以指定多对路径。(我这里主备数据库目录路径相同也可以不配置)

LOG_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/jytest',' /u01/app/oracle/oradata/jytest'

在备位置后面指定主数据库联机重做日志文件的位置。这个

参数将主数据库日志文件的路径名转换成备数据库上的路

径名。如果备数据库与主数据库处于同一系统上或如果数据

文件在备站点上的目录结构与主站点不同,则需要这个参

数。这个参数可以指定多对路径(我这里主备数据库目录路径相同也可以不配置)

LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch/jyrac1 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jyrac1'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

#—下列参数用于角色切换

LOG_ARCHIVE_DEST_2='SERVICE=jytest LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jytest'

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

FAL_SERVER=jytest

FAL_CLIENT=jyrac1

STANDBY_FILE_MANAGEMENT=AUTO

注意同时修改*_dest的路径。

通过该pfile创建spfile

SQL> create spfile from pfile;

文件已创建。

6、启动standby到mount

SQL> startup mount

ORACLE instance started.

 

Total System Global Area 6442450944 bytes

Fixed Size                  2030368 bytes

Variable Size            1090520288 bytes

Database Buffers         5335154688 bytes

Redo Buffers               14745600 bytes

Database mounted.

7、启动redo应用

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

 

Database altered.

8、查看同步情况

首先连接到primary数据库

SQL> show parameter db_unique

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_unique_name                       string     jytest

 

SQL> alter system switch logfile;

 

System altered

 

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

 

MAX(SEQUENCE#)

--------------

129

 

连接到standby数据库

SQL> show parameter db_unique

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_unique_name                       string      jyrac1

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

 

MAX(SEQUENCE#)

--------------

129

发表评论

电子邮件地址不会被公开。