表空间的管理

在创建数据库时,会默认创建六个表空间,它们分别是 SYSTEM, SYSAUX, UNDOTBS1, TEMP, USER, EXAMPLE.
SYSTEM 用来保存数据。                                                                                                 

SYSAUX 主要存放 AWR 快照。                                                                                 

 UNDOTBS1 是还原表空间用于保存还原数据。                                                           

TEMP 是临时表空间,在排序时提供辅助空间。                                                         

USER 是在创建用户时如果没有指定默认的表空间,系统就会使用该表空间作为新用户的默认表空间

以上五个时数据业务必须的表空间。

一、创建永久表空间
如果不指定 permanent, temporary, undo 选项,则创建的表空间是永久表空间。
1) 使用 ASM 管理的 DATA 磁盘组创建名为 test_data1 的表空间,初始大小 10M, 自动扩展
每次扩展 2M, 表空间最大到 4G. (以下创建表空间实验由于考虑实验环境空间因素,制定
数据文件都较小,生产环境应根据情况设置):

SQL>CREATE TABLESPACE test_data1 DATAFILE '+DATA' SIZE 10M                         

    2   AUTOEXTEND ON NEXT 2M MAXSIZE 4G;

2) 使用 ASM 管理的 DATA 磁盘组创建名为 test_data2 的表空间,初始大小 10M, 自动扩展
最大到 4G, 段空间自动管理,采用 local(本地)表空间管理,统一使用 2M 区:

SQL>CREATE TABLESPACE test_data2 DATAFILE '+DATA' SIZE 10M                           

    2  AUTOEXTEND ON MAXSIZE 4G SEGMENT SPACE MANAGEMENT AUTO             

    3  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;

二、创建大文件表空间
大文件表空间是 Oracle 10g 的新特性,在 Oracle 11g 中得到延续。大文件表空间只能包含
一个数据文件,最大大小可以包含 4G 个块:

SQL>CREATE BIGFILE TABLESPACE bid_data DATAFILE '+DATA'                                       

    2   SIZE 20M AUTOEXTEND ON:

 创建 UNDO 表空间
UNDO 表空间中不能创建其它方案对象,如:表、索引、视图等。

SQL>CREATE UNDO TABLESPACE undo1 DATAFILE '+DATA"                                             

     2   SIZE 10M RETENTION GUARANTEE;

三、创建临时表空间

SQL>CREATE TEMPORARY TABLESPACE TEMP1 tempfile '+DATA' size 10M;                           

临时表空间会加入表空间组,如果表空间组不存在,会在第一次使用时创建,表空间组只适用临
时表空间。

创建加密表空间
1) 首先建立 wallet
$mkdir wallet

SQL>ALTER SYSTEM SET ENCRYPTION KEY IDENTIFILED BY "udbs01";

2) 创建加密表空间:

SQL>CREATE TABLESPCE encrypt_ts                                                                           

    2   DATAFILE '$ORACLE_HOME/dbs/encrypt_df.dbf' SIZE 10M                                             

    3    ENCRYPTION USING  'AES256‘                                                                                         

    4    DEFAULT STORAGE (ENCRYPT);

创建压缩表空间
创建压缩表空间后,在压缩表空间上存储的表默认使用压缩选项,但可以单独指定压缩选项覆盖
表空间的压缩选项。

SQL>CREATE TABLESPACE test_data3 DATAFILE '+DATA'  SIZE 10M                                   

     2   DEFAULT COMPRESS FOR OLTP;

四、 修改表空间
 扩展表空间
扩展表空间包括:添加数据文件、改变数据文件的大小、允许数据文件自动扩展等。
1.表空间增加数据文件

SQL>ALTER TABLESPACE test_data1 ADD DATAFILE '+DATA' SIZE 10M;

2.修改数据文件大小
由于使用 ASM 管理,详细的数据文件名采用系统自动生成。需要先查看生成的数据文件名称(使用col)

SQL>alter database datafile                                                                                                         

     2   '+DAT/orcl/datafile/test_data1.267.860321671' resize 20M;(数据文件名称是用col命令查出来的)注意:数据文件的大小可以增加,也可以减小,但减小后的大小不能小于当前已经使用的大小。

3.允许数据文件自动扩展
SQL>alter database datafile                                                                                                       

     2  '+DATA/orcl/datafile/test_data1.267.86032167'                                                                     

     3  autoextend on next 2M maxsize 4G;

也可以禁止数据文件自动扩张

SQL>alter database datafile                                                                                                         

     2  '+DATA/orcl/datafile/test_data1.267.860321671'  autoextend off;

增加临时数据文件大小:
SQL>alrer database tempfile '+DATA/orcl/tempfile/temp.264.860249365'                                 

     2  resize 100M;

收缩临时数据文件:

SQL>alter tablespace temp shrink                                                                                         

     2  tempfile '+DATA/orcl/tempfile/temp.264.860249365' keep 50;

五、修改表空间属性

1.使表空间脱机
TEST_DATA1 表空间的状态是 ONLINE, 将其脱机为 OFFLINE:

SQL>ALTER TABLESPACE test_data OFFLINE;

注意:system, undo, temp 表空间不能设为 offline 状态或只读状态。sysaux 表空间不能设为只读。

2.使表空间联机

SQL>ALTER TABLESPACE test_data1 ONLINE;

3. 使表空间只读

SQL>ALTER TABLESPACE test_data1 READ ONLY;

(只读表空间仍可执行 drop 删除对象等操作。)

4. 使表空间可读写

SQL>ALTER TABLESPCE test_data1 READ WRITE;

注意:脱机状态的表空间不能修改其为读写状态。

修改表空间名称                                                                                                                               

语法:ALTER TABLESPACE oldname RENAME TO newname;

例如:将 TEST_DATA1 表空间名修改为 DATA1:

SQL>ALTER TABLESPACE test_data1 RENAME TO data1;

注意:
1. system, sysaux, temp 和 undo 表空间的名称不能修改;
2. 处于脱机状态的表空间不能修改其名称。
3. 表空间名称修改之后相应的数据文件、数据文集的位置和大小没有变化

六、设置默认表空间
1. 设置数据库的默认表空间:

SQL>ALTER DATABASE DEFAULT TABLESPACE tata1;

2. 设置数据库的默认永久表空间:

SQL>ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1;

七、删除表空间

Oracle 数据库的默认表空间不能被删除;表空间一旦删除就不能恢复,所以删除表空间前最好
备份;不能删除包含任何活动段的表空间,表空间在被删除前应处于脱机状态;删除表空间的用
户要拥有 drop tablespace 权限。表空间的删除方式:
1)DROP TABLESPACE tablespace_name; 删除空的表空间
2)DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES; 删
除非空表空间
3)DROP TABLESPACE tablespace_name INCLUDING CONTENTS; 该删除语句只会从数
据字典、控制文件中删除表空间信息,而与其有关的数据文件任然存在与磁盘上,但这些数
据文件已经失去作用。

例如,以下语句删除 test_data2 表空间在数字字典和控制文件的记录,同时删除数据文件。

SQL>DROP TABLESPACE TEST_DATA2 INCLUDING CONTENTS AND DATAFILES;


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青木与风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值