#安装参考: https://github.com/wscherphof/oracle-12c
#按原作者步骤装了好几次都没成功把自已改好的步骤分享给大家,想折腾的可以试试! 学习专用!
#oracle12c 亲测版本: linuxamd64_12102
下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/overview/index.html
#环境:ubuntu14.04 + docker1.7.1
#步骤1:开始
安装docker 自行 百度 or Google!
#获取 oraclelinux 的docker image
docker pull oraclelinux
#启动docker image
docker run --privileged -ti oraclelinux
#安装所需软件:
yum -y install unzip binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc.i686 glibc glibc-devel glibc-devel.i686 ksh libgcc.i686 libgcc libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libaio libaio.i686 libaio-devel libaio-devel.i686 libXext libXext.i686 libXtst libXtst.i686 libX11 libX11.i686 libXau libXau.i686 libxcb libxcb.i686 libXi libXi.i686 make sysstat vte3 smartmontools nano git
#下载需用的配置文件 下载目录为:~/
cd ~/
git clone https://github.com/wscherphof/oracle-12c
#安装后建议建立快照 因为上面下载软件非常慢慢,有vpn另说:
sudo docker commit -m "更新信息" 578d9cf08eed 快照名 #578d9cf08eed 是启动docker [root@578d9cf08eed /] root@ 后面的字符串
#建立快照后启动
sudo docker run --privileged -ti 快照名 /bin/bash
#上传oracle12c文件 目录为 /tmp/install
#docker image上操作
mkdir -p /tmp/install
#主机上操作:(我描述的可以比较麻烦)
#参考: http://blog.csdn.net/lincyang/article/details/44176569
sudo docker inspect -f '{{.Id}}' c5f856e20367 //c5f856e20367 启动docker [root@578d9cf08eed /] root@ 后面的字符串
#得到类似这样的数据 :a111cada5b22996b9737cc4c6d097557188e2fc24a6632233d4500f11b464efd
#上传操作:
sudo cp linuxamd64_12102_database_* /var/lib/docker/aufs/mnt/a111cada5b22996b9737cc4c6d097557188e2fc24a6632233d4500f11b464efd/tmp/install
#结果:
_database_1of2.zip /tmp/install/linuxamd64_12102_database_1of2.zip
linuxamd64_12102_database_2of2.zip /tmp/install/linuxamd64_12102_database_2of2.zip
#解压oracle12c 且 删除压缩包
cd /tmp/install && unzip linuxamd64_12102_database_1of2.zip && unzip linuxamd64_12102_database_2of2.zip && rm *.zip
#建立用户 组
groupadd -g 54321 oinstall && groupadd -g 54322 dba
#userdel oracle && rm -rf /home/oracle && rm /var/spool/mail/oracle #原作者执行了这个,经测试,不需要
useradd -m -u 54321 -g oinstall -G dba oracle
echo "oracle:oracle" | chpasswd
#设置环境变量: nano ~/.bashrc文件 末尾添加
export ORACLE_BASE=/u01/app/oracle
export CVUQDISK_GRP=oinstall
export ORACLE_SID=ORCL
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
mkdir -p $ORACLE_BASE && chown -R oracle:oinstall $ORACLE_BASE && chmod -R 775 $ORACLE_BASE
mkdir -p /u01/app/oraInventory && chown -R oracle:oinstall /u01/app/oraInventory && chmod -R 775 /u01/app/oraInventory
#复制需要的文件到指定目录 已clone请忽略 获得地址:https://github.com/wscherphof/oracle-12c
#进入 ~/oracle-12c目录
cd ~/oracle-12c
cp ./step1/oraInst.loc /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
cp ./step1/sysctl.conf /etc/sysctl.conf #这行单独复制 因为这个文件在系统上是存在的,要输入Y确定覆盖
echo "oracle soft stack 10240" >> /etc/security/limits.conf
cd /tmp/install/database/rpm && rpm -iv cvuqdisk-1.0.9-1.rpm
#进入 ~/oracle-12c目录
cd ~/oracle-12c
cp ./step1/db_install.rsp /tmp/db_install.rsp
cp ./step1/install /tmp/install/install
/tmp/install/install #这步原文档说要等待 5分钟 根据自已机器有所不同
#步骤1:结束 建议建立快照 sudo docker commit -m "更新信息" 578d9cf08eed 快照名 ##578d9cf08eed 是启动docker [root@578d9cf08eed /] root@ 后面的字符串
#建立快照后启动
sudo docker run --privileged -ti 快照名 /bin/bash
#步骤2:开始
$ORACLE_HOME/root.sh
mkdir -p $ORACLE_BASE/oradata && chown -R oracle:oinstall $ORACLE_BASE/oradata && chmod -R 775 $ORACLE_BASE/oradata
mkdir -p $ORACLE_BASE/fast_recovery_area && chown -R oracle:oinstall $ORACLE_BASE/fast_recovery_area && chmod -R 775 $ORACLE_BASE/fast_recovery_area
#进入 ~/oracle-12c目录
mkdir -p $ORACLE_HOME/config/scripts
cd ~/oracle-12c
cp ./step2/initORCL.ora $ORACLE_HOME/dbs/initORCL.ora
cp ./step2/createdb.sql $ORACLE_HOME/config/scripts/createdb.sql
cp ./step2/conf_finish.sql $ORACLE_HOME/config/scripts/conf_finish.sql
cp ./step2/create /tmp/create
/tmp/create # #这步原文档说要等待 15分钟 根据自已机器有所不同(我这等了一个小时)
步骤2:结束
#这里不建议建立快照把步骤3结束建立
#建立快照后启动
sudo docker run --privileged -ti 快照名 /bin/bash
步骤3:开始
#进入 ~/oracle-12c目录
cd ~/oracle-12c
cp ./step3/startdb.sql $ORACLE_HOME/config/scripts/startdb.sql
cp ./step3/start /tmp/start
#启动数据库(ps:这里可建议不启,先建立快照,以免忘记了) sudo docker commit -m "更新信息" 578d9cf08eed 快照名
/tmp/start
#最后删除oracle12c安装文件
rm -rf /tmp/install
#最后的最后 以后怎么用
#建立快照sudo docker commit -m "更新信息" 578d9cf08eed 快照名 #578d9cf08eed 是启动docker root@578d9cf08eed /] root@ 后面的字符串
#启动快照
sudo docker run --privileged -ti 快照名
#启动数据库
/tmp/start
#数据库默认密码: change_on_install
初始化scott 用户
[root@d8149a913ea3 /]# sqlplus /nolog
SQL> connect sys/change_on_install as sysdba
SQL> @?/rdbms/admin/utlsampl.sql #这个执行后会退出sql> 再次进入就行了
[root@d8149a913ea3 /]# sqlplus scott/tiger #使用scott连接
#WEB管理页 https://docker imgage ip:5500/em/login
#查看oraclelinux ip的命令:
#如:https://172.17.0.5:5500/em/login #用户sys 密码:change_on_install
开始happy吧
#且记每次数据库有数据更新,后建立快照 为减少硬盘开销,可以使用同名覆盖或新快照建立后删除旧快照(PS:删除命令 sudo docker rmi 快照名)
sudo docker commit -m "更新信息" 578d9cf08eed 快照名 ##578d9cf08eed 是启动docker [root@578d9cf08eed /] root@ 后面的字符串
PS: 学习完全够用了 安装完后备份的压缩包不到11G ,而且秒启,比虚拟机爽多了
尊重原作者:https://github.com/wscherphof/oracle-12c
! ! 转载请注明出处及作者 ! !