请问:在连接oracle时出现下列问题:ORA-01090: shutdown in progress - connection is not permitted

zhangdatou 2005-01-10 03:15:55
请问出现这个问题是不是 程序写的有问题呀??
...全文
2175 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangdatou 2005-01-10
  • 打赏
  • 举报
回复
原因找到了,原来不是pb的问题 是有人在关数据库 此时进行了连接数据库的操作出现了这个问题
谢谢大家关注,为避免以后此类问题再次发生 我提议 将此提交faq
progrose 2005-01-10
  • 打赏
  • 举报
回复
有可能是有dba权限的人用shutdown, 关闭数据库, 此时oracle处理死掉了
zhangdatou 2005-01-10
  • 打赏
  • 举报
回复
Oracle数据库的启动和关闭
启动oracle数据库的同时也就创建了一个数据库实例,并且可以选择数据库启动的状态。通常,可以通过装载和打开数据库来启动实例,这样任何一个有效的用户都可以链接到实例并执行典型的数据库访问操作,下面介绍这方面的内容。

一、启动数据库的方法

启动数据库实例的方法有很多种,分别介绍如下:

1、使用SQL*PLUS 使用SQL*PLUS连接到具有管理员权限的Oracle上,然后发布startup命令,从而启动数据库。
2、使用Recovery Manager 即使用RMAN来执行startup和shutdown命令来启动和关闭数据库实例。若是在RMAN环境中最好使用这种方法,而不是调用SQL*PLUS方法。
3、使用Oracle Enterprise Manager 可以使用Oracle Enterprise Manager来管理oracle数据库,当然也包含启动和关闭数据库。Oracle Enterprise Manager是一个独立的oracle数据库产品,它与图形控制台、代理程序、公用服务以及各种工具一起为管理oracle产品提供了一个集成的和复杂的系统管理平台。

启动数据库实例的步骤:以没有连接数据库的方法启动SQL*PLUS:sqlplus /nolog,然后作为SYSDBA连接到oracle:connect username/password as sysdba,至此,就连接到了oralce数据库,并准备好启动数据库实例。接着使用startup命令来启动数据库实例,oracle必须从服务器参数文件或者传统的文本初始化参数文件中读取实例配置文件。当使用不带pfile子句的startup命令时,oracle将从平台指定的默认位置上的服务器参数文件(spfile)中读取初始化参数。也可以指定初始化参数所在的位置,如startup pfile=/u01/oracle/dbs/init.ora。

启动数据库实例可以采用不同的模式:

1、启动但没有装载数据库实例,这种模式不允许访问数据库,并且通常只适用于数据库创建或者控制文件的重新创建的情况。要启用这种数据库模式,可以使用命令startup nomount来启动数据库实例。
2、启动实例并装载数据库,但保持数据库关闭状态。这种模式适用于某些dba的动作,比如重命名数据文件、添加取消或者重命名重做日志文件、执行完整的数据库恢复操作,但不允许对数据库的一般性访问动作。要启用这种数据库模式,可以使用命令startup mount来启动数据库实例。
3、启动实例,装载并打开数据库。这种模式可以在不受限制的方式下使用,允许所有合法的用户访问。要启用这种数据库模式,可以使用命令startup来启动数据库实例。
4、迫使数据库启动,startup force。在一些特殊的情况下,可能会在启动数据库实例的时候遇到一些问题。一般不要迫使数据库启动,除非在以下的情况下:使用shutdown normal、shutdown immediate、shutdown transactional命令不能关闭当前的实例。如果正在运行某个实例,那么在重新启动实例前startup force可以使用abort模式关闭该实例。

二、改变数据库的可用性

可以改变数据库的可用性。这么做的目的也许时因为维护的原因而限制访问或者时数据库只读。
当需要执行特定的数据库管理操作时,必须启动数据库并将其装载在实例上,但数据库必须时关闭的,通过启动实例和装载数据库可以获得这种方案。要装载一个先前打开的数据库,但又不打开实例,可以使用命令:alter database mount

通过打开一个数据库,使得已经装载但是还处于关闭状态的数据库用于一般用途,可以使用命令alter database open。在执行这条语句之后,任何一个拥有create session系统权限的有效的oracle用户都能连接到该数据库上。

以只读模式打开数据库。只读模式打开数据库可以保证数据文件和重做日志文件不被重写,但这种模式不会限制数据库的恢复火车或者不生成重做的有关改变数据库状态的操作,例如,可以使数据文件脱机或者联机,因为这些操作不影响数据内容。使用命令alter database open read only使数据库处于只读状态。也可以使用读写模式打开数据库,alter database open read write。

三、关闭数据库

要初始化数据库的关闭操作,可以使用sql*plus的shutdown命令,在关闭操作完成之前,控制权不会返回到初始化数据库关闭操作的会话中。当正在进行关闭操作时,若用户试图进行连接,那么他会收到类似下面的信息:
ORA-01090:shutdown in progress-connection is not permitted
要关闭数据库实例,必须首先以sysdba或者sysoper进行连接。可以采用多种模式关闭数据库,如,normal、immediate、transactional、abort等。至于他们的含义,请查阅有关资料。




这个是 oracle 关闭时的情况 但是在程序中并没有关闭数据库阿~~~
WorldMobile 2005-01-10
  • 打赏
  • 举报
回复
ORA-01090 shutdown in progress - connection is not permitted

Cause: The SHUTDOWN command was used to shut down a running Oracle instance, disallowing
any connects to Oracle.

Action: Wait for the instance to restart or contact the database administrator

Troubleshooting ORA-01090: shutdown in progress,ORA-01081

现象:
SQL> shutdown immediate
ORA-01090: shutdown in progress - connection is not permitted
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first

解决方法:
dragon1> ps -ef|grep oracle9|grep _rac1|grep -v grep|awk '{print "kill -9 "$2}' >mykill
dragon1>. ./mykill
dragon1> ipcs -m

Shared Memory:
T ID KEY MODE OWNER GROUP
m 128 0 --rw-r----- oracle8 dba
m 129 0 --rw-r----- oracle8 dba
m 130 0xe9d0aaa8 --rw-r----- oracle8 dba
m 1027 0 --rw-r----- oracle9 dba
m 1028 0xe0bb589c --rw-r----- oracle9 dba

dragon1> ipcrm -m 1027
dragon1> ipcrm -m 1028

然后就可以起来了。
zhangdatou 2005-01-10
  • 打赏
  • 举报
回复
问题还没有解决 不知道是pb的问题还是oracle的问题呢

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧