您的位置:首页 > 数据库 > Oracle

ORACLE逻辑结构及表空间

2013-09-08 10:38 260 查看

1.ORACLE逻辑结构

ORACLE将数据逻辑地存放在表空间,物理地存放在数据文件中。

一个表空间任何一个时刻只能属于一个数据库。

 

数据库——表空间——段——区——ORACLE块

每个数据库由一个或多个表空间组成,至少一个。

每个表空间基于一个或多个操作系统的数据文件,至少一个,一个操作系统的数据文件只能属于一个表空间。一个表空间可以存放一个或多个段 segment。

每个段由一个或多个区段extent组成。

每个区段由多个连续的ORACLE数据库块组成,最少5个块,引申出一个表最少5个块。

每个ORACLE数据块由一个或多个连续的操作系统数据块组成。

每个操作系统数据文件由一个或多个区段组成,由一个或多个操作系统数据块组成。

 

2.两类表空间:

系统SYSTEM表空间  非系统表空间 NON-SYSTEM表空间

系统SYSTEM表空间与数据库一起建立,在系统表空间中有数据字典,系统还原段。可以存放用户数据但是不建议。

非系统表空间NON-SYSTEM表空间 由管理员创建。可以方便管理。

 SYSAUX表空间   ---v$sysaux_occupants    select tablespace_name from dba_tables where tablespace_name='SYSAUX';

3.创建数据库表空间语句:

SQL> create tablespace "test" nologging datafile 'd:\disk2\moon\test01.dbf' size10M,'d:\disk4\moon\test02.dbf'  size 10M;

创建本地管理的索引表空间

SQL> create tablespace test_indexdatafile 'd:\disk6\moon\test_index.dbf' size 10M extent management local uniform size 1M;

创建UNDO表空间

SQL> create undo tablespace test_undodatafile 'd:\disk7\moon\test_undo.dbf' size 10M;

表空间已创建。

SQL> select file_id,file_name,tablespace_name from dba_data_files order by  file_id;

  FILE_ID FILE_NAME                                         TABLESPACE

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

        1 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF     SYSTEM

        2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     SYSAUX

        3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF    UNDOTBS1

        4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF      USERS

        5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    EXAMPLE

        6 D:\DISK2\MOON\TEST01.DBF                           test

        7 D:\DISK4\MOON\TEST02.DBF                           test

        8 D:\DISK6\MOON\TEST_INDEX.DBF                       TEST_INDEX

        9 D:\DISK7\MOON\TEST_UNDO.DBF                        TEST_UNDO

已选择9行。

SQL> select file#,name,status from v$datafile;

SQL> select  file_id,file_name,tablespace_name,bytes/1024/1024 MB from dba_data_files;

4.创建临时表空间

临时数据文件状态只能为可读写,不能重命名,不能脱机,总是为NOLOGGING状态,

只读状态运行的数据库也需要临时数据文件,临时数据文件不可恢复。

SQL> select  f.file#,t.ts#,f.name,t.name from v$tempfile f,v$tablespace t where f.ts#=t.ts#;

SQL> create temporary tablespacetest_temp tempfile 'd:\disk8\moon\test_temp.dbf' size 10M extent management local uniform size 2M;

默认临时表空间的改变

SQL> select PROPERTY_NAME,PROPERTY_VALUEfrom database_properties where property_name like 'DEFAULT%';

SQL> alter database default temporary tablespace test_temp;

SQL> select PROPERTY_NAME,PROPERTY_VALUEfrom database_properties where property_name like 'DEFAULT%';

SQL> alter database default temporary  tablespace temp;

 

5.设置表空间脱机注意表空间名的大小写

正常状态 为ONLINE 联机状态 。脱机可进行:数据库打开状态下移动数据文件,数据库打开状态下恢复一个表空间。执行对表空间的脱机备份。

脱机时表空间上数据不可访问,状态变化 会记录在数据字典和控制文件中。

系统表空间,上面有活动的还原、回滚表空间,默认临时表空间不可脱机。

SQL> select tablespace_name,status,contents from dba_tablespaces;

TABLESPACE STATUS    CONTENTS

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

SYSTEM    ONLINE    PERMANENT

SYSAUX    ONLINE    PERMANENT

UNDOTBS1  ONLINE    UNDO

TEMP      ONLINE    TEMPORARY

USERS     ONLINE    PERMANENT

EXAMPLE   ONLINE    PERMANENT

test      ONLINE    PERMANENT

TEST_INDEX ONLINE    PERMANENT

TEST_UNDO ONLINE    UNDO

TEST_TEMP ONLINE    TEMPORARY

SQL> col name for a50

SQL> select  file#,name,status from  v$datafile;

    FILE# NAME                                               STATUS

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

        1 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF     SYSTEM

        2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     ONLINE

        3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF    ONLINE

        4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF      ONLINE

        5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    ONLINE

        6 D:\DISK2\MOON\TEST01.DBF                           ONLINE

        7 D:\DISK4\MOON\TEST02.DBF                           ONLINE

        8 D:\DISK6\MOON\TEST_INDEX.DBF                       ONLINE

        9 D:\DISK7\MOON\TEST_UNDO.DBF                        ONLINE

SQL> alter  tablespace test_index offline;

表空间已更改。

SQL> select  file#,name,status from  v$datafile;

    FILE# NAME                                              STATUS

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

        1 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF     SYSTEM

         2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     ONLINE

        3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF    ONLINE

        4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF      ONLINE

        5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    ONLINE

        6 D:\DISK2\MOON\TEST01.DBF                           ONLINE

        7 D:\DISK4\MOON\TEST02.DBF                           ONLINE

        8 D:\DISK6\MOON\TEST_INDEX.DBF                       OFFLINE

        9 D:\DISK7\MOON\TEST_UNDO.DBF                        ONLINE

 

SQL> alter  tablespace test_index online;

SQL> select file#,name,status from  v$datafile;

 

    FILE# NAME                                              STATUS

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

        1 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF     SYSTEM

        2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF     ONLINE

        3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF    ONLINE

        4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF      ONLINE

        5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF    ONLINE

        6 D:\DISK2\MOON\TEST01.DBF                           ONLINE

        7 D:\DISK4\MOON\TEST02.DBF                           ONLINE

         8 D:\DISK6\MOON\TEST_INDEX.DBF                       ONLINE

        9 D:\DISK7\MOON\TEST_UNDO.DBF                        ONLINE

#############

6.表空间的设置为只读模式,注意表名字默认是大写,如果创建表空间时表名小写并加双引号可以成小写。

SQL> select  tablespace_name,status,contents from dba_tablespaces where tablespace_name like 'TEST%';

TABLESPACE STATUS    CONTENTS

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

TEST_INDEX READ ONLY PERMANENT

TEST_TEMP ONLINE    TEMPORARY

TEST_UNDO ONLINE    UNDO

SQL> alter tablespace "test" read only;

表空间已更改。

SQL> alter tablespace "test" read write;

表空间已更改。

########################################################################

7.改变表空间的存储设置

alter tablespace  "test"  minimum extent 100K
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: