我們從上面可以看出:
需要
1.oracle client客戶端(這兒使用,oracle instance client ,簡單)
2.odbc驅動 oracle instance client默認就有
3.linux下需要安裝Linux oracle 服務器
4.兩個配置文件tnsnames.ora,listener.ora
tnsnames.ora ====》客戶端連接服務器配置文件
listener.ora ===》服務器偵聽服務配置
linux oracle服務器 listener.ora:
[oracle@localhost admin]$ pwd /home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin
首先安裝Linux 下的oracle,可以看這個https://www.cnblogs.com/bwbfight/p/9621218.html
安裝好后Linux 下需要做的事
1 oracle虛擬機需要固定IP,才能被外面的客戶端連接上來
Root登陸linux機器
系統/首選項/網絡連接
重啟系統
2 oracle用戶啟動oracle服務器
3 在linux環境中,用sqlplus工具訪問oracle服務
在oracle用戶下,用sqlplus訪問oracle服務
必須用scott/aa @orcl這種形成訪問成功,則后台服務器程序才能訪問成功
在非oracle用戶下(比如在test03),用sqlplus訪問oracle服務
必須用scott/aa@orcl這種形成訪問成功,則后台服務器程序才能訪問成功
chmod 777 /home/oracle_11/app -R (root用戶) 修改oracle家目錄權限
同時配置.bash_profile
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs umask 022 ORACLE_BASE=/home/oracle_11/app ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1 ORACLE_SID=orcl PATH=$PATH:./:$HOME/bin:$ORACLE_HOME/bin LD_LIBRARY_PATH=./lib:$HOME/lib:/usr/lib:$ORACLE_HOME/lib #LANG=C export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG
根據自己環境修改
ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
4 在win環境中,用sqlplus工具訪問linux環境下的oracle服務( 192.168.43.252為linux服務器ip)
1 Ping 192.168.43.252
2 telnet 192.168.43.252 1521 防火牆沒有把端口給封住
//防火牆 linux服務器 1521 端口 放開
linux下: ufw disable
接着Linux開啟oracle服務並監聽:
1. 啟動oracle服務 (啟動oracle服務器 必須使用oracle用戶)-
啟動oracle服務 (啟動oracle服務器 必須使用oracle用戶)- [oracle@localhost ~]$ sqlplus /nolog SQL> connect /as sysdba Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 780824576 bytes Fixed Size 2217424 bytes Variable Size 599788080 bytes Database Buffers 176160768 bytes Redo Buffers 2658304 bytes Database mounted. Database opened.
2.啟動監聽服務器
[oracle@localhost ~]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 31-JAN-2016 06:12:24 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /home/oracle_11/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin/listener.ora Log messages written to /home/oracle_11/app/diag/tnslsnr/localhost/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
注意:
ok... Linux下的事情干完了,
接着windows下接着干活
1. oracle instance client 安裝:https://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html(注意是32位還是64位,不然不工作了)
2.解壓后放到固定目錄:
我的是放到e盤:E:\oracle_client\instantclient_18_3
配置
Win機器的tnsnames.ora,新建tnsnames.ora放到E:\oracle_client\instantclient_18_3下
內容如下
# tnsnames.ora Network Configuration File: E:\oracle_client\instantclient_18_3 SECMNGADEMIN = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.32.253)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
HOST:服務器IP地址
PORT:oracle端口號
SERVICE_NAME:oracle數據庫上的實例名稱(安裝時如果沒有指定一般為orcl)
配置windows環境變量
TNS_ADMIN =E:\oracle_client\instantclient_18_3
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
說明:TNS_ADMIN,是指tnsnames.ora文件所在的目錄名。
如果指定到客戶端目錄,則必須把tnsnames.ora文件復制過來才可以
設置ORACLE_HOME環境變量
ORACLE_HOME=E:\oracle_client\instantclient_18_3
Path后面加一個;E:\oracle_client\instantclient_18_3
在windows cmd測試
sqlplus scott/tiger@orcl (tiger為密碼),如果能夠執行,說明配置正確
可能會報錯
oracle的12154錯誤排查
分別在linux 下和windows下輸入:sqlplus scott/aa@orcl
1 .linux 下用test03(其他用戶)不能訪問oracle問題排查
2. windows下cmd訪問出現如下
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
ORA-12154 11.2.0.1.0 ORA-12154
2 解決方法
[oracle@localhost admin]$ pwd
/home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin
[oracle@localhost admin]$ ls
看看
listener.ora ===》服務器偵聽服務配置
shrept.lst
tnsnames.ora ====》客戶端連接服務器配置文件 wbm01客戶使用這個文件連接服務
要保證wbm01用戶能訪問這個目錄:ADR_BASE = /home/oracle_11/app
3 解決步驟
====> 然后切換用戶 [wbm01@localhost app]$ cd /home/oracle_11/app [wbm01@localhost app]$ pwd /home/oracle_11/app [wbm01@localhost app]$ ls admin cfgtoollogs checkpoints diag flash_recovery_area oracle oradata oradiag_oracle [wbm01@localhost app]$ cd admin/ -bash: cd: admin/: 權限不夠
解決如下:
root用
chomd 775 /home/oracle_11/app (家目錄)
windows下繼續
然后配置plsql或者navicat
我用的navicat,工具-》選項
然后就可以連接數據庫了
ok...成功
現在來配置 oracle odbc
oracle instance client 里面 安裝路徑E:\oracle_client\instantclient_18_3默認就有
如果沒有請下載 1. oracle instance client 安裝:https://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html(注意是32位還是64位,不然不工作了)
就可以了!
一定要分請你是32位還是64位,如果不行請自行換成相應位數(win7 32/64都支持)
如果你是64位系統這個數據源ODBC
需要運行C:\Windows\SysWOW64文件夾下的
或者控制面板-》管理工具-》數據源odbc-》添加
Data Source Name ,descript隨便寫
TNS service name:需要和tnsnames.ora配置的名字一樣
userid:數據庫名字(如scott等)
點擊 test connection ,彈出成功連接即可!
ok........
搞定,bye 了個bye.... 忒麻煩了.....