A. 如何修改oracle資料庫查詢的默認大小寫狀態
首先ORACLE不是把列名默認轉換為大寫狀態,而是ORACLE中存儲的就是大寫狀態,也就是說你不特別加引號來標明的話,ORACLE會默認為大寫。所以要讓ORACLE查詢出來是小寫,不需要任何設置,只需要創建表的時候就寫成是小寫,
sql> create table aa("id" number, "Name" varchar2(10)) ;
表已創建。
SQL> select * from aa ;
未選定行
SQL> insert into aa values(1,'WANG') ;
已創建 1 行。
SQL> select * from aa ;
id Name
---------- ----------
1 WANG
B. 如何查看ORACLE資料庫是否正常
select
status
from
v$instance;
如果報錯不能執行(用dba用戶,或者有查看$視圖許可權的用戶),那麼就是沒啟動。
如果結果為nomount,那麼就是僅僅搭載了初始文件,分配了內存,但是還沒有載入控制文件。
mount就是載入了控制文件。
open就是完全啟動了。
除了open意外,其他狀態都不算完全啟動資料庫。
C. 如何判斷oracle資料庫正常
一:查看資料庫監聽是否啟動
lsnrctl status
二:查看資料庫運行狀態,是否open
select instance_name,status from v$instance;
三:查看alert日誌,查看是否有錯誤信息
SQL> show parameter background_mp
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_mp_dest string /u01/app/oracle/diag/rdbms/ogg1/ogg1/trace
vim / u01/app/oracle/diag/rdbms/ogg1/ogg1/trace/alert_ogg1.log
D. 怎麼查看oracle資料庫是否已啟動
linux下可以用ipcs查看,windows下可以查看服務,也可以進到資料庫裡面看資料庫當前狀態 select status from v$instance,如果status = open 就說明oracle服務正常。
E. 怎麼檢查oracle資料庫服務有沒有啟動
Oracle資料庫實例啟動時,分成nomount、mount和open的三個階段,下面的實例分析來展示不同階段時,系統到底做了哪些工作
1、nomout階段,該階段啟動的前提是有參數文件,若沒有參數文件,系統無法啟動,在該過程中,系統分配內存、開啟後台進程,同時更新alter日誌文件
實例nomount之前的狀態:
--無實例進程
[oracle@secdb1 admin]$ echo $ORACLE_SID
PROD
[oracle@secdb1 admin]$ ps -ef|grep PROD
oracle 14890 6310 0 21:12 pts/1 00:00:00 grep PROD
--alter日誌信息
[oracle@secdb1 bmp]$ ls -lrt
total 48
-rw-r----- 1 oracle oinstall 1113 Mar 4 23:15 prod_lgwr_7319.trc
-rw-r----- 1 oracle oinstall 779 Mar 5 19:42 prod_mmnl_7329.trc
-rw-r--r-- 1 oracle oinstall 40910 Mar 5 21:08 alert_PROD.log
此時啟動實例到nomount狀態
[oracle@secdb1 admin]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Proction on Wed Mar 5 21:15:50 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 100664720 bytes
Database Buffers 209715200 bytes
Redo Buffers 2973696 bytes
SQL>
此時查看進程和日誌信息
[oracle@secdb1 bmp]$ ls -lrt
total 52
-rw-r----- 1 oracle oinstall 1113 Mar 4 23:15 prod_lgwr_7319.trc
-rw-r----- 1 oracle oinstall 779 Mar 5 19:42 prod_mmnl_7329.trc
-rw-r--r-- 1 oracle oinstall 42513 Mar 5 21:15 alert_PROD.log ----------------日誌文件已經更新
[oracle@secdb1 bmp]$ ps -ef|grep PROD ----------------------------系統中出現後台進程
oracle 14946 1 0 21:15 ? 00:00:00 ora_pmon_PROD
oracle 14948 1 0 21:15 ? 00:00:00 ora_psp0_PROD
oracle 14950 1 0 21:15 ? 00:00:00 ora_mman_PROD
oracle 14952 1 0 21:15 ? 00:00:00 ora_dbw0_PROD
oracle 14954 1 0 21:15 ? 00:00:00 ora_lgwr_PROD
oracle 14956 1 0 21:15 ? 00:00:00 ora_ckpt_PROD
oracle 14958 1 0 21:15 ? 00:00:00 ora_smon_PROD
oracle 14960 1 0 21:15 ? 00:00:00 ora_reco_PROD
oracle 14962 1 0 21:15 ? 00:00:00 ora_mmon_PROD
oracle 14964 1 0 21:15 ? 00:00:00 ora_mmnl_PROD
oracle 14965 14942 0 21:15 ? 00:00:00 oraclePROD (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 14988 5989 0 21:17 pts/3 00:00:00 grep PROD
如果在$ORACLE_HOME/dbs目錄下無參數文件,啟動實例是現象如下:
[oracle@secdb1 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Proction on Wed Mar 5 21:21:19 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/proct/10.2.0/db_1/dbs/initPROD.ora'
SQL> quit
參數尋找的優先順序 spfileSID.ora----initSID.ora
在該階段,可以進行資料庫的創建、控制文件的創建
2、mount,在該階段,啟動條件是需要有控制文件,如果控制文件丟失或者損壞,啟動將會報錯。此時系統會打開控制文件、檢查數據文件、日誌文件的名稱和位置,
但此時不檢查文件到底是否存在不存在
mount之前:
SQL> select * from v$controlfile;
no rows selected
SQL> select * from v$datafile;
select * from v$datafile
*
ERROR at line 1:
ORA-01507: database not mounted
mount之後
SQL> alter database mount;
Database altered.
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/PROD/disk1/control01.ctl
/u01/app/oracle/oradata/PROD/disk2/control02.ctl
SQL> select file#,name from v$datafile;
FILE# name
--------------------------------------------------------------------------------
1 /u01/app/oracle/oradata/PROD/disk1/system01.dbf
2 /u01/app/oracle/oradata/PROD/disk1/undotbs01.dbf
3 /u01/app/oracle/oradata/PROD/disk1/sysaux01.dbf
在該階段,可以進行資料庫的完全恢復、修改資料庫的歸檔模式、移動和重命令數據文件
SQL> archive log list ---查看資料庫歸檔模式
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/proct/10.2.0/db_1/dbs/arch
Oldest online log sequence 3
Current log sequence 5
SQL> alter database archivelog; ---修改成歸檔模式
SQL> alter database noarchivelog;---修改成非歸檔模式
如果控制文件丟失,系統報錯,現象如下:
SQL> startup mount
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 100664720 bytes
Database Buffers 209715200 bytes
Redo Buffers 2973696 bytes
ORA-00205: error in identifying control file, check alert log for more info
3、open階段,該階段主要是打開數據文件、日誌文件,在打開的過程中對數據文件和日誌文件進行一致性檢查,如果不一致,則SMON進程繼續實例恢復,如果文件丟失,打開失敗。
SQL> alter database open;
Database altered.
--如何數據文件丟下,打開失敗
SQL> startup mount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 79693200 bytes
Database Buffers 230686720 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/u01/app/oracle/oradata/PROD/disk1/system01.dbf'
4、小結
啟動時分成三個步驟,1、nomount階段,該階段是實例啟動,根據參數文件進行系統分配內存,啟動後台進程。mount階段,根據控制文件來進行數據文件和日誌文件的名稱和位置檢查,把實例和資料庫連接起來。open階段,就是資料庫打開階段,打開是就需要檢查文件是否正常,有沒有發生文件丟失或者不一致的情況,丟失則報錯,不一致則進行實例恢復。
F. 怎樣查詢oracle資料庫中所有的表空間
1、首先需要找到oracle安裝目錄,打開控制台管理。
G. 如何查看Oracle資料庫實例狀態
如果是windows下裝的資料庫,只要去看資料庫服務是否啟動就可以了;
linux下要先進入oracle用戶,橋status命令就可以查看了