TABLESPACE MANAGEMENT
A) Check
existing tablespaces in database
$ sqlplus '/as sysdba'
SQL> select
tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMPTS1
USERS
B) Creating new
tablespace in database
SQL> create tablespace
rshore datafile '/u03/oradata/rshore/rshore1.dbf' size 25m;
Tablespace created.
Note: From oracle 9i onwards
whenever we create tablespace that by default locally managed tablespace.
C) Check for
created tablespace in database
SQL> select
tablespace_name from dba_tablespaces where tablespace_name='RSHORE';
TABLESPACE_NAME
------------------------------
RSHORE
D) Create tablespace with autoallocate option
SQL> create tablespace findata datafile
'/u03/oradata/rshore/findata01.dbf' size 25m extent management local
autoallocate;
Tablespace created.
Note: AUTOALLOCATE
causes the tablespace to be system managed with a minimum
extent size of 64K.
E) Create tablespace with uniform
option
SQL> create tablespace hrdata datafile '/u03/oradata/rshore/hrdata01.dbf'
size 25m extent management local uniform;
Tablespace created.
Note: The alternative to AUTOALLOCATE
is UNIFORM
. which specifies that the tablespace is managed with extents
of uniform size. You can specify that size in the SIZE
clause of UNIFORM
. If you omit SIZE
, then the default size is 1M.
The following example creates a tablespace with uniform 128K extents
SQL> create tablespace crmdata datafile '/u03/oradata/rshore/crmdata.dbf'
size 25m extent management local uniform size 128k;
Tablespace created
F) Enabling Autoextend for a Tablespace
SQL> create tablespace mfgdata datafile
'/u03/oradata/rshore/mfgdata01.dbf' size 10m autoeextend on next 10m maxsize
100m extent management local;
Tablespace created. Note: This
statement creates a tablespace named mfgdata with one datafile. When more space is required, 10m will be
added up to a maximum size of 100 megabytes:
g) Specifying
Segment Space Management for a Tablespace
SQL> create tablespace prcdata datafile
'/u03/oradata/rshore/prcdata01.dbf' size 10m
extent management local segment space management auto;
Tablespace created. Note: The following example creates a tablespace with automatic
segment-space management.
H) Check all available tablespaces
in database
SQL> select tablespace_name from
dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
RSHORE
FINDATA
HRDATA
MFGDATA
I) Creating undo
tablespace
SQL> create undo tablespace undotbs2 datafile
'/u03/oradata/rshore/undotbs02_01.dbf' size 50m;
Tablespace
created.
J) Creating temporary tablespace
SQL> create
temporary tablespace temp2 tempfile '/u03/oradata/rshore/temp2_01.dbf' size
50m;
Tablespace
created.
K) Add datafile to tablespace(increase tablespace size)
SQL> alter
tablespace findata add datafile '/u03/oradata/rshore/findata02.dbf' size 25m;
Tablespace
altered.
L) Resize tablespace datafile(increase tablespace size)
SQL> alter
database datafile '/u03/oradata/rshore/findata02.dbf' resize 50m;
Database altered.
M) Check datafiles
in specific tablespace
SQL> alter file_name from dba_data_files where
tablespace_name=’FINDATA’;
FILE_NAME
--------------------------------------------------------------------------------
/u03/oradata/rshore/findata01.dbf
/u03/oradata/rshore/findata02.dbf
Note: The above
command will list all datafiles present in Tablespace.
M) Checking tempfile in temporary tablespaces
SQL> select
FILE_NAME from dba_temp_files where TABLESPACE_NAME='TEMPTS1';
FILE_NAME
--------------------------------------------------------------------------------
/u02/oradata/rshore/temp01.dbf
N) Keeping tablespace in read-only mode
SQL> alter
tablespace findata read only;
Tablespace
altered.
O) Check tablespace status
SQL> select
tablespace_name, status from dba_tablespaces where tablespace_name='FINDATA';
TABLESPACE_NAME STATUS
------------------------------ ---------
FINDATA READ ONLY
P) Keep tablespace back to
online state
SQL> alter
tablespace findata read write;
Tablespace
altered.
Q) Check tablespace status
SQL> select
tablespace_name, status from dba_tablespaces where tablespace_name='FINDATA';
TABLESPACE_NAME STATUS
------------------------------ ---------
FINDATA ONLINE
R) Keeping
tablespace offline mode
SQL> alter
tablespace FINDATA offline;
Tablespace
altered.
S) Check tablespace status
SQL> select
tablespace_name, status from dba_tablespaces where tablespace_name='FINDATA';
TABLESPACE_NAME STATUS
------------------------------ ---------
FINDATA OFFLINE
T) Keep tablespace in online mode
SQL> alter
tablespace FINDATA online;
Tablespace
altered.
U) Check tablespace status
SQL> select
tablespace_name, status from dba_tablespaces where tablespace_name='FINDATA';
TABLESPACE_NAME STATUS
------------------------------ ---------
FINDATA ONLINE
V) Dropping tablespace
SQL> drop
tablespace MFGDATA;
Tablespace
dropped.
Note: Above
command just drop tablespace from database but it does not remove
Corresponding
datafiles from operating system level.
W) Dropping tablespace with contents
SQL> drop
tablespace PRCDATA including contents and datafiles;
Tablespace
dropped.
X) Checking size of all the tablespaces
SQL> select
tablespace_name, sum(bytes)/(1024*1024) from dba_data_files group by
tablespace_name;
TABLESPACE_NAME SUM(BYTES)/(1024*1024)
------------------------------ ----------------------
SYSAUX 300
UNDOTBS1 200
HRDATA 25
USERS
100
SYSTEM 300
FINDATA 75
UNDOTBS2 50
RSHORE 25
Y) Checking size of specific tablespace
SQL> select
tablespace_name, sum(bytes)/(1024*1024) from dba_data_files group by
tablespace_name having tablespace_name='FINDATA';
TABLESPACE_NAME SUM(BYTES)/(1024*1024)
------------------------------ ----------------------
FINDATA 75
Z) Checking free space in all tablespaces
SQL> select
tablespace_name, sum(bytes)/(1024*1024) from dba_free_space group by
tablespace_name;
TABLESPACE_NAME SUM(BYTES)/(1024*1024)
------------------------------ ----------------------
SYSAUX 228.375
UNDOTBS1 83.0625
HRDATA 24
USERS 99
CRMDATA 24
SYSTEM 60.9375
FINDATA 73
UNDOTBS2 47.75
RSHORE 24
A) Check free space in specific tablespace
SQL> select
tablespace_name, sum(bytes)/(1024*1024) from dba_free_space group by
tablespace_name having tablespace_name='FINDATA';
TABLESPACE_NAME SUM(BYTES)/(1024*1024)
------------------------------ ----------------------
FINDATA 73
B) Checking temporary tablespace size
SQL> select
tablespace_name, sum(bytes)/1024/1024 mb
from dba_temp_files
group by
tablespace_name;
TABLESPACE_NAME MB
------------------------------ ----------
TEMP2 50
TEMPTS1 100