1. 程式人生 > >Docker 拉取 oracle 11g映象配置

Docker 拉取 oracle 11g映象配置

話不多說,開始記錄docker拉取阿里的oracle11g 映象並進行配置,用pl/sql 可以登入為最終結果

這是我們所需要進行拉取oracle映象的樓主所給出的說明

但是根據這個進行配置會有一些問題,所以寫這篇記錄一下,希望可以幫助其他人

開始:

 ①、開始拉取映象-執行命令:

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

        下載的過程少長,等待吧,喝杯咖啡,休息一會!(映象6.8G)

        下載完成後 檢視映象: docker images


    可以看到已經下載好了

② 、建立容器

        docker run -d -p 

1521:1521 --name oracle11gregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

        這裡說一下,命令後面的地址一定要是你下載的映象地址也就是你拉取映象名字,否則會出現名字已存在等問題!

        如果建立成功能會返回容器id

③、啟動容器 

        docker start oracle11g

        

④、進入映象進行配置

     1、 docker exec -it oracle11g bash

          

     2、進行軟連線

            sqlplus /nolog

    


    發現沒有這個命令,用不了

     3、切換到root 使用者下

            su root

            密碼:helowin

        

      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
        

        在最後加上

        

            儲存並退出  :wq

       5、建立軟連線

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

        6、切換到oracle 使用者

              這裡還要說一下,一定要寫中間的內條 -   必須要,否則軟連線無效

            

 ⑤ 、登入sqlplus並修改sys、system使用者密碼

        sqlplus /nolog

        conn /as sysdba

   

        接著執行下面命令

        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

      不急!繼續!

              =========== 解決方法===========   輸入:alter database mount;

輸入 alter database open;

       

      然後就可執行 修改資料庫密碼的命令了

      改完之後輸入:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

      重新整理下表 

        exit  是退休sql 軟連線

    

⑥、使用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 進行登入 :提示監聽程式當前無法識別連線描述符中請求的服務

            

                

        這時我們需要去看一下oracle 的 lsnrctl 服務

        

        看到這兩個了麼,任選其一,修改 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)
   )
)

     歐克,登入成功。