前言
MySQL和Oracle是开发中常用到的两个「关系型数据库管理系统」,接上一期内容,这一期在Docker中完成oracle-12c的安装和配置。
安装Oracle-12c
1.拉取Oracle-12c镜像
启动「Docker Desktop」后在cmd窗口中执行docker search oracle命令,搜索Oracle相关的镜像,可以看到搜索结果中的「truevoly/oracle-12c」

# 拉取镜像(默认下载oracle-12c最新版本的镜像) docker pull truevoly/oracle-12c
|

2.创建并启动容器
cmd中执行以下命令,在docker中创建并启动一个oracle-12c容器,「对物理机暴露2122、9090和1521三个端口分别映射到容器内的22、8080和1521端口」,并且将容器内的oracle目录「挂载」到物理机的D盘中
docker run -d -p 2122:22 -p 9090:8080 -p 1521:1521 -v /var/app/oracle:/u01/app/oracle/ --name oracle-12c truevoly/oracle-12c
|

查看容器启动日志(看到「Import finished Database ready to use. Enjoy!」 即容器创建并启动完成)
# 查看oracle-12c启动日志 docker logs -f oracle-12c
|

3.修改oracle账号密码设置
truevoly/oracle-12c镜像创建的容器「默认有sys和system两个用户,密码都是oracle,默认的一个SID/服务名是xe」,Oracle的用户密码默认有效期是180天,180天后用户会自动锁住,下面进入oracle-12c容器内将密码的有效期设置为永久!
# 进入oracle-12c容器内 docker exec -it oracle-12c /bin/bash # 切换成oracle用户 su oracle # 进入sqlplus $ORACLE_HOME/bin/sqlplus / as sysdba # 设置密码有效期为无限制 SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; # 解锁system用户 SQL> alter user SYSTEM account unlock;
|
Oracle创建表空间与用户
以下创建一个ling_mf3数据表空间
-- 创建ling_mf3数据表空间 create tablespace ling_mf3 datafile '/u01/app/oracle/oradata/ling_mf3.dbf' size 50M;
|

以下创建一个用户ling并授权,且设置ling_mf3为它的默认表空间
重启Oracle服务
在「Docker Desktop」中可以一键重启,但实际开发中一般是在Linux环境中,我这里演示用命令重启Oracle服务
-- 查看监听状态 lsnrctl status -- 停监听 lsnrctl stop sqlplus / as sysdba -- 停止oracle SQL>shutdown immediate; -- 启服务 SQL>startup; SQL>exit -- 启监听 lsnrctl start
|
更多常用...
-- 删除表空间 drop tablespace ling_mf3;
-- 查询所有的表空间 select tablespace_name from dba_tablespaces;
-- 查看当前的用户和表空间 select username,default_tablespace from user_users;
-- 查看当前用户的角色 select * from user_role_privs; -- 查询实例名/SID/服务名 select instance_name from v$instance;
|
-- 查看Oracle版本 select * from v$version;
-- 查看数据库允许的最大连接数 select value from v$parameter where name = 'processes';
-- 查看当前连接数 select count(*) from v$process;
-- 查看数据库当前会话的连接数 select count(*) from v$session;
-- 查看数据库当前的并发连接数 select count(*) from v$session where status = 'ACTIVE';
|