[转]一步一步学DataGuard 第二部分 物理standby(2)创建示例

  为了最大的降低硬件需求,此处创建的data guard处于同一台机器,但其创建过程与多机并无区别。做为演示用的示例足够了,我们分两阶段配置,分别是配置primary数据库和配置standby数据库,如下:

一、 Primary 数据库配置及相关操作

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

SQL> archive log list;

数据库日志模式            存档模式

自动存档             启用

存档终点            E:\ora10g\oradata\jssweb

最早的联机日志序列     148

下一个存档日志序列   150

当前日志序列           150

SQL>

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

SQL> alter database force logging;

数据库已更改。

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

SQL> alter database create standby controlfile as ¨d:\backup\jsspdg01.ctl¨;

数据库已更改。

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

  注:主要此处修改项较多,为了方便,我们首先创建并修改pfile,然后再通过pfile重建spfile,你当然也可以通过alter system set命令直接修改spfile内容。

SQL> create pfile   from spfile;

文件已创建。

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

SQL> host copy e:\ora10g\product\10.2.0\db_1\database\initjssweb.ora d:\backup\initjsspdg.ora

已复制         1 个文件。

SQL>

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

DB_UNIQUE_NAME=jssweb

LOG_ARCHIVE_CONFIG=¨DG_CONFIG=(jssweb,jsspdg)¨

LOG_ARCHIVE_DEST_1=¨LOCATION=E:\ora10g\oradata\jssweb\ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jssweb¨

LOG_ARCHIVE_DEST_2=¨SERVICE=jsspdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jsspdg¨

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

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

FAL_SERVER=jss pdg

FAL_CLIENT=jss web

DB_FILE_NAME_CONVERT=¨oradata\jsspdg¨,¨oradata\jssweb¨

LOG_FILE_NAME_CONVERT=¨oradata\jsspdg¨,¨ oradata \jssweb¨

STANDBY_FILE_MANAGEMENT=AUTO

  通过pfile重建spfile

SQL> shutdown immediate

...

SQL> create spfile from pfile=¨initjssweb.ora¨;

文件已创建。

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

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

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

  完之后重启listener:

E:\ora10g>lsnrctl stop

E:\ora10g>lsnrctl start

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

E:\ora10g>tnsping jssweb

...

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = jss)(PORT = 1521)) (CONNECT_

DATA = (SERVER = DEDICATED) (SERVICE_NAME = jssweb)))

OK (30  毫秒)

E:\ora10g>tnsping jsspdg

...

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = jss)(PORT = 1521)) (CONNECT_

DATA = (SERVER = DEDICATED) (SERVICE_NAME = jsspdg)))

OK (10  毫秒)

二、 Standby 数据库配置及相关操作

1、 通过ORADIM创建新的OracleService

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

  • E:\ora10g>orapwd file=e:\ora10g\product\10.2.0\db_1\database\PWDjsspdg.ora password=verysafe entries=30

3、 创建目录

  • E:\ora10g\product\10.2.0\admin\jsspdg>mkdir adump

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

5、 修改初始化参数文件

  增加下列参数:

db_unique_name=jsspdg

LOG_ARCHIVE_CONFIG=¨DG_CONFIG=(jssweb,jsspdg)¨

DB_FILE_NAME_CONVERT=¨oradata\jssweb¨,¨oradata\jsspdg¨

LOG_FILE_NAME_CONVERT=¨oradata\jssweb¨,¨oradata\jsspdg¨

LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc

LOG_ARCHIVE_DEST_1=¨LOCATION=E:\ora10g\oradata\jsspdg\ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jsspdg¨

LOG_ARCHIVE_DEST_STATE_1=ENABLE

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

LOG_ARCHIVE_DEST_2=¨SERVICE=jssweb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  DB_UNIQUE_NAME=jssweb¨

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

FAL_SERVER=jssweb

FAL_CLIENT=jsspdg

STANDBY_FILE_MANAGEMENT=AUTO

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

  通过该pfile创建spfile

SQL> create spfile from pfile=¨D:\backup\initjsspdg.ora¨;

文件已创建。

6、 启动standby到mount

SQL> startup mount;

ORACLE  例程已经启动。

Total System Global Area  167772160 bytes

Fixed Size                  1289484 bytes

Variable Size              62915316 bytes

Database Buffers           96468992 bytes

Redo Buffers                7098368 bytes

数据库装载完毕。

7、 启动redo应用

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

数据库已更改。

8、 查看同步情况

  首先连接到primary数据库

SQL> show parameter instance_name;

NAME                                 TYPE        VALUE

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

instance_name                        string      jssweb

SQL> alter system switch logfile;

系统已更改。

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

MAX(SEQUENCE#)

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

            51

  连接到standby数据库

SQL> show parameter instance_name;

NAME                                 TYPE        VALUE

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

instance_name                        string      jsspdg

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

MAX(SEQUENCE#)

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

            51

9、 暂停应用

  通过下列语句暂停redo应用。

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

数据库已更改。

  注意,此时只是暂时redo应用,并不是停止Standby数据库,standby仍会保持接收只不过不会再应用接收到的归档,直到你再次启动redo应用为止。

  哈哈,成功鸟!现在你是不是想知道怎么把standby变成primary呢?接着往下看~~~~~~~~~

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

转载于:http://blog.itpub.net/266281/viewspace-670737/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值