内容简介:基于docker的安装非常简单。其实就两行核心命令:我们假设你已经在Mac上安装好了docker,我们开始安装oracle 19c。在docker上安装数据库或应用,是基于dockerfile的,目前Oracle官方还没发布基于19c的dockerfile,但是我们可以使用别人已经做好的dockerfile(感谢
基于 docker 的安装非常简单。
其实就两行核心命令:
./buildDockerImage.sh -v 19.2.0 -e docker run --name oracle19c -p 1521:1521 -p 5500:5500 -v /Users/lovehouse/iDocker/dockervolums/oradata/oracle19c:/opt/oracle/oradata oracle/database:19.2.0-ee
我们假设你已经在Mac上安装好了docker,我们开始安装oracle 19c。在docker上安装数据库或应用,是基于dockerfile的,目前Oracle官方还没发布基于19c的dockerfile,但是我们可以使用别人已经做好的dockerfile(感谢 kamus 告诉我这个docker file)。
如果你不知道如何在Mac上安装docker,可以参考我这篇《 在Mac上安装docker并部署oracle 12.2 》
我们先来试一下官方在github上的dockerfile:
LoveHousedeiMac:iDocker lovehouse$ pwd /Users/lovehouse/iDocker/oracle LoveHousedeiMac:iDocker lovehouse$ 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. LoveHousedeiMac:iDocker lovehouse$ LoveHousedeiMac:iDocker lovehouse$ LoveHousedeiMac:iDocker lovehouse$ ls -l total 0 drwxr-xr-x 31 lovehouse staff 1054 Feb 16 17:07 docker-images LoveHousedeiMac:iDocker lovehouse$ cd docker-images/OracleDatabase/SingleInstance/dockerfiles LoveHousedeiMac:dockerfiles lovehouse$ ls -l total 16 drwxr-xr-x 8 lovehouse staff 272 Feb 16 17:07 11.2.0.2 drwxr-xr-x 18 lovehouse staff 612 Feb 16 17:07 12.1.0.2 drwxr-xr-x 16 lovehouse staff 544 Feb 16 17:07 12.2.0.1 drwxr-xr-x 16 lovehouse staff 544 Feb 16 17:07 18.3.0 drwxr-xr-x 8 lovehouse staff 272 Feb 16 17:07 18.4.0 -rwxr-xr-x 1 lovehouse staff 5088 Feb 16 17:07 buildDockerImage.sh LoveHousedeiMac:dockerfiles lovehouse$
我们看到只有11.2.0.2,12.1.0.2,12.2.0.1,18.3.0和18.4.0几个版本,还没发布19c。
我们用marcelo-ochoa做好的dockerfile,具体的信息在 这里 。我们开始安装:
1. 先利用git clone下载marcelo-ochoa做好的dockerfiles:
LoveHousedeiMac:iDocker lovehouse$ mkdir marcelo-ochoa LoveHousedeiMac:iDocker lovehouse$ cd /Users/lovehouse/iDocker/marcelo-ochoa LoveHousedeiMac:marcelo-ochoa lovehouse$ LoveHousedeiMac:marcelo-ochoa lovehouse$ git clone https://github.com/marcelo-ochoa/docker-images.git Cloning into 'docker-images'... remote: Enumerating objects: 24, done. remote: Counting objects: 100% (24/24), done. remote: Compressing objects: 100% (20/20), done. remote: Total 9111 (delta 7), reused 7 (delta 3), pack-reused 9087 Receiving objects: 100% (9111/9111), 10.01 MiB | 1.59 MiB/s, done. Resolving deltas: 100% (5204/5204), done. LoveHousedeiMac:marcelo-ochoa lovehouse$
我们看到是存在19.2.0的dockerfile的,同时检查其安装的安装包文件名:
LoveHousedeiMac:dockerfiles lovehouse$ cd /Users/lovehouse/iDocker/marcelo-ochoa/docker-images/OracleDatabase/SingleInstance/dockerfiles LoveHousedeiMac:dockerfiles lovehouse$ ls -l total 16 drwxr-xr-x 8 lovehouse staff 272 Feb 16 17:09 11.2.0.2 drwxr-xr-x 18 lovehouse staff 612 Feb 16 17:09 12.1.0.2 drwxr-xr-x 16 lovehouse staff 544 Feb 16 17:09 12.2.0.1 drwxr-xr-x 16 lovehouse staff 544 Feb 16 17:09 18.3.0 drwxr-xr-x 8 lovehouse staff 272 Feb 16 17:09 18.4.0 drwxr-xr-x 17 lovehouse staff 578 Feb 16 17:33 19.2.0 -rwxr-xr-x 1 lovehouse staff 5145 Feb 16 17:09 buildDockerImage.sh LoveHousedeiMac:dockerfiles lovehouse$ cd 19.2.0 LoveHousedeiMac:19.2.0 lovehouse$ ls -l total 136 -rw-r--r-- 1 lovehouse staff 49 Feb 16 17:09 Checksum.ee -rw-r--r-- 1 lovehouse staff 3405 Feb 16 17:09 Dockerfile -rwxr-xr-x 1 lovehouse staff 1148 Feb 16 17:09 checkDBStatus.sh -rwxr-xr-x 1 lovehouse staff 905 Feb 16 17:09 checkSpace.sh -rwxr-xr-x 1 lovehouse staff 3012 Feb 16 17:09 createDB.sh -rw-r--r-- 1 lovehouse staff 6878 Feb 16 17:09 db_inst.rsp -rw-r--r-- 1 lovehouse staff 9204 Feb 16 17:09 dbca.rsp.tmpl -rwxr-xr-x 1 lovehouse staff 2526 Feb 16 17:09 installDBBinaries.sh -rwxr-xr-x 1 lovehouse staff 6526 Feb 16 17:09 runOracle.sh -rwxr-xr-x 1 lovehouse staff 1015 Feb 16 17:09 runUserScripts.sh -rwxr-xr-x 1 lovehouse staff 758 Feb 16 17:09 setPassword.sh -rwxr-xr-x 1 lovehouse staff 932 Feb 16 17:09 setupLinuxEnv.sh -rwxr-xr-x 1 lovehouse staff 678 Feb 16 17:09 startDB.sh LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:19.2.0 lovehouse$ cat Dockerfile LoveHousedeiMac:19.2.0 lovehouse$ cat Dockerfile |grep INSTALL_FILE_1 INSTALL_FILE_1="V981623-01.zip" \ COPY --chown=oracle:dba $INSTALL_FILE_1 $INSTALL_RSP $INSTALL_DB_BINARIES_FILE $INSTALL_DIR/ LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:dockerfiles lovehouse$
我们可以看到,安装包就是叫V981623-01.zip,这和edelivery.oracle.com上下载的db安装包是同名的,不用改名。
2. 将安装包拷贝到该目录下,运行开始安装:
LoveHousedeiMac:19.2.0 lovehouse$ pwd /Users/lovehouse/iDocker/marcelo-ochoa/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.2.0 LoveHousedeiMac:19.2.0 lovehouse$ cp /Users/lovehouse/Downloads/V981623-01.zip ./ LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:19.2.0 lovehouse$ ls -l total 11528424 -rw-r--r-- 1 lovehouse staff 49 Feb 16 17:09 Checksum.ee -rw-r--r-- 1 lovehouse staff 3405 Feb 16 17:09 Dockerfile -rw-r--r--@ 1 lovehouse staff 3032822863 Feb 16 17:33 V981623-01.zip -rw-r--r--@ 1 lovehouse staff 2869657581 Feb 16 17:14 V981627-01.zip -rwxr-xr-x 1 lovehouse staff 1148 Feb 16 17:09 checkDBStatus.sh -rwxr-xr-x 1 lovehouse staff 905 Feb 16 17:09 checkSpace.sh -rwxr-xr-x 1 lovehouse staff 3012 Feb 16 17:09 createDB.sh -rw-r--r-- 1 lovehouse staff 6878 Feb 16 17:09 db_inst.rsp -rw-r--r-- 1 lovehouse staff 9204 Feb 16 17:09 dbca.rsp.tmpl -rwxr-xr-x 1 lovehouse staff 2526 Feb 16 17:09 installDBBinaries.sh -rwxr-xr-x 1 lovehouse staff 6526 Feb 16 17:09 runOracle.sh -rwxr-xr-x 1 lovehouse staff 1015 Feb 16 17:09 runUserScripts.sh -rwxr-xr-x 1 lovehouse staff 758 Feb 16 17:09 setPassword.sh -rwxr-xr-x 1 lovehouse staff 932 Feb 16 17:09 setupLinuxEnv.sh -rwxr-xr-x 1 lovehouse staff 678 Feb 16 17:09 startDB.sh LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:19.2.0 lovehouse$
LoveHousedeiMac:19.2.0 lovehouse$ cd .. LoveHousedeiMac:dockerfiles lovehouse$ ls 11.2.0.2 12.1.0.2 12.2.0.1 18.3.0 18.4.0 19.2.0 buildDockerImage.sh LoveHousedeiMac:dockerfiles lovehouse$ ./buildDockerImage.sh -v 19.2.0 -e Ignored MD5 sum, 'md5sum' command not available. ========================== DOCKER info: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 18.09.2 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true ...... Step 24/24 : CMD exec $ORACLE_BASE/$RUN_FILE ---> Running in f4bddc96e630 Removing intermediate container f4bddc96e630 ---> 65cdd07a7bc1 Successfully built 65cdd07a7bc1 Successfully tagged oracle/database:19.2.0-ee Oracle Database Docker Image for 'ee' version 19.2.0 is ready to be extended: --> oracle/database:19.2.0-ee Build completed in 574 seconds. LoveHousedeiMac:dockerfiles lovehouse$ LoveHousedeiMac:dockerfiles lovehouse$
附件是完整的log:build19c.log
我们看到image已经安装好,注意它是附带安装了一个slim版的oracle linux,这个在12.2安装的时候,就是这种模式:
LoveHousedeiMac:dockerfiles lovehouse$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE oracle/database 19.2.0-ee 65cdd07a7bc1 About an hour ago 6.33GB oraclelinux 7-slim c3d869388183 4 weeks ago 117MB LoveHousedeiMac:dockerfiles lovehouse$
3. 我们开始安装数据库实例:
注意oracle 企业版的docker run的命令格式如下(XE版的都有所区别):
docker run --name <container name> \ -p <host port>:1521 -p <host port>:5500 \ -e ORACLE_SID=<your SID> \ -e ORACLE_PDB=<your PDB name> \ -e ORACLE_PWD=<your database passwords> \ -e ORACLE_CHARACTERSET=<your character set> \ -v [<host mount point>:]/opt/oracle/oradata \ oracle/database:18.3.0-ee Parameters: --name: The name of the container (default: auto generated) -p: The port mapping of the host port to the container port. Two ports are exposed: 1521 (Oracle Listener), 5500 (OEM Express) -e ORACLE_SID: The Oracle Database SID that should be used (default: ORCLCDB) -e ORACLE_PDB: The Oracle Database PDB name that should be used (default: ORCLPDB1) -e ORACLE_PWD: The Oracle Database SYS, SYSTEM and PDB_ADMIN password (default: auto generated) -e ORACLE_CHARACTERSET: The character set to use when creating the database (default: AL32UTF8) -v /opt/oracle/oradata The data volume to use for the database. Has to be writable by the Unix "oracle" (uid: 54321) user inside the container! If omitted the database will not be persisted over container recreation. -v /opt/oracle/scripts/startup | /docker-entrypoint-initdb.d/startup Optional: A volume with custom scripts to be run after database startup. For further details see the "Running scripts after setup and on startup" section below. -v /opt/oracle/scripts/setup | /docker-entrypoint-initdb.d/setup Optional: A volume with custom scripts to be run after database setup. For further details see the "Running scripts after setup and on startup" section below.
我们开始安装实例(注意这里会生成一个sys,system和pdbadmin的密码):
LoveHousedeiMac:dockerfiles lovehouse$ docker run --name oracle19c -p 1521:1521 -p 5500:5500 -v /Users/lovehouse/iDocker/dockervolums/oradata/oracle19c:/opt/oracle/oradata oracle/database:19.2.0-ee ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: L40uti33Ojk=1 LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 16-FEB-2019 10:55:17 ...... The Oracle base remains unchanged with value /opt/oracle ######################### DATABASE IS READY TO USE! ######################### The following output is now a tail of the alert.log: ORCLPDB1(3):CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ORCLPDB1(3):Completed: CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ORCLPDB1(3):ALTER DATABASE DEFAULT TABLESPACE "USERS" ORCLPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS" 2019-02-16T11:06:30.379489+00:00 ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCLCDB/control01.ctl' SCOPE=SPFILE; 2019-02-16T11:06:30.383959+00:00 ALTER SYSTEM SET local_listener='' SCOPE=BOTH; ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE Completed: ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
注,如果“DATABASE IS READY TO USE!”字样已经出现,且后面的log一直停着不动,可以在别的窗口重启container。
附件是完整的log:run19c.log
登陆主机或数据库进行操作:
LoveHousedeiMac:19.2.0 lovehouse$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 39284f79172b oracle/database:19.2.0-ee "/bin/sh -c 'exec $O…" 26 minutes ago Up 11 minutes (healthy) 0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp oracle19c LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:19.2.0 lovehouse$ LoveHousedeiMac:19.2.0 lovehouse$ docker exec -it 39284f79172b /bin/bash [oracle@39284f79172b ~]$ [oracle@39284f79172b ~]$ [oracle@39284f79172b admin]$ sqlplus sys/L40uti33Ojk=1@ORCLPDB1 as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Sat Feb 16 11:44:29 2019 Version 19.2.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.2.0.0.0 SQL>
LoveHousedeiMac:~ lovehouse$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 39284f79172b oracle/database:19.2.0-ee "/bin/sh -c 'exec $O…" About an hour ago Up 39 minutes (healthy) 0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp oracle19c LoveHousedeiMac:~ lovehouse$ LoveHousedeiMac:~ lovehouse$ docker run --rm -ti oracle/database:19.2.0-ee sqlplus pdbadmin/L40uti33Ojk=1@//172.17.0.2:1521/ORCLPDB1 SQL*Plus: Release 19.0.0.0.0 - Production on Sat Feb 16 11:50:21 2019 Version 19.2.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Last Successful login time: Sat Feb 16 2019 11:50:12 +00:00 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.2.0.0.0 SQL>
另外注意一下,以主机的方式登陆进去之后,直接sqlplus会报错ORA-12162,是因为docker镜像中没有指定ORACLE_SID,export一下就可以了:
[oracle@39284f79172b admin]$ sqlplus "/ as sysdba" SQL*Plus: Release 19.0.0.0.0 - Production on Sat Feb 16 12:09:40 2019 Version 19.2.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. ERROR: ORA-12162: TNS:net service name is incorrectly specified Enter user-name: ERROR: ORA-12162: TNS:net service name is incorrectly specified Enter user-name: ERROR: ORA-12162: TNS:net service name is incorrectly specified SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus [oracle@39284f79172b admin]$ [oracle@39284f79172b admin]$ ps -ef |grep SID [oracle@39284f79172b admin]$ ps -ef |grep ora_smon |grep -v grep oracle 65 1 0 11:10 ? 00:00:00 ora_smon_ORCLCDB [oracle@39284f79172b admin]$ [oracle@39284f79172b admin]$ export ORACLE_SID=ORCLCDB [oracle@39284f79172b admin]$ [oracle@39284f79172b admin]$ [oracle@39284f79172b admin]$ sqlplus "/ as sysdba" SQL*Plus: Release 19.0.0.0.0 - Production on Sat Feb 16 12:13:14 2019 Version 19.2.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.2.0.0.0 SQL>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Golang入门:从安装、部署以及GoLand的安装开始
- Win2016上安装SFB2015先决条件安装失败:RewriteModule
- mac:Go安装和配置+GoLand安装和使用之完整教程
- Pulsar本地单机(伪)集群 (裸机安装与docker方式安装) 2.2.0
- 如何将Rancher 2.1.x 从单节点安装迁移到高可用安装
- (教科书式教程!)在VMware Workstation 14 上安装CentOS 7 【送安装包】
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Responsive Web Design
Ethan Marcotte / Happy Cog / 2011-6 / USD 18.00
From mobile browsers to netbooks and tablets, users are visiting your sites from an increasing array of devices and browsers. Are your designs ready? Learn how to think beyond the desktop and craft be......一起来看看 《Responsive Web Design》 这本书的介绍吧!