Following command is needed to check the NEXT incremental size, and the Maximum Size.
SELECT tablespace_name, file_name, increment_by*[block size]/1024/1024 Inc_MB, maxbytes/1024/1024 MaxMB , autoextensible FROM dba_data_files;
You need to change the [block size] to your own block size, the reason is because the increment_by column is storing number of block we need to convert into Bytes by multiple by block size.
To find your block size use following command
SHOW PARAMETER db_block_size
for my case I have 8192 bytes per Oracle block, therefore my script is
SELECT tablespace_name, file_name, increment_by*8192/1024/1024 Inc_MB, maxbytes/1024/1024 MaxMB , autoextensible FROM dba_data_files;
In my example I want to set one of my MY_TBS tablespaces datafile namely my_tbs_03.dbf to be automatically increase by 5M until 100M.
ALTER DATABASE DATAFILE '/datafiles/edba01/edba01/my_tbs_03.dbf'
AUTOEXTEND ON
NEXT 5M
MAXSIZE 100M;
You also able to set the Maximum grow size to UNLIMITED, which
mean Oracle will fill until the maximum it can go.
Now I want to set my datafile my_tbs_02.dbf to unlimited growth size.
ALTER DATABASE DATAFILE '/datafiles/edba01/edba01/my_tbs_02.dbf'
AUTOEXTEND ON
NEXT 5M
MAXSIZE UNLIMITED;
Please note that:
For the UNLIMITED datafile this is not mean that you datafile is super power kind of datafile that you need to upgrae your storage only. The UNLIMITED means that Oracle will used up to the maximum of 4 millions block per datafile, for my case is equal to 4E6*8192. This is not apply for BIGFILE TABLESPACE.
It will be better you set the MAXSIZE value to non UNLIMITED
There are two ways to increase tablespace size Manually.
1. Add new datafile to the tablespace.
2. Increase the datafile size of the tablespace.
Note: You can use this script to check the tablespace size and autoextensible status
SELECT tablespace_name, file_name, bytes/1024/1024 MBytes, autoextensible FROM dba_data_files;
1. Add new datafile to the tablespace.
In my example I want to add new datafile my_tbs_03.dbf with size 5 megabytes to my_tbs
The command is
ALTER TABLESPACE my_tbs ADD DATAFILE '/datafiles/edba01/edba01/my_tbs_03.dbf' SIZE 5m;
2. Increase the datafile size of the tablespace.
In my example I want to increase the my_first_tbs tablespace's datafile my_first_tbs.dbf from 10m to 15m
The command is
ALTER DATABASE DATAFILE '/datafiles/edba01/edba01/my_first_tbs_01.dbf' RESIZE 15M;
Please note that, there is no command say to increase datafile, the command is to resize the datafile, therefore you may shrink the datafile by using this command with intention of reclaiming space in your storage. There is a limit how small the datafile can be shrink because you can not shrink datafile size below the objects in the datafile. In order to properly reclaimed space check my other article about how to reclaimed space.
No comments:
Post a Comment
Thanks for your comment.