Docker安装Oracle11G
1.前置环境
CentOS7.8
Docker
2.搭建Oracle服务
拉取Oracle镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
运行镜像
docker run -p 1521:1521 \ --restart=always \ --name oracle11g \ registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
拷贝容器里面的数据文件
sudo docker cp oracle11g:/home/oracle/app/oracle/oradata /home/oracle11g/oracle_data/
sudo docker cp oracle11g:/home/oracle/app/oracle/flash_recovery_area /home/oracle11g/flash_recovery_area/
对文件夹oracle11g,授权,否则运行容器启动不成功(500:500是容器用户的id):
chown -R 500:500 /home/oracle11g/
停止容器:
docker stop oracle11g
删除容器:
docker rm oracle11g
重新运行容器:
docker run -p 1521:1521 \
--restart=always \
--name oracle11g \
-v /home/oracle11g/oracle_data:/home/oracle/app/oracle/oradata \
-v /home/oracle11g/flash_recovery_area:/home/oracle/app/oracle/flash_recovery_area \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
进入容器设置用户信息
docker exec -it oracle_11g bash
切换root用户,密码:helowin(不能使用exit,直接退出容器了,需要使用su - root,然后输入密码)
配置oracle环境变量
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
刷新配置
source /etc/profile
创建建立sqlplus软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切换到oracle用户,先刷新配置
source /etc/profile
登录sqlplus
sqlplus /nolog
conn / as sysdba
或者
sqlplus / as sysdba
修改sys和system用户密码
alter user system identified by system;
alter user sys identified by sys;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
验证
3.pl/sql developer连接
修改tnsnames.ora,添加连接串
ORCL_DOCKER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 具体的ip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = helowin) ) )
pl/sql developer连接测试
或者直接在plsql中写用户名、密码后,数据库信息直接填写为ip:1521/helowin,则无需配置tnsnames.ora
其他操作
system用户没有sysdba的权限
执行sql:
grant sysdba to system
解锁scott用户
--解锁scott用户(安装时若使用默认情况没有解锁和设置密码进行下列操作,要超级管理员操作) alter user scott account unlock;
--解锁scott用户的密码【此句也可以用来重置密码】 alter user scott identified by scott;
修改密码有效期,默认180天改成无限制