ORACLE安裝報錯解決
今天在虛擬機中安裝了一個WINDOWS系統,用於安裝oracle服務器;從安裝到使用中出現了很多的問題,把這些問題解決掉,花了不少時間,查了不少的資料。
第一個,我在安裝過程中,出現了ORA-00922和ORA-28000報錯,這是前面的口令設置上太隨意了,沒有按照oracle的要求設置口令導致;
ORA-00922選項缺失或無效
錯誤原因:一般是語句的語法有問題。比如命名不對,關鍵字寫錯等等。對於非標準的命名,一般采用雙引號來創建。
解決辦法:
標識符命名規則:(密碼設定規則)
1、必須以字母開始。
2、長度不能超過30個單字節字符。
3、只能包括A-Z,a-z,0-9,_,$和#。
4、不能在相同用戶下建立兩個同名的對象。
5、不能使用保留字和關鍵字
ORA-28000:the account is locked
這是屬於在前面配置管理員密碼的時候,采用了數字開頭的密碼,Oracle貌似對此不支持。據說包含其他非法特殊字符也可能產生此問題。
即密碼開頭不能是數字,只能用標識符命名規則的字符,密碼要最少要包含大寫字母,小寫字母和數字。
根據規則設定密碼,Oracle實例安裝時就不會出現ORA-28000和ORA-00922錯誤。
我當時是直接重新安裝了,查了一下,也有不重新安裝的解決辦法,我沒有嘗試過,
方法1:
第一步:使用PL/SQL,登錄名為system,數據庫名稱不變,選擇類型的時候把Normal修改為Sysdba;
第二步:選擇myjob,查看users;
第三步:選擇system,右擊點擊“編輯”;
第四步:修改密碼,把“帳戶被鎖住”的勾去掉;
第五步:點擊“應用”再點擊“關閉”;
第六步:重新登錄就可以通過驗證了;
第二個,解鎖SCOTT用戶,此用戶是ORACLE自帶的一個學習用戶,不能直接使用,需要先進行解鎖才行;
第一步,進入sqlplus,開始菜單>>所有程序>>Oracle - OraDb11g_home1(oracle的安裝文件夾名)>>應用程序開發
點擊進去之後就會要求輸入用戶名和口令,登陸進去之後,執行下面的命令:
SQL> alter user scott
account unlock;
解完以後,使用下面的命令來查看:
SQL>select username,account_status from dba_users WHERE USERNAME=‘SCOTT‘
可以看到scott賬戶已經解鎖,但是狀態還是"expired”(密碼過期)的意思。
給其賦一個新的口令
SQL>alter user scott identified by xinkouling;
這樣就ok了,以後可以使用SCOTT用戶了;
第三個,在遠程連接SCOTT用戶時,報錯ORA-12170:TNS:連接超時
第一步,檢查網絡是否可以PING通,打開oracle客戶端的cmd,ping一下服務端IP,ping不通就設置兩臺電腦的IP與網管,保持一致;
第二步,如果可以ping通,服務器監聽服務是否啟動,進入服務器cmd,輸入命令:lsnrctl status
返回如下信息:
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-DEC-2012 15:51:13
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 14-DEC-2012 13:15:28
Uptime 0 days 2 hr. 35 min. 45 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /database/oracle/product/dbhome/network/admin/listener.ora
Listener Log File /database/oracle/product/dbhome/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wgods)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "gsp" has 2 instance(s).
Instance "gsp", status UNKNOWN, has 1 handler(s) for this service...
Instance "gsp", status READY, has 1 handler(s) for this service...
Service "gspXDB" has 1 instance(s).
Instance "gsp", status READY, has 1 handler(s) for this service...
Service "gsp_XPT" has 1 instance(s).
Instance "gsp", status READY, has 1 handler(s) for this service...
The command completed successfully
說明沒有問題;
第三步,檢查防火墻,在客戶端打開cmd使用命令:tnsping ip(服務端ip)
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 14-12月-2012 15:47:15
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的參數文件:
E:\app\kerry\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 EZCONNECT 適配器來解析別名
嘗試連接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.150.105)(PORT=1521)))
TNS-12535: TNS: 操作超時
返回了一個報錯,說明是防火墻的問題;
解決辦法1:關閉服務器防火墻,自己學習使用的,防火墻就無所謂了,可以關閉;別的時候不建議關閉防火墻。
解決辦法2:開放oracle的1521端口,允許1521端口被連接;
1.端口的連接命令,telnet,使用方法,telnet ip port(例:192.168.150.105 1521)
一般第一次使用這個命令,會提示telnet不是內部或者外部命令;
解決辦法:
1.進入控制面板
2.進入程序和功能
3.從打開的“程序或功能”界面中,點擊左上角的“打開或關閉Windows功能”按鈕,如圖所示:
4.此時將彈出“Windows功能”窗口,從列表中選中“Telnet客戶端”項,點擊“確定”按鈕。
5.接下來“Windows功能”窗口將顯示“正在應用所做的更改”界面,耐心等待一會,待更改操作完成後,點擊“關閉”按鈕即可。
6.“telnet”命令正常運行。
7.再使用telnet ip port報錯,連接失敗,
解決辦法:打開服務器的1521端口。
1>.在彈出的控制面板信息中選擇【系統和安全】,然後選擇【Windows 防火墻】,如圖。
2>.在彈出的防火墻信息中,選擇左側的【高級設置】,如圖。
3>.在彈出的【高級安全Windows防火墻】設置中,選擇左側的【入站規則】,在右側選擇【新建規則】,如圖。
4>.進入新建入站規則向導中,選擇【端口】,點擊下一步,如圖。
5>.進入新建入站規則向導中,選擇TCP規則,然後輸入端口號,點擊下一步,如圖。
6>.在接下來彈出的向導信息中,全部默認選擇,點擊下一步,在最後一步中嗎,輸入名稱和描述,如圖。
7>.查看開放端口的信息,如圖。
8>.然後使用telnet ip port不在報錯,進入一個新的DOS窗口。
8.數據庫客戶機可以成功連接服務器了。
ORACLE安裝報錯解決