我想重新创建Oracle数据库的重做日志,但我似乎已经走到了尽头。
当我打电话
SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
我得到以下
GROUP# ARC STATUS
---------- --- ----------------
1 NO CURRENT
4 YES UNUSED
3 YES UNUSED
2 YES UNUSED
问题是,我必须删除重做日志编号1,但不能,因为#1是当前的重做日志。如何在日志之间切换?
我也尝试了ALTER SYSTEM SWITCH LOGFILE;
,但是我收到错误,说数据库没有打开。 ORA-01109
。 数据库仅挂载(不处于读写模式),而我无法打开,因为重做日志已损坏。此外,甚至使用从另一个DB安装数据库redolog1。 #2,#3和#4成功重建,因为它们不是最新的。
有没有人有任何想法? 非常感谢任何帮助。
提前致谢!
答案 0 :(得分:3)
此错误(ORA-01109)表示您正在尝试对已关闭的数据库执行操作。因此,您的数据库实例可能只使用选项mount
启动,而数据库已关闭。您只需打开数据库并重试alter system
命令:
SQL> alter system switch logfile;
alter system switch logfile
*
ERROR at line 1:
ORA-01109: database not open
SQL> alter database open;
Database altered.
SQL> alter system switch logfile;
System altered.
修改强>
如果您收到此错误
SQL> alter database open; alter database open * ERROR at line 1:
ORA-00305:线程1的日志1不一致;属于另一个数据库
ORA-00312:在线日志1主题1:'/ ordata / DB / PRBT / redo1B.log'
ORA-00305:线程1的日志1不一致;属于另一个数据库
ORA-00312:在线日志1主题1:'/ odata / DB / PRBT / redo1A.log'
在尝试打开数据库时,很可能是日志文件中的数据库ID和 控制文件中的数据库ID不匹配。简单地说,来自不同数据库的日志文件。要使您的数据库生效,您可以尝试以下操作;
示例:
SQL> startup mount;
ORACLE instance started.
Database mounted.
SQL> recover database until cancel;
Media recovery complete.
SQL> alter database open resetlogs;
Database altered.