简介

oracle数据库是甲骨文公司旗下的一款关系型数据库产品,提供完整的数据管理功能,相较于mysql、redis等轻量级数据库,oracle数据库显得有点笨重,但因其数据安全性强、稳定性强等优点,仍被很多企业公司所使用。这里是通过docker容器技术来安装oracle,并使用navicat测试连接的详细教程。

 

1、拉取 docker 镜像:

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

 

该镜像由阿里云提供,比较大,可能需要下载一会,等待下载即可。

2、查看 docker 镜像:

命令:docker images

然后运行镜像:docker run -d -p 1521:1521 --name oracle registry.aliyuncs.com/helowin/oracle_11g

docker连接pgsql docker连接外部oracle_环境变量

3、查看 docker 镜像:

命令:docker ps

启动orcle:docker start oracle (oracle也可以写成容器的id)

4、配置oracle:

第一步:进入容器

        首先需要进入到oracle容器中,使用命令:docker exec -it oracle bash

第二步:修改环境变量

        修改环境变量,切换到root:su root,密码是helowin,然后编辑文件vi /etc/profile,在文件尾部添加如下几行内容:

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

          export ORACLE_SID=helowin

$ORACLE_HOME/bin:$PATH

       注意:按i进入编辑模式,输入上述命令后,按ESC键退出编辑模式,再输入:wq保存退出

     第三步:使修改生效

         要记住export ORACLE_SID=helowin,helowin是naivcat登录的重要选项,

         加载环境变量

        source /home/oracle/.bash_profile

         最后使用指令source /etc/profile使环境变量立即生效

5、配置oracle system用户的账号和密码:

        使用sysdba 连接oracle

       命令:sqlplus /nolog

                  conn /as sysdba

       连接成功后,修改system用户的密码

       命令:alter user system identified by system;(修改密码为system)

alter user sys identified by sys;(修改密码为sys)

7、 配置oracle网络,实现远程访问连接

修改oracle配置,主要修改listener.ora和tnsnames.ora两个文件,首先我们需要进到这两个文件目录cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin,如果这个目录不对,我们可以通过这样查找find / | grep /network/admin,这样会返回所有匹配的目录路径,然后再选出我们的文件目录

  1. 使用vi listener.ora命令修改listener.ora,内容如下:
# listener.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  # localhost:1521
    )
  )
ADR_BASE_LISTENER = /home/oracle/app/oracle

docker连接pgsql docker连接外部oracle_环境变量_02

  1. 使用vi tnsnames.ora命令修改tnsnames.ora,内容如下:
# tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_HELOWIN =
  (ADDRESS = (PROTOCOL = TCP)(HOST = loaclhost)(PORT = 1521))

HELOWIN =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = helowin)  
    )
  )

docker连接pgsql docker连接外部oracle_docker_03

这里需要注意的是,HOST改为localhost,PORT改为1521,SERVICE_NAME设置为helowin,这个与前面2.2 节配置oracle数据库设置的export ORACLE_SID=helowin 相同。
当然也可以在oracle用户下通过命令lsnrctl status来查看服务是否被侦听,如果报错:lsnrctl command not found,则需要先su 密码是helowin后,再切换到su - oracle 即可,

1. lsnrctl status  查看网络状态
2. lsnrctl reload 重启网络
3. lsnrctl start  开启网络
4. lsnrctl stop  停止网络

docker连接pgsql docker连接外部oracle_docker_04


这里的helowin和helowinXDB就是启动中的服务名,需要放在tnsnames.ora中SERVICE_NAME ,这里为保持一致,选择helowin

一切配置好之后,执行lsnrctl reload 重启网络

 8、navicat测试连接

         需要注意几点:

         主机ip地址是个人服务器的ip地址,端口是服务器的端口号,该端口号自动映射到oracle数据库的1521端口(docker已经设好)

         服务名是helowin而不是默认的ORAL

        用户名和密码就是在oracle新建数据库的账号密码,这里是system:system

docker连接pgsql docker连接外部oracle_docker连接pgsql_05

 

9、使用navicat 远程创建表空间和用户

       创建表空间

    create tablespace ZJBPM

    datafile '/home/oracle/app/oracle/oradata/helowin/ZJBPM.dbf'

    size 400M autoextend on next 50M;

      创建用户

     create user zjbpm identified by  zjbpm default tablespace ZJBPM;

      给用户授权

     grant  dba  to zjbpm;

10、使用navicat再次连接docker的oracle数据库

   1,启动镜像

      docker run -d -p 1521:1521 --name oracle registry.aliyuncs.com/helowin/oracle_11g

   2.   启动容器

     docker start oracle

    运行进入容器docker exec -it oracle bash

    加载环境变量

    source /home/oracle/.bash_profile

    使用sysdba 连接oracle

    命令:sqlplus /nolog

               conn /as sysdba

    连接成功后,修改system用户的密码

    命令:alter user system identified by system;(修改密码为system)

小蘑菇