控制文件,数据文件,重做日志一定要放在存储上。
存储有三种组织形式:
1. 文件系统(很少);
2. ASM;
3. 裸设备;
Oracle有很多表同时也有很多dbf文件,oracle并没有直接将表放到某个dbf文件上。
而是在表与dbf文件之间加一层表空间。一个表空间由一个或者多个dbf文件组成,表空间就是多个dbf集合起来起的名字。表空间的物理空间就是其包含的dbf文件的总和。我们建表的时候是将表建在表空间上。
查看表空间:
SQL> select *from dba_tablespaces;
1. SYSTEM表空间,放的是oracle系统自身的信息,oracle自身的信息放在数据字典里,数据字典是一些表,这些表放在SYSTEM表空间里面;
2. SYSAUX是SYSTEM表空间的附属表空间,一个辅助表空间。放的是一些不怎么重要的系统信息,但是SYSTEM和SYSAUX这两个表空间必须同时在线,不然数据库启动不起来;
3. UNDOTBS1,我要改变一个数据块,oracle就把改变前的数据放到UNDOTBS1里;
4. TEMP临时表空间,如果PGA排序不够的话就会用到临时表空间;
以上是系统级别的四个表空间,不放用户数据。USER和EXAMPLE两个在生产环境里没有的。
Oracle是多表空间的架构,SQL server是多库架构。
SQL server有maser、model、temp等数据库组成一个大数据库。而oracle只有一个数据库,但是有多个表空间。
一个表就是一个段,段的名字和表的名字是一样的。区是物理上连续的多个块,一个oracle块(默认8K)由一个或多个磁盘块组成。
一个scheme(方案)就是一个用户,一个数据库由一个或多个用户组成。每个用户都有一堆段,不可能出现一个段不属于任何用户。Oracle通过用户把段组织起来,如果把用户删了那么用户拥有的段也没了。
查看oracle的用户:
SQL> select username, user_id from dba_users; USERNAME USER_ID ------------------------------ ---------- MGMT_VIEW 53 SYS 0 SYSTEM 5 DBSNMP 24 SYSMAN 51 OUTLN 11 MDSYS 46 ORDSYS 43 EXFSYS 34 DMSYS 35 WMSYS 25 USERNAME USER_ID ------------------------------ ---------- CTXSYS 36 ANONYMOUS 39 XDB 38 ORDPLUGINS 44 SI_INFORMTN_SCHEMA 45 OLAPSYS 47 SCOTT 54 TSMSYS 21 BI 60 PM 59 MDDATA 50 USERNAME USER_ID ------------------------------ ---------- IX 57 SH 58 DIP 19 OE 56 HR 55 27 rows selected.
查看oracle段的情况:
SQL> select owner,segment_name from dba_segments;