データファイルの拡張・縮小

(8.0.22)
https://dev.mysql.com/doc/refman/8.0/ja/innodb-system-tablespace.html

①file-per-table テーブルスペース
(innodb_file_per_table=1の場合)
→サイズ指定の拡張、縮小はできない


②システムテーブルスペース
(innodb_file_per_table=0の場合)

→サイズ指定の拡張、縮小はできない


③一般テーブルスペース

→サイズ指定の拡張、縮小はできない

 

 

(19c)

drop tablespace test including contents and datafiles;
create tablespace test datafile '/u01/app/oracle/oradata/ORCL/pdb1/test.dbf' size 10M autoextend off;

select
d.tablespace_name,
d.mbytes "total[MB]",
NVL(f.mbytes,0) "free[MB]",
d.mbytes - NVL(f.mbytes,0) "used[MB]",
(1 - (NVL(f.mbytes,0)/d.mbytes))*100 "used_percent"
from
(SELECT tablespace_name, (SUM(bytes)/(1024*1024)) mbytes
FROM dba_data_files GROUP BY tablespace_name) d
left outer join
(SELECT tablespace_name, (SUM(bytes)/(1024*1024)) mbytes
FROM dba_free_space GROUP BY tablespace_name) f
on d.tablespace_name=f.tablespace_name
;

サイズ指定の拡張
alter database datafile '/u01/app/oracle/oradata/ORCL/pdb1/test.dbf' resize 11M;


サイズ指定の縮小
alter database datafile '/u01/app/oracle/oradata/ORCL/pdb1/test.dbf' resize 10M;

格納されているデータ サイズ以下に縮小はできない

 

ファイル追加
alter tablespace test add datafile '/u01/app/oracle/oradata/ORCL/pdb1/test2.dbf' size 10M autoextend off;

ファイル削除
alter tablespace test drop datafile '/u01/app/oracle/oradata/ORCL/pdb1/test2.dbf';

 

(13)

サイズ指定の拡張、縮小はできない

 

(2019)
https://qiita.com/gigadein/items/1b558286cfc7695a0d95

select database_id,name,file_id,physical_name,size * 8/1024 mbyte
from sys.master_files
where database_id = DB_ID()
;


alter database test remove file tbs1_01;
alter database test remove filegroup tbs1;

alter database test add filegroup tbs1;
alter database test add file
(name = tbs1_01 ,filename = 'C:\test\tbs1_01.ndf'
) to filegroup tbs1
;

サイズ指定の拡張

use test
alter database test modify file (name = tbs1_01 , SIZE = 560MB);

サイズ指定の縮小

use test
dbcc shrinkfile('tbs1_01' , 550)

※target_sizeはMB単位
格納されているデータ サイズ以下に、ファイルを圧縮することはできません。