docker 实战---使用oracle xe作为开发数据库(六),dockerxe


oracle作为oltp的大佬,很多行业应用都会用到它。那么在开发的过程中就不可避免的要使用oracle数据库,oracle数据库的版本有好多,其中express版本是免费的开发版,它的主要限制是数据库的大小最大1G,和一些性能的限制,所以拿来做开发还是比较合适的。

下面介绍下如何使用装了oracle的 docker容器来进行开发:

首先,介绍一下docker-oracle这个image,他是在ubuntu的基础上安装oracle xe版本来完成的。

它的docker file如下:

FROM wnameless/xe-temp

MAINTAINER Alexei Ledenev <alexei.led@gmail.com>

ADD chkconfig /sbin/chkconfig
ADD init.ora /
ADD initXETemp.ora /

RUN apt-get install -y libaio1 net-tools bc
RUN ln -s /usr/bin/awk /bin/awk
RUN mkdir /var/lock/subsys
RUN chmod 755 /sbin/chkconfig
RUN ln -s /proc/mounts /etc/mtab

RUN dpkg --install /tmp/oracle-xe_11.2.0-1.0_amd64.deb

RUN mv /init.ora /u01/app/oracle/product/11.2.0/xe/config/scripts
RUN mv /initXETemp.ora /u01/app/oracle/product/11.2.0/xe/config/scripts

RUN printf 8080\\n1521\\noracle\\noracle\\ny\\n | /etc/init.d/oracle-xe configure

RUN echo 'export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe' >> /etc/bash.bashrc
RUN echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> /etc/bash.bashrc
RUN echo 'export ORACLE_SID=XE' >> /etc/bash.bashrc

EXPOSE 22
EXPOSE 1521
EXPOSE 8080

CMD sed -i -E "s/HOST = [^)]+/HOST = $HOSTNAME/g" /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora; \
    service oracle-xe start; \
    /usr/sbin/sshd -D

放上这dockerfile的主要目的是为了看清它是怎样创建的。

然后,pull一个已经装好oracle xe的image。

docker pull alexeiled/docker-oracle-xe-11g


用新下载的image启动一个oracle容器,打开22 1521 8080 端口

docker run -d -p 22:22 -p 1521:1521 -p 8080:8080 alexeiled/docker-oracle-xe-11g

下面是一些容器的基本信息:

oracle:    
  sid xe
  system oracle
操作系统:    
  root admin
     

这样我们就能用这个容器来进行开发了,比如一个项目需要3个oracle 服务器:

docker run -d -p 101:22 -p 1521:1521 -p 8080:8080  --name oracle1 alexeiled/docker-oracle-xe-11g

docker run -d -p 102:22 -p 1522:1521 -p 8081:8080  --name oracle2 alexeiled/docker-oracle-xe-11g

docker run -d -p 103:22 -p 1523:1521 -p 8082:8080  --name oracle3 alexeiled/docker-oracle-xe-11g

启动脚本也可以简单的写成 docker start oracle1 oracle2 oracle3

这对于快速搭建带oracle的开发环境还是有些益处的。


使用oracle,与其他数据库开发的时,我们程序员需要注意什?

1、注意事务的管理,什么时候一次性提交,中间出错要回滚。
2、id不要使用自动生成,用sequence或者其他方式来指定,不用自加生成的那种。
3、数据库建模的时候注意添加外键和约束。
4、复杂的查询可以用数据库的函数或者存储过程来实现。
5、对于数据量比较大的表要注意使用索引。
6、多看看各种数据库对sql的执行解释,了解一个sql是怎么一步一步的执行机制,从而优化自己写sql的效率。比方oracle的PLSQL Developer这个工具里面,选中一段sql按F5就会弹出sql的执行解释窗口。
7、冗余一定要适度,而且有些冗余是必要的,有些冗余则会弊大于利,建模时要仔细衡量一下。
8、注意总结,学而不思则罔,死而不学则殆,最好的学习对象是自己不断的实践和总结。
 

急!教一下OracleXE是什东西?做什用的?

OracleXE(免费,只支持4G数据.OracleXE是一个小型的免费的数据库,可以自由使用。
OracleXE数据库与Oracle企业版的数据库从PHP操作层面来说是一样的,也就是说你在OracleXE平台下开发的PHP应用可以直接移植到Oracle企业版的环境中去使用。
Oracle的安装包括企业版服务器端和客户端两部分,用户可以根据实际情况选择不同的部分安装。

??这里以企业版服务器端为主要介绍对象,客户端的安装方法相对要简单一些。

??服务器端安装分为:典型安装、最小安装和定制安装三种。

??客户端安装分为:管理员客户端、程序员客户端、应用用户客户端、定制安装客户端。

■系统需求
1.硬件需求

● 内存最低配置为128MB,建议使用256MB;

● 硬盘交换分区至少是400MB或者是内存的二倍以上也可以;

● 硬盘大小需求:

服务器 典型安装 750mb
最小安装 675mb
定制安装 1gb
客户端 管理员 350mb
程序员 260mb
应用用户 150mb
定制安装 470mb

2. 软件需求

● Linux系统内核要求是V2.2或以上版本;

● Java Runtime Environment (JRE)要求是V1.1.6或以上版本;

● 系统必须支持X window。

■安装前的准备工作
1. 系统内核的修改

对/usr/src/linux/include/asm/hmparam.h文件作如下修改:

被修改量 修改后数值
shmmax 内存大小*0.5
shmmin 1
shmmni 100
shmseg 10

对/usr/src/linux/include/linux/sem.h文件作如下修改:

被修改量 修改后数值
semmni 100
semmsl processes参数+10
segmns 所有数据库processes参数总和+10

semopm 100
semvmx 32767

参数修改完后,用“make dep”、“make clean”、“make bzImage”命令重新编译内核,并用新内核启动计算机。

2. 系统用户和安装目录的建立

在Oracle的技术文档中建议为数据库建立两个组——oinstall、dba,但在实际使用中笔者发现只要建一个dba组就可以顺利安装Oracle,而不影响系统的使用;需要为数据库增加一个用户oracle,它属于dba组;再建立/u01/app/oracle/8.1.6目录,并把它的所有者设为oracle.dba。
在DOS下运行片刻进入ORACLE 10G安装-安装方法界面在这里你要指定自己的安装方法,ORACLE提供了两种安装方法:基本安装(I)和高级安装(A)要设置安装的主目录、安装类型和创建启动数据库。高级安装(A):可提供高级选项,例如:为不同的帐户设置不同的口令,选择数据库语言,产品语言,自动备份,定制安装以及备用存储选项(自动存储管理)。指定数据库配置选项(数据库命名:全局数据库名和系统标示符SID、数据库字符集、数据库示例是否创建带样本的数据库)。...余下全文>>
 

相关内容

    暂无相关文章