標籤:oracl 緩衝 後台 users ddr 產生 startup object dual
v$database:資料庫的資訊,如資料庫名,建立時間等。
v$instance 執行個體資訊,如執行個體名,啟動時間。
v$parameter 參數資訊,select * from v$parameter where name like ‘%name‘ ----> show parameter name(sqlplus中執行)
v$process 啟動並執行進程的資訊,如PID,SPID,以及進程的名字,如SMON,PMON在UNIX的進程名稱,在windows中會看到類似ORACLE.EXE (PMON)這樣的線程名字.
v$mystat 本session的SID號等資訊..知道了SID後可以通過查詢session相關的資訊.
v$session 串連到資料庫的session相關的資訊,如機器名,用戶端程式名稱,PID(UNIX)等.
如通過 select distinct(sid) from v$mystat;得到SID後,
可以得到這個session的相關資訊,如為這個session服務的後台進程的地址(PADDR) select * from v$session where sid=157
得到PADDR後可以得到後台進程的資訊:select * from v$process where addr = ‘3424E3BC‘
v$controlfile 控制檔案的位置資訊,可以在nomount階段查看,但沒有資料.資料庫在mount後這個視圖才有資料.
v$controlfile_record_section控制檔案裡的配置資訊.
v$datafile 資料檔案的位置資訊,資料庫在mount後這個視圖才能被查看.資料庫開啟是檢查裡面的CHECKPOINT_CHANGE#(從控制檔案得來)是否和v$datafile_header的一致.
v$datafile_header 資料檔案頭資訊.是從資料檔案頭讀取的,在做恢複的時候每當一個歸檔日誌應用之後,CHECKPOINT_CHANGE#都可以看到變化.
select dbms_flashback.get_system_change_number from dual
v$logfile 記錄檔的位置資訊,資料庫在mount後這個視圖才能被查看.
V$INSTANCE_RECOVERY:執行個體恢複時和重做日誌有關的資訊,FAST_START_MTTR_TARGET:執行個體恢複的時間限制,oracle將這個時間換算成
redo blocks數量,當log buffer中未寫入log file的redo block數量超過這個值,就會觸發增量檢查點。
(這和資料庫負載檔案的順序有關係,資料庫startup nomount時根據參數檔案載入控制檔案,startup mount後,根據控制檔案載入資料檔案和記錄檔)
v$log: 日誌的的資訊,比如當前用的是那一個日誌組。
v$sga_dynamic_components SGA各個記憶體塊的資訊,如java 池的大小,共用池的大小,資料緩衝區(在10G中是根據資料區塊的大小有不同的緩衝區的,如DEFAULT 2K buffer cache放資料區塊是2k的,DEFAULT 4K buffer cache放資料區塊是4k的)
v$pwfile_users 資料庫中具有sysdba,sysoper許可權的使用者。
v$rollstat 回退段資訊,USN回退段的編號,XACTS活動的事務數量。回退段可以從dba_rollback_segs 查看。
v$transaction 活動事務資訊,如對應的回退段(XIDUSN)是哪一個等。
v$sql:執行過的SQL語句。
v$lock:那些session佔用了什麼樣的鎖,在申請什麼樣的鎖,該session是否阻塞了別的session。
v$locked_object哪些對象被鎖住了。
v$session_wait 查看session等待資訊:select * from v$session_wait where wait_class != ‘Idle‘看目前還在等待的session,如被阻塞的session。
v$session_wait_history:session等待的曆史資訊,只儲存離目前最近的10條記錄。
v$active_session_history:活動session(等待的或者在使用CPU)的曆史資訊,每一秒統計一次資訊。每隔一小時會記錄到磁碟,從dba_hist_active_sess_history可以看到。執行db_1\RDBMS\ADMIN\ashrpt.sql可以產生報告。
v$statistics_level:那些advisor被開啟了以及advisor做統計時候從那些view取統計資訊.
v$sga_dynamic_components:SGA各個模組的動態統計資訊.
v$log線上日誌的資訊,那一組是正在使用的,開始使用時候的SCN.
v$archived_log 歸檔日誌的資訊,從那個SCN開始到那個SCN結束歸檔到了那一個檔案.
v$backup 那個資料表空間處於熱備份模式.alter tablespace xx begin backup的時候會把對應的SCN記錄下來.
v$statname 資料庫動態都統計那些資訊,有資訊名稱和ID,一般和v$sesstat聯合使用.
v$sesstat 一些動態統計資訊的值,如user commits,opened cursors current,redo size等等,
select name,value from v$sesstat,v$statname
where v$statname.STATISTIC#=v$sesstat.STATISTIC# and v$statname.name like ‘%redo size%‘ and SID=115
和falshback相關的
v$flashback_database_logfile flashback的記錄檔相關的資訊,Oldest_flashback_scn / Oldest_flashback_time : 這兩列用來記錄可以恢複到最早的時點 .
v$flashback_database_log:日誌使用的情況
v$flashback_database_stat: flashback統計資訊.
上面三個視圖在alter database flashback on才有資料.
flashback_transaction_query
v$nls_valid_values 可以用的語言,國家和編碼設定,alter session set nls_language=american;
v$parameter_valid_values 可以設定的參數值
v$sga:sga記憶體的資訊,select sum(value)/1024/1024 from v$sga通常=sga_max_size或者sga_target
v$sga_dynamic_free_memory:sga未分配的記憶體。
v$bh DB buffer裡緩衝的資料區塊資訊。
設定用戶端編碼
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,三部分,AMERICAN語言,提示資訊,AMERICA國家影響日期格式,ZHS16GBK編碼。
查看伺服器編碼 select name,value$ from props$ where name =‘NLS_CHARACTERSET‘;
『以dba_和v$開頭的通常都是視圖。dba_開頭的裡面的資訊通常是靜態,資訊在檔案中(但是並不代表裡面的資訊不變化)。v$開頭的資訊通常是動態,來自控制檔案和記憶體中的資訊』
dba_data_files(v$datafile )資料檔案資訊,裡面不包括暫存資料表空間對應的檔案的資訊,,dba_tablespaces(v$tablespace)資料表空間資訊,dba_tables表資訊, dba_segments段資訊,dba_extents區資訊。
dba_segments:那些段儲存到了那個資料表空間,佔用了多大空間等.
select * from dba_segments where segment_name=‘TEST‘
select * from dba_segments where tablespace_name=‘USERS‘
select * from dba_segments where owner=‘YORKER‘
dba_users 使用者資訊,如預設資料表空間。dba_roles:系統裡定義的角色,如DBA(注意與sysdba的區別),CONNECT等。和使用者相關的還有一個視圖dba_profiles:資料庫中定義的profile資訊,profile是指登入嘗試次數,密碼到期時間限制等,該使用者可以有多少個session,空閑多久可以把該使用者斷掉,可以在create user時候指定。
dba_sys_privs :什麼樣的使用者或者角色授予了什麼樣的系統許可權。
dba_tab_privs看什麼樣的使用者或者角色授予了什麼樣的對象許可權。
dba_role_privs,使用者或者角色被授予了什麼樣的角色。通過角色授與權限要重新登入才能起作用。
許可權傳遞:系統許可權被收回,傳遞的許可權不收回,對象許可權被收回,傳遞的許可權也收回。
dba_constraints 約束的資訊. 表級約束Primary(P),Foreign key(R),Unique(U),Check. 資料行層級條件約束Not null(可以認為是check約束的一種,在dba_constraints 的constraint_type和check約束相同,都為‘C‘).還有對於NOT NULL的ALTER TABLE語句建立約束與其他四種(alter table tb add constraints...)是不同的:ALTER TABLE tb MODIFY col_name NOT NULL.
dba_priv_audit_opts:資料庫開啟了那些許可權審計. aduit create session;. aduit create session whenever not successful;
dba_obj_audit_opts:資料庫開啟了那些對象審計.audit select on tb[by session/access].
dba_stmt_audit_opts:資料庫開啟的語句審計 audit table by userA
dba_audit_trail審計的資訊視圖,一部分資訊正是從表aud$的審計資訊查詢出來的,表aud$只能以sysdba許可權看.
dba_fga_audit_trail 儲存的是通過dbms_fga.add_policy 建立的細粒度審計的審計資訊.
dba_common_audit_trail儲存的是建立的標準和細粒度審計的類型資訊.
dba_rollback_segs 資料庫回退段的資訊。
dba_hist_wr_control awr(auto workload repository)產生資料庫負載資訊的控制資訊,保留時間,統計頻率。 dbms_workload_repository .modify_snapshot_settings(retention=>1440,interval=>30)修改控制。
dba_hist_snapshot:資料庫運行snapshot的曆史資訊,根據dba_hist_wr_control的控制資訊自動產生,可以通過dbms_workload_repository .create_snapshot產生。
利用db_1\RDBMS\ADMIN\awrrpt.sql可以產生資料庫運行報告。db_1\RDBMS\ADMIN\awrrpt.sql\addmrpt.sql可以產生與之對應的診斷建議報告。
dbms_workload_repository.create_baseline可以選擇某從某個snapshot到另外一個之間(這段時間DB運行良好)建立baseline來做為以後資料庫運行資訊的比較基準.
dba_hist_baseline儲存的snapshot基準資訊.
dba_thresholds 發生警告的上限值.如資料表空間用了多少警示.後台進程MMON會監視這些資訊.
dba_outstanding_alerts 最近10條警告資訊. dba_alert_history 警告的曆史資訊.
表:
system_privilege_map,系統許可權資訊,如經常用到的sysdba和sysoper都是系統許可權。還有像CREATE TABLESPACE,DROP TABLESPACE等,要注意的是drop table不是系統許可權,drop any table是系統許可權。UNLIMITED TABLESPACE許可權不能授予給角色,也就意味著DBA角色的使用者也需要單獨額外授予UNLIMITED TABLESPAC許可權。
資料庫的這些視圖,表定義可以在下面的視圖中查到:
select * from dict
select * from dict_columns
select * from v$fixed_table
select * from v$fixed_view_definition
SELECT ‘*TABLE: ‘ || TABLE_NAME, COMMENTS
FROM ALL_TAB_COMMENTS
WHERE OWNER = ‘SYS‘
AND TABLE_NAME = ‘USER_SYNONYMS‘
UNION
SELECT ‘COL: ‘ || COLUMN_NAME, COMMENTS
FROM ALL_COL_COMMENTS
WHERE OWNER = ‘SYS‘
AND TABLE_NAME = ‘USER_SYNONYMS‘ ;
Oracle 中的一些重要V$ 動態效能檢視,系統檢視表和表