千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > oracle如何自动扩展

oracle如何自动扩展

来源:千锋教育
发布人:xqq
时间: 2023-07-21 11:53:46 1689911626

oracle表空间如何自动扩展?

需要在创建的时候就设置为自动扩展,语句如下:

create  tablespace shopping --创建shopping的表空间

datafile 'shopping.dbf'  --物理文件名

size 50m  --初始大小为50M

autoextend on  --自动扩展

next 50m maxsize 20480m  --每次自动扩展50M,最大可到20480M

extent management local;

表空间:

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。

Oracle数据库中至少存在一个表空间,即SYSTEM的表空间。

SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。

ORACLE数据库表自动扩展

首先说明一下,数据文件在加入的时候就可以直接设定为自动扩展,不用再次alter。

再把语句给你解析一下:

create tablespace SIRM2 

datafile '路径+文件' size 1024M --存储地址 初始大小1G

autoextend on next 10M maxsize unlimited   --每次扩展10M,直到不能再扩展为止EXTENT MANAGEMENT local  autoallocate                --区管理方式为本地管理,segment space management auto; --段管理方式为自动

然后再回答你的问题:

并不是只能增加2G,这里的2G是你设定的数据文件的初始大小,并不是最后的大小。因为你的表空间是small datafile组成(区别于bigfile),所以每个数据文件最多只能有4M个block块。也就是说,假设你设定的block块的大小是8K,那么这里的每个数据文件最大就是32G(理论最大值,其实并不能完全达到这么大),你的数据文件初始大小2G,也就是说还有30G的可扩展大小左右(small datafile,以8K的block块大小计算,如果是16K,或者32k,那么也就是说可扩展空间更大一些),扩展到不能再扩展了,那么自然就需要增加数据文件了。个人建议:表空间自动扩展关闭(起码我不喜欢用),直接建立需要大小的数据文件,比如每个数据文件30G,一次加4个,那么表空间大小直接增加120G,足够你用了,就算不够再加,工作量也不是很大(比如每月操作一次,一次加四个,估计5分钟搞定,工作量不大吧)。不然天天看着表空间要满,很难受的。

你的alter database datafile '全路径' autoextend on;语句本身没有问题,但是你没有设定next大小,所以数据库会根据自己的判断增加数据文件的大小,默认参数是多少我忘记了,这个是有默认值的,不过这个默认值真的不大(好像是初始参数的百分之几,你初始设定2G,假设是5%,那么也就是100M左右,对于你来说几乎感觉不到,而且扩展速度慢),所以几乎感觉不到也是可以理解的。

如果实在感觉麻烦,那么就直接建立一个bigfile的表空间,那你就基本不用管了,那可是4G个数据块,也就是说按照每个block块8K计算,最终能扩展到32T,足够了。不过如果不是数据量特别大,个人感觉还是不要这么干,有利就有弊,而且一个文件那么大,总是感觉不太好。

如何扩展Oracle表空间

方法/步骤

第一步:查看表空间的名字及文件所在位置:

select tablespace_name, file_id, file_name,

round(bytes/(1024*1024),0) total_space

from dba_data_files

order by tablespace_name

2

第二步:增大所需表空间大小:

alter database datafile '表空间位置'resize 新的尺寸

例如:

alter database datafile '\oracle\oradata\anita_2008.dbf' resize 4000m

3

第三步:设置表空间自动扩展

alter database datafile '\oracle\oradata\anita_2008.dbf'

autoextend on next 100m maxsize 10000m

数据库oracle11G,如何通过plsql查询表空间大小,如何通过PLSQL把一个表空间的大小设置成自动扩展

sql语句

1.查询表空间大小

select tablespace_name , sum(bytes/1024/1024) sizeM from dba_data_files group by tablespace_name ;

2.设置数据文件为自动拓展

alter database datafile n autoextend on ;

不知道你说的两个东西有什么关联性。

下面是设置全部数据文件为自动拓展的plsql匿名块:

begin

  for rec in (select file_id , autoextensible from dba_data_files where autoextensible='NO') loop

    execute immediate 'alter database datafile '||rec.file_id||' autoextend on ' ;

  end loop ;

end ;

千锋教育是专业的IT培训机构,提供java培训、大数据培训python培训web前端培训等专业IT技能提升服务,如果您有IT培训需求,欢迎联系千锋教育。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT