【docker安装Oracle11g】

 docker安装Oracle11g


目录

 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名称


1.拉取oracle_11g镜像:

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2.创建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

3.查看Oracle容器:

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

4.重启Oracle容器:

docker restart oracle11g

5.进入oracle11g容器进行配置:

docker exec -it oracle11g bash
5.1切换到root用户下:
su root
密码是:helowin
5.2进入容器 环境 并修改环境变量:

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         # 配置生效

5.3创建软连接:
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
5.4切换到oracle 用户并登录sqlplus修改sys、system用户密码 :

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;

 5.5查看一下oracle实例状态 :

 lsnrctl status

5.6连接Oracle

服务名为: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(按自己需求,可以不改)

原镜像中,SID为helowin,本案例中修改为ORCL

以下操作都是在进入容器的基础上

1查看原镜像中设置的SID:
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 lkhelowin lkORCL       # 注意是lkhelowin  不是lkhellowin
mv orapwhelowin orapwORCL
mv spfilehelowin.ora spfileORCL.ora  # 注意是spfilehelowin 不是spfilehellowin
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

现在就修改完了。

你可能感兴趣的:(docker,容器,oracle)