11gOracleStartup,命令行打開oracle的方法sql
一、打開命令行:窗口鍵+R鍵;數據庫
二、輸入cmd,進入DOS系統,即"Disk Operating System"的縮寫>>意思是「磁盤操做系統」服務器
三、檢查監聽器狀態:lsnrctl status網絡
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 21-9月 -2015 22:22:26oracle
Copyright (c) 1991, 2010, Oracle. All rights reserved.ide
正在鏈接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=USER-20150310XO)(PORT=1521)))工具
TNS-12541: TNS: 無監聽程序ui
TNS-12560: TNS: 協議適配器錯誤spa
TNS-00511: 無監聽程序操作系統
64-bit Windows Error: 61: Unknown error
正在鏈接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
TNS-12541: TNS: 無監聽程序
TNS-12560: TNS: 協議適配器錯誤
TNS-00511: 無監聽程序
64-bit Windows Error: 61: Unknown error
四、啓動監聽器 lsnrctl start
五、啓動服務: C:\net start OracleServiceOrcl (oracle11g)
C:\Users\Administrator.USER-20150310XO> net start OracleServiceOrcl
OracleServiceORCL 服務正在啓動 .....................
OracleServiceORCL 服務已經啓動成功。
六、嘗試登錄本地數據庫: sqlplus /nolog
sqlplus,進入sqlplus環境。
Oracle的sqlplus是與oracle進行交互的客戶端工具,藉助sqlplus能夠查看、修改數據庫記錄。
在sqlplus中,能夠運行sqlplus命令與sql語句。類別:客戶端工具;做用:與oracle進行交互
/nolog是不登陸到數據庫服務器的意思,若是沒有/nolog參數,sqlpuls會提示你輸入登陸帳號和密碼。
七、監聽打開後試圖鏈接到數據庫 conn sys/newer as sysdba(conn scott/tiger@orcl)
已鏈接。連接以後用startup打開數據庫
八、查詢數據 SQL>select * from emp
這裏發現一個問題 返回的只有2
後來查詢得知通常是剛接觸Oracle時纔會遇到的問題。
多是使用sql server的習慣,sql server中句末能夠不用輸入分號就能夠執行。
解決方法:而使用Oracle的SQLPlus或者是在命令行下使用時,若是沒有在語句的後面加一個分號,就按回車鍵後,
是不會執行的,而是光標跳到下一行,2表示行號,能夠繼續輸入 語句,直到輸入分號後按回車才執行:
因此輸入查詢語句SQL>select * from emp; 便可。
九、關閉數據庫:SQL> shutdown
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
若是在sqlplus環境中使用shutdown命令關閉了數據庫,如今要啓動數據庫的話,必須先用不登錄到數據庫服務器的方式進入sqlplus環境,再用startup命令啓動數據庫。由於數據庫沒有啓動的話,不能登錄數據庫,也沒法驗證用戶名和密碼。
幾種鏈接用到的命令形式
1.sqlplus / as sysdba 這是典型的操做系統認證,不須要listener進程
2.sqlplus sys/oracle 這種鏈接方式只能鏈接本機數據庫,一樣不須要listener進程
3.sqlplus sys/oracle@orcl 這種方式須要listener進程處於可用狀態。最廣泛的經過網絡鏈接。
以上鍊接方式使用sys用戶或者其餘經過密碼文件驗證的用戶都不須要數據庫處於可用狀態,操做系統認證也不須要數據庫可用,普通用戶由於是數據庫認證,因此數據庫必需處於open狀態。
平時排錯可能會用到的
1.lsnrctl status查看服務器端listener進程的狀態。
LSNRCTL> help
The following operations are available
An asterisk (*) denotes a modifier or extended command:
start stop status
services version reload
save_config trace change_password
quit exit set*
show*
LSNRCTL> status
2.tnsping 查看客戶端sqlnet.ora和tnsname.ora文件的配置正確與否,及對應的服務器的listener進程的狀態。
C:\>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on 16-8月 -
2005 09:36:08
Copyright (c) 1997, 2003, Oracle. All rights reserved.
Used parameter files:
E:\oracle\product\10.1.0\Db_2\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_
NAME = orcl)))
OK (20 msec)
3.
SQL>show sga 查看instance是否已經啓動
SQL> select open_mode from v$database; 查看數據庫是打開仍是mount狀態。
OPEN_MODE
----------
READ WRITE
#-----------------
使用hostname訪問數據庫而不是tnsname的例子
使用tnsname訪問數據庫是默認的方式,可是也帶來點問題,那就是客戶端都是須要配置tnsnames.ora文件的。若是你的數據庫服務器地址發生改變,就須要從新編輯客戶端這個文件。經過hostname訪問數據庫就沒有了這個麻煩。
須要修改
服務器端listener.ora
#監聽器的配置文件listener.ora
#使用host naming則再也不須要tnsname.ora文件作本地解析
# listener.ora Network Configuration File: d:\oracle\product\10.1.0\db_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
# (SID_NAME = PLSExtProc)
(SID_NAME = orcl)
(GLOBAL_DBNAME = boway)
(ORACLE_HOME = d:\oracle\product\10.1.0\db_1)
# (PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))
)
)
客戶端sqlnet.ora 若是確認不會使用TNSNAME訪問的話,能夠去掉TNSNAMES
# sqlnet.ora Network Configuration File: d:\oracle\product\10.1.0\db_1\NETWORK\ADMIN\sqlnet.ora
# Generated by Oracle configuration tools.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (HOSTNAME)
Tnsnames.ora文件不須要配置,刪除也無所謂。
下面就是網絡和操做系統的配置問題了,怎麼樣可以解析個人主機名的問題了
能夠經過下面的方式鏈接
sqlplus sys/oracle@boway
這樣的話,會鏈接boway這臺服務器,而且listener來肯定你所要鏈接的service_name。
oracle提示ORA-28002,密碼7天后過時
解決ORA-28002: 密碼7天以後過時辦法
問題:打開oracle正常登錄以後提示我 ERROR:ORA-28002: the password will expire within 7 days
原來個人oracle是11g的 SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
經過這條sql語句查出,該版本默認在default概要文件中設置了「PASSWORD_LIFE_TIME=180天」。
而原來10g以前的版本默認的UNLIMITED,即無限制。
因此將密碼有效期由默認的180天修改爲「無限制」:sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改以後,沒有被提示過這條警告的用戶就不會再碰到這個問題了。
已經被提示過的用戶必需要改一次密碼: sql> alter user (scott) identified by tiger;(修改用戶密碼須要管理員身份登陸 as sysdba)