单机上配置9istandby

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

成功完成9i

standby配置(参考fenng的大作后补充修正版本)

环境:windows 2000+oracle 9.2.0.4;主库名为test,备库名为pstandby

1、首先确认Primary数据库是否在归档模式下,如果不是请自己调整,这里略过。

SQL; archive log list

数据库日志模式

存档模式

自动存档

启用

存档终点

D:\oracle\oradata\test\Archive

最早的概要日志序列

45

下一个存档日志序列

47

当前日志序列

47

2、激活Primary Database的Forced Logging

SQL; ALTER DATABASE FORCE LOGGING;

3、设置Primary Database的本地归档地址,如果已经设置过无须重复;

SQL; ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=D:\oracle\oradata\test\Archive' SCOPE=BOTH;

4、关闭primary database,复制主数据库的数据文件(可以不包括在线日志和临时文件)到备用库的对应位置,本例为D:\oracle\oradata\pstandby(该目的目录需要提前建立,类似需要提前建立的目录还有d:\oracle\admin\pstandby\下的pfile目录)

5、使primary database处于mount状态时,为Standby 数据库创建控制文件(注意这个控制文件的名字不要和Primary的控制文件名字重复 )

SQL; ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'D:\oracle\oradata\pstandby\PSTANDBY.CTL';

6、为Standby数据库准备初始化参数文件名字

SQL; CREATE PFILE='d:\oracle\admin\pstandby\pfile\initpstandby' FROM SPFILE;

7、修改Physical Standby Database和Primary Database的初始化参数文件(该步骤特别重要)

备库initpstandby.ora 一些可能出现错误的参数设置

*****************************************************************

*.control_files='D:\oracle\oradata\pstandby\PSTANDBY.CTL'

*.db_name='test'

*.instance_name='pstandby'

*.log_archive_dest_1='LOCATION=D:\oracle\oradata\pstandby\archive'

*.lock_name_space='pstandby'

*.standby_file_management=AUTO

*.remote_archive_enable=TRUE

*.standby_archive_dest='D:\oracle\oradata\pstandby\archive'

*.db_file_name_convert=('D:\oracle\oradata\test','D:\oracle\oradata\pstandby')

*.log_file_name_convert=('D:\oracle\oradata\test','D:\oracle\oradata\pstandby')

*.fal_server='PRIMARY'

*.fal_client='STANDBY'

*************************************************************************

主库inittest.ora

一些可能出现错误的参数设置

*************************************************************************

*.db_name='test'

*.instance_name='test'

*.log_archive_dest_1='LOCATION=D:\oracle\oradata\test\archive'

*.db_file_name_convert=('D:\oracle\oradata\test','D:\oracle\oradata\pstandby')

*.log_file_name_convert=('D:\oracle\oradata\test','D:\oracle\oradata\pstandby')

*.fal_server='PRIMARY'

*.fal_client='STANDBY'

*.lock_name_space='test'

*.standby_file_management=AUTO

*.remote_archive_enable=TRUE

***********************************************************************

8、为Standby Database创建一个Windows服务,并且在tnsnames.ora下增加网络服务

C:\Documents and Settings\Administrator;oradim -NEW -SID Pstandby -STARTMODE manual

tnsnames.ora文件

************************************************************************

TEST =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = test)

)

)

PSTANDBY =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = test) --此处不能为pstandby

)

)

****************************************************************************

9、为Standby Database重新生成一个新的SPFILE

可参考执行如下操作:

C:\Documents and Settings\Administrator;set oracle_sid=pstandby

C:\Documents and Settings\Administrator;sqlplus /nolog

SQL; connect / as sysdba

SQL; CREATE SPFILE FROM PFILE='d:\oracle\admin\pstandby\pfile\initpstandby';

10、启动物理Standby数据库

C:\Documents and Settings\Administrator;set oracle_sid=pstandby

C:\Documents and Settings\Administrator;sqlplus /nolog

SQL; connect / as sysdba

SQL; STARTUP NOMOUNT;

SQL; ALTER DATABASE MOUNT STANDBY DATABASE;

SQL; ALTER DATABASE OPEN READ ONLY; (standby数据库只能用read only的模式打开)

此处如果错误:

ERROR at line 1:

ORA-01154: database busy. Open, close, mount, and dismount not allowed now

请执行备用库的不完全恢复

SQL; recover managed standby database cancel;

Media recovery complete.

SQL; alter database open read only;

Database altered.

11、在Standby数据库上,初始化Log Apply 服务:

SQL; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;(后台会话,相当于nohup(&),即使网络断开也不会中断而且可以立即返回到用户执行其他操作,但他仍然是守护的影子进程等待主数据库传送的日志一旦发现就自动恢复)

12、在Primary database上激活到standby的日志归档

SQL; ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=Pstandby' SCOPE=BOTH;

SQL; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;

13、在Primary database启动远程归档

SQL; ALTER SYSTEM ARCHIVE LOG CURRENT;

14、安装完的的验证:

在standby database下,

查询V$ARCHIVED_LOG

(其实也可以直接到相关目录下查看Log是否创建):

SQL; SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME

FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# FIRST_TIME NEXT_TIME

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

14 12-9?

-05 12-9?

-05

15 12-9?

-05 12-9?

-05

16 12-9?

-05 12-9?

-05

17 12-9?

-05 12-9?

-05

18 12-9?

-05 12-9?

-05

19 12-9?

-05 12-9?

-05

20 12-9?

-05 12-9?

-05

21 12-9?

-05 12-9?

-05

....

如果在配置过程中,发现无法传送归档日志,并且在alter.log中有错误ORA-12154: TNS: 无法处理服务名

请查看tnsnames.ora文件配置,不要忘记启动lsnrctl。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有