如果没有其它active连接,Oracle10g中可以用alter database close将DB改到mount状态. 在mount状态下如果再用alter database open改到open状态,则会报错ora-01109.
必须shutdown 之后再open.
好像是说一个周期内(instance存活期间)只能open一次
在9i中,则是报1531错误.
在所有版本中,如果有活动会话,在open状态下alter database close会报
ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected
SQL> shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1258291200 bytes
Fixed Size 1219184 bytes
Variable Size 503317904 bytes
Database Buffers 738197504 bytes
Redo Buffers 15556608 bytes
Database mounted.
SQL> alter database open;
Database altered.
SQL> alter database close;
Database altered.
SQL> !ps -ef |grep ora_
oracle 21473 1 0 13:47 ? 00:00:00 ora_pmon_orcl
oracle 21475 1 0 13:47 ? 00:00:00 ora_psp0_orcl
oracle 21477 1 0 13:47 ? 00:00:00 ora_mman_orcl
oracle 21479 1 0 13:47 ? 00:00:00 ora_dbw0_orcl
oracle 21481 1 0 13:47 ? 00:00:00 ora_lgwr_orcl
oracle 21483 1 0 13:47 ? 00:00:00 ora_ckpt_orcl
oracle 21485 1 0 13:47 ? 00:00:00 ora_smon_orcl
oracle 21487 1 0 13:47 ? 00:00:00 ora_reco_orcl
oracle 21489 1 0 13:47 ? 00:00:00 ora_mmon_orcl
oracle 21491 1 0 13:47 ? 00:00:00 ora_mmnl_orcl
oracle 21495 1 0 13:47 ? 00:00:00 ora_rvwr_orcl
oracle 21516 21038 0 13:48 pts/2 00:00:00 /bin/bash -c ps -ef |grep ora_
oracle 21518 21516 0 13:48 pts/2 00:00:00 grep ora_
SQL> select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-16196: database has been previously opened and closed
总之, 虽然可以用alter database close将open状态改到mount,但无法再改回来.
所以,这引命令其余是没有作用的. 正常的关停还是走shutdown ,startup 就可以了.
并且 <>中关于 alter database的部分也没有描述 close.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/94384/viewspace-600666/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/94384/viewspace-600666/