归档和非归档模式下ORA-01145错误的解决方法(87天)

总结了一下,在归档和非归档的场景下,ora-01145这个错误可能有如下三种情况:

1.off line tablespace

--在非归档模式下尝试ofline 数据文件

SQL> alter tablespace tools offline immediate;
alter tablespace tools offline immediate
*
ERROR at line 1:
ORA-01145: offline immediate disallowed unless media recovery enabled 

以上操作需要在归档模式下才可以。

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     244
Next log sequence to archive   246
Current log sequence           246
SQL> alter tablespace tools offline immediate;
Tablespace altered.

--在非归档模式下可以采用如下
SQL> alter tablespace tools offline;
Tablespace altered.

2.offline datafile

SQL> alter database datafile '/u01/app/oracle/oradata/disk_1/tbs01.dbf' offline;
alter database datafile '/u01/app/oracle/oradata/disk_1/tbs01.dbf' offline
*
ERROR at line 1:
ORA-01145: offline immediate disallowed unless media recovery enabled 
--在归档模式下,直接offline数据文件就可以 
SQL> alter database datafile  '/u01/app/oracle/oradata/disk_1/tbs01.dbf' offline ;
Database altered.
--而在非归档模式下,需要先把表空间给offline掉,然后才能offline数据文件,可以参见如下的实例。

3.offline drop

误删数据文件后,这个需要 alter database datafile xxxxx offline drop;

--关于测试环境

库为10g 10.2.0.1.0 非归档模式

表空间情况如下:

SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
TEMPTS1                        ONLINE
TBS1                           ONLINE
TBS3                           ONLINE
TEMP1                          ONLINE
TEMP2                          ONLINE
TOOLS                          ONLINE
OMF1                           ONLINE
UNDOTBS2                       ONLINE

数据文件情况如下:

SQL> select name,status from v$datafile;
NAME
--------------------------------------------------------------------------------
STATUS
-------
/u01/app/oracle/oradata/disk_4/system01.dbf
SYSTEM
/u01/app/oracle/oradata/disk_4/sysaux01.dbf
ONLINE
/u01/app/oracle/oradata/disk_1/tbs01.dbf
ONLINE

NAME
--------------------------------------------------------------------------------
STATUS
-------
/u01/app/oracle/oradata/disk_2/tbs02.dbf
ONLINE
/u01/app/oracle/oradata/disk_3/tbs03.dbf
ONLINE
/u01/app/oracle/oradata/disk_3/tbs3.dbf
ONLINE

NAME
--------------------------------------------------------------------------------
STATUS
-------
/u01/app/oracle/oradata/disk_4/undotbs2.dbf
ONLINE
/u01/app/oracle/oradata/disk_5/tools.dbf
ONLINE
/u01/app/oracle/oradata/disk_5/PODD/datafile/o1_mf_omf1_88ygncsw_.dbf
ONLINE

9 rows selected.
--我尝试将数据文件tbs01给offline掉
SQL> alter database datafile '/u01/app/oracle/oradata/disk_1/tbs01.dbf' offline;
alter database datafile '/u01/app/oracle/oradata/disk_1/tbs01.dbf' offline
*
ERROR at line 1:
ORA-01145: offline immediate disallowed unless media recovery enabled 

但是操作失败,我记得平时都好好的,怎么就不行了。

--查看错误解析

SQL> !oerr ora 01145
01145, 00000, "offline immediate disallowed unless media recovery enabled"
// *Cause: ALTER TABLESPACE ... OFFLINE IMMEDIATE or ALTER DATABASE DATAFILE
//         ... OFFLINE is only allowed if database is in ARCHIVELOG mode.
// *Action:Take tablespace offline normally or shutdown abort. Reconsider your
//         backup strategy. You could do this if you were archiving your logs.

我这个库是非归档的,

SQL> alter tablespace tbs1 offline;
Tablespace altered.
SQL> alter database datafile '/u01/app/oracle/oradata/disk_1/tbs01.dbf' offline;
Database altered.

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-05-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏西安-晁州

mybatis学习之高级映射

一对一映射查询 1、数据库执行脚本: /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.7.11-log : Datab...

2040
来自专栏运维技术迷

连仕彤博客Mysql数据库归档利器之pt-archiver

1486
来自专栏Lambda

编程规范

领域层–编码规范 2018年4月4日14:10:38 Controller层编写规范 controller层只是负责从service层获得数据,对外暴露API接...

3345
来自专栏杨建荣的学习笔记

Oracle 12cR2中的ADG会话保留特性

Oracle 12cR2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guar...

2625
来自专栏智能大石头

XCode v8.11 重量级分表分库(无视海量数据)

XCode天生就有分表分库功能,设计于2005年! 历时9年,这是分表分库功能第一次针对性正式更新。 在XCode里面,分表分库非常简单,在操作数据(查询/更...

19510
来自专栏大内老A

WCF版的PetShop之二:模块中的层次划分[提供源代码下载]

上一篇文章主要讨论的是PetShop的模块划分,在这一篇文章中我们来讨论在一个模块中如何进行层次划分。模块划分应该是基于功能的,一个模块可以看成是服务于某项功能...

21210
来自专栏Hongten

java开发_mysql中获取数据库表描述_源码下载

我们需要获取表:test_table表的描述信息,然后把描述信息插入到表:data_element_config中记录结果

682
来自专栏沃趣科技

应用示例荟萃 | performance_schema全方位介绍(下)

使用performance_schema中的语句当前事件记录表和语句事件历史记录表可以查询数据库中最近执行的一些SQL语句,以及语句相关的信息,这里我们以eve...

1263
来自专栏Java 技术分享

WEB 小案例 -- 网上书城(一)

2765
来自专栏java工会

Java后端开发猿不可不知的,Mybatis几种使用方式总结

1483

扫描关注云+社区