镜像下载
容器镜像有近 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_2
export ORACLE_SID=helowin
export 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 的用户,默认用户空间为 kyc
create 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.DataSource
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@<IP>:1521:helowin
username: kyc
password: kyc123456
platform: oracle
可能会遇到的问题
由于我的 Oracle 安装在配置较低的服务器上,经常会出现内存占用较大导致数据库自动关闭的情况,这种情况的解决办法是
docker exec -it oracle_11g bash # 进入容器
su - oracle # 切换至 oracle 用户
# (passwd: oracle)
# 以管理员登录
dba
conn /as sysdba
startup # 启动数据库
# shutdown immediate # 如果是关闭数据库
exit # 退出sqlplus控制台
lsnrctl # 进入监听器控制台
start #启动监听器
exit #退出监听器控制台
#重启数据库结束