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

原创作品。出自 “深蓝的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 <UNDOTBS1> INCLUDING CONTENTS AND DATAFILES;

Select * FROM DBA_TABLESPACES;

#create new undo tablespace

Create UNDO TABLESPACE <UNDOTBS1> 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

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

版权声明:本文博主原创文章,博客,未经同意不得转载。

扩大或缩小undo表空间的更多相关文章

  1. MySQL 5.7新特性之在线收缩undo表空间

    1. MySQL 5.5时代的undo log 在MySQL5.5以及之前,大家会发现随着数据库上线时间越来越长,ibdata1文件(即InnoDB的共享表空间,或者系统表空间)会越来越大,这会造成2 ...

  2. 如何删除回滚段状态为NEEDS RECOVERY的undo表空间

    环境:RHEL 6.4 + Oracle 11.2.0.4 背景:备份恢复的测试库在一次不完全恢复后,没有来及做有效的全备,又一次数据库故障导致数据库无法正常open. 只能离线部分数据文件打开数据库 ...

  3. 记一次ORACLE的UNDO表空间爆满分析过程

    这篇文章是记录一次ORACLE数据库UNDO表空间爆满的分析过程,主要整理.梳理了同事分析的思路.具体过程如下所示: 早上收到一数据库服务器的UNDO表空间的告警邮件,最早一封是7:55发出的(监控作 ...

  4. Oracle 11gR2 Database UNDO表空间使用率居高不下-转载

    客户的数据库是Oracle Database 11.2.0.3.0 for AIX 6.1 64bit的单机数据库.客户查询DBA_FREE_SPACE发现UNDO表空间的使用率高达98%以上.客户的 ...

  5. UNDO表空间设置

    flashback query和flashback table都是以用UNDO表空间的内容来进行恢复数据 查看undo内容保存的时间: SQL> show parameter undo_re N ...

  6. UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决

    模拟手工删除UNDO表空间 在ORADATA 中把UNDOTBS01.DBF 删除 模拟启库 SQL> STARUP; * 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 2 ...

  7. oracle表空间查询维护命令大全之二(undo表空间)

    --undo表空间汇总 --查看全部的表空间名字 select name from v$tablespace; --创建新的UNDO表空间,并设置自己主动扩展參数; create undo table ...

  8. Oracle数据库 ORA-01555 快照过旧 (undo表空间:撤销表空间)

    UNDO表空间用于存放UNDO数据,当执行DML操作时,oracle会将这些操作的旧数据写入到UNDO段,以保证可以回滚或者一致读等,而临时表空间主要用来做查询和存放一些缓冲区数据.你听说UNDO也是 ...

  9. undo表空间

    undo表空间undo表空间的管理,主要包括创建.删除.修改.切换.其中需要注意的是不能在undo表空间创建数据库对象,还有就是只能是单文件或大文件表空间. 创建创建主要有两种方法,一种是在创建数据库 ...

随机推荐

  1. swift 创建tableView并实现协议

    // // ViewController2.swift // swift_helloword // // Created by Charlie on 15/7/13. // Copyright (c) ...

  2. Kill 正在执行的存储过程

    1.找到正在执行的存储过程的 sid ,serial# select   b.sid,b.SERIAL#,a.OBJECT, 'alter system kill session   ' || ''' ...

  3. ubuntu下使用命令行创建一个android项目

    在ubuntu中配置好jdk和android_sdk环境后,可以通过命令行方式创建一个android工程. 具体命令如下: android create project --target <ta ...

  4. Linux c 信号量

    信号量(通过进程通信实现进程间的同步) 信号量(semaphore)信号灯 信号量是共享内存整数数组.根据需要定义指定的数组长度 信号量就是根据数组中的值,决定阻塞还是解除阻塞 编程模型: 1.    ...

  5. 十几个remote control software

    5 alternatives to LogMeIn Free for remote PC access VNC VNC, or Virtual Network Computing, isn’t its ...

  6. applet部署,无需修改客户端设置。

    1  开发applet程序,编译成jar包 2  给jar包做数字签名: (1).用keytool生成密钥: keytool -genkey -keystore myapplet.keystore - ...

  7. 解析配置文件ConfigParser模块

    一.ConfigParser简介 ConfigParser 是用来读取配置文件的包.配置文件的格式如下:中括号“[ ]”内包含的为section.section 下面为类似于key-value 的配置 ...

  8. 剑指offer 22 栈的压入、弹出序列

    class Solution { public: bool IsPopOrder(vector<int> pushV,vector<int> popV) { bool resu ...

  9. 【OpenCV新手教程之十二】OpenCV边缘检測:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...

  10. asp.net MVC Razor 语法(3)

    编程逻辑:执行基于条件的代码. If 条件 C# 允许您执行基于条件的代码. 如需测试某个条件,您可以使用 if 语句.if 语句会基于您的测试来返回 true 或 false: if 语句启动代码块 ...