oracle錯誤小結

1.Oralce 默認的用戶爲:SYS,SYSTEM,scott,安裝時候要注意給他們解鎖設置密碼.

2.一般使用scott/tiger進入sqlplus或者isqlplus,因爲命令行提示符下可以使用方向鍵來回切換修改 比較方便所以一般使用命令行提示符,即使用sqlplus而不使用isqlplus

3.切換用戶使用 conn  sys/change_on_install as sysdba

 或者conn  system/manager as sysdba 

系統管理員登陸時紅色標記爲必須寫,否則無法登陸

 普通用戶 conn  scott/tiger

4.進入sqlplus後使用下面sql語句測試:

Select * from emp;

發現排版不正常使用:

Set linesize 150;每行顯示300字符

Set pagesize 30 ;每頁顯示30行

5.isqlplus或者sqlplus下使用ed命令

SQL>ed 文件名

將調用系統的文本處理工具,選擇保存,你可以在這裏編輯自己的sql語句,然後使用

SQL>@ 文件名 來執行剛纔編輯的sql腳本文件 如果文件爲*.sql可不輸入後綴.

還可以使用:
SQL>@ 絕對路徑+文件名來執行sql腳本文件.

同理如果是*.sql可不寫後綴名.

6.常見錯誤:

ORA-12541:TNS:沒有監聽器

$lsnrctl start 或者 C:lsnrctl start啓動服務

ORA-12500:TNS:監聽程序無法啓動專用服務器進程

對於windows而言,沒有啓動oracle實例服務,啓動實例服務:

C:oradim -startup -sid myoracle

ORA-12535:TNS:操作超時

出現這個問題原因很多,但是主要和網絡有關,解決辦法,檢查客戶端和服務端網絡是否通暢,如果網絡通暢檢查防火牆

ORA-12154:TNS: 無法處理服務名;

檢查輸入的服務名與配置的服務名是否一致.另外注意生成本地服務名文件

Windows 下在D:\oracle\product\10.2.0\db_xinyuan_xiaok\NETWORK\ADMIN\tnsnames.ora

Linux$ORACLE_HOME/netword/admin/tnsnames.ora裏沒項服務的首行不能有空格

ORA-12514:TNS:

 監聽進程不能解析在連接描述符合給出的SERVICE_NAME 打開Net Manager.選中服務名稱,檢查服務標識欄裏的用戶服務名輸入是否正確,該服務名必須與服務器端監聽配置的全局數據庫名一致

Windows 下啓動監聽服務提示找不到路徑

用命令或在服務窗口中啓動監聽提示找不到路徑,或者監聽服務器異常,打開註冊表進

HKEY_LOCAL_MACHINE/SYSTEM/Current/ControlSet/Service/OracleOraHome/TNSListener

察看ImagePath 字符項是否存在,如果沒有,設定值爲D:/……oracle/……/BIN/TNSLSNR,不同的安裝路徑設定值做相應的更改.這種方法適合oracle實例服務,同上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/services/Oracle ServiceMYORACLE,查看ImagePath 字符串項是否存在,如果沒有,新建設定值爲D:/……oracle/……/bin/ORACLE.EXE  MYORACLE.

 

Oracle連接相關錯誤解決步驟以及清單(部分缺少截圖,各位見諒)
1、        Ping
a)        網絡
b)        防火牆
2、        Tnsping
a)        Tnsping正確只是告訴你至少監聽是正常的。
b)        Tnsnames.ora配置問題
c)        Oracle環境變量(客戶端)
d)        Sqlnet.ora
3、        Sqlplus “/as sysdba”
a)        報無權限,檢查ORACLE_HOME,ORACLE_SID的設置,sqlnet.ora中的設置,用戶是否在ora_dba組中。
4、        sqlplus username/password@orcl
a)        服務器是否啓動
b)        監聽是否啓用
c)        Oracle服務器端連接
d)        查看服務器端的listener.log,sqlnet.log,確定客戶端是否已經到達監聽,如果沒有就是完全錯的,否則可能的oracle服務配置有問題。
5、        Sqlplus easy connect
a)        如果能連接就是oracle客戶端環境有問題,否則按照上述方式處理
6、        ORA-12518 TNS:監聽程序無法分發客戶機連接
遇到過的一個情況就是客戶端tnsnames.ora中的service_name在服務器端不存在,但是呢在listener.ora中呢又配置了到這個實例的偵聽引起的。如下所示,服務器上不存在名爲cjn的實例。


在一臺服務器上安裝了多個數據庫實例的時候,發生這種情況的概率大很多。
數據庫實例沒有啓動也是可能的。
7、        TNS-12519
ORA-12519: no appropriate service handler found
alter system set processes = 300 scope = spfile;
startup force
8、        ORA-12500
ORA-12500: TNS:listener failed to start a dedicated server process
客戶端tnsnames.ora中的service_name在服務器端不存在,但是呢在listener.ora中呢又配置了到這個實例的偵聽引起的。
9、        已使用 HOSTNAME 適配器來解析別名,TNS-12541: TNS: 無監聽程序
a)        檢查oracle_home是不是有多個,比如同時安裝了10g和11g
10、        ORA-12152: TNS:unable to send break message
用sql*plus連接即可。也有可能服務器那邊進程已經被kill幹掉了。
11、        TNS-12541:TNS: 無監聽程序
客戶端使用sqlplus usename/password@tns連接的時候報TNS-12541:TNS: 無監聽程序,而服務器上監聽是開着的,應該是客戶端tns配置有問題(如應該使用ip而非localhost),可以先使用easy connect測試一下
10、12560: 協議適配器錯誤
        一般是服務器沒有起來,嘗試sqlplus “/as sysdba”還是抱ora-12560。嘗試設置oracle_sid,oracle_home爲正確的值,再嘗試連接看看。在oracle 9i&8i中遇到這個錯誤還有一種可能就是sga設置的問題,看報錯的原因是sga太大,但實際上一定要調整到自動初始化的大小才能啓動oracle。當使用sysdba連接的時候會報”共享內存已存在”,但是無法正常shutdown(包括abort),這是因爲設置了Oracle通過服務自動啓動,但是環境變量中的oracle_sid又沒有被windows服務識別,導致sid有一塊sga一直被windows認爲已經在了,但是它的sid卻又不知道。因此會出現該問題。解決方法爲:將oracle改爲手工啓動,重啓windows服務器,然後通過sqlplus “/as sysdba”,startup pfile=’init.ora’來啓動,啓動後手工調整sga,pga等參數的大小。

ORA-12638: 身份證明檢索失敗 的解決辦法 
C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\ sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES = (NTS)改爲NONE即可。

ORA-01031: 權限不足
C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\ sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES = (NONE)改爲NTS即可。


Jdbc Get minus one from a read call解決辦法

原因:應該是服務器端session緊張,嘗試加大看看能否解決掉。還有一種可能就是它消失之後,可能伴隨着SQLException: Io exception: The Network Adapter could not establish。後一個問題的原因是配置不正確,可能是客戶端,也可能是服務器端。把jdbc的ip部分更改爲主機名,後臺的監聽從原來的偵聽ip調整爲偵聽主機名,同時主機名一定要在hosts文件中。否則可能會報ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exist。

 

7.PLSQL developer 連接Oracle以及常用操作

怎麼連都連接不上,提示什麼狗屁……oracle\……\network\ADMIN下面的二個文件tnsnames.ora,listener.ora文件拒絕訪問,我都鬱悶了,oracle安裝目錄下的所有文件都修改了權限也不行.

最後使用命令行提示符連接後不關閉,然後再連接就能成功.這是什麼狗屁.進入後PLSQL Developer 自己新建用戶Test,然後關閉所有.再次登陸就能成功登陸很讓人費解.

這樣操作過後,Test刪除,再次使用scott便可以正常登陸.糾結的工具.

後來經研究發現就是系統權限問題,當前用戶無法修改訪問超級管理員創建的oracle安裝目錄下的文件,設置oracle安裝目錄,當前用戶有讀寫權限.右鍵oracle文件夾.便可正常使用,如果仍然不行建議重裝oracle.

PL/SQL DEV 中

新建用戶

以管理員sysdba登陸--Users--右鍵--新建--設置用戶名密碼,默認表空間一般設置爲Users,臨時表空間爲Temp,概要文件選擇default--角色權限設置dba--系統權限unlimited tablespace--應用。

導入導出表

以普通用戶Normal登陸--工具--導入表--選擇文件sql/dmp或者其他--點擊導入,導出同理。

導入是記得重新編譯存儲過程 Procedures  右邊的按鈕,編譯無效的存儲過程。

 

8.首先要卸載乾淨再安裝.卸載步驟:

1、控制面板\所有控制面板項\管理工具\服務 停止所有Oracle的服務項 
2、開始->所有程序->Oracle - OraDb10g_home1->Oracle Installation Products->Universal Installer   點擊卸載產品,讓後將你之前所安裝的組件選擇刪除 
3、運行regedit,選擇HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del鍵刪除這個入口。 
4、運行regedit,選擇HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滾動這個列表,刪除所有Oracle入口  
5、從桌面上、STARTUP(啓動)組、程序菜單中,刪除所有有關Oracle的組和圖標  
6、刪除與Oracle有關的文件,選擇Oracle所在的缺省目錄C:\Oracle,刪除這個入口目錄及所有子目錄
7、手動刪除你之前的Oracle安裝主路徑的目錄。在做完這些工作之後電腦最好重啓一下。  

然後重裝不要關閉任何服務,在次連接,測試.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章