如何快速启动/关闭Oracle 11?


9

我想知道正确启动/关闭Oracle DB守护程序(安装在测试计算机上的Oracle 11.2)的最快方法是什么。

对于使用OCI / Pro * C API的C / C ++程序,我需要它。

我想要这个,是因为我习惯了PostgreSQL的启动速度,并且因为该守护程序在仅针对测试用例启动(按需)的虚拟机中运行。

目前,我这样编写脚本-启动:

sqlplus /nolog <<EOF
connect / as sysdba
startup
quit
EOF
lsnrctl start
emctl start dbconsole

并关机:

emctl stop dbconsole
lsnrctl stop
sqlplus /nolog <<EOF
connect / as sysdba
shutdown
quit
EOF

这可以工作-程序可以按预期工作-但此过程很慢。

Oracle DB在CentOS 6.3上运行,它是免费的(按啤酒形式)可用的“标准版本”。

Answers:


8

您可以使用Oracle安装随附的dbstart/ dbshut脚本。它们可在下找到$ORACLE_HOME/bin

全新安装后,您必须编辑/etc/oratab文件:

# cat /etc/oratab
# format: $ORACLE_SID:$ORACLE_HOME:N|Y
my_sid:/home/juser/app/juser/product/11.2.0/dbhome_1:N
# sed -i 's/:N$/:Y/' /etc/oratab
# grep my_sid /etc/oratab
my_sid:/home/juser/app/juser/product/11.2.0/dbhome_1:Y

然后,您可以使用如下脚本:

$ whoami
juser
$ dbstart $ORACLE_HOME
$ # execute DB jobs ...
$ dbshut $ORACLE_HOME

dbstart 提出Pro * C / OCI程序所需的全部功能。

使用dbstart/ dbshut是对问题中提到的自定义方法的改进:

method                time    called tools
―――――――――――――――――――――――――――――――――――――――――――――――――――――
dbstart              5.7 s    lsnrctl, sqlplus
dbshut               5.7 s    lsnrctl, sqlplus
custom startup      27.9 s    lsnrctl, sqlplus, emctl
custom shutdown     31.0 s    lsnrctl, sqlplus, emctl

(在Core i7 / 2.8GHz系统上,是慢速旋转的硬盘。)

dbstart / dbshut如何工作

一个dbstart $ORACLE_HOME$电话基本上等同于:

$ lsnrctl start
$ echo -e 'connect / as sysdba\nstartup\nquit'| sqlplus /nolog

和a dbshut $ORACLE_HOME$基本上等同于:

$ lsnrctl stop
$ echo -e 'connect / as sysdba\nshutdown\nquit'| sqlplus /nolog

(您可以通过验证是否已关闭所有内容ps aux | grep 'tnsl\|ora'

请注意,命令的顺序很重要。这意味着当lsnrctl start在sqlplus-startup命令之后执行时,Pro * C / OCI程序仍然会抱怨TNS侦听器不可用。

这正是问题中命令序列的问题- emctl start只是解决了错误的顺序,因为它修复了TNS-listener设置部分。

还要注意,执行Pro * C / OCI程序不需要EMCTL服务。


1

为什么根本需要它?是什么原因?对于关机,您有3个选项:

  • 普通shutdown-等待会话结束
  • shutdown immediate -回滚和结束会话(等待回滚完成)
  • shutdown abort -杀死一切-通常数据库必须在启动时执行一些恢复。

PS:如果只需要数据库进行测试,则可能不需要运行Enterprise Manager。使用Oracle dbstart/ dbshut脚本。如果您确实需要EM,请在后台启动它。


0

yasir-arsanukaev:您是否可以暂停(挂起)您的VM,并将其状态保存到磁盘?

colin-t-hart:如果这是测试计算机,请创建快照。启动计算机,然后使用启动Oracledbstart。完成后只需强行关闭计算机,然后回滚到快照即可。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.