關於Oracle表空間的誤解_記錄

  一直以來,我以爲Navicat連接Oracle後, 下圖所示的就是表空間:
oracle
  😂實際上,上面那些BI HR IX SYSTEM SCOTT什麼的,都是模式,而不是表空間。數據庫用戶 和 模式之間是 一對一 的關係。一個模式爲一個數據庫用戶所有,並且具有與該用戶相同的名稱。
  最好的例證是:

SQL> connect system/password as sysdba;
已連接。
# 查詢Oracle裏,所有用戶的SQL語句
SQL> select * from all_users order by username;

USERNAME                          USER_ID CREATED
------------------------------ ---------- --------------
ANONYMOUS                              46 30-3-10
APEX_030200                            78 30-3-10
APEX_PUBLIC_USER                       76 30-3-10
APPQOSSYS                              31 30-3-10
BI                                     90 29-4-20
CTXSYS                                 43 30-3-10
DBSNMP                                 30 30-3-10
DIP                                    14 30-3-10
EXFSYS                                 42 30-3-10
FLOWS_FILES                            75 30-3-10
HR                                     85 29-4-20

USERNAME                          USER_ID CREATED
------------------------------ ---------- --------------
IX                                     87 29-4-20
MDDATA                                 65 30-3-10
MDSYS                                  57 30-3-10
MGMT_VIEW                              74 30-3-10
OE                                     86 29-4-20
OLAPSYS                                61 30-3-10
ORACLE_OCM                             21 30-3-10
ORDDATA                                54 30-3-10
ORDPLUGINS                             55 30-3-10
ORDSYS                                 53 30-3-10
OUTLN                                   9 30-3-10

USERNAME                          USER_ID CREATED
------------------------------ ---------- --------------
OWBSYS                                 79 30-3-10
OWBSYS_AUDIT                           83 30-3-10
PM                                     89 29-4-20
SCOTT                                  84 30-3-10
SH                                     88 29-4-20
SI_INFORMTN_SCHEMA                     56 30-3-10
SPATIAL_CSW_ADMIN_USR                  70 30-3-10
SPATIAL_WFS_ADMIN_USR                  67 30-3-10
SYS                                     0 30-3-10
SYSMAN                                 72 30-3-10
SYSTEM                                  5 30-3-10

USERNAME                          USER_ID CREATED
------------------------------ ---------- --------------
WMSYS                                  32 30-3-10
XDB                                    45 30-3-10
XS$NULL                        2147483638 30-3-10

已選擇36行。

  USERNAME列 正好和 Navicat展示的一樣,由此可知,它們是模式,而不是表空間。
  模式(也可以說用戶,反正是一對一的關係)與表空間的關係是,多對一。
  真要查看Oracle數據庫有哪些表空間的話,可以使用下面的SQL語句:

# 摘自《Oracle從入門到精通(第3版)》第245、246頁 8.1節
SQL> col tablespace_name for a10
SQL> col file_name for a50
SQL> col bytes for 999,999,999
SQL> select tablespace_name,file_name,bytes from dba_data_files order by tablespace_name;

TABLESPACE FILE_NAME                                                 BYTES
---------- -------------------------------------------------- ------------
EXAMPLE    D:\APPS\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    104,857,600
SYSAUX     D:\APPS\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     671,088,640
SYSTEM     D:\APPS\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF     734,003,200
UNDOTBS1   D:\APPS\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF    104,857,600
USERS      D:\APPS\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF        5,242,880

感謝閱讀~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章