Linux/docker下oracle开启监听,开启自动启动

写在前头:
之前呢,使用docker安装了oracle,但它默认是会关闭的。使用了几天以后突然连接异常了,报的问题是oracle监听有问题了,我知道了是oracle服务自动关闭了,监听也跟着关了。所以我找了一些文章,总结如下。

一、如何启动数据库实例

进入到sqlplus启动实例
#“切换到oracle用户”

su - oracle

 

#“打开监听”

lsnrctl start 

 

#“进入到sqlplus”

sqlplus /nolog 

 

#“连接到sysdba”

conn /as sysdba 

 

#“启动数据库实例”

startup 

 

#“关闭数据库实例”

shutdown immediate 

 

#“关闭监听”

lsnrctl stop 

二、如何使数据库实例和linux系统一起启动

在/etc/rc.d/rc.local中加入如下语句即可实现同系统启动实例:(docker同样)

su - oracle -c "lsnrctl start"
su - oracle -c "dbstart" 

如果你是linux下安装的,只需要执行上面的步骤即可,如果你是docker安装的,则需要继续往下看。

如何让docker服务跟着系统一起启动呢?

1、设置docker服务开机启动

查看已启动的服务

systemctl list-units --type=service

查看是否设置开机启动

systemctl list-unit-files | grep enable

设置开机启动

systemctl enable docker.service

关闭开机启动

systemctl disable docker.service

2、设置docker内容器自动启动

启动时加–restart=always

docker run -d  -p 3306:3306 --restart=always --name mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7

Flag Description
no 不自动重启容器. (默认value)
on-failure 容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

如果已经过运行的项目

#如果已经启动的项目,则使用update更新:
docker update --restart=always mysql 

这样就设置好了监听和服务的自动启动。
以上! 希望能够帮到你。

你可能感兴趣的:(docker,搭建一台个人服务器,数据库,linux,docker,java,oracle)