创建和管理表空间

浏览存储结构
常规的意义上来说 一个段就是一个表 严格意义来说分区表可以有多个段
11g 创建表空间 优先推荐locality managed
创建表空间有三种类型:
permanent(进去的数据就会一直存在,除非把它删掉)
temporary(临时,只要数据库一关闭,temp里的数据就会被清空,用来做排序,做表连接的中间结果)
undo(undo的数据必须存放在自己专用的表空间下,文件的结构格式和普通的不一样)
undo 在事物开始,数据没有被修改之前都会放在undo里。事物没有结束,undo绝对有,事物结束,尽量不会被回收,undo——retention参数 保留一定的时间
snapshot too old  没有剩余空间可以用了,就会被删。
对于undo  加一个guarantee 会强制保留
想在空间的级别上更省空间就选Automatic 从性能来说就选unform
添加数据文件有两种方法:一种是ASM,还有一种是文件系统
区分配:动态的分配灵活的大小
空间和性能不可兼得 
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
+DATA/orcl/datafile/system.267.985112183
+DATA/orcl/datafile/sysaux.268.985112183
+DATA/orcl/datafile/undotbs1.269.985112183
+DATA/orcl/datafile/users.270.985112183
+DATA/orcl/datafile/example.276.985112295
+DATA/orcl/datafile/tbs_16k.dbf

6 rows selected.

SQL> create tablespace test datafile '+DATA/orcl/datafile/test01.dbf' size 10m autoextend on next 1m;  指定的数据文件,大小10M,下次分配1M

Tablespace created.

SQL> set long 1000
SQL> set pages 1000
SQL> set line 120
SQL> select dbms_metadata.get_ddl('TABLESPACE','TEST') from dual;

DBMS_METADATA.GET_DDL('TABLESPACE','TEST')
--------------------------------------------------------------------------------

  CREATE TABLESPACE "TEST" DATAFILE
  '+DATA/orcl/datafile/test01.dbf' SIZE 10485760
  AUTOEXTEND ON NEXT 1048576 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT NOCOMPRESS  SEGMENT SPACE MANAGEM
ENT AUTO
创建表空间:
格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小
                create tablespace data_test datafile 'e:\oracle\oradata\test\data_1.dbf' size 2000M;
                create tablespace idx_test datafile 'e:\oracle\oradata\test\idx_1.dbf' size 2000M;
                (*数据文件名 包含全路径, 表空间大小 2000M 表是 2000兆) 
创建表:
SQL> create table tttt as select * from scott.emp;

Table created.

SQL> create table rrrr as select * from scott.emp;

Table created.

SQL> desc dba_extents   
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- --------------------------------------------
 OWNER                                                                      VARCHAR2(30)
 SEGMENT_NAME                                                               VARCHAR2(81)
 PARTITION_NAME                                                             VARCHAR2(30)
 SEGMENT_TYPE                                                               VARCHAR2(18)
 TABLESPACE_NAME                                                            VARCHAR2(30)
 EXTENT_ID                                                                  NUMBER
 FILE_ID                                                                    NUMBER
 BLOCK_ID                                                                   NUMBER
 BYTES                                                                      NUMBER
 BLOCKS                                                                     NUMBER
 RELATIVE_FNO                                                               NUMBER
SQL> SELECT SEGMENT_NAME,FILE_ID,EXTENT_ID,BLOCK_ID,BLOCKS FROM DBA_EXTENTS WHERE SEGMENT_NAME IN('TTTT','RRRR');

SEGMENT_NAME                                                                         FILE_ID  EXTENT_ID   BLOCK_ID
--------------------------------------------------------------------------------- ---------- ---------- ----------
    BLOCKS
----------
TTTT                                                                                      1           0      87320
         8

RRRR                                                                                      1           0      87328
         8


SQL> COL SEGMENT_NAME FOR A20
SQL> /

SEGMENT_NAME            FILE_ID  EXTENT_ID   BLOCK_ID     BLOCKS
-------------------- ---------- ---------- ---------- ----------
TTTT                          1          0      87320          8

SQL> TRUNCATE TABLE TTTT;

Table truncated.

SQL> TRUNCATE TABLE RRRR;

Table truncated.
只有truncated 可以把空间回收

使用alllocate 分配回收空间
SQL> ALTER TABLE TTTT ALLOCATE EXTENT;

Table altered.

SQL> SELECT SEGMENT_NAME,FILE_ID,EXTENT_ID,BLOCK_ID,BLOCKS FROM DBA_EXTENTS WHERE SEGMENT_NAME IN('TTTT','RRRR');

SEGMENT_NAME            FILE_ID  EXTENT_ID   BLOCK_ID     BLOCKS
-------------------- ---------- ---------- ---------- ----------
TTTT                          1          0      87320          8
TTTT                          1          1      87336          8
RRRR                          1          0      87328          8

SQL> ALTER TABLE TTTT DEALLOCATE UNUSED;

Table altered.

SQL> SELECT SEGMENT_NAME,FILE_ID,EXTENT_ID,BLOCK_ID,BLOCKS FROM DBA_EXTENTS WHERE SEGMENT_NAME IN('TTTT','RRRR');

SEGMENT_NAME            FILE_ID  EXTENT_ID   BLOCK_ID     BLOCKS
-------------------- ---------- ---------- ---------- ----------
TTTT                          1          0      87320          8
RRRR                          1          0      87328          8

SQL> desc dba_data_files    每个数据文件的信息
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 FILE_NAME                                          VARCHAR2(513)
 FILE_ID                                            NUMBER
 TABLESPACE_NAME                                    VARCHAR2(30)
 BYTES                                              NUMBER
 BLOCKS                                             NUMBER
 STATUS                                             VARCHAR2(9)
 RELATIVE_FNO                                       NUMBER
 AUTOEXTENSIBLE                                     VARCHAR2(3)
 MAXBYTES                                           NUMBER
 MAXBLOCKS                                          NUMBER
 INCREMENT_BY                                       NUMBER
 USER_BYTES                                         NUMBER
 USER_BLOCKS                                        NUMBER
 ONLINE_STATUS                                      VARCHAR2(7)
SQL> desc dba_tablespaces  表空间的信息
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 TABLESPACE_NAME                           NOT NULL VARCHAR2(30)
 BLOCK_SIZE                                NOT NULL NUMBER
 INITIAL_EXTENT                                     NUMBER
 NEXT_EXTENT                                        NUMBER
 MIN_EXTENTS                               NOT NULL NUMBER
 MAX_EXTENTS                                        NUMBER
 MAX_SIZE                                           NUMBER
 PCT_INCREASE                                       NUMBER
 MIN_EXTLEN                                         NUMBER
 STATUS                                             VARCHAR2(9)
 CONTENTS                                           VARCHAR2(9)
 LOGGING                                            VARCHAR2(9)
 FORCE_LOGGING                                      VARCHAR2(3)
 EXTENT_MANAGEMENT                                  VARCHAR2(10)
 ALLOCATION_TYPE                                    VARCHAR2(9)
 PLUGGED_IN                                         VARCHAR2(3)
 SEGMENT_SPACE_MANAGEMENT                           VARCHAR2(6)
 DEF_TAB_COMPRESSION                                VARCHAR2(8)
 RETENTION                                          VARCHAR2(11)
 BIGFILE                                            VARCHAR2(3)
 PREDICATE_EVALUATION                               VARCHAR2(7)
 ENCRYPTED                                          VARCHAR2(3)
 COMPRESS_FOR                                       VARCHAR2(12)


SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/orcl';

System altered.   把创建文件自动放在这里

扩大数据库
创建新表空间,将数据文件添加到现有表空间,增加数据文件大小,动态扩展数据文件

alter database datafile '路径' resize 20m; 改变数据文件大小


                

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值