Docker 安装 oracle

1、下载 oracle image

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

   

2、安装 oracle (这里没有配置自动启动容器 和 文件映射)

docker run -d –p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

   

3、启动容器

docker start oracle11g

   

   

4、配置 oracle

docker exec -it oracle11g bash

   

   

5、切换oracle数据库的root用户下,密码helowin

su root

   

6、修改profile的配置文件,打开profile文件,在末尾添加配置。

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

   

7、刷新文件

source /etc/profile

   

8、创建软连接

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

   

9、切换oracle环境

su - oracle

   

10、登录sqlplus,修改sys、system用户密码,创建用户

//登录

sqlplus /nolog

   

//连接

conn /as sysdba

   

//修改密码

alter user system identified by system;

alter user sys identified by sys;

   

//创建用户

create user dev identified by dev;

//并给用户赋予权限

grant connect,resource,dba to dev;

   

11、使用navcat连接oracle , 注意 服务名/SID 选项,username && password 都是 dev

   

Ps:

可以简单的这样理解:一个公司比喻成一台服务器,数据库是这个公司中的一个部门。

1.SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字,

就好像一个部门里,每个人都有一个自己的名字。

2.SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,

你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,

看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。

   

   

一句话来说就是:SID是对内的,是实例级别的一个名字,用来内部之间称呼用。SERVICE_name是对外的,

是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。

你可以通过service_name参数指定这个名字是什么,可以有多个名字,名字随便起,叫狗蛋,翠花都没关系。

如果你不指定,默认的是Db_name. Db_domain,也就是global_name。

数据库里,还有ORACLE_SID,是告诉OS系统,我这个实例叫做什么。

posted @ 2020-11-21 15:35  黑质白章  阅读(9293)  评论(9编辑  收藏  举报