网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  oracle与data guard环境中重建控制文件 (1)     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:92次  录入:管理员--2008-03-27  
 

【赛迪网-it技术报道】环境:linux as 3+ora 9.2.4 +data guard

max logfiles ,resetlogs

问题描述:目前已经搭建好了基于归档日记传输的最大性能保护模式的dg,想把它改基于redo 日记传输模式。在备库新建standby redo 的时候报错,示例如下:

sql> alter database add standby logfile group 4 

('/server/ora9/oradata/ora9i/redo04.log') size 100m;

database altered.

sql> alter database add standby logfile group 5 

('/server/ora9/oradata/ora9i/redo05.log') size 100m;

database altered.

sql> alter database add standby logfile group 6 

('/server/ora9/oradata/ora9i/redo06.log') size 100m
*
error at line 1:

ora-01185: logfile group number 6 is invalid


sql> alter database add standby logfile group 7 

('/server/ora9/oradata/ora9i/redo07.log') size 100m
*
error at line 1:
ora-01185: logfile group number 7 is invalid

出现以上这个错误是因为控制文件中限制了max logfiles 最大日志组数量。

像这种情况只能重建控制文件。

但这是dg环境,处理控制文件要特别的小心,如果搞不好就会dg环境被破坏,需要重建环境。(那样工作量就大了)

1.导出重建脚本

sql> alter database backup controlfile to trace;

database altered.
在新产生的trace文件中可以看到下面的内容:

startup nomount pfile=$oracle_home/dbs/initora9i.ora-as_primary

create controlfile reuse database "ora9i" 

resetlogs force logging archivelog

-- set standby to maximize performance
maxlogfiles 10
maxlogmembers 3
maxdatafiles 100
maxinstances 1
maxloghistory 226
logfile
group 1 '/server/ora9/oradata/ora9i/redo01.log' size 100m,
group 2 '/server/ora9/oradata/ora9i/redo02.log' size 100m,
group 3 '/server/ora9/oradata/ora9i/redo03.log' size 100m
-- standby logfile
datafile
'/server/ora9/oradata/ora9i/system01.dbf',
'/server/ora9/oradata/ora9i/undotbs01.dbf',
'/server/ora9/oradata/ora9i/cwmlite01.dbf',
'/server/ora9/oradata/ora9i/drsys01.dbf',
'/server/ora9/oradata/ora9i/example01.dbf',
'/server/ora9/oradata/ora9i/indx01.dbf',
'/server/ora9/oradata/ora9i/odm01.dbf',
'/server/ora9/oradata/ora9i/tools01.dbf',
'/server/ora9/oradata/ora9i/user01.dbf',
'/server/ora9/oradata/ora9i/xdb01.dbf',
'/server/ora9/oradata/ora9i/data01.dbf',
'/server/ora9/oradata/ora9i/chxi.dbf'
character set zhs16gbk
;

注意:

(1)在create controlfile reuse database "ora9i" resetlogs force logging archivelog中间的resetlogs, 一定要改成noresetlogs,不然日志的序列就乱了。也备库的同步就会出现麻烦。

(2)更改maxlogfiles 10

2.在主库重建控制文件

sql> shutdown immediate;

sql> @recreatectl.sh

控制文件已创建.

sql> shutdown immediate;

sql> startup

数据库重起成功,并确认redo log的sequence有没有被reset:

sql> select group#,sequence#,status from v$log;

group# sequence# status
---------- ---------- ----------------
1 67 active
2 66 inactive
3 68 current

3.为备库重建控制文件

在主库上执行:

sql> alter database create standby controlfile as ‘控制文件名和路径’

并传送到备份机上。

关闭备库,并用新的控制文件覆盖原来的控制文件(注意备份旧的控制文件);

4.重起备库

sql> startup nomount;
sql> alter database mount standby database;
alter database mount standby database
*
error at line 1:
ora-01991: invalid password file 

'/server/ora9/product/9.2/dbs/orapwora9i'

提示密码文件也失效了。

解决:从主库再传一份过来,覆盖。

重启备库:

sql> startup nomount;
sql> alter database mount standby database;
sql> alter database recover managed standby 
database disconnect from session;

确认相关进程已经启动:

sql> select process,status from v$managed_standby;

process status
------- ------------
arch connected
arch connected
mrp0 wait_for_log
rfs receiving
rfs attached

5.验证备库工作正常:

在主库作日志切换。并看备库是否接收正常。

sql> alter system switch logfile;

查看备库是否接收到主库的日志并正确应用。

select sequence#, first_time, next_time, applied from v$archived_log order by sequence#;

6.继续加redo log group

这是因为控制文件被重建过了,之前在备库中建立成功的两个redo4,redo5也已经被用了。在os中删除。

[oracle@ora9-2 ora9i]$ rm redo04.log redo05.log

sql> alter database add standby logfile group 4 

('/server/ora9/oradata/ora9i/redo04.log') size 100m;

database altered.

sql> alter database add standby logfile group 5
('/server/ora9/oradata/ora9i/redo05.log') size 100m;

database altered.

sql> alter database add standby logfile group 6
('/server/ora9/oradata/ora9i/redo06.log') size 100m;

database altered.

sql> alter database add standby logfile group 7
('/server/ora9/oradata/ora9i/redo07.log') size 100m;

database altered.

7.特殊情况

假如不能正常传输切换之间产生的日志,需要手动传输并注册到备库来进行恢复:

sql> alter database register physical logfile 
'/server/ora9/primary-arc/ora9i_1_60.log'; 
sql> alter database recover managed standby database cancel;

8.完成

 
 
上一篇: 用forall与bulk collect快速复制表数据 (1)    下一篇: 使用dbms_stats时如何才能不生成histogram
  相关文档
深入讲解oracle9i数据仓库的增强及其价值 01-28
教你轻松掌握Oracle数据库触发器的组成 09-29
实例讲解oracle数据库自动增加id的sql 08-01
oracle数据库中fast刷新会受到哪些限制 04-17
对一些代码加密后再放到oracle数据库中 03-06
如何在oracle层次查询中给siblings排序 04-28
深入讲解如何保证和加强数据库的安全性 (1) 02-20
快速掌握ora-00600 4194错误的解决方法 11-15
带你快速了解oracle数据库提供的恢复机制 05-05
通过Backup Exec实施Oracle来灾难恢复 05-27
带你深入了解oracle中几个相对特殊的函数 01-31
深入讲解如何才能杀掉带锁的oracle进程 02-01
关于Oracle进程结构及后台进程简介 04-11
oracle数据库exp/imp版本的支持列表集合 05-28
oracle数据库10g环境下修改vip地址的方法 07-25
简单介绍Oracle数据库去除别名的方法 05-13
轻松掌握关闭oracle死锁进程的具体步骤 05-12
db2提供的两种db连接方式type1和type2 07-15
使用排序哈希簇来加提高询速度 08-05
oralce数据库定时执行存储过程的设置步骤 01-31
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息