在设置数据库表空间自动扩展时,需要注意以下几个关键事项,以确保数据库的稳定性和性能:
确保足够的可用空间
在启用表空间自动扩展之前,必须确保磁盘上有足够的可用空间来容纳扩展后的数据文件。
--磁盘组空间占用百分比查询 SELECT GROUP_NUMBER, NAME, TYPE, STATE , TOTAL_MB/1024 as 磁盘组总空间 , FREE_MB/1024 as 磁盘组未使用容量 ,OFFLINE_DISKS as 离线磁盘数 ,round((TOTAL_MB-FREE_MB)/TOTAL_MB*100,2) as 占用百分比 FROM V$ASM_DISKGROUP;
避免高峰期扩展
如果可能的话,应避免在数据库使用高峰期进行表空间自动扩展操作。因为扩展操作可能会消耗大量的系统资源,导致数据库性能下降。可以选择在数据库使用低峰期进行扩展操作,以减少对业务的影响。
设置合理的扩展步长
自动扩展的步长(即每次扩展的大小)需要根据数据库的增长速度和业务需求来设置。步长设置过大可能导致磁盘空间浪费,步长设置过小则可能频繁触发自动扩展操作,增加系统开销。
示例,步长加到2G。
alter tablespace CPOE_DATA add datafile '+DATA' size 2048M autoextend on next 2048M;
特别注意带大字段的表
大字段(如BLOB、CLOB等)通常会存储大量的二进制数据或字符数据。如果这些数据频繁变动,可能会导致数据文件频繁扩展,从而影响数据库的性能。自动扩展虽然方便,但每次扩展都可能需要额外的I/O操作,这些操作可能会对数据库性能产生负面影响。
直接给32G,相当于自动扩展不用
alter tablespace CPOE_DATA add datafile '+DATA' size 32736M autoextend on next 1024M;
对已存在表空间数据文件设置新的大小,单位M。示例:
alter database datafile '/vdb2/service/oracle/data/oracle/oradata/orcl/user04.dbf' resize 32736m
如果报错:ORA-01144: File size (5242880 blocks) exceeds maximum of 4194303 blocks
那就是超出最大限制了,如果此时的表空间已经最大化了,建议新增一个对应表空间的数据文件并设定大小。
由于Oracle的Rowid中使用22位来代表Block号,这22位最多只能代表2^22-1(4194303)个数据块,而在我们一般情况下使用的数据块大小为8k,所以数据文件的理论大小最大为: 31.9999924G。
查单个表空间情况
select df.BYTES/1024/1024/1024,df.* from dba_data_files df where df.TABLESPACE_NAME='CPOE_DATA'
添加数据文件后,检查一下。查看表空间文件列表名和创建时间
select vdf.name,vdf.CREATION_TIME from v$datafile vdf;
标签:1024,MB,数据库,扩展,空间,步长,注意事项,oracle From: https://www.cnblogs.com/yisheng163/p/18681566