文章目录
- 零、声明
- 一、安装oracle
- 1.拉取Oracle镜像(非官方,来自helowin)
- 2.创建oracle容器内部数据的外部挂载目录
- 3.创建临时Oracle容器
- 4.复制临时Oracle容器内文件到主机中
- 5.修改挂载目录所属用户和用户组
- 6.删除临时容器
- 7.创建正式容器
- 二、Oracle用户操作
- 1.进入Oracle容器中
- 2. 删除
- 3.复制
- 4.退出容器,并重启容器
- 5.进入容器,修改root的密码
- 三、进入oracle
- 1.进入容器登录root后,修改环境变量
- 2.登录sqlplus
- 四、修改SID
- 1.查看原镜像中设置的SID
- 2.关闭数据库
- 3.修改oracle用户的ORACLE_SID环境变量
- 4.修改/etc/oratab文件
- 5.进入到$ORACLE_HOME/dbs目录,修改文件名
- 6.重建口令文件(orapwORCL文件)
- 7.启动数据库,检查SID名称
- 至此,修改完毕
零、声明
本文参考了多个文章,参考文章链接如下
拉取镜像和安装:
设置环境变量:
修改SID:
一、安装oracle
1.拉取Oracle镜像(非官方,来自helowin)
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
这里下载的镜像不是官方的镜像,所以内部诸如SID的配置需要进行修改,后面会说
2.创建oracle容器内部数据的外部挂载目录
mkdir /oracle/data
3.创建临时Oracle容器
docker run --name oracle_temp -p 1521:1521 \
--privileged=true -d registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest
4.复制临时Oracle容器内文件到主机中
docker cp oracle_temp:/home/oracle/app/oracle/oradata/ /oracle/data/
5.修改挂载目录所属用户和用户组
chown -R 500:500 /oracle/data
6.删除临时容器
docker rm -f oracle_temp
7.创建正式容器
docker run --name oracle11g -p 1521:1521 \
--privileged=true -d \
-v /oracle/data/oradata:/home/oracle/app/oracle/oradata \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest
二、Oracle用户操作
1.进入Oracle容器中
docker exec -it oracle11g bash
2. 删除
rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
3.复制
cp /home/oracle/app/oracle/oradata/helowin/control01.ctl \
/home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
4.退出容器,并重启容器
exit
docker restart oracle11g
5.进入容器,修改root的密码
root原密码是helowin,怕自己忘了,所以修改一下,修改前记得先把外部主机的SELinux关闭
docker exec -it oracle11g bash
su - root
pwd
三、进入oracle
1.进入容器登录root后,修改环境变量
su - root
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
创建软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
2.登录sqlplus
顺带一提这个镜像中的用户oracle的密码也是oracle,比较好记就不改了,直接su登录
su - oracle
sqlplus /nolog
> conn /as sysdba;
修改密码:
> alter user system identified by system;
> alter user sys identified by sys;
> alter profile default limit password_life_time unlimited;
创建用户:
> create user test identified by test;
并给用户赋予权限:
> grant connect,resource,dba to test;
用户解锁:
> alter user test account unlock;
扩大共享内存:
> alter system set SHARED_POOL_SIZE='150M' SCOPE=spfile;
> shutdown immediate;
> startup;
四、修改SID
原镜像中,SID为helowin,本案例中修改为ORCL
1.查看原镜像中设置的SID
sqlplus / as sysdba
> select instance from v$thread;
INSTANCE
--------------------------------------------------------------------------------
helowin
2.关闭数据库
> shutdown immediate;
> exit;
3.修改oracle用户的ORACLE_SID环境变量
vi /home/oracle/.bash_profile
export ORACLE_SID=ORCL
source /home/oracle/.bash_profile
4.修改/etc/oratab文件
$ 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
5.进入到$ORACLE_HOME/dbs目录,修改文件名
cd $ORACLE_HOME/dbs
mv hc_helowin.dat hc_ORCL.dat
mv lkhellowin lkORCL
mv orapwhelowin orapwORCL
mv spfilehellowin.ora spfileORCL.ora
mv inithelowin.ora initORCL.ora
6.重建口令文件(orapwORCL文件)
因为口令文件改名后不能在新实例中使用,所以重建
orapwd file=$ORACLE_HOME/dbs/orapwORCL password=123456 entries=5 force=y
7.启动数据库,检查SID名称
sqlplus / as sysdba
> startup
> select instance from v$thread;
INSTANCE
--------------------------------------------------------------------------------
ORCL
至此,修改完毕