网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  配置windows与linux平台的data gurad (1)     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:67次  录入:管理员--2008-05-28  
 

【赛迪网-it技术报道】从oracle 11g数据库开始,oracle支持在特定条件下windows与linux两个不同os平台之间配置data guard,这样data guard再也不受原来需要同样os平台的限制了(具体参考metalink:413484.1):

配置过程示例:

主库:windows 2003 +oracle 11.1.0.6

sid:orcl

数据文件目录:d:\oracle\oradata\orcl\

备用库:rhel 4 u5+oracle 11.1.0.6

sid:standby

数据文件目录:/home/oracle/opt/oradata/standby/

1、验证主库是归档模式,并将主库置于force logging模式:

sql> archive log list

database log mode archive mode

automatic archival enabled

archive destination use_db_recovery_file_dest

oldest online log sequence 229

next log sequence to archive 231

current log sequence 231

sql> alter database force logging;

2、对主库做一个全库的rman备份,用于standby配置:

rman> backup database format 'd:\db_%u.bak';

3、准备standby数据文件路径和其他路径:

[oracle@test51 oradata]$ pwd

/home/oracle/opt/oradata

[oracle@test51 oradata]$ mkdir standby

[oracle@test51 oradata]$ cd standby

[oracle@test51 oradata]$ mkdir archive

[oracle@test51 oradata]$ cd $oracle_base/admin

[oracle@test51 admin]$ mkdir standby

[oracle@test51 oradata]$ cd standby

[oracle@test51 standby]$mkdir adump

[oracle@test51 standby]$mkdir dpdump

[oracle@test51 standby]$mkdir pfile

[oracle@test51 standby]$ ls

adump dpdump pfile

4、生成standby 初始化参数文件:

sql> create pfile='d:/init.ora' from spfile;

添加以下几个standby参数:

*.log_archive_config=’dg_config=(orcl,standby)’

*.fal_client=’standby’

*.fal_server=’primary’

*.db_file_name_convert=’d:\oracle\oradata\orcl\’,'/home/oracle/opt/oradata/standby/’

*.log_file_name_convert=’d:\oracle\oradata\orcl\’,'/home/oracle/opt/oradata/standby/’

*.standby_file_management=’auto’

*.log_archive_dest_1=’location=/home/oracle/opt/oradata/standby/archive valid_for=(standby_logfile,standby_role)’

5、生成standby控制文件:

sql> alter database create standby controlfile as 'd:\ control01.ctl';

并将生成的standby控制文件、初始化参数文件、备份集分别copy至standby端相应的目录,另外注意密码文件也需要copy并在standby端改名,因为主库和备库需要相同的密码文件,否则standby无法配置成功:

[oracle@test51 standby]$ cp control01.ctl control02.ctl

[oracle@test51 standby]$ cp control01.ctl control03.ctl

[oracle@test51 standby]$ ls

archive control01.ctl control02.ctl control03.ctl db_04j3dk0q_1_1.bak db_05j3dk6n_1_1.bak

6、在standby端mount standby数据库,可以看到从windows copy过来的备份控制文件可以直接在linux底下mount成功:

idle> startup mount pfile='/home/oracle/opt/admin/standby/pfile/init_standby.ora';

7、restore standby数据库:

由于控制文件里面记录的备份信息还是在windows上主库的备份信息,我们需要使用rman的catalog命令来使rman认出在standby端从windows主库copy过来的备份集:

rman> catalog start with '/home/oracle/opt/oradata/standby';

using target database control file instead of recovery catalog

searching for all files that match the pattern /home/oracle/opt/oradata/standby

list of files unknown to the database

=====================================

file name: /home/oracle/opt/oradata/standby/db_05j3dk6n_1_1.bak

file name: /home/oracle/opt/oradata/standby/db_04j3dk0q_1_1.bak

do you really want to catalog the above files (enter yes or no)? yes

cataloging files...

cataloging done

list of cataloged files

=======================

file name: /home/oracle/opt/oradata/standby/db_05j3dk6n_1_1.bak

file name: /home/oracle/opt/oradata/standby/db_04j3dk0q_1_1.bak

rman> crosscheck backup;

rman> delete expired backup;

等到rman能够正切认出standby端的备份集后,我们就可以对数据库进行restore了:

rman> list backup;

list of backup sets

bs key type lv size device type elapsed time completion time

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

3 full 1.75g disk 00:03:03 12-dec-07

bp key: 6 status: available compressed: no tag: tag20071212t104026

piece name: /home/oracle/opt/oradata/standby/db_04j3dk0q_1_1.bak

rman> restore database;

starting restore at 12-dec-07

using channel ora_disk_1

channel ora_disk_1: starting datafile backup set restore

channel ora_disk_1: specifying datafile(s) to restore from backup set

channel ora_disk_1: restoring datafile 00001 to /home/oracle/opt/oradata/standby/system01.dbf

channel ora_disk_1: restoring datafile 00002 to /home/oracle/opt/oradata/standby/sysaux01.dbf

channel ora_disk_1: restoring datafile 00003 to /home/oracle/opt/oradata/standby/undotbs01.dbf

channel ora_disk_1: restoring datafile 00004 to /home/oracle/opt/oradata/standby/users01.dbf

channel ora_disk_1: restoring datafile 00005 to /home/oracle/opt/oradata/standby/example01.dbf

channel ora_disk_1: reading from backup piece /home/oracle/opt/oradata/standby/db_04j3dk0q_1_1.bak

channel ora_disk_1: piece handle=/home/oracle/opt/oradata/standby/db_04j3dk0q_1_1.bak tag=tag20071212t104026

channel ora_disk_1: restored backup piece 1

channel ora_disk_1: restore complete, elapsed time: 00:01:05

finished restore at 12-dec-07

8、在主库和备用库端分别更改tnsnames配置,添加主库和备用库的tns连接字,并确保在主库和standby都能够连接上对方:

primary =

(description =

(address = (protocol = tcp)(host = 192.168.200.168)(port = 1521))

(connect_data =

(server = dedicated)

(service_name = orcl)

)

)

standby =

(description =

(address = (protocol = tcp)(host =192.168.200.169)(port = 1522))

(connect_data =

(server = dedicated)

(service_name = standby)

)

)

9、添加standby logfile,启动standby至恢复管理模式:

idle> alter database add standby logfile '/home/oracle/opt/oradata/standby/redo04.log' size 50m;

idle> alter database add standby logfile '/home/oracle/opt/oradata/standby/redo05.log' size 50m;

idle> alter database add standby logfile '/home/oracle/opt/oradata/standby/redo06.log' size 50m;

idle> recover managed standby database disconnect from session;

media recovery complete.

10、主库配置到standby的归档,另外注意主库需要设置log_archive_config这个参数,否则归档将不会从主库传至standby端:

sys@orcl> alter system set log_archive_dest_2='service=standby async valid_for=(online_logfiles,primary_role) db_unique_name=standby';

sys@orcl> alter system set log_archive_dest_state_2=enable;

sys@orcl> alter system set log_archive_config='dg_config=(orcl,standby)';

这样异构standby就配置成功了。

11、测试standby切换,注意在测试前要在主库端和备库端都准备好主库和备库的两种参数文件:

首先在主库端将主库切换为备库:

sql> alter database commit to switchover to physical standby with session shutdown ;

sql> startup mount pfile='d:\init_standby.ora'

sql> alter database recover managed standby database disconnect from session;

再在备库端将备库切换为主库:

idle> alter database commit to switchover to primary;

idle> shutdown

idle> startup pfile='/home/oracle/opt/admin/standby/pfile/init.ora'

oracle instance started.

total system global area 836976640 bytes

fixed size 1303132 bytes

variable size 595594660 bytes

database buffers 234881024 bytes

redo buffers 5197824 bytes

database mounted.

database opened.

至此,切换顺利完成。

 
 
上一篇: 数据字典表truncate掉将导致数据库不可用    下一篇: oracle数据库无法加载_oramts_的解决办法
  相关文档
把应用程序和Oracle客户端一起打包 04-23
讲解oracle数据库10g新特性中的闪回查询 05-12
创建物化视图提高查询速度 04-11
将部分数据导出后导入一个统一的数据库中 03-03
Oracle OCCI的一个简单的包装类的实现 04-23
解析:怎样查出前台正在发出的sql语句 08-05
oracle dbms_job:每隔特定时间执行特定任务 08-05
oracle数据库各种启动方式的详细介绍 01-25
oracle的共享封锁 独占封锁和共享更新封锁 (1) 05-28
三方面描述Oracle优化R方法(Method R) 05-27
更改oracle用户名及外部用户验证的授权问题 02-28
如何用组来保证"oracle"数据库的安全 01-29
详细讲述 Oracle 密码丢失解决方法 05-13
解决启动数据库时发生的ora-12528错误 03-14
经验总结:一次oracle数据库冷备份恢复过程 08-18
Oracle中通过触发器监视系统使用情况 04-11
oracle数据库环境下数据文件丢失的恢复 07-25
轻松接触分布式数据库全局名与数据库链 01-24
巧用dbms_rowid包获得rowid的详细信息 05-16
实例解析:用Oracle创建实例的参数需求 09-01
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息