我在运行Oracle 10G XE Edition的Windows XP上。 运行碎片整理后&清理过程中,我无法访问数据库中的任何对象。
快速检查
set lines110
col strtd hea 'STARTED'
col instance_name for a8 hea 'INSTANCE'
col host_name for a15 hea 'HOSTNAME'
col version for a10
select instance_name, version, host_name, status
, database_status, to_char(startup_time,'DD-MON-YYYY HH:MI:SS') strtd
from v$instance;
返回此
INSTANCE VERSION HOSTNAME STATUS DATABASE_STATUS STARTED
-------- ---------- --------------- ------------ ----------------- ----------------------------------------------------
xe 10.2.0.1.0 DT8775C MOUNTED ACTIVE 03-DEC-2010 11:38:00
If I use this command, it throws the following error.
SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
*ERROR at line 1:*
ORA-16014: log 2 sequence# 679 not archived, no available destinations
ORA-00312: online log 2 thread 1:
'D:\ORACLEEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ONLINELOG\O1_MF_2_4JD5RZC0_.LOG'
我该如何解决这种情况? 中有零文件 “D:\ ORACLEEXE \ APP \ ORACLE \ FLASH_RECOVERY_AREA \ XE \ ONLINELOG \”文件夹。
答案 0 :(得分:1)
我很确定这属于SERVERFAULT,但是为了让你现在开始:
数据库似乎处于ARCHIVELOG模式,并且您尚未提供存储存档日志文件的位置。快速修复,假设您不需要归档日志记录为您提供的恢复保护,请尝试以下操作:
sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> ALTER DATABASE NOARCHIVELOG;
SQL> ALTER DATABASE OPEN;
如果您确实要保留归档的重做日志,那么您需要在数据库参数中输入这样的条目:
alter system set log_archive_dest_1='location=d:\oraclexe\app\oracle\...';
alter system set log_archive_dest_state_1=enable;
答案 1 :(得分:0)
在您的清理过程中,您可能已删除了.LOG文件。我猜你已经把垃圾倒掉了,无法恢复它们?