快捷搜索:

如何在Oracle 10g下创建standby database

在Oracle 10g刚出来不久,就对oracle 10g 下的data guard进行了测试,发明10g作standby时更方便了。

先收拾出来,如下:

操作情况:Windows 2000 Professional + Serveice pack 4

数据库:Oracle 10g

主库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.打开主库数据库,改动为归档要领(oracle10g用户操作)

手工创建归档目录C:OracleArch

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:OracleArch';

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:Oraclecontrol01.ctl';

copy主库C:oraclecontrol01.ctl 到从库 C:oracleoradataporamals目录下

8.设置设置设备摆设摆设主库listener.ora和tnsnames.ora文件

可以用net manager设置设置设备摆设摆设或者直接编辑c:oracleora92

etworkadminlistener.ora和tnsname.ora文件

也即正常为主库设置设置设备摆设摆设侦听和连接到主库(primary)、主库到从库(standby)的收集办事名

9.设置设置设备摆设摆设从库listener.ora和tnsnames.ora文件

可以用net manager设置设置设备摆设摆设或者直接编辑c:oracleora92

etworkadminlistener.ora和tnsname.ora文件

也即正常为从库设置设置设备摆设摆设侦听和连接到从库到主库(primary)、直接到从库(standby)的收集办事名

10.启动主从库的listener

分手在主从库上履行如下敕令

lsnrctl start

看主从库listener是否正常启动

11 反省主从库tnsnames.ora设置设置设备摆设摆设

主库 tnsping standby

从库 tnsping primary

看分手到主从库的办事名是否设置设置设备摆设摆设精确

12.在主库上创建pfile,由于10g缺省应用spfile

sqlplus /nolog

SQL> conn / as sysdba;

Connected.

SQL> create pfile='C:oracleora92databaseinitporamls.ora' from spfile;

13.copy 刚才创建的C:oracleora92database.orainitpormals.ora 到从库响应目录

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

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

SQL> commit;

SQL> conn / as sysdba

SQL> alter system switch logfile;

不雅察从库日志

C:oracleadminporamlsdumppormals_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的一些环境。

您可能还会对下面的文章感兴趣: