Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  302 随笔 :: 26 文章 :: 82 评论 :: 0 Trackbacks
本文作者: junsansi     转载网址: http://www.5ienet.com/index.shtml
 
 
第二部分物理standby(2)创建示例  2007.12.06
 
    为了最大的降低硬件需求,此处创建的data guard 处于同一台机器,但其创建过程与多机并无区别。做为演示用的示例足够了,我们分两阶段配置,分别是配置primary 数据库和配置standby 数据库,如下:
 
 
一、Primary数据库配置及相关操作
 
1、确认主库处于归档模式

 

    SQL> archive log list;
    数据库日志模式     存档模式
    自动存档           启用
    存档终点           E:\ora10g\oradata\jssweb
    最早的联机日志序列  148
    下一个存档日志序列  150
    当前日志序列       150


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 个文件。


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

    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=jsspdg
    FAL_CLIENT=jssweb
    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 毫秒)

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

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 呢?接着往下看~~~~~~~~~




-The End-

posted on 2009-02-20 22:52 decode360-3 阅读(204) 评论(0)  编辑  收藏 所属分类: DBA

只有注册用户登录后才能发表评论。


网站导航: