运行及配置容器镜像系统用户root密码为 helowin
su root
helowin
仅限测试环境
1. 拉取镜像:docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g2. 创建容器
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g3. 进入容器
docker exec -it oracle11g bash5. 连续操作
[root@Mike-node1 ~]# docker exec -it oracle11g /bin/bash [oracle@1cab53ad073d /]$ cd /home/oracle/ [oracle@1cab53ad073d ~]$ source .bash_profile [oracle@1cab53ad073d ~]$ [oracle@1cab53ad073d ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 18 11:10:07 2020 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> conn /as sysdba Connected. SQL> alter user system identified by system; User altered. SQL> alter user sys identified by system; User altered. SQL> create user mike identified by mikeops; User created. SQL> grant connect,resource,dba to mike; Grant succeeded. SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; Profile altered. SQL> alter system set processes=2000 scope=spfile; System altered. SQL> select * from dba_users t where t.username = 'MIKE'; USERNAME USER_ID PASSWORD ------------------------------ ---------- ------------------------------ ACCOUNT_STATUS LOCK_DATE EXPIRY_DA -------------------------------- --------- --------- DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED ------------------------------ ------------------------------ --------- PROFILE INITIAL_RSRC_CONSUMER_GROUP ------------------------------ ------------------------------ EXTERNAL_NAME -------------------------------------------------------------------------------- PASSWORD E AUTHENTI -------- - -------- MIKE 91 USERNAME USER_ID PASSWORD ------------------------------ ---------- ------------------------------ ACCOUNT_STATUS LOCK_DATE EXPIRY_DA -------------------------------- --------- --------- DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED ------------------------------ ------------------------------ --------- PROFILE INITIAL_RSRC_CONSUMER_GROUP ------------------------------ ------------------------------ EXTERNAL_NAME -------------------------------------------------------------------------------- PASSWORD E AUTHENTI -------- - -------- OPEN USERNAME USER_ID PASSWORD ------------------------------ ---------- ------------------------------ ACCOUNT_STATUS LOCK_DATE EXPIRY_DA -------------------------------- --------- --------- DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED ------------------------------ ------------------------------ --------- PROFILE INITIAL_RSRC_CONSUMER_GROUP ------------------------------ ------------------------------ EXTERNAL_NAME -------------------------------------------------------------------------------- PASSWORD E AUTHENTI -------- - -------- USERS TEMP 18-NOV-20 USERNAME USER_ID PASSWORD ------------------------------ ---------- ------------------------------ ACCOUNT_STATUS LOCK_DATE EXPIRY_DA -------------------------------- --------- --------- DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED ------------------------------ ------------------------------ --------- PROFILE INITIAL_RSRC_CONSUMER_GROUP ------------------------------ ------------------------------ EXTERNAL_NAME -------------------------------------------------------------------------------- PASSWORD E AUTHENTI -------- - -------- DEFAULT DEFAULT_CONSUMER_GROUP USERNAME USER_ID PASSWORD ------------------------------ ---------- ------------------------------ ACCOUNT_STATUS LOCK_DATE EXPIRY_DA -------------------------------- --------- --------- DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED ------------------------------ ------------------------------ --------- PROFILE INITIAL_RSRC_CONSUMER_GROUP ------------------------------ ------------------------------ EXTERNAL_NAME -------------------------------------------------------------------------------- PASSWORD E AUTHENTI -------- - -------- USERNAME USER_ID PASSWORD ------------------------------ ---------- ------------------------------ ACCOUNT_STATUS LOCK_DATE EXPIRY_DA -------------------------------- --------- --------- DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED ------------------------------ ------------------------------ --------- PROFILE INITIAL_RSRC_CONSUMER_GROUP ------------------------------ ------------------------------ EXTERNAL_NAME -------------------------------------------------------------------------------- PASSWORD E AUTHENTI -------- - -------- 10G 11G N PASSWORD USERNAME USER_ID PASSWORD ------------------------------ ---------- ------------------------------ ACCOUNT_STATUS LOCK_DATE EXPIRY_DA -------------------------------- --------- --------- DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED ------------------------------ ------------------------------ --------- PROFILE INITIAL_RSRC_CONSUMER_GROUP ------------------------------ ------------------------------ EXTERNAL_NAME -------------------------------------------------------------------------------- PASSWORD E AUTHENTI -------- - -------- SQL>
其中涉及到的命令含义:
| 命令 | 含义 |
|---|---|
| cd /home/oracle | 进入到 oracle 用户目录 |
| source .bash_profile | 加载 oracle 环境变量 |
| sqlplus /nolog | 登录oracle数据库 |
| conn /as sysdba | 切换管理用户 |
| alter user system identified by system; | 修改system用户账号密码为system |
| alter user sys identified by system; | 修改sys用户账号密码为system |
| create user mike identified by mikeops; | 创建内部管理员账号mike 密码为mikeops |
| grant connect,resource,dba to mike; | 将dba权限授权给内部管理员账号mike |
| ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; | 修改密码规则策略为密码永不过期 |
| alter system set processes=2000 scope=spfile; | 修改数据库最大连接数据 |
| select * from dba_users t where t.username = 'MIKE'; | 查看mike用户创建信息 |
连接类型: Basic 主机:你的ip 端口: 1521 服务名: helowin SID 用户名:mike 密码:mikeops7. 退出容器
在宿主机上把数据目录拷贝出来
mkdir -p /data/oracle/helowin docker cp oracle11g:/home/oracle/app/oracle/oradata/helowin/ /data/oracle [root@localhost oracle]# ll /data/oracle/helowin total 1626076 -rw-r-----. 1 500 500 10076160 Apr 24 15:21 control01.ctl -rw-r-----. 1 500 500 9748480 Jan 4 2016 control01.ctl.bak -rw-r-----. 1 500 500 104865792 Apr 24 15:20 example01.dbf -rw-r-----. 1 500 500 52429312 Apr 24 15:20 redo01.log -rw-r-----. 1 500 500 52429312 Apr 24 15:20 redo02.log -rw-r-----. 1 500 500 52429312 Apr 24 15:20 redo03.log -rw-r-----. 1 500 500 534781952 Apr 24 15:20 sysaux01.dbf -rw-r-----. 1 500 500 713039872 Apr 24 15:20 system01.dbf -rw-r-----. 1 500 500 30416896 Jan 4 2016 temp01.dbf -rw-r-----. 1 500 500 99622912 Apr 24 15:20 undotbs01.dbf -rw-r-----. 1 500 500 5251072 Apr 24 15:20 users01.dbf8. 修改导出文件归属者
并且把 helowin 目录所有者赋予 500,因为500是容器内 oracle 组合用户的 id
chown 500.500 -R /data/oracle/helowin9. 删除容器
docker rm -f oracle11g10. 新建容器(配置挂载卷)
docker run -d -p 1521:1521 --name oracle11g --restart=always -v /data/oracle/helowin:/home/oracle/app/oracle/oradata/helowin registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g11. 进入容器再配置
需要进入容器里删除新生成的版本控制文件,将数据卷中的版本控制文件复制为新生成的版本控制文件
[root@Mike-node1 ~]# docker exec -it oracle11g bash [oracle@1cab53ad073d /]$ cd /home/oracle/ [oracle@1cab53ad073d ~]$ source .bash_profile [oracle@1cab53ad073d ~]$ rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl [oracle@1cab53ad073d ~]$ cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl [oracle@1cab53ad073d ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 18 13:36:42 2020 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> shutdown immediate ORA-01507: database not mounted ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 1603411968 bytes Fixed Size 2213776 bytes Variable Size 402655344 bytes Database Buffers 1191182336 bytes Redo Buffers 7360512 bytes Database mounted. Database opened. SQL>
再次使用 Navicat 连接 Oracle,使用刚刚的用户看是否可以连接
12 参考[1]. Docker安装Oracle11g
[2]. docker 部署oracle
[3]. 在Docker中对Oracle进行容器化部署,看这一篇就够了!
[4]. 使用docker快速安装oracle
[5]. 使用docker快速安装oracle



