删除了数据文件导致导致oracle数据库未启动(错误提示:ora-01109)

删除了数据文件导致导致oracle数据库未启动(错误提示:ora-01109),第1张

startup mount

把你不要的数据文件offline drop掉

alter database datafile 'xx' offline drop

xx填入你报错的文件位置路径信息

然后

alter database open

askmaclean oracle

ORA-01210: data file header is media corrupt

ORA-01210: 数据文件头出现损坏了。

如果你有备份, 那么考虑从备份restore 数据文件

如果没备份, 那么建议找专门做数据库恢复的公司。

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

1.问题以及解决过程

SQL>select status from v$instance

STATUS

------------

MOUNTED

SQL>alter database open

alter database open

*

第 1 行出现错误:

ORA-16014: 日志 2 的序列号 27 未归档, 没有可用的目的地

ORA-00312: 联机日志 2 线程 1:

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'

SQL>show parameter db_recovery_file

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_deststring D:\oracle\product\10.2.0/flash

_recovery_area

db_recovery_file_dest_size big integer 2G

SQL>alter system archive log current

alter system archive log current

*

第 1 行出现错误:

ORA-01109: 数据库未打开

SQL>alter system switch logfile

alter system switch logfile

*

第 1 行出现错误:

ORA-01109: 数据库未打开

SQL>shutdown immediate

ORA-01109: 数据库未打开

已经卸载数据库。

ORACLE 例程已经关闭。

SQL>startup

ORACLE 例程已经启动。

Total System Global Area 201326592 bytes

Fixed Size 1248092 bytes

Variable Size 88081572 bytes

Database Buffers 109051904 bytes

Redo Buffers2945024 bytes

数据库装载完毕。

ORA-16038: 日志 2 序列号 27 无法归档

ORA-19809: 超出了恢复文件数的限制

ORA-00312: 联机日志 2 线程 1:

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'

SQL>alter database open

alter database open

*

第 1 行出现错误:

ORA-16014: 日志 2 的序列号 27 未归档, 没有可用的目的地

ORA-00312: 联机日志 2 线程 1:

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'

SQL>show parameter db_recovery

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_deststring D:\oracle\product\10.2.0/flash

_recovery_area

db_recovery_file_dest_size big integer 2G

SQL>alter system set db_recovery_file_dest_size=3G scope=both

系统已更改。

SQL>alter database open

数据库已更改。

2.反思:

(1).检查flash recovery area的使用情况:

SQL>select * from v$flash_recovery_area_usage

FILE_TYPEPERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

------------ ------------------ ------------------------- ---------------

CONTROLFILE 0 0 0

ONLINELOG 0 0 0

ARCHIVELOG 6.36 0 4

BACKUPPIECE .22 0 1

IMAGECOPY 63.68 0 5

FLASHBACKLOG.51 .25 2

已选择6行。

SQL>

(2).计算flash recovery area已经占用的空间:

SQL>select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage

SUM(PERCENT_SPACE_USED)*3/100

-----------------------------

2.1231

可以看到,这里已经有2.1231G使用了,这说明我们刚开始设置的db_recovery_file_dest_size=2G不足,导致 online redo log无法归档,在这里,我们通过设置db_recovery_file_dest_size参数,增大了flash recovery area来解决这个问题。

(3).也可以通过删除flash recovery area中不必要的备份来释放flash recovery area空间来解决这个问题:

(1). delete obsolete

(2). crosscheck backupset

delete expired backupset


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9794628.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存