1.创建undo表空间

  1. create undo TABLESPACE undotbs03 DATAFILE '/opt/oracle/oradata/ORCLCDB/undotbs03.dbf' SIZE 500M
  2. REUSE AUTOEXTEND on;

2.删除undo表空间

1.注意无法删除正在活动的表空间

  1. drop tablespace undotbs02; --------------没有删除操作系统文件
  2. ----删除表空间并清除当中的数据,删除操作系统文件
  3. SQL> drop tablespace undotbs03 including contents and datafiles;

3.设置OMF 自动命名undo表空间

在未指定路径的情况下,默认创建在下列路径。

  1. SQL> show parameter db_create_file_dest
  2. NAME TYPE VALUE
  3. ------------------------------------ ----------- -----------------------------
  4. -
  5. db_create_file_dest string /opt/oracle/oradata/ORCLCDB

4.undo表空间初始参数

  1. undo_management string AUTO 将数据库
  2. undo_retention integer 86400
  3. undo_tablespace string UNDOTBS1
undo_management AUTO 设置数据库为自动撤销管理,修改需要重启实例才能生效
undo_retention 86400 保留撤销时间的最小时间量
undo_tablespace UNDOTBS1 指定用于撤销管理的表空间,可以有多个undo表空间但是只能有一个时活动的
temp_undo_enabled FALSE 设置数据库级别撤销

5.切换undo表空间

注意之前事务的信息任保留在上一个undo 表空间中,直到事务提交,此时无法脱机切换之前的表空间。

  1. alter system set undo_tablespace='UNDOTBS1';

6.修改表空间名

在修改表空间名的时候同时也会修改spfile当中的undo_tablespace参数,因此在下次系统重启是生效。

  1. select * from dba_tablespaces where contents LIKE 'UNDO';
  2. SQL> show parameter undo_tablespace;
  3. NAME TYPE VALUE
  4. ------------------------------------ ----------- ------------------------------
  5. undo_tablespace string UNDOTBS1
  6. SQL>
  7. alter tablespace UNDOTBS1 rename to UNDOTBS;

7.为表空间添加新的数据文件

  1. alter TABLESPACE UNDOTBS add DATAFILE/'路径' [AUTOEXTEND on];
  2. alter TABLESPACE UNDOTBS add DATAFILE/'路径' [AUTOEXTEND on];
  3. SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='UNDOTBS';
  4. FILE_NAME
  5. --------------------------------------------------------------------------------
  6. TABLESPACE_NAME
  7. ------------------------------
  8. /opt/oracle/oradata/ORCLCDB/undotbs01.dbf
  9. UNDOTBS
  10. /opt/oracle/oradata/ORCLCDB/ORCLCDB/datafile/o1_mf_undotbs_gp1dxnwq_.dbf
  11. UNDOTBS