docker 实战---使用oracle xe作为开发数据库(六),dockerxe
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的开发环境还是有些益处的。
1、注意事务的管理,什么时候一次性提交,中间出错要回滚。
2、id不要使用自动生成,用sequence或者其他方式来指定,不用自加生成的那种。
3、数据库建模的时候注意添加外键和约束。
4、复杂的查询可以用数据库的函数或者存储过程来实现。
5、对于数据量比较大的表要注意使用索引。
6、多看看各种数据库对sql的执行解释,了解一个sql是怎么一步一步的执行机制,从而优化自己写sql的效率。比方oracle的PLSQL Developer这个工具里面,选中一段sql按F5就会弹出sql的执行解释窗口。
7、冗余一定要适度,而且有些冗余是必要的,有些冗余则会弊大于利,建模时要仔细衡量一下。
8、注意总结,学而不思则罔,死而不学则殆,最好的学习对象是自己不断的实践和总结。
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、数据库字符集、数据库示例是否创建带样本的数据库)。...余下全文>>
评论暂时关闭