Oracle修改undo表空间

查看当前使用的undo表空间信息:

SQL> show parameter undo_tablespace

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace string UNDOTBS1

 

1 SQL> col FILE_NAME format a100
2 SQL> select tablespace_name, file_id, file_name,round (bytes / (1024 * 1024), 0) total_space from dba_data_files where tablespace_name='UNDOTBS1';
3 
4 TABLESPACE_NAME FILE_ID FILE_NAME TOTAL_SPACE
5 -------------------- ---------- ---------------------------------------------------------------------------------------------------- -----------
6 UNDOTBS1 4 /u01/app/oracle/oradata/orcl/undotbs01.dbf 220

 

1、数据库状态静止时(无DML操作期间)执行UNDO表空间切换(由UNDOTBS1切换为UNDOTBS2)

(1)创建新的undo表空间UNDOTBS2

1 SQL> create undo tablespace UNDOTBS2 datafile '/u01/app/oracle/oradata/orcl/undotbs02.dbf' size 10M;
2 
3 Tablespace created.

 

(2)切换UNDOTBS2为新的undo表空间

1 SQL> alter system set undo_tablespace = undotbs2 scope=both;
2 
3 System altered.

 

(3)此时数据库处于静止状态,无任何DML操作,查看UNDOTBS1已经处于OFFLINE状态

1 SQL> select tablespace_name , status , count(*) from dba_rollback_segs group by tablespace_name , status;
2 
3 TABLESPACE_NAME STATUS COUNT(*)
4 -------------------- ---------------- ----------
5 UNDOTBS1 OFFLINE 10
6 SYSTEM ONLINE 1
7 UNDOTBS2 ONLINE 11

 

(4)检查确认UNDOTBS1中没有ONLINE的segment

1 SQL> select status,segment_name from dba_rollback_segs where status not in ('OFFLINE') and tablespace_name='UNDOTBS1';
2 
3 no rows selected

 

(5)删除旧的UNDOTBS1

1 SQL> Drop tablespace UNDOTBS1 including contents and datafiles;
2 
3 Tablespace dropped.

 

(6)至此,undo表空间由UNDOTBS1成功切换为UNDOTBS2.

 

2、数据库中有DML操作期间,切换UNDO表空间步骤(由UNDOTBS2切换为UNDOTBS1)

复制代码

复制代码
 1 SQL> create undo tablespace UNDOTBS1 datafile '/u01/app/oracle/oradata/orcl/undotbs01.dbf' size 220M;
 2 
 3 Tablespace created.
 4 
 5 SQL> select tablespace_name, file_id, file_name,round (bytes / (1024 * 1024), 0) total_space from dba_data_files;
 6 
 7 TABLESPACE_NAME FILE_ID FILE_NAME TOTAL_SPACE
 8 -------------------- ---------- ---------------------------------------------------------------------------------------------------- -----------
 9 SYSTEM 1 /u01/app/oracle/oradata/orcl/system01.dbf 
10 SYSAUX 3 /u01/app/oracle/oradata/orcl/sysaux01.dbf 
11 USERS 6 /u01/app/oracle/oradata/orcl/users01.dbf 
12 UNDOTBS2 11 /u01/app/oracle/oradata/orcl/undotbs02.dbf 
13 UNDOTBS1 12 /u01/app/oracle/oradata/orcl/undotbs01.dbf 
复制代码

 

(1)设置UNDOTBS1为默认undo表空间

1 SQL> alter system set undo_tablespace = undotbs1 scope=both;
2 
3 System altered.

 

(2)此时检查UNDOTBS1处于ONLINE状态

复制代码

1 SQL> select tablespace_name , status , count(*) from dba_rollback_segs group by tablespace_name , status;
2 
3 TABLESPACE_NAME STATUS COUNT(*)
4 -------------------- ---------------- ----------
5 UNDOTBS1 ONLINE 
6 SYSTEM ONLINE 
7 UNDOTBS2 OFFLINE 

 

(3)删除

复制代码
 1 SQL> select status,segment_name from dba_rollback_segs where status not in ('OFFLINE') and tablespace_name='UNDOTBS2';
 2 
 3 no rows selected
 4 
 5 SQL> Drop tablespace UNDOTBS2 including contents and datafiles;
 6 
 7 Tablespace dropped.
 8 
 9 SQL> show parameter undo
10 
11 NAME TYPE VALUE
12 ------------------------------------ ----------- ------------------------------
13 temp_undo_enabled boolean FALSE
14 undo_management string AUTO
15 undo_retention integer 900
16 undo_tablespace string UNDOTBS1
复制代码

(4)至此,undo表空间由UNDOTBS2又成功切换为UNDOTBS1

 

更多精彩内容,关注我们▼

posted on   数据与人文  阅读(2376)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示