在Windows上命令行如何手工起停Oracle

在命令行我们可以用net命令手工启动Oracle服务:

C:\>net start oracleserviceeygle
OracleServiceEYGLE 服务正在启动 ..............
OracleServiceEYGLE 服务已经启动成功。

在正常情况下,数据库即可随之启动,如果数据库不能启动,则可以通过sysdba身份连接进入数据库,手工mount并Open数据库

C:\>sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 8月 18 11:17:16 2006

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> select instance_name from v$instance;

INSTANCE_NAME
----------------
eygle

SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

停止同样很简单,net命令,一行即可:

C:\>net stop oracleserviceeygle
OracleServiceEYGLE 服务正在停止......
OracleServiceEYGLE 服务已成功停止。

在Windows上,使用net命令能否启动数据库,还受到一个注册表参数的影响,这个参数是:ORA__AUTOSTART

对于我的Oracle10g数据库,这个键值位于HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_Ora10g,我的数据库SID为eygle,这个参数就是:ORA_EYGLE_AUTOSTART

当这个参数设置为True时,当我们启动服务时,Oracle数据库就会随之启动;反之,数据库就不会启动。

测试1,ORA_EYGLE_AUTOSTART=true时:

C:\>net start oracleserviceeygle
OracleServiceEYGLE 服务正在启动 .....................
OracleServiceEYGLE 服务已经启动成功。

C:\>sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 22 09:27:35 2006

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> select instance_name from v$instance;

INSTANCE_NAME
----------------
eygle

测试2,ORA_EYGLE_AUTOSTART=FALSE时:

C:\>net start oracleserviceeygle
OracleServiceEYGLE 服务正在启动 .
OracleServiceEYGLE 服务已经启动成功。

C:\>sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 22 09:30:03 2006

Copyright (c) 1982, 2005, Oracle. All rights reserved.

已连接到空闲例程。

SQL>

-The End-

/*************************

作者:eygle |English Version 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】
链接:http://www.eygle.com/archives/2006/08/net_start_oracle_on_windows.html

*************************/

补充:

监听启动
lsnrctl start
在数据库启动之前应该先启动监听程序,否则就不能利用命令行方式来管理数据库包括启动和关闭数据库。

监听停止
lsnrctl stop

sqlplus中关闭数据库方式及oracle会执行的相关操作

shutdown normal
a,阻止任何任何用户建立新连接
b,等待当前所有正在连接的用户主动断开连接,正在连接的用户能够继续他们的工作,甚至能够提交新的事务
c,一旦所有用户都断开连接,才进行关闭,卸载数据库,并终止例程

2,shutdown transactional
a,阻止任何用户建立新的连接,同时阻止当前连接的用户开始新的事务
b,等待所有当前为提交的活动事务提交完毕,然后立即断开用户的连接
c,一旦所有的用户都断开连接,立即进行关闭,卸载数据库,并终止例程

3,shutdown immediate
a,阻止任何用户建立新的连接,同时阻止当前连接的用户建立任何新的事务
b,任何当前未提交的事务均被退回
c,Oralce不再等待用户主动断开连接,而是直接关闭,卸载数据库,并终止例程

4,shutdown abort(可能会丢失数据,下次启动时需要恢复)
a,阻止任何用户建立新的连接,同时阻止当前连接的用户建立任何新的事务
b,立即结束当前正在执行的sql语句
c,任何未被提交的事务均不被回退
d,立即断开所有用户的连接,关闭,卸载数据库,并终止例程

此条目发表在DB/ES分类目录,贴了, 标签。将固定链接加入收藏夹。