一,安装环境
linux版本:CentOS Linux release 7.7.1908 (Core)
docker版本:Docker version 19.03.5, build 633a0ea
二,拉取Oracle镜像及启动
拉取镜像
docker pull jaspeen/oracle-11g
创建宿主机oracle安装目录与数据目录
mkdir -p /server/oracle
mkdir -p /server/dpdump
下载Oracle并上传至服务器/server/oracle目录下并解压(顺序解压1of2.zip、2of2.zip),Oracle下载地址:
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
直接点击链接会要求登录,这里有Oracle账户的话建议登录后下载。如果没有Oracle账户,可以复制链接用迅雷下载下来,但是,下载下来的文件是.cgi格式,通过重命名改成linux.x64_11gR2_database_XXXof2.zip后即可。
创建容器
docker run -d --privileged -p 1521:1521 -v /server/oracle:/install -v /server/dpdump:/opt/oracle/dpdump --name=oracle11g jaspeen/oracle-11g
查看镜像
docker ps -a
运行容器
docker start oracle11g
我在运行容器的时候遇到了问题,执行docker start oracle11g没有反应,通过docker logs查看日志发现错误日志,Checking swap space: 0 MB available, 150 MB required. Failed。解决过程如下:
1.检查一下系统里有没有存在的 swap 文件,若为空则代表不存在,执行命令如下:
swapon -s
2.检查一下系统有没有足够的硬盘来设置swap,执行命令如下:
df -hal
3.创建swap文件
dd if=/dev/zero of=/swapfile bs=1024 count=512k
4.格式化swap文件
mkswap /swapfile
5.激活swap文件
swapon /swapfile
6.再次检查一下系统里有没有存在的 swap 文件
swapon -s
如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。用 vim 打开 /etc/fstab 文件,在其最后添加如下一行:
/swapfile swap swap defaults 0 0
最后,赋予 Swap 文件适当的权限:
chown root:root /swapfile
chmod 0600 /swapfile
到此,再次执行docker start oracle11g
运行容器了。
三,用户名/密码问题
Oracle跑起来后想验证一下可能又不知道用哪个用户?密码是什么?因为这些在上述操作中都没有设计,从网上找到的Oracle默认用户密码如下,但是我挨个试了试都没有登上。
用户名 / 密码 | 登录身份 | 说明 |
---|---|---|
sys/change_on_install | SYSDBA 或 SYSOPER | 不能以 NORMAL 登录,可作为默认的系统管理员 |
system/manager | SYSDBA 或 NORMAL | 不能以 SYSOPER 登录,可作为默认的系统管理员 |
sysman/oem_temp | sysman 为 oms 的用户名 | |
scott/tiger | NORMAL | 普通用户 |
aqadm /aqadm | SYSDBA 或 NORMAL | 高级队列管理员 |
Dbsnmp/dbsnmp | SYSDBA 或 NORMAL | 复制管理员sysman 为 oms 的用户名 |
scott/tiger | NORMAL | 普通用户 |
aqadm /aqadm | SYSDBA 或 NORMAL | 高级队列管理员 |
Dbsnmp/dbsnmp | SYSDBA 或 NORMAL | 复制管理员 |
这里我修改了system用户的密码,步骤如下:
1.进入容器内部
docker exec -it oracle11g bash
2.切换用户
su oracle
3.进入数据库
sqlplus / as sysdba
4.修改system用户的密码
alter user system identified by password
5.退出数据库
quit
6.再次进入数据库,输入system用户的用户名和密码进行连接测试
sqlplus
由于手动安装oracle数据库时,安装步骤纷繁复杂,耗时较长,对于个人想在日常开发中使用Oracle的人来说比较方便,安装过程及问题解决参考如下链接,感谢!
https://www.cnblogs.com/murry/p/11905355.html
https://www.cnblogs.com/a9999/p/6957280.html