Docker如何安装Oracle 19c
作者:Expect-乐
这篇文章主要介绍了Docker如何安装Oracle 19c问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
安装Oracle 19c
有时候为了试验,需要安装Oracle新版本数据库,由于安装比较繁琐耗时,所以可通过docker快速安装部署。
说明
有两种方式安装:
1.通过官方dockerfile自己编译镜像安装
2.通过已编译好的镜像安装(已上传到hub.docker.com仓库中)
地址:docker pull zqldocker/oracle:3
下载官方oracle的docker镜像
[root@docker LEI]# git clone https://github.com/oracle/docker-images.git Cloning into 'docker-images'... remote: Enumerating objects: 77, done. remote: Counting objects: 100% (77/77), done. remote: Compressing objects: 100% (52/52), done. remote: Total 9878 (delta 25), reused 55 (delta 23), pack-reused 9801 Receiving objects: 100% (9878/9878), 10.20 MiB | 2.47 MiB/s, done. Resolving deltas: 100% (5686/5686), done. [root@docker LEI]# cd /docker-images/OracleDatabase/SingleInstance/dockerfiles/ [root@docker dockerfiles]# ll 总用量 24 drwxr-xr-x. 2 1101 oinstall 126 12月 24 04:12 11.2.0.2 drwxr-xr-x. 2 1101 oinstall 4096 12月 24 04:12 12.1.0.2 drwxr-xr-x. 2 1101 oinstall 4096 12月 24 04:12 12.2.0.1 drwxr-xr-x. 2 1101 oinstall 4096 12月 24 04:12 18.3.0 drwxr-xr-x. 2 1101 oinstall 159 12月 24 04:12 18.4.0 drwxr-xr-x. 2 1101 oinstall 4096 1月 7 17:36 19.3.0 -rwxr-xr-x. 1 1101 oinstall 5103 12月 24 04:12 buildDockerImage.sh
目前支持以上几个版本的docker安装。
开始安装
1. 下载官方的dockerfile
[root@docker LEI]# git clone https://github.com/oracle/docker-images.git Cloning into 'docker-images'... remote: Enumerating objects: 77, done. remote: Counting objects: 100% (77/77), done. remote: Compressing objects: 100% (52/52), done. remote: Total 9878 (delta 25), reused 55 (delta 23), pack-reused 9801 Receiving objects: 100% (9878/9878), 10.20 MiB | 2.47 MiB/s, done. Resolving deltas: 100% (5686/5686), done. [root@docker LEI]# cd /docker-images/OracleDatabase/SingleInstance/dockerfiles/ [root@docker dockerfiles]# ll 总用量 24 drwxr-xr-x. 2 1101 oinstall 126 12月 24 04:12 11.2.0.2 drwxr-xr-x. 2 1101 oinstall 4096 12月 24 04:12 12.1.0.2 drwxr-xr-x. 2 1101 oinstall 4096 12月 24 04:12 12.2.0.1 drwxr-xr-x. 2 1101 oinstall 4096 12月 24 04:12 18.3.0 drwxr-xr-x. 2 1101 oinstall 159 12月 24 04:12 18.4.0 drwxr-xr-x. 2 1101 oinstall 4096 1月 7 17:36 19.3.0 -rwxr-xr-x. 1 1101 oinstall 5103 12月 24 04:12 buildDockerImage.sh ---制作镜像
我们看到是存在19.3.0的dockerfile的,同时检查其安装的安装包文件名:
[root@docker dockerfiles]# cd 19.3.0/ [root@docker 19.3.0]# cat Dockerfile|grep INSTALL_FILE_1 INSTALL_FILE_1="LINUX.X64_193000_db_home.zip" \ --可以看到Oracle的安装介质文件名 COPY --chown=oracle:dba $INSTALL_FILE_1 $INSTALL_RSP $INSTALL_DB_BINARIES_FILE $INSTALL_DIR/
2. 将安装包拷贝到该目录下
运行开始安装:
需要提前下载Oracle安装介质,文件名默认是不需要更改的,应该是LINUX.X64_193000_db_home.zip
,然后将其复制到对应版本的目录下即可。
[root@docker 19.3.0]# ll 总用量 2988068 -rwxr-xr-x. 1 1101 oinstall 1050 12月 24 04:12 checkDBStatus.sh -rwxr-xr-x. 1 1101 oinstall 905 12月 24 04:12 checkSpace.sh -rw-r--r--. 1 1101 oinstall 63 12月 24 04:12 Checksum.ee -rw-r--r--. 1 1101 oinstall 63 12月 24 04:12 Checksum.se2 -rwxr-xr-x. 1 1101 oinstall 3088 12月 24 04:12 createDB.sh -rw-r--r--. 1 1101 oinstall 9204 12月 24 04:12 dbca.rsp.tmpl -rw-r--r--. 1 1101 oinstall 6878 12月 24 04:12 db_inst.rsp -rw-r--r--. 1 1101 oinstall 3357 12月 24 04:12 Dockerfile -rwxr-xr-x. 1 1101 oinstall 2526 12月 24 04:12 installDBBinaries.sh -rw-r--r--. 1 1101 oinstall 3059705302 1月 2 19:13 LINUX.X64_193000_db_home.zip --安装介质 -rwxr-xr-x. 1 1101 oinstall 6526 12月 24 04:12 runOracle.sh -rwxr-xr-x. 1 1101 oinstall 1015 12月 24 04:12 runUserScripts.sh -rwxr-xr-x. 1 1101 oinstall 758 12月 24 04:12 setPassword.sh -rwxr-xr-x. 1 1101 oinstall 932 12月 24 04:12 setupLinuxEnv.sh -rwxr-xr-x. 1 1101 oinstall 678 12月 24 04:12 startDB.sh [root@docker dockerfiles]# ./buildDockerImage.sh -v 19.3.0 -e
-e表示企业版
Successfully built 701b50f5832a Successfully tagged oracle/database:19.3.0-ee Oracle Database Docker Image for 'ee' version 19.3.0 is ready to be extended: --> oracle/database:19.3.0-ee Build completed in 2624 seconds.
当出现上面的提示,就表示镜像制作完成了,剩下就是利用该镜像启动容器即可。
3. 启动容器:安装数据库
注意:oracle 企业版的docker run的命令格式如下(XE版的都有所区别):
[root@docker dockerfiles]# docker run --name oracle-19c \ -p 1521:1521 -p 5500:5500 \ -e ORACLE_SID=lei \ -e ORACLE_PDB=leipdb \ -e ORACLE_PWD=Oracle \ -v /oracle/oradata:/opt/oracle/oradata \ oracle/database:19.3.0-ee
注意:/oracle/oradata
目录权限一定要正确,在容器中oracle用户的uid是54321,所以要保证容器内的oracle用户有权限读写该目录。
如创建oracle用户且uid是54321:
groupadd -g 1000 oinstall groupadd -g 1300 dba groupadd -g 1301 oper useradd -u 54321 -g oinstall -G dba,oper -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle echo "oracle" | passwd --stdin oracle chown oracle:oinstall /oracle/oradata
注:如果"DATABASE IS READY TO USE!"提示信息,表示数据库已成功安装了。
登陆主机或数据库进行操作:
[root@docker dockerfiles]# docker exec -it oracle-19c /bin/bash [oracle@6a5cd3f9fb6c dbs]$ export ORACLE_SID=LEI [oracle@6a5cd3f9fb6c dbs]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 8 02:00:16 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 LEIPDB READ WRITE NO SQL>
至此就完成了docker安装Oracle 19c!对于测试、试验非常方便~
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。