呵呵,还是有点曲折的,第一次做这个操作
环境是windows server 2003,Oracle database 10g 10.2.0.1.0
首先了解启动和关闭的命令及命令参数,见本blog 转贴的《Oracle的几种启动和关闭方式》
而后启动sqlplus,用sys登录数据库,
执行shutdown immediate,提示:
数据库已经关闭
已经卸载数据库
Oracle例程已经关闭
OK!成功!心中暗喜,原来挺简单滴。。。
之后没有关闭sqlplus,又接着执行打开数据库命令startup,报告如下错误
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
晕!怎么不灵了?!
再执行之,于是原地没动又执行了一次startup,错误提示变了,提示如下错误
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
啊!!此时突然想到,既然数据库和Oracle例程都已经关闭了,当然先前用sqlplus做的登录会失效了。。。而且同时也想到我已经没办法登录到数据库了,果然用sqlplus一试,已经没能登录数据库了
想到既然关闭后可以打开,那么一定有不登录关闭和打开数据库的方式,于是到网上查了一些方式并且请教了一些朋友他们也给了一些方式
例如:
c:/sqlplus /nolog --不登录数据库方式启动sqlplus,在此基础上执行一些命令
c:/sqlplus "/as sysdba" --以sysdba角色启动sqlplus,在此基础上执行一些命令
等等
这些都是可以不登录数据库启动sqlplus的方式。。。。。
对其中第二个例子有些奇怪,查过sqlplus帮助,其中是提到过/as sysdba的方式,但是帮助中并没有提到需要加双引号,而且这种方式是与“以用户名/密码@连接字符串登录数据库启动sqlplus”和“以nolog方式不登录数据库启动sqlplus”两种方式并列的,后两种方式都不需要加双引号,但是/as sysdba两端必须加以双引号,奇怪ing
一开始在网上查到很多资料中也都是直接执行sqlplus /as sysdba,但只要这么输入就会返回一个sqlplus参数帮助(帮助中并没提及引号问题)。。。当时比较困惑,后来给一个朋友打电话,朋友说他是在两端加了双引号执行的,结果试了试果然不见帮助返回了,呵呵,可是又返回ORA-12560: TNS: 协议适配器错误
但是不论哪种方式最后都几乎报告同一个错误:ORA-12560: TNS: 协议适配器错误
经过几次尝试,我开始意识到,我计算机上装了多个Oracle实例,那么怎么能通知我的命令是针对哪个Oracle实例呢?
开始尝试各种假象的方法,例如:
在sqlplus "/as sysdba"命令后面加@TNSNAME
或者先以sqlplus /nolog启动sqlplus,然后执行shutdown或者startup命令,在命令的后面也加上@TNSNAME
但是都失败了,因为这些命令根本不支持这种参数
继续在网上查找,无意间查到了OS命令提示符下设置Oracle SID环境变量,抱着试一试的心态,执行
C:/set oracle_sid=mysidname
然后再执行先前试过的几个报告“ORA-12560: TNS: 协议适配器错误”的方法,都好使了,哈哈!!!
使用先设置Oracle SID环境变量,再以不登录方式通过sqlplus执行关闭和打开数据库的命令,均获得成功!!!
----------至此本次试验宣告基本成功,虽然是个很初级的试验
但是!!如何在远程执行打开关闭数据库的指令呢?
刚才设置OracleSID环境变量,并不是针对TNSNAME,而是针对Oracle实例的
而且刚才的几种方式,例如:C:/sqlplus "/as sysdba"启动sqlplus,再执行打开和关闭数据库等,都没有通过例如TNSNAME指定远程数据库的命令参数,这个问题还有待查阅相关资料了。
如果哪位朋友知道,也请不吝赐教,谢谢!!!
——————————————————————————————————————————————
×××下面总结一下启动和关闭Oracle数据库及例程的方法(并非解释命令)
1、打开OS 命令提示符界面,我用的是Windows server 2003,所以在运行窗口敲入cmd
2、如果系统中装有多个Oracle实例,那么要设置OracleSID环境变量,执行一下命令
C:/set oracle_sid=sid名
3、启动sqlplus,可以有两种方式,效果应该是一样的
(1)执行,C:/sqlplus /nolog
执行,sql>connect as sysdba
(2)执行,C:/sqlplus "/as sysdba"
这两种方式都可以不登录数据库并以sysdba角色启动sqlplus工具
4、执行相关打开或关闭数据库命令,命令动词如下:
打开数据库:startup.....
关闭数据库:shutdown......
至于加什么参数,就要看具体需要了
完成!
关于startup和shutdown的一些参数介绍可见本blogOracle资料整理中转贴的《Oracle的几种启动和关闭方式 》
——2007-06-17