频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Data Guard学习之物理standby创建步骤

来源:pcdog 作者:佚名 出处:巧巧读书 2008-02-26 进入讨论组
引用:http://www.qqread.com/oracle/2008/02/q398481.html
物理standby创建示例
    为了最大的降低硬件需求,此处创建的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=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 毫秒)

二、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) B_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呢?接着往下看~~~~~~~~~
进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章