视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
扩展或缩小undo表空间
2020-11-09 14:43:45 责编:小采
文档


***********************************************声明*********************************************************************** 原创作品,出自 深蓝的blog 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。 深蓝的blog:http://blog.csdn.

***********************************************声明***********************************************************************

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。

深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39935157

****************************************************************************************************************************

实验项目:将undo表空间扩大,然后缩小

SQL> select name,bytes/1024/1024 M from v$datafile;

--查询undo表空间,当前为230m

NAME M

-------------------------------------------------- ----------

/u01/app/oracle/oradata/xcky/system01.dbf 760

/u01/app/oracle/oradata/xcky/sysaux01.dbf 550

/u01/app/oracle/oradata/xcky/undotbs01.dbf 230

/u01/app/oracle/oradata/xcky/users01.dbf 1518.75

/u01/app/oracle/oradata/xcky/example01.dbf 330

(1)、扩展undo表空间

思路:创建一个更大的undo表空间,让后将原undo空间替换

SQL> create undo tablespace undotbs02 datafile '/u01/app/oracle/oradata/xcky/undotbs02.dbf' size 500m reuse autoextend on;

Tablespace created.

SQL> alter system set undo_tablespace=undotbs02;

System altered.

SQL> select name,bytes/1024/1024 M from v$datafile;

--查询会发现,新扩展的undo表空间

NAME M

-------------------------------------------------- ----------

/u01/app/oracle/oradata/xcky/system01.dbf 760

/u01/app/oracle/oradata/xcky/sysaux01.dbf 550

/u01/app/oracle/oradata/xcky/undotbs01.dbf 230

/u01/app/oracle/oradata/xcky/users01.dbf 1518.75

/u01/app/oracle/oradata/xcky/example01.dbf 330

/u01/app/oracle/oradata/xcky/undotbs02.dbf 500

SQL> select tablespace_name,sum(bytes)/1024/1024 mb from dba_free_space group by tablespace_name;

--查找出之前undo表空间的名字

TABLESPACE_NAME MB

------------------------------ ----------

BULLETIN_INFO 499

INDEX_EIS 19

SYSAUX 33

UNDOTBS1 204.375

TBS_XZXT_PHOTO 19

TBS_XZXT_SYSTEM 19

VIEW_LOG 99

UNDOTBS02 497.75

......

SQL> drop tablespace UNDOTBS1 including contents and datafiles;

--删除undo表空间

Tablespace dropped.

SQL> select tablespace_name,sum(bytes)/1024/1024 mb from dba_free_space group by tablespace_name;

--再次查看undo表空间已经为新扩展的undo表空间了

TABLESPACE_NAME MB

------------------------------ ----------

BULLETIN_INFO 499

INDEX_EIS 19

SYSAUX 33

VIEW_LOG 99

UNDOTBS02 497.75

(2)、缩小undo表空间

思路:有了之前扩展undo表空间的方法,接下来缩小表空间便会变得简单了。原理一样,创建一个小的undo表空间,然后把大的undo表空间删除即可。

SQL> create undo tablespace UNDOTBS1 datafile '/u01/app/oracle/oradata/xcky/undotbs01.dbf' size 250m reuse autoextend on;

--创建一个小的undo表空间

Tablespace created.

SQL> alter system set UNDO_TABLESPACE=UNDOTBS1;

--改变undo表空间为UNDOTBS1

System altered.

SQL> select tablespace_name,sum(bytes)/1024/1024 mb from dba_free_space group by tablespace_name;

--再次查询,新建的undo表空间已经显示

TABLESPACE_NAME MB

------------------------------ ----------

BULLETIN_INFO 499

INDEX_EIS 19

SYSAUX 33

UNDOTBS1 247.75

UNDOTBS02 497.75

SQL> drop tablespace UNDOTBS02 including contents and datafiles;

--删除大的undo表空间

Tablespace dropped.

SQL> select tablespace_name,sum(bytes)/1024/1024 mb from dba_free_space group by tablespace_name;

--查看表空间情况,已经完成了缩小undo表空间

TABLESPACE_NAME MB

------------------------------ ----------

BULLETIN_INFO 499

INDEX_EIS 19

SYSAUX 33

UNDOTBS1 247.75

结合以上实验过程,编写脚本,可以减轻日后的工作量,有了上面的基础,看懂下面的语句应该是so easy了吧,O(∩_∩)O哈哈~

指令如下:

脚本实现:

[root@xckydb soft]# vi query_undo.sql

--编写undo表空间查询脚本

SELECT a.name, b.name

FROM v$tablespace a, v$datafile b

WHERE a.name = (SELECT VALUE

FROM v$parameter

WHERE name = 'undo_tablespace')

AND a.ts# = b.ts#;

SQL> @/soft/query_undo.sql

NAME NAME

------------------------------ ------------------------------

UNDOTBS1 /u01/app/oracle/oradata/xcky/u

ndotbs01.dbf

[root@xckydb soft]# vi create_undo.sql

--编写undo表空间创建脚本

#create middle undo tablespace

Create UNDO TABLESPACE UNDOTBS2 DATAFILE <'/undotbs02.dbf'> SIZE <100M> REUSE AUTOEXTEND ON;

Alter SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;

#delete old undo tablespace

Drop TABLESPACE INCLUDING CONTENTS AND DATAFILES;

Select * FROM DBA_TABLESPACES;

#create new undo tablespace

Create UNDO TABLESPACE DATAFILE <'/undotbs01.dbf'> SIZE <100M> REUSE AUTOEXTEND ON;

Alter SYSTEM SET UNDO_TABLESPACE=UNDOTBS1;

#delete middle undo tablespace

Drop TABLESPACE UNDOTBS2 INCLUDING CONTENTS AND DATAFILES;

Select * FROM DBA_TABLESPACES;

***********************************************声明***********************************************************************

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。

深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39935157

****************************************************************************************************************************

下载本文
显示全文
专题