Oracel--解决删除表空间的.DBF文件后,重启电脑无法打开数据库问题

本文详细解析并提供了Navicat链接Oracle数据库时遇到的ORA-12541:TNS:nolistener及ORA-01033错误的解决方案。包括编辑配置文件、重启监听服务和处理表空间问题的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表现出的错误:

Navicat链接oracle数据库的时候弹出的错误信息:
错误一:ORA-12541:TNS:no listener
错误二:ORA-01033:ORACLE 正在初始化或关闭

错误一:解决历程

找到该文件:进行编辑
 
注意:
  1. SID_NAME的名字是数据库实例的名字
  2. 对ora文件进行修改后都需要重新启动监听服务
  • cmd--命令;lsnrctl stop; lsnrctl start
  • 任务资源管理器--服务--OracelOraDb10g_home1TNSListener
到此第一个问题OK。

验证:

网上还有一些说法,做的验证

1、先找(GLOBAL_DBNAME = BJPOWERNODE.COM) 找不到再找SID_NAME?  

(SID_DESC =
    (GLOBAL_DBNAME = BJPOWERNODE.COM)
    (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
    (SID_NAME = BJPOWERNODE)
)
  BJPOWERNODE.COM是服务器的名字,监听配置的文件中可以不写这个,也一样运行成功。
但不写SID_NAME = BJPOWERNODE,会出现以下(在Lisstener.ora中的参数不正确,指定路径不存在)错误。
找不到对应的oracle服务在服务中用的是数据库实例的名字

2、HOST = 电脑名称 要改为IP吗?

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-ASVGKT1)(PORT = 1521))
    )
  )
我把HOME = 192.168.1.2 改为电脑名称后,在Navicat中主机填写localhost;IP;127.0.0.1都可以成功登陆

错误二:ORA-01033:ORACLE 正在初始化或关闭 

问题原因:删除了创建表空间时候的.DBF文件,但是删了文件并不代表表空间也删了,所以会出现找不到文件的情况,也就链接不上数据库了。

在cmd下输入如下内容;

C:\Users\Administrator> sqlplus "/as sysdba"
 
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 4 11:51:29 2020
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
 
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
 
SQL>   startup
ORACLE 例程已经启动。
Total System Global Area  293601280 bytes
Fixed Size                  1248600 bytes
Variable Size              92275368 bytes
Database Buffers          192937984 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF'
 
SQL> select   name   from  v$datafile;
 
NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\SYSTEM01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\UNDOTBS01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\SYSAUX01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\USERS01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\EXAMPLE01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\DRP.DBF
 
已选择7行。
 
SQL> alter   database  datafile  'D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF' offline;
alter   database  datafile  D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF offline
*
第 1 行出现错误:
ORA-01145: 除非启用了介质恢复, 否则不允许立即脱机
 
 
SQL>   alter   database  datafile'D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF'OFFLINE  DROP ;
 
数据库已更改。
 
SQL> shutdown immediate;
ORA-01109: 数据库未打开
 
 
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
 
Total System Global Area  293601280 bytes
Fixed Size                  1248600 bytes
Variable Size              92275368 bytes
Database Buffers          192937984 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
数据库已经打开。
SQL>
PS:
sqlplus "/as sysdba"
以操作系统权限认证的oracle sys管理员登陆
shutdown immediate
马上关闭开启的应用(终止当前进程)
  startup
开启当前应用
select   name   from  v$datafile;
从控制文件中获取数据库某基表下的name
alter   database  datafile XXX offline;
offline drop命令相当于把一个数据文件至于离线状态
alter   database  datafile XXX OFFLINE  DROP ;
是将数据文件的状态更改为 recover (同上)
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邢美玲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值