ORA-38706: Cannot turn on FLASHBACK DATABASE logging.

今天在研究flashback的时候碰到了个小问题,无法开启flashback功能,报错:ORA-38706和ORA-38714

步骤如下:

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            use_recovery_file_dest
Oldest online log sequence     7
Next log sequence to archive   9
Current log sequence           9


SQL> select log_mode,flashback_on from v$database;


LOG_MODE     FLASHBACK_ON
------------ ------------------
ARCHIVELOG   NO


如果没有开启归档,必须在mount状态下执行:

SQL> alter database archivelog;

否则是无法开启flashback的,因为闪回需要归档


SQL> select open_mode from v$database;



OPEN_MODE
----------
MOUNTED


SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38714: Instance recovery required.


在网上google了一下,没找到什么有用的信息,别人出现这个情况是因为归档没有开启,但是我已经开启归档了

查看alert.log文件,也没什么信息,只报了一条:

Wed Aug 21 00:15:20 2013
alter database flashback on
ORA-38706 signalled during: alter database flashback on...


根据提示,理解为需要recover database

SQL> recover database;
Media recovery complete.
SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38714: Instance recovery required.

仍然不行,于是从错误代码编号着手,看看有什么有价值的信息

[oracle@RHEL5U3 ~]$ oerr ora 38706
38706, 00000, "Cannot turn on FLASHBACK DATABASE logging."
// *Cause:  An ALTER DATABASE FLASHBACK ON command failed.
//          Other messages in the alert log describe the problem.
// *Action: Fix the problem and retry.


这个等于没说,alert.log里没有什么内容


[oracle@RHEL5U3 ~]$ oerr ora 38714
38714, 00000, "Instance recovery required."
// *Cause:  An ALTER DATABASE FLASHBACK ON command failed because the 
//          database either crashed or was shutdown with the ABORT
//          option.
// *Action: Open the database and then enter the SHUTDOWN command with the
//          NORMAL or IMMEDIATE option.


哇,亮点来了,看到没有,cause里写得很清楚,由于数据库crash或shutdown abort

action也写明了解决方法,只要open以后,再正常关闭数据库就行了,多简单


SQL> alter database open;


Database altered.


SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.




Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size              67110480 bytes
Database Buffers          213909504 bytes
Redo Buffers                2973696 bytes
Database mounted.
SQL> alter database flashback on;


Database altered.


flashback开启成功,验证一下:

SQL> select log_mode,flashback_on from v$database;


LOG_MODE     FLASHBACK_ON
------------ ------------------
ARCHIVELOG   YES


总结:出现错误要根据错误提示去一步步解决问题,首先当然是查看alert.log,看是否存在有价值的提示,如果没有,那么就要从ORA-xxxxx 错误本身来查找问题了,如果google不到好的解决方案也不要气馁,我们还有oracle提供的oerr命令,非常之好用,有时候使用它会给你带来意外惊喜哦


-------------------------------------------------------------------------------------------------------
By aaron8219 Chinaunix Blog:http://blog.chinaunix.net/uid/24612962.html

原创内容,转载请注明链接,谢谢!

http://blog.csdn.net/aaron8219/article/details/10129503

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORA-14511错误Oracle数据库中的一个常见错误,它表示在分区对象上执行操作失败。 分区对象是在Oracle数据库中对表或索引进行分区的一种技术。分区可以根据一定的规则将数据拆分为多个分区,以实现更高效的管理和查询。不过,在分区对象上执行某些操作时,可能会出现ORA-14511错误。 出现ORA-14511错误的原因可能有以下几种情况: 1. 尝试在只读分区对象上执行写操作:如果目标表或索引的分区中有只读属性,而你尝试对其进行写操作,就会出现该错误。你需要确保在可写分区上执行写操作。 2. 尝试在已挂起分区的对象上执行操作:如果目标表或索引的某个分区处于挂起状态,而你尝试对其进行操作,就会出现该错误。你需要先解除对应分区的挂起状态,然后再执行操作。 3. 分区对象处于无效状态:如果目标表或索引的某个分区处于无效状态,而你尝试对其进行操作,就会出现该错误。你需要检查并修复分区对象的无效状态。 4. 执行了不支持的操作或特性:某些操作或特性可能不适用于分区对象。例如,尝试对已启用增量分区维护的表进行一些操作就可能导致该错误。你需要确保执行的操作或特性在分区对象中是可用的。 解决ORA-14511错误的方法通常包括: 1. 确保你对可写分区对象进行写操作,避免在只读分区对象上执行写操作。 2. 解除已挂起分区的挂起状态,然后再执行操作。 3. 检查并修复分区对象的无效状态,确保其处于有效状态。 4. 避免执行不支持的操作或特性,确保操作或特性在分区对象中可用。 总结来说,ORA-14511错误表示在分区对象上执行操作失败,可能是由于只读分区对象上的写操作、挂起分区的操作、无效状态的分区对象或不支持的操作引起的。通过检查并修复相关问题,你可以解决此错误

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值