前言

近期工作需要,数据库换成了oracle,而我自己没有私有化的oracle数据库,为了之后工作的方便,决定私人部署一个oracle数据库。

为了方便,还是使用的docker方式部署在nas上面了,看了看docker hub,oracle的镜像全部是6年前的,我这边直接选择了第一个镜像truevoly/oracle-12c

好了,下面正式开始

安装部署

我这边直接使用docker命令下载并启动镜像,下面是命令:

# docker命令
docker run -d -p 1521:1521 --name oracle truevoly/oracle-12c
# 验证是否启动

配置

为了使用自带的SqlPlus,需要添加一下环境变量,有两种办法,

  • 进入docker容器内部,直接修改文件

  • 将文件从docker容器中复制出来,修改后,在拷贝进去

docker内修改文件

进入docker容器内部才行,下面是进入的命令:

docker exec -it 773382d440e8 /bin/bash

注意,代码中的773382d440e8是容器ID,需要改成自己的

进入之后通过vim编辑/etc/profile文件

vi /etc/profile

在文件的末尾添加三行:

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=huangge1199
export PATH=$ORACLE_HOME/bin:$PATH

复制docker容器

从docker容器中拷贝文件到当前目录:

docker cp 773382d440e8:/etc/profile .

注意,代码中的773382d440e8是容器ID,需要改成自己的

本地修改文件

从本地将文件拷贝回docker容器:

docker cp profile 773382d440e8:/etc/profile

注意,代码中的773382d440e8是容器ID,需要改成自己的

修改管理密码

上一步已经配置好了,现在就可以使用自带的SqlPlus了。

首先先进入docker容器:

docker exec -it 773382d440e8 /bin/bash

切换用户:

su oracle

进入`SQL*Plus``:

$ORACLE_HOME/bin/sqlplus / as sysdba

修改system和sys的密码:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
alter user SYSTEM account unlock;
alter user system identified by huangge1199;
alter user sys identified by huangge1199;

DataGrip测试连接

DG连接需要一个SID,接着在上一步的SQL里面查询下:

select name from v$database;

接下来就是DG的连接设置了: