数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
9i下创建standby database 步骤

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

最近,对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的一些情况。




相关文章

相关软件