如何檢視Oracle資料庫的儲存配置?


問題

你想了解一些關於資料庫的入門資訊。

解決方案

每個Oracle程式設計師/DBA在職業生涯中都會在某個時候繼承其他人已經設定好的資料庫。你需要找到一些關於資料庫的入門資訊來了解更多資訊。

識別主機詳細資訊和資料庫版本

示例

SELECT instance_name,host_name,version,startup_time FROM v$instance

輸出

INSTANCE_NAME    HOST_NAME                      VERSION           STARTUP_TIME TESTDB          ip-000-00-0-000                19.0.0.0.0        12/AUG/20

接下來,我們將確定構成資料庫的表空間。

示例

SELECT tablespace_name FROM dba_tablespaces ORDER BY tablespace_name;

輸出

TABLESPACE_NAME ------------------------------ RDSADMIN SYSAUX SYSTEM TEAM_DATA TEAM_TEMP TEAM_UNDO TEMP UNDOT1 USERS

接下來,我們將瞭解表空間資料檔案位於磁碟儲存的哪個位置。除了資料檔案外,我們還將瞭解臨時檔案、控制檔案和聯機重做日誌的位置。所有這些資訊都儲存在不同的資料字典檢視中,但我們可以執行UNION操作將它們放在一起。

示例

SELECT 'DATA' as type,file_name,bytes FROM dba_data_files UNION ALL SELECT 'TEMP',file_name,bytes FROM dba_temp_files UNION ALL SELECT 'REDO',lf.member,l.bytes FROM v$logfile lf join v$log l on lf.group#=l.group# UNION ALL SELECT 'CTL',value,NULL FROM v$parameter2 where name='control_files';

型別
檔名
位元組數
資料
/dbdata/db1/TES/datafile/o1_mf_system_hbl2yz2b_.dbf
629145600
資料
/dbdata/db1/TES/datafile/o1_mf_sysaux_hbl2z3b9_.dbf
2918580224
資料
/dbdata/db1/TES/datafile/o1_mf_undo_t1_hbl2z6f0_.dbf
1038090240
資料
/dbdata/db1/TES/datafile/o1_mf_users_hbl2z70m_.dbf
15714156544
資料
/dbdata/db1/TES/datafile/o1_mf_admin_hbl4792q_.dbf
7340032
資料
/dbdata/db1/TES/datafile/o1_mf_team_htpjyqk7_.dbf
1073741824
資料
/dbdata/db1/TES/datafile/o1_mf_team_htpk0o95_.dbf
1073741824
臨時
/dbdata/db1/TES/datafile/o1_mf_team_htpjyqbz_.tmp
1073741824
臨時
/dbdata/db1/TES/datafile/o1_mf_temp_hh2nl8c4_.tmp
4823449600
重做
/dbdata/db1/TES/onlinelog/o1_mf_4_hh2ng9p5_.log
134217728
重做
/dbdata/db1/TES/onlinelog/o1_mf_3_hh2ng8rl_.log
134217728
重做
/dbdata/db1/TES/onlinelog/o1_mf_2_hh2ng875_.log
134217728
重做
/dbdata/db1/TES/onlinelog/o1_mf_1_hh2ng7o5_.log
134217728
控制
/dbdata/db1/TES/controlfile/control-01.ctl
 

我們將使用下面的SQL查看錶空間儲存。

示例

SELECT f.tablespace_name,   TO_CHAR(f.bytes,'99,999,999,999,999')                        AS allocated_bytes,   NVL(TO_CHAR(se.bytes,'99,999,999,999,999'),LPAD('Empty',19)) AS used_bytes,   TO_CHAR(NVL(TRUNC((se.bytes/f.bytes)*100,2),0),'990.00')     AS percent_used FROM   (SELECT df.tablespace_name,     SUM(bytes) AS bytes   FROM dba_data_files df   GROUP BY df.tablespace_name   ) f,   (SELECT s.tablespace_name,     SUM(bytes) AS bytes   FROM dba_segments s   GROUP BY s.tablespace_name   ) se WHERE f.tablespace_name=se.tablespace_name (+) ORDER BY f.tablespace_name;

輸出

ADMIN                 7,340,032             131,072     1.78
SYSAUX            2,918,580,224       2,640,117,760    90.45
SYSTEM              629,145,600         565,772,288    89.92
TEAM_DATA             1,073,741,824               Empty     0.00
TEAM_UNDO             1,073,741,824           1,310,720     0.12
UNDOT1            1,038,090,240          74,186,752     7.14
USERS            15,714,156,544      10,962,141,184    69.75

最後,我們將識別使用者——Oracle建立的使用者和非Oracle建立的使用者。

列出非Oracle使用者的SQL

SELECT username,   account_status,   profile AS security_profile FROM dba_users WHERE oracle_maintained='N' ORDER BY username;

瞭解概要檔案的SQL

SELECT resource_name,limit FROM dba_profiles WHERE profile='DEFAULT';

輸出

CPU_PER_SESSION           UNLIMITED CPU_PER_CALL                   UNLIMITED LOGICAL_READS_PER_SESSION   UNLIMITED LOGICAL_READS_PER_CALL       UNLIMITED IDLE_TIME                       UNLIMITED CONNECT_TIME                   UNLIMITED PRIVATE_SGA                UNLIMITED FAILED_LOGIN_ATTEMPTS        UNLIMITED PASSWORD_LIFE_TIME            UNLIMITED PASSWORD_REUSE_TIME           UNLIMITED PASSWORD_REUSE_MAX            UNLIMITED PASSWORD_VERIFY_FUNCTION         NULL PASSWORD_LOCK_TIME            1 PASSWORD_GRACE_TIME           7 INACTIVE_ACCOUNT_TIME        UNLIMITED

更新於:2020年12月4日

510 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告