诗林 发表于 2024-7-25 03:18:34

Linux下启动/关闭Oracle

1. Linux下手动启动Oracle

   Linux下启动Oracle分为两步:

[*] 启动监听;
[*] 启动数据库实例;
1.1 登录服务器,切换到oracle用户,或者以oracle用户登录

su - oracle https://img-blog.csdnimg.cn/direct/fc4025b5eefc44e190f2a4f33399c462.png
1.2 打开监听服务

   

[*]可以通过 lsnrctl status 下令查看Oracle监听器运行状态
https://img-blog.csdnimg.cn/direct/009dca07f44e41ba92ba7d30c2dbf15f.png
   

[*]通过 lsnrctl start 启动监听
https://img-blog.csdnimg.cn/direct/99fc860b498b4ce5a8c23ed05df4d2f7.png
1.3 以SYS用户身份登录Oracle

   切换用户:
CONN 用户名/密码  ,如果是sys用户一定要写上AS SYSDBA
sqlplus /nolog

conn /as sysdba https://img-blog.csdnimg.cn/direct/6297521900614744982a18957b9a902a.png
1.4 查看Oracle状态

   

[*]查看数据库的状态
select * from v$version; https://img-blog.csdnimg.cn/direct/168ad8cbf3174e1a84daeaaf8e00dc8e.png
   

[*]查看数据库的读写状态
select open_mode from v$database; https://img-blog.csdnimg.cn/direct/9c6d328be60146dc99b76af33d9dd966.png
1.4 启动Oracle数据库

startup https://img-blog.csdnimg.cn/direct/1879394044454d69a68bc96a2f3259b3.png
   

[*]回显数据库版本
https://img-blog.csdnimg.cn/direct/a98ccb0dadca4207b1d58c508eba8873.png
   

[*]回显状态显示数据库为读写模式
https://img-blog.csdnimg.cn/direct/6ae8608643354a65b5ac64a59a2c1681.png
2. Linux下手动关闭Oracle

2.1 关闭数据库实例

shutdown https://img-blog.csdnimg.cn/direct/b99c37df3ff642dab2ff98368a1fced1.png
2.2 关闭监听器

lsnrctl stop https://img-blog.csdnimg.cn/direct/a3d7bb320dbc4bceb15660a3cea6bf2b.png
3. Linux下Shell启动Oracle

3.1 手动执行Shell脚本

   

[*]root 用户编写启动脚本
vim 01_oracleStartup.sh

[*]填入以下内容
#!/bin/bash

su - oracle <<EON

#启动监听
echo "启动监听中..."
lsnrctl start

echo "睡眠两秒..."
sleep 2s

echo "启动数据库..."

#解决乱码问题,如果要使之永久生效,可以添加这个变量到oracle 用户环境 .bash_profile中
export NLS_LANG=american_america.zhs16gbk

#启动oracle
sqlplus /nolog <<EOF
conn /as sysdba;
startup;
exit;
EOF

echo "启动数据库完成"
EON

https://img-blog.csdnimg.cn/direct/afc5452f18f34a5fbbcea8183af5d4de.png
   

[*]赋权
chmod +x 01_oracleStartup.sh https://img-blog.csdnimg.cn/direct/ff1e581bed5a4bfc9ec0b15bdb46f22e.png
   

[*]执行
./01_oracleStartup.sh https://img-blog.csdnimg.cn/direct/194cf9f5ca9d469cb0e255b09a38de54.png
   

[*]启动成功
[*]注意,此脚本是以root用户执行的
[*]在上面的这个脚本中,EOF或EON只是一个分界符,这个分界符可以用你喜欢的任意字符代替,只不过各人都风俗了用EOF或EON来表示。当Shell在执行脚本时,发现 << 后,就把下个词当做分界符,而在分界符后面的内容都被当做输入,直到Shell再次发现此分界符时,才认为输入结束。也就是说分界符都是成对出现的。
3.2 开机自动执行Shell脚本

   将脚本加入到 /etc/rc.d/rc.local 文件,文件会在 Linux 系统各项服务都启动完毕之后再被运行。以是你想要自己的脚本在开机后被运行的话,可以将自己脚本路径加到该文件里。
   

[*]确认你有运行这个文件的权限
chmod +x /etc/rc.d/rc.local https://img-blog.csdnimg.cn/direct/b380409aebf343f8a32e9038f7ecb3ca.png
   

[*]将脚本加入到 /etc/rc.d/rc.local 文件
echo "/root/01_oracleStartup.sh">>/etc/rc.d/rc.local https://img-blog.csdnimg.cn/direct/70b8360c98404c49a52348b4c55c3751.png
   

[*]重启系统 reboot
https://img-blog.csdnimg.cn/direct/549f98ea836a4ddba1e159a0c3ee028a.png
   

[*]重启后验证监听
https://img-blog.csdnimg.cn/direct/c788485b2952496b8016622589d5a523.png
   

[*]重启后验证数据库
https://img-blog.csdnimg.cn/direct/80b8ab514ca64ae1b81303687f90258f.png
   自动执行Shell脚本成功
4. Linux下Shell关闭Oracle

vim 02_oracleStop.sh

[*]填入以下内容
#!/bin/bash

su - oracle <<EON

echo "关闭数据库开始"

#乱码问题
export NLS_LANG=american_america.zhs16gbk

#关闭oracle
sqlplus /nolog <<EOF
conn /as sysdba;
shutdown;
exit;
EOF

echo "关闭数据库完成"

#关闭监听
lsnrctl stop

echo "关闭监听完成"

EON

https://img-blog.csdnimg.cn/direct/df52785420f7478ea05efa4602c795a1.png
   

[*]赋权
chmod +x 02_oracleStop.sh https://img-blog.csdnimg.cn/direct/c967d3ec90494aa8a24821eff322ff6d.png
   

[*]执行
./02_oracleStop.sh https://img-blog.csdnimg.cn/direct/be5b5a1692f64cdeb8bf9635c2122ccc.png
   关闭成功


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux下启动/关闭Oracle