使用docker安裝oracle11g數據庫,並通過navicat遠程連接


簡介

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

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

          export PATH=$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

在這里插入圖片描述

  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)  
    )
  )

在這里插入圖片描述

這里需要注意的是,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  停止網絡

在這里插入圖片描述
這里的helowin和helowinXDB就是啟動中的服務名,需要放在tnsnames.ora中SERVICE_NAME ,這里為保持一致,選擇helowin

一切配置好之后,執行lsnrctl reload 重啟網絡

 8、navicat測試連接

         需要注意幾點:

         主機ip地址是個人服務器的ip地址,端口是服務器的端口號,該端口號自動映射到oracle數據庫的1521端口(docker已經設好)

         服務名是helowin而不是默認的ORAL

        用戶名和密碼就是在oracle新建數據庫的賬號密碼,這里是system:system

 

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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM