Oracle DBA课程系列笔记(9_1)

简介:

第九章: 表空间和数据文件管理(1)

  1、tablespace 功能:从逻辑上简化数据库的管理         
  2、tablespace :一个database 对应多个tablespace ,一个tablespace 可以对应一个datafile ,也可以多个
                 Oracle 10g,最少有两个系统表空间:system 和sysaux 用来存放数据字典信息
                  system和sysaux 作为系统表空间
                  system:存放数据字典,在建库是建立
                  sysaux:辅助表空间,存放从system分离一部分信息如对数据库的监控、运行状态等信息
                  temp:临时表空间,用于数据排序,不存放永久对象
                  undo:存放undo数据块(数据块旧的镜像)
                  
                  system表空不能在线offline 和drop。
                 
 3、表空间的管理
    1、创建表空间
    05:50:39 SQL> col file_name for a50
05:57:22 SQL> select file_id,file_name,tablespace_name from dba_data_files;

   FILE_ID FILE_NAME                                          TABLESPACE_NAME
---------- -------------------------------------------------- ------------------------------
         1 /u01/app/oracle/oradata/lx02/system01.dbf          SYSTEM
         7 /u01/app/oracle/oradata/lx02/OLTP01.DBF            OLTP
         6 /u01/app/oracle/oradata/lx02/indx01.dbf            INDX
         5 /u01/app/oracle/oradata/lx02/example01.dbf         EXAMPLE
         4 /u01/app/oracle/oradata/lx02/user01.dbf            USERS
         3 /u01/app/oracle/oradata/lx02/sysaux01.dbf          SYSAUX
         2 /u01/app/oracle/oradata/lx02/rtbs01.dbf            RTBS

7 rows selected.
05:57:42 SQL> create tablespace test 
05:58:14   2   datafile '/u01/app/oracle/oradata/lx02/test01.dbf' size 10m;

Tablespace created.

05:58:32 SQL> select file_id,file_name,tablespace_name ,bytes/1024/1024 "Size" from dba_data_files;

   FILE_ID FILE_NAME                                          TABLESPACE_NAME                      Size
---------- -------------------------------------------------- ------------------------------ ----------
         1 /u01/app/oracle/oradata/lx02/system01.dbf          SYSTEM                                300
         7 /u01/app/oracle/oradata/lx02/OLTP01.DBF            OLTP                                   48
         6 /u01/app/oracle/oradata/lx02/indx01.dbf            INDX                                   40
         5 /u01/app/oracle/oradata/lx02/example01.dbf         EXAMPLE                               400
         4 /u01/app/oracle/oradata/lx02/user01.dbf            USERS                                  48
         3 /u01/app/oracle/oradata/lx02/sysaux01.dbf          SYSAUX                                100
         2 /u01/app/oracle/oradata/lx02/rtbs01.dbf            RTBS                                  100
         8 /u01/app/oracle/oradata/lx02/test01.dbf            TEST                                   10

8 rows selected.

    2、表空间对free extents(空闲区) 的管理:
         1)9i 以前通过dictionary管理,性能不好,容易产生碎片,通过uet$ 和 fet$ 管理
         2)9i以后采用local 管理,在表空间上建立bitmap ,用0,1来表示free extents,oracle 10g 默认本地管理
         06:08:59 SQL> select TABLESPACE_NAME,status ,EXTENT_MANAGEMENT from dba_tablespaces;

TABLESPACE_NAME                STATUS    EXTENT_MAN
------------------------------ --------- ----------
SYSTEM                         ONLINE    DICTIONARY
RTBS                           ONLINE    LOCAL
SYSAUX                         ONLINE    LOCAL
TEMP                           ONLINE    LOCAL
USERS                          ONLINE    LOCAL
EXAMPLE                        ONLINE    LOCAL
INDX                           ONLINE    LOCAL
OLTP                           ONLINE    LOCAL
TEST                           ONLINE    LOCAL

9 rows selected.

06:11:27 SQL> create tablespace cuug 
06:11:30   2   datafile '/u01/app/oracle/oradata/lx02/cuug01.dbf' size 10m
06:11:32   3    extent management dictionary;

Tablespace created.

06:11:35 SQL> select TABLESPACE_NAME,status ,EXTENT_MANAGEMENT from dba_tablespaces;

TABLESPACE_NAME                STATUS    EXTENT_MAN
------------------------------ --------- ----------
SYSTEM                         ONLINE    DICTIONARY
RTBS                           ONLINE    LOCAL
SYSAUX                         ONLINE    LOCAL
TEMP                           ONLINE    LOCAL
USERS                          ONLINE    LOCAL
EXAMPLE                        ONLINE    LOCAL
INDX                           ONLINE    LOCAL
OLTP                           ONLINE    LOCAL
TEST                           ONLINE    LOCAL
CUUG                           ONLINE    DICTIONARY

10 rows selected.

06:11:42 SQL>

--------如果system表空间是数据字典管理,其他表空间可以是数据字典管理或local管理(默认)

06:10:47 SQL>  select TABLESPACE_NAME,status ,EXTENT_MANAGEMENT from dba_tablespaces;

TABLESPACE_NAME                STATUS    EXTENT_MAN
------------------------------ --------- ----------
SYSTEM                         ONLINE    LOCAL
UNDOTBS1                       ONLINE    LOCAL
SYSAUX                         ONLINE    LOCAL
TEMP                           ONLINE    LOCAL
USERS                          ONLINE    LOCAL
EXAMPLE                        ONLINE    LOCAL
TEST                           ONLINE    LOCAL

7 rows selected.

06:12:02 SQL> create tablespace cuug 
06:12:15   2  datafile '/u01/app/oracle/oradata/lx02/cuug01.dbf' size 10m
06:12:24   3  extent management dictionary;
create tablespace cuug
*
ERROR at line 1:
ORA-12913: Cannot create dictionary managed tablespace


06:12:30 SQL> 
         
------------如果system是local 管理,其余的表空间只能是local 管理。


        
    3、数据字典管理通过fet$(记录空闲extent)和uet$(记录已使用extent)
            08:39:37 SQL> col file_name for a50
08:40:00 SQL> 
select a.ts#,a.name,b.file#,b.name "File_name" ,c.block#,d.extent_management from v$tablespace a,v$datafile b,fet$ c,dba_tablespaces d
08:40:04   2     where a.ts#=b.ts# and a.ts#=c.ts# and a.name=d.tablespace_name;

       TS# NAME                                FILE# File_name                                              BLOCK# EXTENT_MAN
---------- ------------------------------ ---------- -------------------------------------------------- ---------- ----------
         0 SYSTEM                                  1 /u01/app/oracle/oradata/lx02/system01.dbf               21509 DICTIONARY
         9 CUUG                                    9 /u01/app/oracle/oradata/lx02/cuug01.dbf                     2 DICTIONARY

08:40:05 SQL>

select ts#,file#,block# from uet$;

   4、local manager 对extent  size 分配 有两种管理方式:autoallocate (自动分配,默认),uniform size 统一大小
   
      采用uniform 建立表空间
      
      08:45:44 SQL> create tablespace lx01
08:47:02   2    datafile '/u01/app/oracle/oradata/lx02/lx01.dbf' size 10m 
08:47:14   3      extent management local 
08:47:19   4         uniform size 1m;

Tablespace created.

08:47:36 SQL> select TABLESPACE_NAME,INITIAL_EXTENT/1024,NEXT_EXTENT/1024,EXTENT_MANAGEMENT from dba_tablespaces;

TABLESPACE_NAME                INITIAL_EXTENT/1024 NEXT_EXTENT/1024 EXTENT_MAN
------------------------------ ------------------- ---------------- ----------
SYSTEM                                          16               16 DICTIONARY
RTBS                                            64                  LOCAL
SYSAUX                                          64                  LOCAL
TEMP                                          1024             1024 LOCAL
USERS                                         4096             4096 LOCAL
EXAMPLE                                       1024             1024 LOCAL
INDX                                            64                  LOCAL
OLTP                                          2048             2048 LOCAL
TEST                                            64                  LOCAL
CUUG                                            40               40 DICTIONARY
LX01                                          1024             1024 LOCAL

11 rows selected.

08:47:40 SQL> 
 ------------inittial_extent 第一个extent 的大小
             next_extent 第二个extent的大小
             
    5、数据字典管理表空间
    08:47:40 SQL> create tablespace lx02
08:51:53   2   datafile '/u01/app/oracle/oradata/lx02/lx02.dbf' size 10m
08:52:00   3    extent management dictionary
08:52:06   4      default storage (initial 1m next 1m pctincrease 50);

Tablespace created.

08:52:27 SQL> select TABLESPACE_NAME,INITIAL_EXTENT/1024,NEXT_EXTENT/1024,EXTENT_MANAGEMENT,pct_increase from dba_tablespaces;

TABLESPACE_NAME                INITIAL_EXTENT/1024 NEXT_EXTENT/1024 EXTENT_MAN PCT_INCREASE
------------------------------ ------------------- ---------------- ---------- ------------
SYSTEM                                          16               16 DICTIONARY           50
RTBS                                            64                  LOCAL
SYSAUX                                          64                  LOCAL
TEMP                                          1024             1024 LOCAL                 0
USERS                                         4096             4096 LOCAL                 0
EXAMPLE                                       1024             1024 LOCAL                 0
INDX                                            64                  LOCAL
OLTP                                          2048             2048 LOCAL                 0
TEST                                            64                  LOCAL
CUUG                                            40               40 DICTIONARY           50
LX01                                          1024             1024 LOCAL                 0
LX02                                          1024             1024 DICTIONARY           50

12 rows selected.

08:52:41 SQL>

   -----------initial 初始化区(第一个extent),next 第二个extent ,pctincrease 从第三个extent 开始,比上一个extent增加的百分比。
   
   
   
              
   undo tablespace 存放undo数据块,可以建立多个undo 表空间,但处于active状态只有一个,active 状态的undo tablespace是不能offline 和drop。
      如果未建立undo tablespace oracle 使用system undo segment。
   
   09:01:22 SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      rtbs

09:01:48 SQL> select TABLESPACE_NAME,STATUS,CONTENTS from dba_tablespaces;

TABLESPACE_NAME                STATUS    CONTENTS
------------------------------ --------- ---------
SYSTEM                         ONLINE    PERMANENT
RTBS                           ONLINE    UNDO
SYSAUX                         ONLINE    PERMANENT
TEMP                           ONLINE    TEMPORARY
USERS                          ONLINE    PERMANENT
EXAMPLE                        ONLINE    PERMANENT
INDX                           ONLINE    PERMANENT
OLTP                           ONLINE    PERMANENT
TEST                           ONLINE    PERMANENT
CUUG                           ONLINE    PERMANENT
LX01                           ONLINE    PERMANENT
LX02                           ONLINE    PERMANENT

12 rows selected.

09:02:01 SQL> create undo tablespace undo_tbs01
09:02:50   2   datafile '/u01/app/oracle/oradata/lx02/undotbs01.dbf' size 10m;

Tablespace created.

09:03:06 SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      rtbs


SP2-0734: unknown command beginning "09:01:48 S..." - rest of line ignored.
09:03:25 SQL> select TABLESPACE_NAME,STATUS,CONTENTS from dba_tablespaces;

TABLESPACE_NAME                STATUS    CONTENTS
------------------------------ --------- ---------
SYSTEM                         ONLINE    PERMANENT
RTBS                           ONLINE    UNDO
SYSAUX                         ONLINE    PERMANENT
TEMP                           ONLINE    TEMPORARY
USERS                          ONLINE    PERMANENT
EXAMPLE                        ONLINE    PERMANENT
INDX                           ONLINE    PERMANENT
OLTP                           ONLINE    PERMANENT
TEST                           ONLINE    PERMANENT
CUUG                           ONLINE    PERMANENT
LX01                           ONLINE    PERMANENT
LX02                           ONLINE    PERMANENT
UNDO_TBS01                     ONLINE    UNDO

13 rows selected.

09:03:28 SQL> alter system set undo_tablespace=undo_tbs01;

System altered.

--------------切换undo 表空间
09:04:11 SQL> show parameter undo;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDO_TBS01

09:04:18 SQL> 










本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/791756,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析2
oracle基本笔记整理及案例分析2
13 0
|
2月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析1
oracle基本笔记整理及案例分析1
17 0
|
2月前
|
SQL Oracle 关系型数据库
oracle笔记整理2
oracle笔记整理2
11 0
|
2月前
|
SQL Oracle 关系型数据库
oracle基本笔记整理
oracle基本笔记整理
13 0
|
9月前
|
SQL Oracle 关系型数据库
Oracle笔记1
Oracle笔记1
100 0
|
11月前
|
人工智能 运维 Oracle
ChatGPT能代替Oracle DBA吗?用Oracle OCP(1z0-083)的真题测试一下(文末投票)
ChatGPT已经通过了很多考试,姚远老师是Oracle OCP和MySQL OCP讲师,我很好奇ChatGPT能不能通过Oracle OCP的考试呢?让我们拿Oracle 19c OCP考试(1z0-082)的真题对ChatGPT进行一个测试。
136 0
|
11月前
|
人工智能 运维 Oracle
ChatGPT能代替Oracle DBA吗?用Oracle OCP(1z0-083)的真题测试一下。
第1道题ChatGPT就做错了,姚远老师心里不禁窃喜,看来ChatGPT也不咋地,我们也许不会失业,让我们来看看第一道题的题目
122 0
|
12月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析2
oracle基本笔记整理及案例分析2
59 0
|
12月前
|
Oracle 关系型数据库
oracle基本笔记整理及案例分析1
oracle基本笔记整理及案例分析1
78 0
|
12月前
|
SQL Oracle 关系型数据库
oracle基本笔记整理
oracle基本笔记整理
55 0

推荐镜像

更多