首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【oracle】表空间管理

6月7号,又是一个高考日,首先最帅dba小崔,祝全国975万考生考试顺利,金榜题名。而我也真诚的希望,我的公众号能够帮助到日后选择计算机专业的学生,一起加油,一起努力。

今天为大家带来的是表空间的管理,虽然基础但是十分重要。我们下面开始说正题。

表空间存在多个状态:

Online

Offline

Read Write

Read Only

默认情况下为read write / online

selectb.tablespace_name,a.file#,a.status,a.ENABLED

fromv$datafile a ,dba_data_files bwherea.file#=b.file_idorderbya.file#;

关联显示数据库表空间的使用情况

更改表空间的状态

alter tablespace name read write;

可以完成数据的备份:

alter tablespace users offline; 这个offline的操作将会触发CKPT进程,进行写操作。

有时候在offline之后online表空间会导致数据库需要介质恢复

注意:

system 表空间不能offline 必须为read write

sysaux 表空间可以offline 不能read only

undo表空间不能offline 不能read only

其他自定义表空间都可以offline

OFFLINE之后:DML语句不能操作

DDL语句可以DQL语句可以

表空间设置read only 只有如下几种可行的情况

表空间必须为online

表空间中不能有归档模式

表空间中不能有回滚段

表空间改名

alter tablespace t1 rename to dd;

system、sysaux表空间不能改名

在database_properties定义的表空间均不可以改名 ---------》users -------------->temp --------------->undo

表空间属性:

自扩展 auto extend on

create tablespace aa datafile '/u01/oracle/oradata/orcl/t1.dbf' autoextend on next 100M maxsize 5G;

alter teblespace aa filename '/u01/oracle/oradata/orcl/t1.dbf' autoextend on; 在这里注意的是不能直接修改表空间信息;

修改表空间的大小方法:

重新修改

alter tablespace name resize 100M;

添加数据文件

alter tablespace name add dafile '/u01/oracle/oradata/orcl/t2.dbf' size 100M;

自扩展

alter tablespace aa filename '/u01/oracle/oradata/orcl/t1.dbf' autoextend on;

这里要注意的是如果通过增加数据文件来扩展表空间则CKPT进程的代价会增加。

数据文件做条带化的话会有优势,而且增加数据文件的时候io的情况也会优化。io的情况和数据库的并行度有关

数据文件的重命名和重定位

1.可以offline 的数据文件

offline数据文件

os层面改名

alter tablespace name rename datafile '/u01/oracle/oradata/t1.dbf' to '/u02/oracle/oradta/t2.dbf';

将表空间online

可能存在介质恢复recover

2.不可以offline的数据文件

那么需要将数据库启动到mount状态下进行修改。

os层面改名

alter tablespace name rename datafile '/u01/oracle/oradata/t1.dbf' to '/u02/oracle/oradta/t2.dbf';

mount不存在offline的状态

删除表空间

删除了表空间是将数据全部清空

system 不可以

sysaux 不可以

undo 不可以

temp 不可以

drop tablespace name including contents and datafiles ;

including contents 表示删除表空间的同时删除表空间上的所有段。物理文件不会被删除。

including contents and datafiles 删除表空间,数据文件以及表空间上的段的信息。同时删除os当中的数据信息。

如果including contents

那么想要重用之前的datafile那么就使用

create tablespace t1 datafile '/u01/oracle/oradata/orcl/t1.dbf' reuse;

创建非标准块表空间

alter system set db_16k_cache_size=16m scope=spfile;

create tablespace tbs_test datafile '/u01/oracle/oradata/orcl/t1.dbf' size 500M

autoextend on next 4m maxsize unlimited

blocksize 16k

extent management local autoallocate

segment space management auto;

这里必须先定义这里的blocksize 16k的大小否则在数据库中创建非标准块(8k)的时候会出现ora-29339:表空间大小16384大小不匹配。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180607G19CT600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券