溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在docker中怎么配置Oracle11g

發(fā)布時間:2023-05-09 16:07:16 來源:億速云 閱讀:93 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“在docker中怎么配置Oracle11g”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“在docker中怎么配置Oracle11g”文章能幫助大家解決問題。

docker鏡像拉取及相關(guān)配置

1.在docker打開的情況下,使用下方命令拉去鏡像,大概需要下載3個G的image文件

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

2.啟動Oracle鏡像并為鏡像新建容器,注意此處的oracle11g即為容器名,可以自主設(shè)置

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

由于在windows10專業(yè)版系統(tǒng)的docker是使用wsl作為容器內(nèi)核,所以存在著一系列的內(nèi)存,CPU以及交換空間的一些限制,我們可以在一個

.wslconfig文件中配置如上信息。若是在運行上語句的時候發(fā)現(xiàn)容器并沒有正常運行,而是以一個139的錯誤代碼退出,則說明我們的wsl的一部分限制導(dǎo)致了此容器不能正常運行。此時,我們可以在C:\Users\username路徑下新建一個.wslconfig文件,并寫入如下內(nèi)容(若是文件已存在則直接添加即可)

[wsl2]
kernelCommandLine = vsyscall=emulate

3.打開容器命令如下(針對上一步?jīng)]有正常打開容器)

docker start oracle11g

4.進(jìn)入已打開容器命令如下

docker exec -it oracle11g bash

5.進(jìn)行環(huán)境變量的配置

使用管理員賬戶密碼為helowin

su root

編輯profile環(huán)境變量文件

vi /etc/profile

點擊i進(jìn)入文件編輯模式,在文件末尾添加如下信息,按ESC鍵退出編輯模式,鍵入:wq保存文件并退出文件

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

鍵入exit命令退出管理員賬號,回到oracle用戶

exit

使用如下命令使剛設(shè)置的環(huán)境變量生效

source /etc/profile

由于Oracle是基于實例和用戶的,所以我們可以新建一個用戶來完成我們當(dāng)前需要完成的工作

sqlplus /nolog #打開sqlplus但是不進(jìn)行連接操作
conn /as sysdba; #無用戶、密碼以最高權(quán)限登錄
alter user system identified by oracle; #更改system用戶密碼為oracle
conn system/oracle; #連接system數(shù)據(jù)庫
create user username identified by username; #創(chuàng)建一個新用戶,用戶名可自由設(shè)置
grant all privileges to username;#為新用戶賦權(quán)
shutdown immediate; #關(guān)閉當(dāng)前數(shù)據(jù)庫
exit; #退出sqlplus

6.設(shè)置oracle支持外部連接訪問

登錄管理員用戶,密碼為helowin

su root

使用如下命令獲得當(dāng)前主機名

hostname

獲得監(jiān)聽器listener.ora和tnsnames.ora文件的目錄

find / | grep /network/admin

使用獲得的路徑編輯文件,將文件中的localhost變量用我們查詢到的hostname名替代

vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora

此時,我們需要做的配置已經(jīng)全部做好了,之后只需要保持容器為運行的狀態(tài)即可。

使用Nacicat連接已經(jīng)配置好的數(shù)據(jù)庫

首先,我們需要到Instant Client for Microsoft Windows (x64) 64-bit (oracle.com)即Oracle的官網(wǎng)下載數(shù)據(jù)庫連接要用到的證書文件。(注意,我們需要下載與自己Oracle數(shù)據(jù)庫版本對應(yīng)的證書文件)

查詢數(shù)據(jù)庫的具體版本,需要在sqlplus中執(zhí)行如下命令

select * from v$version

為Navicat配置OCI環(huán)境,Navicat選擇工具--->選項--->環(huán)境--->OCI環(huán)境,選中我們解壓后的證書文件夾中的oci.dll文件即可。新建連接的時候的配置如下:

在docker中怎么配置Oracle11g

使用python連接Oracle數(shù)據(jù)庫

建議使用anoconda創(chuàng)建一個新的虛擬環(huán)境來進(jìn)行新的系統(tǒng)任務(wù)。

首先,使用如下命令下載需要進(jìn)行連接oracle數(shù)據(jù)庫的包cx_Oracle

pip install cx_Oracle

其后,我們需要創(chuàng)建一個.py文件,并在其中輸入如下代碼:

import cx_Oracle
conn = cx_Oracle.connect('賬號','密碼','數(shù)據(jù)IP:端口/數(shù)據(jù)庫實例名稱')
cusor = conn.cursor()
print('連接數(shù)據(jù)庫成功!')
print(cx_Oracle.__version__)

直接運行該代碼是行不通的,我們需要將必要的驅(qū)動文件放到與該文件同級目錄下,驅(qū)動文件在我們之前下載的證書文件壓縮包中已經(jīng)有了,我們需要移動的文件有oci.dll,ocijdbc11.dll,ociw32.dll,orannzsbb11.dll,oraocci11.dll,oraociei11.dll,orasql11.dll

配置好文件之后,我們運行代碼得到如下輸出即代表數(shù)據(jù)庫連接完成

連接數(shù)據(jù)庫成功!
8.3.0

關(guān)于“在docker中怎么配置Oracle11g”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI