在很多时候,我们需要在本地安装Oracle数据库,但是整个安装的过程时间非常长而且安装文件大,那么有不有更好的办法来安装Oracle数据库既能减少安装的时间而且还能够快速进行部署呢?答案就是使用Docker来数据库容器,那么具体该怎么进行呢?本文介绍如何在Win7和Win10上面进行Oracle镜像的安装以及如何使用DataGrip建立连接。

  一 Windows7上面的安装

首先就是在Window7上面安装Docker Toolbox,具体安装的过程,请参考这篇文档。安装完成后在桌面上一般会有一个Oracle VM VirtualBox和一个Docker Quickstart Terminal,一般在进行操作之前右键单击Docker Quickstart Terminal,然后进入启动界面,如果出现下面的界面就表示安装已经成功了。

图一 启动Docker Quickstart Terminal

  启动完毕后我们就可以进行镜像的拉取和运行了,这里我们使用 docker search oracle 来搜索oralce镜像。

  A    搜索镜像

图二 搜索Oracle镜像

  B 创建volume以持久化数据

  在命令行输入 docker volume create exeed-db命令创建名称为exeed-db的volume

  C 创建并运行Oracle数据库

在命令行中输入:docker run -d --name exeed-db -p 1521:1521 -p 8080:8080 --shm-size=1g --restart=always -e ORACLE_PWD=XXX -v exeed-db:/u01/app/oracle/oradata zerda/oracle-database:11.2.0.2-xe

  这里有几点需要注意的是:

  1 --name exeed-db指定创建的volume .

  2  --shm-size=1g:设置/dev/shm的大小。格式为:。number必须大于0。unit可选,可以是b,k,m或g。如果不指定unit,系统默认使用字节。如果此参数不指定,默认使用64m。

  3  --restart=always  --restart 标志会检查容器的退出代码,并据此来决定是否要重启容器,默认是不会重启。--restart的参数说明  always:无论容器的退出代码是什么,Docker都会自动重启该容器。on-failure:只有当容器的退出代码为非0值的时候才会自动重启。另外,该参数还接受一个可选的重启次数参数,`--restart=on-fialure:5`表示当容器退出代码为非0时,Docker会尝试自动重启该容器,最多5次。(注意:这里如果不限定该重启策略,那么每一次重启电脑后都要手动通过docker start命令来重启当前容器)

  4   ORACLE_PWD用于设置当前Oracle数据库密码。

  5   -v exeed-db:/u01/app/oracle/oradata zerda/oracle-database:11.2.0.2-xe用于指定使用的Oracle镜像如果本地找不到的话那么就会去联网进行下载。

  当上面的命令执行完毕以后,如果出现下面的提示,则表示Oracle已经在当前机器上安装完毕并且没有错误。  

  SQL> Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
  #########################
  DATABASE IS READY TO USE!
  #########################

  D 查看安装镜像的状态

图三 查看已经正确运行的镜像

  E  使用DataGrip来连接创建的Oracle数据库

图四 DataGrip连接Oracle数据库

  这里也许对Host有疑问,不应该是localhost,这里其实我们安装的oracle是跑在虚拟机上面的,这里的地址指的是虚拟机的地址,我们可以在命令行中输入 docker-machine ls来查看当前的虚拟机的地址。

图五 获取当前的Docker Machine 信息

  这里我们使用sys as sysdba来作为登录用户,这里的密码就是执行docker run 运行时创建的密码,然后点击测试就可以连接自己的oracle数据库了。

  F 后续操作

  使用sys as sysdba登录后创建新的用户:AfterSales,这里记住要创建默认的表空间,接着我们就可以给刚才创建的用户AfterSales授予权限了,这样下次我们就可以通过新建的账户来进行数据库操作了。

  -- Oracle 管理用户

  -- 创建用户
  CREATE USER AfterSales IDENTIFIED BY XXX  DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users;

  -- 赋予权限
  GRANT CONNECT, CREATE TABLE, CREATE TRIGGER, CREATE PROCEDURE, CREATE VIEW, CREATE SEQUENCE, DEBUG CONNECT SESSION TO AfterSales ;

  -- 删除用户
  DROP USER AfterSales CASCADE;

  二  Windows10上面的安装

  Windows10上面的安装和Windows7上面有些差别,具体使用的技术也是完全不同的。

  A   启用Hyper-V

  打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图:

图六 开启Hyper-V

  B 安装Docker

  Docker下载地址请点击这里, 点击如图处即可下载安装包,然后进行安装。

  C 重启机器

  在重启机器后我们可以在任务栏中发现已经运行的Docker,这点和Windows7上面不同,Windows7需要每次重启启动Docker Quickstart Terminal,Windows10则不需要。  

图七 Windows10中Docker任务栏图标

  另外后续的过程和Windows7中完全一样,只不过Windows10中Host不再是虚拟机的地址了,而是直接使用localhost便可以进行登录了。

  最后附上Oracle官方给出的在Docker上面安装Oracle的文档,请点击这里

最新文章

  1. 无法执行 FunctionImport“entitys.xx”,因为未将它映射到存储函数。EF
  2. History(历史)命令用法
  3. 客户端连接linux经常间隔性断开链接
  4. 05Spring_Bean属性的集合类型的注入
  5. zoj The 12th Zhejiang Provincial Collegiate Programming Contest Lunch Time
  6. js数据类型和关系运算语法
  7. 关于kafka连接不上别的机器问题Connection refused
  8. Unity3D 获得GameObject组件的方法
  9. SharePoint代码段设计
  10. 组队赛第二场:字符串哈希+DP
  11. 跨域访问 REST API
  12. flask项目部署到阿里云 ubuntu16.04
  13. ubuntu14.04安装opencv-python
  14. [Java] int 转换为BigDecimal
  15. 由于找不到 opencv_world320.dll,无法继续执行代
  16. solr6.4.1搜索引擎(5)使用zookeeper3.4.9分布式集群
  17. 安卓逆向学习---深入Smali文件
  18. php 启动服务器监听
  19. MySQL学习(十六)
  20. asp.net core web 添加角色管理

热门文章

  1. kubernetes系列11—PV和PVC详解
  2. python3-随机生成10位包含数字和字母的密码
  3. 使用jQuery增加或删除元素(内容)
  4. Linux IO模型(同步异步阻塞非阻塞等)的几篇好文章
  5. vue+原生JavaScript实现slideDown与slideUp[简单思路]
  6. 常见的7种XSS
  7. 正则表达式匹配html标签里面的内容
  8. jQuery链式编程
  9. lock了mutex的线程退出了却没有unlock时会怎么样?
  10. 基于Netty 实现简单的私有协议