一、Linux CentOS7.5通过docker安装oracle12c数据库

Linux Centos7.5

某台Linux服务器需要安装Oracle,但安装过程十分繁琐复杂,且一旦错误,将无法卸载干净,所以使用Docker拉取Oracle镜像后安装。

1、安装Docker:

1.1、docker要求内核版本高于3.10,查看

uname -r
   
   
   
   

1.2、使用root权限更新yum包

sudo yum update
   
   
   
   

1.3、安装docker

yum -y install docker-io
   
   
   
   

1.4、将docker设为开机自启动


   
   
   
   
  1. sudo systemctl start docker;
  2. sudo systemctl enable docker;

1.5、测试docker是否启动完成并查看版本

docker version
   
   
   
   

2、安装Oracle12C

2.1、拉取Oracle镜像sath89/oracle-12c

docker pull sath89/oracle-12c
   
   
   
   

下载下来5G左右

查看下载的镜像

docker images
   
   
   
   

注意:如果网慢,则多等等,还会出现一种情况,下载完2.7G的文件后,突然开始另一个文件的下载,然后卡住不动,这时直接Ctrl+C退出重新执行镜像拉取命令

2.2、安装Oracle

docker run --restart always -d -p 8080:8080 -p 1521:1521 -v /usr/local/oracledata:/u01/app/oracle --name orac sath89/oracle-12c
   
   
   
   

会返回一串ID如33c476a985358e42d2f18af5f3a0c2271325554fc7041a35b677892df1990824

然后执行命令查看安装进度

docker logs -f 33c476a985358e42d2f18af5f3a0c2271325554fc7041a35b677892df1990824
   
   
   
   

这样安装完成则Ctrl+C退出,安装完成~

执行


   
   
   
   
  1. # 获取运行的容器
  2. docker ps
  3. # 运行id为 7485d22f2fd5容器
  4. docker exec -it 7485d22f2fd5 /bin/bash
  5. # 使用sqlplus进入Oracle,使用SQL命令行,默认为system/oracle
  6. sqlplus system/oracle@ //localhost:1521/xe

成功。使用pl/sql连接时配置tnsname,xe是这个镜像默认的服务


   
   
   
   
  1. VISTUAL =
  2. (DESCRIPTION =
  3. (ADDRESS_LIST =
  4. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xx)(PORT = 1521))
  5. )
  6. (CONNECT_DATA =
  7. (SERVICE_NAME = xe)
  8. )
  9. )

服务器上镜像配置全部使用默认的,没有做修改

安装命令解析:


   
   
   
   
  1. docker run --restart always -d -p 8080: 8080 -p 1521: 1521 -v /usr/local/oracledata:/u01/app/oracle --name orac sath89/oracle- 12c
  2. 1:docker run sath89/oracle- 12c
  3. docker运行一个名为sath89/oracle- 12c的镜像,如果该镜像不存在于本地,则从docker远程仓库拉取
  4. 2:--restart always
  5. docker容器默认为不自启,如断电等情况,会导致服务无法使用
  6. 3:-p 1521: 1521
  7. 就像MySQL使用 3306端口连接一样, 1521是Oracle的端口
  8. 4:-v /usr/local/oracledata:/u01/app/oracle
  9. 在docker使用数据库应注意的问题就是数据持久化,这个命令是将docker容器中安装的Oracle数据目录挂载到其他文件目录下,/u01/app/oracle是容器内oracle存放数据的位置,/usr/local/oracledata是容器挂载的其他目录,在Oracle数据库操作后文件会同步到该文件夹
  10. 5:--name orac
  11. 为该容器定义名称,否则将使用默认name

总结:


   
   
   
   
  1. # docker默认安装目录为
  2. /var/lib/docker
  3. # 列出包含已停止的容器
  4. docker ps -a
  5. # 启动停止的容器
  6. docker start ba4a9b5ed8f6
  7. # 已创建的容器修改启动策略(自动重启等)
  8. docker update --restart always orac
  9. # 停止
  10. docker stop orac
  11. # 删除容器
  12. docker rm ba4a9b5ed8f6
  13. # 删除容器(同时删除数据)
  14. docker rm -v ba4a9b5ed8f6
  15. # 运行容器到容器命令行界面
  16. docker exec -it 7485d22f2fd5 /bin/bash
  17. # 查找文件
  18. find / -name tnsnames.ora
  19. # 本地测试服务器端口是否开启,telnet不是内部命令解决方法:打开启动或关闭Windows功能-Telnet勾选
  20. telnet 192.168.58.129 1521

在虚拟机上测试时最初安装出现错误(使用logs跟踪后定位到日志文件可查看)

Specified value of sga_target 292M is too small, needs to be at least 364M
查看虚拟机设置的内存为1G,修改为2G后,Oracle安装成功

Linux Centos7.5

某台Linux服务器需要安装Oracle,但安装过程十分繁琐复杂,且一旦错误,将无法卸载干净,所以使用Docker拉取Oracle镜像后安装。

1、安装Docker:

1.1、docker要求内核版本高于3.10,查看

uname -r
   
   
   
   

1.2、使用root权限更新yum包

sudo yum update
   
   
   
   

1.3、安装docker

yum -y install docker-io
   
   
   
   

1.4、将docker设为开机自启动


   
   
   
   
  1. sudo systemctl start docker;
  2. sudo systemctl enable docker;

1.5、测试docker是否启动完成并查看版本

docker version
   
   
   
   

2、安装Oracle12C

2.1、拉取Oracle镜像sath89/oracle-12c

docker pull sath89/oracle-12c
   
   
   
   

下载下来5G左右

查看下载的镜像

docker images
   
   
   
   

注意:如果网慢,则多等等,还会出现一种情况,下载完2.7G的文件后,突然开始另一个文件的下载,然后卡住不动,这时直接Ctrl+C退出重新执行镜像拉取命令

2.2、安装Oracle

docker run --restart always -d -p 8080:8080 -p 1521:1521 -v /usr/local/oracledata:/u01/app/oracle --name orac sath89/oracle-12c
   
   
   
   

会返回一串ID如33c476a985358e42d2f18af5f3a0c2271325554fc7041a35b677892df1990824

然后执行命令查看安装进度

docker logs -f 33c476a985358e42d2f18af5f3a0c2271325554fc7041a35b677892df1990824
   
   
   
   

这样安装完成则Ctrl+C退出,安装完成~

执行


   
   
   
   
  1. # 获取运行的容器
  2. docker ps
  3. # 运行id为 7485d22f2fd5容器
  4. docker exec -it 7485d22f2fd5 /bin/bash
  5. # 使用sqlplus进入Oracle,使用SQL命令行,默认为system/oracle
  6. sqlplus system/oracle@ //localhost:1521/xe

成功。使用pl/sql连接时配置tnsname,xe是这个镜像默认的服务


   
   
   
   
  1. VISTUAL =
  2. (DESCRIPTION =
  3. (ADDRESS_LIST =
  4. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xx)(PORT = 1521))
  5. )
  6. (CONNECT_DATA =
  7. (SERVICE_NAME = xe)
  8. )
  9. )

服务器上镜像配置全部使用默认的,没有做修改

安装命令解析:


   
   
   
   
  1. docker run --restart always -d -p 8080: 8080 -p 1521: 1521 -v /usr/local/oracledata:/u01/app/oracle --name orac sath89/oracle- 12c
  2. 1:docker run sath89/oracle- 12c
  3. docker运行一个名为sath89/oracle- 12c的镜像,如果该镜像不存在于本地,则从docker远程仓库拉取
  4. 2:--restart always
  5. docker容器默认为不自启,如断电等情况,会导致服务无法使用
  6. 3:-p 1521: 1521
  7. 就像MySQL使用 3306端口连接一样, 1521是Oracle的端口
  8. 4:-v /usr/local/oracledata:/u01/app/oracle
  9. 在docker使用数据库应注意的问题就是数据持久化,这个命令是将docker容器中安装的Oracle数据目录挂载到其他文件目录下,/u01/app/oracle是容器内oracle存放数据的位置,/usr/local/oracledata是容器挂载的其他目录,在Oracle数据库操作后文件会同步到该文件夹
  10. 5:--name orac
  11. 为该容器定义名称,否则将使用默认name

总结:


   
   
   
   
  1. # docker默认安装目录为
  2. /var/lib/docker
  3. # 列出包含已停止的容器
  4. docker ps -a
  5. # 启动停止的容器
  6. docker start ba4a9b5ed8f6
  7. # 已创建的容器修改启动策略(自动重启等)
  8. docker update --restart always orac
  9. # 停止
  10. docker stop orac
  11. # 删除容器
  12. docker rm ba4a9b5ed8f6
  13. # 删除容器(同时删除数据)
  14. docker rm -v ba4a9b5ed8f6
  15. # 运行容器到容器命令行界面
  16. docker exec -it 7485d22f2fd5 /bin/bash
  17. # 查找文件
  18. find / -name tnsnames.ora
  19. # 本地测试服务器端口是否开启,telnet不是内部命令解决方法:打开启动或关闭Windows功能-Telnet勾选
  20. telnet 192.168.58.129 1521

在虚拟机上测试时最初安装出现错误(使用logs跟踪后定位到日志文件可查看)

Specified value of sga_target 292M is too small, needs to be at least 364M
查看虚拟机设置的内存为1G,修改为2G后,Oracle安装成功

原帖地址:https://blog.csdn.net/Damionew/article/details/84566718

你可能感兴趣的:(oracle,docker)