9i下创建standby database 步骤

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

最近,对oracle 9i下的data guard进行了测试,发现9i作standby时更方便了

先整理出来,如下:

操作环境:Windows 2000 Professional + Serveice pack 4

数据库:Oracle 9201

主库SID:pormals

从库SID:pormals

oracle安装采用OMF结构

1.主从两机的操作系统和相同pack

2.在主从库上建立数据库,选择只安装Software

3.在主库上,通过dbca建立数据库,除了字符集选择 zhs16gbk外,全部使用缺省方式

4.在从库上,手工创建和主库相同目录

5.关闭主库数据库,备份数据文件到从库

确定需要copy过去的数据文件以及redo log

sqlplus /nolog

SQL> conn / as sysdba;

SQL> select file_name from dba_data_files;

确定所要copy数据文件

SQL> select member from v$logfile;

确定所要copy联机日至文件

SQL> shutdown immediate;

copy 上面选出的所有文件到从库上相应的目录.

6.打开主库数据库,修改为归档方式(oracle9i用户操作)

手工创建归档目录C:\Oracle\Arch

sqlplus /nolog

SQL> conn / as sysdba;

Connected.

SQL> startup mount;

SQL> alter database archivelog;

SQL> archive log start;

SQL> archive log list;

SQL> alter database open;

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=C:\Oracle\Arch';

SQL> alter system set log_archive_format='%t_%s.dbf' scope=spfile;

SQL> alter system set log_archive_start=true scope=spfile;

重新启动数据库,使修改结果生效

SQL> shutdown immediate;

察看归档模式

SQL> startup

SQL> archive log list;

7.在主库上制作从库control file

sqlplus /nolog

SQL> conn / as sysdba;

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'C:\Oracle\control01.ctl';

copy主库C:\oracle\control01.ctl 到从库 C:\oracle\oradata\poramals\目录下

8.配置主库listener.ora和tnsnames.ora文件

可以用net manager配置或者直接编辑c:\oracle\ora92\network\admin\listener.ora和tnsname.ora文件

也即正常为主库配置侦听和连接到主库(primary)、主库到从库(standby)的网络服务名

9.配置从库listener.ora和tnsnames.ora文件

可以用net manager配置或者直接编辑c:\oracle\ora92\network\admin\listener.ora和tnsname.ora文件

也即正常为从库配置侦听和连接到从库到主库(primary)、直接到从库(standby)的网络服务名

10.启动主从库的listener

分别在主从库上执行如下命令

lsnrctl start

看主从库listener是否正常启动

11 检查主从库tnsnames.ora配置

主库 tnsping standby

从库 tnsping primary

看分别到主从库的服务名是否配置正确

12.在主库上创建pfile,因为9i缺省使用spfile

sqlplus /nolog

SQL> conn / as sysdba;

Connected.

SQL> create pfile='C:\oracle\ora92\database\initporamls.ora' from spfile;

13.copy 刚才创建的C:\oracle\ora92\database.ora\initpormals.ora 到从库相应目录

14.修改从库刚才copy的initpormals.ora文件

主要修改添加:

修改CONTROL_FILES使它符合你的控制文件的实际路径

添加:

STANDBY_ARCHIVE_DEST=’location=c:\oracle\Starch’

FAL_SERVER=’PRIMARY’

FAL_CLIENT=’STANDBY’

standby_file_management=’AUTO’

其中standby_file_management不是必须要,但是为了后面主库添加文件,从库能自动处理,加上这个参数,避免麻烦。

同时收工建立从库的相关归档日志路径C:\oracle\Starch。

15.copy 主库的C:\oracle\ora92\database\pwdpormals.ora到从库相应目录

16.创建从库实例名 dos>oradim -new -sid pormals

17.启动从库

sqlplus /nolog

SQL> startup nomount;

SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

将从库置为standby模式

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

18.在主库上设置到从库的归档

SQL> alter system set log_archive_dest_2='SERVICE=standby MANDATORY REOPEN=60';

SQL> select *from v$log;

切换当前联机日志

SQL> alter system switch logfile;

SQL> select *from v$log;

察看从库后台日志

C:\oracle\admin\pormals\bdump\pormals_arler.

看当前归档日志是否已经正常完成恢复

至此data guard配置完成。

19.测试一下

在主库上

SQL> create user test identified by 密码;

SQL> grant connect ,resource to test ;

SQL> conn test/密码@primary;

SQL> create table test(name varchar2(20));

SQL> insert into test values('hi,data guard');

SQL> commit;

SQL> conn / as sysdba

SQL> alter system switch logfile;

察看从库日志

C:\oracle\admin\poramls\bdump\pormals_alert.ora

看当前归档日志是否已经正常完成恢复

已只读方式打开从库察看是否insert into test values('hi,data guard');已经生效。

在从库上

SQL> conn / as sysdba;

SQL> alter database recover managed standby database cancel;

SQL> alter database open read only;

SQL> conn test/密码

SQL> select * from test;

察看是否insert into test values('hi,data guard');已经生效。

如果生效说明已经完全正常工作,data guard到此完全配置完毕。

再次置从库在恢复模式

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE disconnect from session;

注:

1、关于启动关闭顺序

启动的时候,先从库的listener,然后启动从库,然后启动主库的listener 接着是主库 关闭的时候正好相反,先关闭主库,然后是从库。

2、一些常用的view

V$ARCHIVE_DEST_STATUS 这里面会纪录到standby 的状态和恢复到那个日志

V$ARCHIVE_GAP 这里面会纪录当前从库mrp进程恢复需要的胆识还没有传到从库得日志

V$ARCHIVED_LOG 这里面会纪录所有已经归档到从库的日志,并且记录该日志是否已经恢复

V$DATABASE 会纪录系统的保护状态和是否处于force logging状态

V$MANAGED_STANDBY (Physical Standby Databases Only) 会纪录当前从库的一些进程情况和进程的process id,如rfs,mrp等

V$STANDBY_LOG (Physical Standby Databases Only) 会纪录当前从库的standby redo log的一些情况。

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