Home / Oracle DBA

Oracle Rename Tablespace - Dropping Table Space

Rating: 5.0Blog-star
Views: 4954
by Ravindra Savaram
Last modified: February 3rd 2021

Using the rename to clause of the alter tablespace, you can rename a permanent or temporary oracle rename tablespace. For example, the following statement renames the users' tablespace:

Sql>alter tablespace users rename to usersts;

When you RENAME A TABLESPACE, the database updates all references to the tablespace name in the data dictionary, control file, and (online) datafile headers. The database does not change the tablespace id so if this tablespace were, for example, the default tablespace for a user, then the oracle rename tablespace would show as the default tablespace for the user in the dba_users view.

 

Want To Get DBA Training From Experts? Enroll Now For Free Demo On Oracle DBA Course.

How to Use Oracle Rename Tablespace 

The following affect the operation of this statement:

  • The compatible parameter must be set to 10.0 or higher.
  • If the tablespace being renamed is the system tablespace or the sysaux tablespace, then it will not be renamed and an error is raised.
  • If any datafile in the tablespace is offline, or if the tablespace is offline, then the tablespace is not renamed and an error is raised.
  • If the tablespace is read only, then datafile headers are not updated. This should not be regarded as corruption; instead, it causes a message to be written to the alert log indicating that datafile headers have not been renamed. The data dictionary and control file are updated.
  • If the tablespace is the default temporary tablespace, then the corresponding entry in the database properties table is updated and the database_properties view shows the new name.
  • If the tablespace is an undo tablespace and if the following conditions are met, then the tablespace name is changed to the new tablespace name in the server parameter file (spfile).
    • The server parameter file was used to start up the database.
    • The tablespace name is specified as the undo_tablespace for any instance.

If a traditional initialization parameter file (pfile) is being used then a message is written to the alert log stating that the initialization parameter file must be manually changed.

[Related Article: DBA Tutorial]

Dropping Tablespaces

You can drop a tablespace and its contents (the segments contained in the tablespace) from the database, if the tablespace and its contents are no longer required. You must have the drop tablespace system privilege to drop a tablespace.

Caution

Once a tablespace has been dropped, the data in the tablespace is not recoverable. Therefore, make sure that all data contained in a tablespace to be dropped will not be required in the future. Also, immediately before and after dropping a tablespace from a database, back up the database completely. This is strongly recommended so that you can recover the database if you mistakenly drop a tablespace, or if the database experiences a problem in the future after the tablespace has been dropped.

When you drop a tablespace, the file pointers in the control file of the associated database are removed. You can optionally direct oracle database to delete the operating system files (datafiles) that constituted the dropped tablespace. If you do not direct the database to delete the datafiles at the same time that it deletes the tablespace, you must later use the appropriate commands of your operating system to delete them.

[Related Article: Oracle DBA Interview Questions]

 

You cannot drop a tablespace that contains any active segments. For example, if a table in the tablespace is currently being used or the tablespace contains undo data needed to roll back uncommitted transactions, you cannot drop the tablespace. The tablespace can be online or offline, but it is best to take the tablespace offline before dropping it.

To drop a tablespace, use the drop tablespace statement. The following statement drops the users' tablespace, including the segments in the tablespace:

Sql>drop tablespace users including contents;

If the tablespace is empty (does not contain any tables, views, or other structures), you do not need to specify the including contents clause. Use the cascade constraints clause to drop all referential integrity constraints from tables outside the tablespace that refer to primary and unique keys of tables inside the tablespace.

To delete the data files associated with a tablespace at the same time that the tablespace is dropped, use the including contents and datafiles clause. The following statement drops the user's tablespace and its associated datafiles:

[Related Article: Control File in Oracle]

Sql>drop tablespace users including contents and datafiles;

A message is written to the alert log for each data file that is deleted. If an operating system error prevents the deletion of a file, the drop tablespace statement still succeeds, but a message describing the error is written to the alert log.

Explore Oracle DBA Sample Resumes! Download & Edit, Get Noticed by Top Employers!Download Now!

 

About Author

author
NameRavindra Savaram
Author Bio

 

Ravindra Savaram is a Content Lead at Mindmajix.com. His passion lies in writing articles on the most popular IT platforms including Machine learning, DevOps, Data Science, Artificial Intelligence, RPA, Deep Learning, and so on. You can stay up to date on all these technologies by following him on LinkedIn and Twitter.