Extending Tablespaces (creating additional files for tablespaces)
$ sqlplus / as sysdba
View which data files are used by the database and where they are located:
SQL> set linesize 200;
SQL> set pagesize 0;
SQL> col name format a40;
SQL> SELECT file#, name, status
FROM v$datafile;
Creating a new tablespace for indexes and data:
SQL> CREATE TABLESPACE "MY_DATA"
DATAFILE '/u02/oradata/ora112/my_data01.dbf' SIZE 2G AUTOEXTEND OFF;
SQL> CREATE TABLESPACE "MY_INDEXES"
DATAFILE '/u02/oradata/ora112/my_indexes01.dbf' SIZE 2G AUTOEXTEND OFF;
If necessary, you can add additional space for data (when such a need arises) with the following commands:
SQL> ALTER TABLESPACE "MY_DATA"
ADD DATAFILE '/u02/oradata/ora112/my_data02.dbf' SIZE 2G AUTOEXTEND OFF;
For indexes:
SQL> ALTER TABLESPACE "MY_INDEXES"
ADD DATAFILE '/u02/oradata/ora112/my_indexes02.dbf' SIZE 2G AUTOEXTEND OFF;
Sometimes, you need to create an additional tablespace for undo.
SQL> create undo tablespace "UNDOTBS_01" datafile '/u02/oradata/ora112/undo01.dbf' size 1G autoextend off;
SQL> ALTER SYSTEM SET UNDO_TABLESPACE = "undotbs_01";
SQL> drop tablespace UNDOTBS1;
ALTER TABLESPACE "UNDOTBS_01" ADD DATAFILE '/u02/oradata/SID/undotbs02.dbf' SIZE 2G AUTOEXTEND OFF;
UNDO_RETENTION - (when FLASHBACK is enabled) determines the minimum time in seconds for which a change in the database can be undone (viewed). The data will be stored in UNDO_TABLESPACE (sufficient tablespace size must be ensured) and will be overwritten as needed, ensuring the minimum value specified in UNDO_RETENTION. Not supported for LOB.
Setting the UNDO_RETENTION parameter to 30 minutes
SQL> alter system set UNDO_RETENTION = 1800;
SQL> alter tablespace UNDOTBS_01 RETENTION GUARANTEE;
SQL> show parameter UNDO_RETENTION
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_retention integer 1800
Create a new tablespace for temporary data.
SQL> CREATE TEMPORARY TABLESPACE "MY_TEMP"
TEMPFILE '/u02/oradata/ora112/my_temp01.dbf' SIZE 2G AUTOEXTEND OFF;
Add an additional file for temporary tablespaces.
SQL> ALTER TABLESPACE "MY_TEMP"
ADD TEMPFILE '/u02/oradata/ora112/my_temp02.dbf' SIZE 2G AUTOEXTEND OFF;