博客转载https://blog.csdn.net/qq_38380025/article/details/80647620,https://blog.csdn.net/qq_27039845/article/details/84947345  侵删

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

①、开始拉取镜像-执行命令:

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

下载完成后 查看镜像: docker images

docker的安装和docket拉取Oracle 随笔 第1张

可以看到已经下载好了

② 、创建容器

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

这里说一下,命令后面的地址一定要是你下载的镜像地址也就是你拉取镜像名字,否则会出现名字已存在等问题!

如果创建成功能会返回容器id

③、启动容器

docker start oracle11g

docker的安装和docket拉取Oracle 随笔 第2张

④、进入镜像进行配置

1、 docker exec -it oracle11g bash

docker的安装和docket拉取Oracle 随笔 第3张

 

2、进行软连接

sqlplus /nolog

docker的安装和docket拉取Oracle 随笔 第4张

发现没有这个命令,用不了

3、切换到root 用户下

su root

密码:helowin

docker的安装和docket拉取Oracle 随笔 第5张

 

4、编辑profile文件配置ORACLE环境变量

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2

export ORACLE_SID=helowin

export PATH=$ORACLE_HOME/bin:$PATH
docker的安装和docket拉取Oracle 随笔 第6张

在最后加上

docker的安装和docket拉取Oracle 随笔 第7张

保存并退出 :wq

5、创建软连接

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

6、切换到oracle 用户

这里还要说一下,一定要写中间的内条 - 必须要,否则软连接无效

docker的安装和docket拉取Oracle 随笔 第8张

⑤ 、登录sqlplus并修改sys、system用户密码

sqlplus /nolog

conn /as sysdba

docker的安装和docket拉取Oracle 随笔 第9张

 

接着执行下面命令

alter user system identified by system;

alter user sys identified by sys;

也可以创建用户 create user test identified by test;

并给用户赋予权限 grant connect,resource,dba to test;

注意了这里的坑开始出现了
当执行修改密码的时候出现 : database not open

提示数据库没有打开,不急按如下操作

输入:alter database open;

注意了:这里也许还会提示 : ORA-01507: database not mounted

不急!继续!

docker的安装和docket拉取Oracle 随笔 第10张 =========== 解决方法=========== 输入: alter database mount;

输入 alter database open;

docker的安装和docket拉取Oracle 随笔 第11张

然后就可执行 修改数据库密码的命令了

改完之后输入:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

刷新下表

exit 是退休sql 软连接

docker的安装和docket拉取Oracle 随笔 第12张

⑥、使用pl/sql 进行连接

之前我们把端口映射到了1521上,所以我们需要进行配置 tnsnames.ora

docker_oracle11 =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = orcl)
   )
)

打开pl/sql 进行登录 :提示监听程序当前无法识别连接描述符中请求的服务

docker的安装和docket拉取Oracle 随笔 第13张

docker的安装和docket拉取Oracle 随笔 第14张

这时我们需要去看一下oracle 的 lsnrctl 服务

docker的安装和docket拉取Oracle 随笔 第15张

看到这两个了么,任选其一,修改 tnsnames.ora的 service_name=helowinXDB   

docker_oracle11 =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.135)(PORT =1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = helowinXDB)
   )
)

欧克,登录成功。

navicate 连接已经拉取的Oracle

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

docker的安装和docket拉取Oracle 随笔 第16张

(3)启动容器

docker start oracle11g

docker的安装和docket拉取Oracle 随笔 第17张

(4)进入镜像配置

docker exec -it oralce11g(这个地方可以是容器名也可以是容器id)

docker的安装和docket拉取Oracle 随笔 第18张

 

(5)创建软连接sqlplus /nolog,此时是无效的 command not found

docker的安装和docket拉取Oracle 随笔 第19张

(6)先切换到root用户去解决软连接的问题

切换root用户,并编辑profile文件

docker的安装和docket拉取Oracle 随笔 第20张

 

[root@a8a161b66e1d /]# 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

 

docker的安装和docket拉取Oracle 随笔 第21张

这是才真正创建l软连接

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

su - oracle

docker的安装和docket拉取Oracle 随笔 第22张

conn sys/ as sysdba;

docker的安装和docket拉取Oracle 随笔 第23张

 

alter user sys identified by sys;

alter user system identified by system;

创建用户

create user dlsys identified by dlsys;

赋予权限

grant connect,resource,dba to dlsys;

docker的安装和docket拉取Oracle 随笔 第24张

(5)配置listener.ora以及 tnsnames.ora

进入oracle用户的家目录

输入 lsnrctl status查看监听状态

docker的安装和docket拉取Oracle 随笔 第25张

cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin

目录下有两个文件listener.ora以及 tnsnames.ora

用vi编辑这两个文件修改host为自己的ip

docker的安装和docket拉取Oracle 随笔 第26张

至此就可以用客户端连接oracle了

docker的安装和docket拉取Oracle 随笔 第27张

 

 

接下来讲下怎么导入dmp数据到oracle库中

(6)将dmp文件上传到容器中

docker cp syszdb.DMP 容器id:/home/oracle/(注意syszdb.DMP文件放在dockertoolbox的安装目录下)

docker的安装和docket拉取Oracle 随笔 第28张

(7)创建一个逻辑目录并赋予去权限(导入命令的时候需要用到)

docker的安装和docket拉取Oracle 随笔 第29张

查看刚才创建的目录

docker的安装和docket拉取Oracle 随笔 第30张

(7)创建表空间及用户

CREATE TABLESPACE "DLGIS"

LOGGING

DATAFILE '/home/oracle/app/oracle/oradata/helowin/DLGIS.ORA' SIZE 400M

REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

 

ALTER DATABASE

DATAFILE '/home/oracle/app/oracle/oradata/helowin/DLGIS.ORA' AUTOEXTEND

ON NEXT 10M MAXSIZE UNLIMITED;

docker的安装和docket拉取Oracle 随笔 第31张

表空间及用户名创建完后就可以返回到oracle用户的家目录

(oracle用户的家目录可以通过su root输入密码helowin后切换oracle用户su - oracle)

(8)最后输入导入命令:(针对expdp的导出命令)

impdp dlsys/dlsys@helowin directory=dir_dump dumpfile=syszdb.dmp

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄