设置oracle归档模式出现的问题

 

在虚拟机上安装了oracle 11g数据库,就是为了自己平时做实验什么的,今天上午想把数据库设置为归档模式下运行,结果搞出问题了,整了一个多小时才搞定,不过这个过程还是蛮有意思的,记录下来和大家分享,不足之处,欢迎大家批评指正。

将一个数据库设置为归档模式一般要经过以下几个步骤:

(1)设置归档目录:

   md C:\oracle\archive1

   md C:\oracle\archive2

(2)设置参数命名第(1)步中创建的两个目标目录,并控制归档日志文件名:(sys用户连接)

   alter system set log_archive_dest_1='location=C:\oracle\archive1' scope=spfile;

   alter system set log_archive_dest_2=’location=C:\oracle\archive2’ scope=spfile;

   alter system set log_archive_format=’arch_%d_%t_%r_%s.log’ scope=spfile;

(3)干净的关闭数据库:

   Shutdown immediate

(4)以加载模式启动数据库:

   startup mount

(5)将数据库转换成归档日志模式:

   Alert database archivelog;

(6)打开数据库:

   Alter database open;

(7)确认数据库为归档日志模式,并用下列两个查询运行归档器:

   Select log_mode from v$database;

   Select archiver from v$instance;

 

按照上述步骤我在设置数据库归档时,在第二步中,在设置归档日志文件名称时,自己写错了,写成如下了:

alter system set log_archive_format=’arch_%d_%t_%s.log’ scope=spfile;

%r参数给丢了,但是数据的数据库给出的提示是:“系统已更改。”

这一步并没有给出错误提示,所以没有注意丢东西了。接下来是干净的关闭数据库,这一步也没有问题,然后以加载模式启动数据库,这个时候出问题了,问题提示如下:

ORA-19905: log_archive_format must contain %s, %t and %r

这说明是设置归档文件名称时缺少了%r导致的,log_archive_format参数设置归档日志文件的名称是在文件名称中添加了一些动态的参数,防止文件重名被覆盖,其中%s表示日志切换序列号,%t表示线程号,%r表示场景号;现在数据库已经干净关闭了,然而spfile又出了问题,数据库已经无法启动了,现在想再重新设置这个参数已经不可能了(看来oracle这一点做的还是不够好啊,如果参数设置出现问题了,应该在设置时就提示设置错误,在设置的时候没有给出提示,而是在启动的时候提示参数错误)。

在网上查了一下资料只能通过init.ora文件重建spfile文件来解决这个问题了,在数据库安装目录中搜索到init.ora.062013114010(我理解这个应该是init.ora的备份文件,不知道正确不,所以后面的数字每个机器应该是不同的,要所要按照init.ora匹配搜索)文件,找到这个文件后,执行命令,创建spfile文件:

create spfile from pfile='C:\app\Administrator\admin\orcl\pfile\init.ora.062013114010';

尝试启动数据库:startup

启动结果如下:

ORACLE 例程已经启动。

 

Total System Global Area  431038464 bytes

Fixed Size                  1375088 bytes

Variable Size             264242320 bytes

Database Buffers          159383552 bytes

Redo Buffers                6037504 bytes

ORA-00214: ???? ''C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL'' ?? 1726 ???

''C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL'' ?? 1713 ???

 

数据库已经可以启动了,但是出现了ora-00214错误,这个是控件文件的错误,在设置归档之前我曾经设置过数据库控制文件的多路复用,现在重新设置一下控制文件的位置:

alter system set control_files="C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01

.CTL","C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL" scope=spfile;

 

这个时候再关闭重新启动一下数据库试试,终于搞定了:

 

ORACLE 例程已经启动。

Total System Global Area  431038464 bytes

Fixed Size                  1375088 bytes

Variable Size             268436624 bytes

Database Buffers          155189248 bytes

Redo Buffers                6037504 bytes

数据库装载完毕。

数据库已经打开。

 

虽然问题是搞定了,但是还是有一个问题没有搞明白,在重新创建spfile文件之后尝试启动数据库为什么会出现控制文件的错误,另外在错误提示中的

ORA-00214: ???? ''C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL'' ?? 1726 ???

''C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL'' ?? 1713 ???

两个位置的控制文件都是存在的,而且是建库时系统创建的控制文件,内容肯定没错,但是为什么还是会报错,这个和我以前调整过数据库控制文件参数有关系吗?欢迎大家解答、指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值