Linux下oracle数据库启动和关闭操作

利用shell来启动和关闭数据库(需要切换到oracle用户)

#!/bin/bash

echo "请选择需要执行的操作:"

#加 -e 才会正确显示制表符
echo -e  "\e[1;32m$color 1:启动oracle服务 \t 2:停止oracle服务 \e[0m"

#read获取屏幕输入
read input

#case esac:以;;结束每一个模式,模式名称以 ) 结束
case $input in
1)
#启动监听服务
lsnrctl start 

#登录sqlplus并启动oracle服务
sqlplus -S /nolog <<EOF
connect / as sysdba
startup;
exit;
EOF
;;

2)
#登录sqlplus并停止oracle服务
#正常关闭 shutdown:需要等待所有用户断开连接之后数据库才会关闭
#立即关闭 shutdown immediate:用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接
#强行关闭 shutdown abort:执行强行断开连接并直接关闭数据库

echo "等待所有用户断开数据库连接"
sqlplus -S /nolog <<EOF
connect / as sysdba
shutdown;
exit;
EOF

#关闭监听服务
lsnrctl stop
;;
esac


第一步:登陆

root登陆之后切换到oracle用户上,输入
su - oracle

第二步:连接
在oracle用户下,输入
sqlplus /nolog

第三步:使用管理员权限
输入
connect /as sysdba

第四步:启动/关闭服务
输入
startup

startup参数
不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
nomount,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!
mount,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!
谢谢!不准确的地方请指教!
shutdown

shutdown的参数
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。
第五步:如果是启动服务,要开启监听
退出sqlplus模式,输入
lsnrctl start
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值