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系统,我这个实例叫做什么。