镜像下载
容器镜像有近 7 个 G,所以 我们使用 nohup 挂后台下载
# nohup:即使退出终端也会继续下载# & 保持后台运行nohup docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g &
启动容器
# 端口 1521 映射到宿主机docker run -d -p 1521:1521 --name oracle_11g registry.aliyuncs.com/helowin/oracle_11g
容器配置
进入容器
docker exec -it oracle_11g
切换到 root
su root# passwd: helowin
配置环境变量
vi /etc/profile# 添加如下配置export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2export ORACLE_SID=helowinexport PATH=$ORACLE_HOME/bin:$PATH# wq 保存
软链接 sqlplus 到 /usr/bin
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
数据库配置
切换用户回 oracle
su oracle# passwd: oracle
登录 sqlplus
# 进入SqlPlus 控制台sqlplus /nolog# 以系统管理员登录conn /as sysdba
修改 system 和 sys 密码为 oracle
alter user system identified by oracle;alter user sys identified by oracle;ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
添加用户空间和用户
# 先查看用户空间路径select name from v$datafile;# 创建一个名为 kyc 大小为 1024M 的用户空间create tablespace kyc datafile '/home/oracle/app/oracle/oradata/helowin/kyc.dbf' size 1024M;# 创建一个名为 kyc 密码为 kyc123456 的用户,默认用户空间为 kyccreate user kyc identified by kyc123456 default tablespace kyc;# 赋予用户 kyc 具有 dba 和 connect 权限grant dba,connect to kyc;
连接配置
现在我们就可以使用 Oracle SQL Delvelpoer 等连接工具进行连接了,具体连接配置可参考如下
- 主机名:IP地址
- 端口:1521
- 服务名:helowin
- 用户名:kyc
- 密码:123456
在 SpringBoot 项目中,我们的配置文件中的配置示例如下
datasource:type: org.apache.tomcat.jdbc.pool.DataSourcedriver-class-name: oracle.jdbc.driver.OracleDriverurl: jdbc:oracle:thin:@<IP>:1521:helowinusername: kycpassword: kyc123456platform: oracle
可能会遇到的问题
由于我的 Oracle 安装在配置较低的服务器上,经常会出现内存占用较大导致数据库自动关闭的情况,这种情况的解决办法是
docker exec -it oracle_11g bash # 进入容器su - oracle # 切换至 oracle 用户# (passwd: oracle)# 以管理员登录dbaconn /as sysdbastartup # 启动数据库# shutdown immediate # 如果是关闭数据库exit # 退出sqlplus控制台lsnrctl # 进入监听器控制台start #启动监听器exit #退出监听器控制台#重启数据库结束
