【轉】通過sql語句獲取資料庫的基本資訊

spectre2發表於2011-03-26

(1) 查詢oracle 的物理結構

◆1.1. 檢視資料檔案

SQL> select name from v$datafile;

NAME

---------------------------------------------

/u05/dbf/PROD/system_01.dbf/u05/dbf/PROD/system_01.dbf (系統資料檔案)

/u06/dbf/PROD/temp_01.dbf (臨時資料檔案)

/u04/dbf/PROD/users_01.dbf (使用者資料檔案)

/u09/dbf/PROD/rbs_01.dbf (回滾資料檔案)

/u06/dbf/PROD/applsys_indx_01.dbf (索引資料檔案)

如果是OMF:

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
D:\ORACLEXE\ORADATA\ORA10G\DATAFILE\O1_MF_SYSTEM_6RPVX6NZ_.DBF
D:\ORACLEXE\ORADATA\ORA10G\DATAFILE\O1_MF_UNDOTBS1_6RPVXYCQ_.DBF
D:\ORACLEXE\ORADATA\ORA10G\DATAFILE\O1_MF_SYSAUX_6RPVYC3F_.DBF

資料檔案是ORACLE中最重要的物理檔案

◆1.2.查詢控制檔案資訊

SQL>select * from V$Controlfile

◆1.3 檢視日誌組

SQL>select * from V$Log

◆1.4. 檢視具體的日誌成員檔案

SQL>select * from v$logfile

◆1.5 通過以下SQL 找到 報警日至檔案的路徑

select value from v$parameter where name ='background_dump_dest'

◆1.6 通過以下SQL找到使用者跟蹤檔案的路徑

select value from v$parameter where name ='user_dump_dest'

 

 

(2) 查詢安全資訊

◆2.1 顯示示使用者資訊

SQL>selelct * from DBA_Users Where Username =’system’

◆2.2 顯示角色資訊

SQL> Select *from Dba_Roles

◆2.3 顯示錶空間限額的資訊

SQL> select Tablespace_Name,Username,Bytes,max_bytes

SQL> from dba_ts_quotas;

◆2.4 顯示開工檔案和相關資源限制設定的資訊

SQL> Select profile,resource_name,limit

SQL> from Dba_profiles;

◆2.5 顯示當前使用者擁有的所有的表

SQL> Select * From Tab;

◆2.6 檢視內部系統表的SQL

select * from v$fixed_view_definition

 

3 查詢oracle 的系統環境變數

◆3.1.查詢全域性共享緩衝區(SGA)

SQL> select * from v$sga;

NAME VALUE

-------------------- ---------

Fixed Size 39816

Variable Size 259812784

Database Buffers 1.049E+09

Redo Buffers 327680

更詳細的資訊可以參考V$sgastat、V$buffer_pool

對於儲存在共享池中的SQL語句,可以從V$Sqltext、v$Sqlarea中查詢到

 

◆3.2清空Share_pool,保留Data buffer

SQL> alter system flush SHARED_POOL;

System altered.

 

◆3.3. .執行以下語句可以得到系統SCN號

SQL> select max(ktuxescnw * power(2, 32) + ktuxescnb) scn from x$ktuxe;

SCN

----------

31014

◆3.4 查詢資料塊可用空間大小。

Select kvisval,kvistag,kvisdsc from sys.x$kvis;

 

◆3.5檢查當前oracle 的連線型別:

select server

from v$session

where audisid=USERENV(‘SESSIONID’);

如果 輸出

SERVER

―――――――――――

DEDICATED

 

說明當前的oracle 連線實用的是專用伺服器連線 ,而不是MTS多執行緒伺服器(SHARED)

 

◆3.6. 檢視資料資料字典的SQL

select * from dict

 

◆3.7檢查後臺執行緒的狀態

Select name,Description

From V$BGPROCESS

Where Paddr<>’00’ (程式地址不等於’00’)

輸出結果類似:

name description

-------- ---------------------------------

Pmon Process Cleanup

Dbwo db Writer Process 0

Lgwr Redo Etc

Ckpt checkpoint

◆3.8 顯示錶結構

desc tablename(任意表名);

輸出結果類似:

name null? Type

---------------------------- -------------------- ------------------

ID Not Null Number(30)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14184018/viewspace-690542/,如需轉載,請註明出處,否則將追究法律責任。

相關文章