目录
docker安装Oracle11g
1.拉取oracle_11g镜像:
2.创建Oracle_11g容器:
3.查看Oracle容器:
4.重启Oracle容器:
5.进入oracle11g容器进行配置:
5.1切换到root用户下:
5.2进入容器 环境 并修改环境变量:
5.3创建软连接:
5.4切换到oracle 用户并登录sqlplus修改sys、system用户密码 :
5.5查看一下oracle实例状态 :
5.6连接Oracle
下面是:修改SID(按自己需求,可以不改)
1查看原镜像中设置的SID:
2关闭数据库
3修改oracle用户的ORACLE_SID环境变量
4修改/etc/oratab文件
5进入到$ORACLE_HOME/dbs目录,修改文件名
6重建口令文件(orapwORCL文件)
7启动数据库,检查SID名称
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
# 这个是不挂载数据卷的
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
# 下面是挂载数据卷的
# 创建宿主机文件
mkdir /usr/local/oracle11g
# 然后创建临时容器并拷贝容器文件
docker run -d -p 1521:1521 --name oracle11g_temp registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker cp oracle_temp:/home/oracle/app/oracle/oradata/ /usr/local/oracle11g
# 修改挂载目录所属用户和用户组
chown -R 500:500 /usr/local/oracle11g
# 删除临时容器
docker rm -f oracle11g_temp
# 创造容器并挂载数据卷
docker run -d --name oracle11g -p 1521:1521 \
--privileged=true --restart=always \
-v /usr/local/oracle11g/oradata:/home/oracle/app/oracle/oradata \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker ps -a
# 进入容器删除
rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
# 复制
cp /home/oracle/app/oracle/oradata/helowin/control01.ctl \
/home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
# 退出容器,并重启容器
exit
docker restart oracle11g
docker exec -it oracle11g bash
su root
密码是: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:$PATHsource /etc/profile # 配置生效
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
su oracle # 切换用户
sqlplus /nolog # 用sqlplus登录
conn /as sysdba # 作为系统数据库管理员连接# 修改sys、system用户密码(密码是oracle)并刷新权限
alter user system identified by oracle; # by 后面的 oracle 就密码,按照自己习惯设就好
alter user sys identified by oracle; # by 后面的 oracle 就密码,按照自己习惯设就好
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
lsnrctl status
服务名为:helowin(目前只能填这个)
用户名:system (Oracle的系统用户)
密码: oracle(之前修改的密码)
tns为:
docker_oracle_11g= # 名字可以任取,看自己喜好 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST= 自己IP)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = helowin) # 这里是服务名 ) )
现在就可以连接自己Oracle了,别忘了开放自己的端口
如果想添加自己的用户,可以 登录上系统用户 或者 在步骤5.4 修改sys、system用户密码之后 添加自己的用户
-- 例如
create user yuanyu identified by yy2001 ; # 账号是yuanyu,密码是 yy2001
grant connect,resource,dba to yuanyu with admin option; # 授予权限,with admin option表示权限可以传递。
现在就可以使用自己的账号连接了。
其实到这里就可以结束的。但是如果想修改自己的SID可以跟着以下步骤,不修改的到这里就可以不用往下看了。
原镜像中,SID为helowin,本案例中修改为ORCL
以下操作都是在进入容器的基础上
select instance from v$thread;
INSTANCE
--------------------------------------------------------------------------------
helowin
shutdown immediate;
exit;
vi /home/oracle/.bash_profile
export ORACLE_SID=ORCL
source /home/oracle/.bash_profile
vi /etc/oratab
将
helowin:/home/oracle/app/oracle/product/11.2.0/dbhome_2:Y
改为
ORCL:/home/oracle/app/oracle/product/11.2.0/dbhome_2:Y
cd $ORACLE_HOME/dbs
mv hc_helowin.dat hc_ORCL.dat
mv lkhelowin lkORCL # 注意是lkhelowin 不是lkhellowin
mv orapwhelowin orapwORCL
mv spfilehelowin.ora spfileORCL.ora # 注意是spfilehelowin 不是spfilehellowin
mv inithelowin.ora initORCL.ora
因为口令文件改名后不能在新实例中使用,所以重建
orapwd file=$ORACLE_HOME/dbs/orapwORCL password=123456 entries=5 force=y
sqlplus / as sysdba
> startup
> select instance from v$thread;
INSTANCE
--------------------------------------------------------------------------------
ORCL
现在就修改完了。