ORACLE服務端和客戶端的典型配置

連通ORACLE

oracle服務端和客戶端的典型配置

 

 

 

 

 

 

劉禕洋

2012.4.12


連通ORACLE

Linux服務端配置

Linux安裝數據庫後,需要配置和啓用監聽器。

配置監聽器

配置全局數據庫和監聽端口1521(端口可選),數據庫默認安裝netca,可以通過執行命令

#netca

按照嚮導提示完成配置,netca是一個GUI工具,需要linux安裝支持GUI工具和JDK環境;

也可以通過新增或修改$oracle_home/network/admin/listener.ora達到同樣目的。

 

執行步驟:

#export oracle_home=/安裝路徑/app/oracle/product/11R2/dbhome_1

#vi $oracle_home/network/admin/listener.ora

新建或替換下面內容。

 

配置典型配置格式如下:

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /home/oracle/app/oracle/product/11R2/dbhome_1)

      (PROGRAM = extproc)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = orcl)

      (ORACLE_HOME = /home/oracle/app/oracle/product/11R2/dbhome_1)

      (SID_NAME = orcl)

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS_LIST=

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

      )

     (ADDRESS_LIST=

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.120.24)(PORT = 1521))

    )

   )

  )

l         GLOBAL_DBNAME爲安裝全局數據庫的名稱

l         SID_NAME爲安裝全局數據庫的ID名稱,默認與GLOBAL_DBNAME

l         HOST 爲監聽主機,可以爲Ip或機器名稱hostname

l         PORT爲監聽端口,默認爲1521

 

 

測試配置

使用監聽器命令lsnrctl來啓用、關閉和查看監聽

Ø        執行命令 lsnrctl stop 關閉監聽

Ø        執行命令 lsnrctl start 啓用監聽

Ø        執行命令 lsnrctl status 查看狀態

如果成功則爲The command completed successfully。如果不成功,則說明listener.ora文件配置有誤。

 

測試是否可以登錄數據庫

#sqlplus

>orcl

>orcl

如果要測試sqlplus 用戶/密碼@服務名方式登錄,請參考LINUX客戶端配置

 

 

常見錯誤

配置不正確導致的常見錯誤,請重新修改配置文件。

ORA-12514:listener does not currently know of service requested in connect

ORA-27101: shared memory realm does not exist

ORA-12541 TNS no listener

 

 

其他常見錯誤

ORA-12560: TNS: 協議適配器錯誤

答:在客戶端執行命令telnet ip 1521,檢查是否可以通,如不通請檢查網關或包防火牆配置。

 

 

如果曾經安裝過oracle服務端或客戶端,此時報錯

請檢查環境變量是否配置正確,嘗試配置或修改環境變量TNS_ADMINORACLE_HOME, PATH 中的oracle路徑爲當前的oracle路徑,具體請參照官方oracle環境變量配置。


連通ORACLE

Linux客戶端配置

Linux客戶端要連接到數據庫,通常需要配置tnsnames.ora內容:

配置TNS本地網絡服務名稱

配置TNS本地網絡服務名稱和端口1521(端口可選),數據庫端默認安裝netcanetca是一個GUIOracle net service工具,需要linux安裝支持GUI工具和JDK環境;輸入命令

#netca

按照嚮導提示完成配置本地網絡服務名稱。

如果無netca,也可以通過新增或修改$oracle_home/network/admin/tnsnames.ora完成同樣配置。

 

執行步驟:

#export oracle_home=/安裝路徑/app/oracle/product/11R2/dbhome_1

#vi $oracle_home/network/admin/tnsnames.ora

如無目錄則建立目錄 network/admin

增加下面內容。

 

配置典型配置格式如下:

orclalias=

(DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.120.24)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

    )

)

l         orclalias =tns連接的服務名稱。

l         HOST 爲監聽主機,可以爲Ip或機器名稱hostname

l         PORT爲監聽端口,默認爲1521

l         SERVICE_NAME = orcl爲服務器的數據庫名稱

 

測試配置

測試是否可以登錄數據庫

#sqlplus orcl/orcl@orclalias

如果顯示連接到..,並進入sql,則說明配置成功。

 

測試配置。

查看連通狀態,可使用命令:

#tnsping orclalias

 

 

常見錯誤

Tns無法解析錯誤

 答:檢查host,port,servername是否配對。

 

其他錯誤

  答:服務端沒有啓用監聽器其端口,或者監聽器配置錯誤。


連通ORACLE

windows服務端配置

 

Windows安裝數據庫後,需要配置和啓動監聽器。

配置監聽器

配置全局數據庫和監聽端口1521(端口可選),打開開始菜單,在oracle菜單中選擇net configuration assistant或在命令提示窗口下輸入命令netca來配置監聽器,可以通過執行命令

#netca

圖表 1 netca

圖表 2 開始菜單

圖表 3 管理監聽程序配置

 

按照嚮導提示完成配置,netca需要配置JDK環境;

也可以通過新增或修改%oracle_home%/network/admin/listener.ora完成同樣配置。

 

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = CLRExtProc)

      (ORACLE_HOME = F:\app\oracle\product\11.2.0\dbhome_1)

      (PROGRAM = extproc)

      (ENVS = "EXTPROC_DLLS=ONLY:F:\app\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = RD-LIUYY.ssc.net.cn)(PORT = 1521))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

 

ADR_BASE_LISTENER = F:\app\oracle

 

l         LISTENER部分包含協議地址列表,每個實例一個入口

l         SID_LIST_LISTENER部分標識全局數據庫名稱、標識監聽程序正在服務的每個實例的Oracle軟件主目錄以及實例或SID

l         SID_LIST描述用於靜態數據庫註冊、保持和以前的版本兼容性以及供Oracle Enterprise Manager使用。

l         HOST 爲監聽主機,可以爲Ip或機器名稱hostname

l         PORT爲監聽端口,默認爲1521

 

 

測試配置

 

使用監聽器命令lsnrctl來啓用、關閉和查看監聽

Ø        D:/> lsnrctl stop 關閉監聽

Ø        D:/> lsnrctl start 啓用監聽

Ø        D:/> lsnrctl status 查看狀態

如果成功則爲The command completed successfully。如果不成功,則說明listener.ora文件配置有誤。

 

或在開始菜單cmd中,輸入命令services.msc,找到oracleTNSListener,來啓用、關閉和查看監聽

或在F:\app\oracle\product\11.2.0\dbhome_1\BIN點擊LSNRCTL.EXE,通過程序啓用監聽器

 

測試是否可以登錄數據庫

#sqlplus

>orcl

>orcl

如果要測試sqlplus 用戶/密碼@服務名方式登錄,請參考WINDOWS客戶端配置

 

常見錯誤

配置不正確導致錯誤,重新配置監聽器:

ORA-12514:listener does not currently know of service requested in connect

ORA-27101: shared memory realm does not exist

ORA-12541 TNS no listener

 

 

如果曾經安裝過oracle服務端或客戶端,報錯。

請檢查環境變量是否配置正確,嘗試配置或修改環境變量TNS_ADMINORACLE_HOME, PATH 中的oracle路徑爲當前的oracle路徑,具體請參照官方oracle環境變量配置。

並在註冊表中,通過查找原數據庫目錄,並替換爲當前數據庫路徑。

 

如果仍然不行,請刪除TNS_ADMINORACLE_HOME環境變量,重新配置全局數據庫Database Configuration Assistant,並重新指定ORACLE_HOME等值。


連通ORACLE

windows客戶端配置

配置TNS本地網絡服務名稱

配置TNS本地網絡服務名稱和端口1521(端口可選),數據庫端默認安裝netcanetca是一個GUIOracle net service工具,需要JDK環境;輸入命令

#netca

圖表 4 本地網絡服務名

按照嚮導提示完成配置本地網絡服務名稱。

如果無netca,也可以通過新增或修改%oracle_home%/network/admin/tnsnames.ora完成同樣配置。

 

ORACLR_CONNECTION_DATA =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

    (CONNECT_DATA =

      (SID = CLRExtProc)

      (PRESENTATION = RO)

    )

  )

 

ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.50.12)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

    )

  )

 

配置Instant client 客戶端組件

Instant clientOracle提供的一個簡易客戶端組件接口,它的特點是精簡、解壓後無需安裝,它沒有圖形化界面,也不提供交互式命令訪問,需要另行下載Instant client sqlplus並放入該目錄中,或者安裝PL/SQL客戶端,配置訪問其組件,有時還需要配置環境變量。

進入目錄instantclient-basic-nt-11.2.0.2.0後,創建目錄network/admin

network/admin/中新增文件tnsnames.ora

根據需要配置本地網絡服務名稱如下:

 

 

ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.50.12)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

    )

  )

..

 

爲了使用方便,可配置系統環境變量,打開環境變量窗口,

新建系統環境變量

oracle_home(可選)

根據具體安裝路徑,設置其值爲

D:/instantclient-basic-nt-11.2.0.2.0/instantclient_11_2

 

修改path環境變量(可選)

根據具體安裝路徑,新增一個值並加;

D:/instantclient-basic-nt-11.2.0.2.0/instantclient_11_2;

 

配置PL/SQL

打開PL/SQL,點擊取消,進入不登陸狀態,在工具欄上點擊Tools->Preference,點擊左邊列表connection,找到oracle_home,如果配置了環境變量oracle_home,則可以留空,否則配置oracle_homeD:/instantclient-basic-nt-11.2.0.2.0/instantclient_11_2,找到OCI library,配置爲D:\instantclient-basic-nt-11.2.0.2.0\instantclient_11_2\oci.dll,點擊ok,重啓PL/SQL,在登錄窗口中選擇配置的database名稱,輸入用戶名和密碼及角色後即可成功連接。

 

 

windows環境變量中定義了“NLS_DATE_FORMAT =YYYY/MM/DD HH24:MI:SS”後,查詢語句就可以直接寫爲:

select * from tab1 where operdate='2011/08/26'

 

 

 

測試配置

如果安裝splplus

在命令行模式下輸入格式爲sqlplus 用戶/密碼@服務名,進行測試

D:> sqlplus orcl/orcl@ORCL

 

如果安裝pl/sql,可直接打開pl/sql登錄。

 

常見錯誤

Sqlplus 不是命令。

答:請將下載的instantclient-sqlplus-nt-11.2.0.2.0.zip解壓後放入instantclient-basic-nt-11.2.0.2.0.zip解壓後的目錄,並設置PATH路徑爲instantclient-basic-nt-11.2.0.2.0.zip解壓後的目錄。

 

Tns無法解析錯誤

答:檢查host,port,servername是否配對。

 

其他錯誤

答:服務端沒有啓用監聽器其端口,或者監聽器配置錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章