一、Oracle RAC 调整表空间数据文件大小

  1、先查找出表空间对应的数据文件路径:

  select file_name,tablespace_name from dba_data_files ;

  2、确认目前数据文件的大小即表空间的大小

  select tablespace_name ,sum(bytes)/1024/1024 total from dba_data_files group by tablespace_name;

  3、查看表空间的目前使用情况

    select a.tablespace_name,total,free,total-free used from
    ( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
      group by tablespace_name) a,
    ( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
      group by tablespace_name) b
    where a.tablespace_name=b.tablespace_name

  4、通过默认参数pctfree=10%,pctused确定表空间的大小是否满足后续的使用

  5、通过调整数据文件的大小来增加表空间

  alter database datafile '+DATA1/ora11g/datafile/system.262.760023469' resize 3G;

  6、确认表空间大小是否更改成功

二、移动表到指定的表空间

  1、首先,使用下面的命令移动:

  alter table table_name move tablespace tablespace_name;

  2、然后,如果有索引的话必须重建索引:

  alter index index_name rebuild tablespace tablespace_name;

  注:当然,可以使用spool来帮助实现多个表的操作.
    set header off;
    spool /export/home/oracle/alter_tables.sql;
    select 'alter table   ' || object_name || '  move tablespace users'
    from dba_object
    where owner = 'XXX' and object_type = 'TABLE';
    spool off;
  之后执行此sql脚本即可.
  同样对于index也做同样的操作.

  如果要使用sql脚本批量执行的话可能会丢失一下索引信息,使得原来建立在别的表空间上的 索引失效

三、批量处理的方法步骤:

  首先考虑使用shell执行sql脚本,生成对应的批量执行sql脚本,然后再执行sq脚本。

  1、changeSpace.sql脚本:这个主要是生成对应的Alter语句

    set echo off
    set feedback off
    set newpage none
    set verify off
    set term off
    set trims on
    set heading  off
    set timing off
    set verify off
    spool AlterchangeSpace.sql
  
    

    select 'alter table  '||owner||'.'||table_name||'  move '||' tablespace '||' FAB '||';' from (
      select * from dba_tables where owner='FAB' and tablespace_name not in ('FAB')
    ); 
    spool off
    
    2、执行changeSpace.sql的脚本changeSpaceFirst.sh:
    

      echo "begin `date '+%Y%m%d %H:%M:%S'`"
      . ${HOME}/yz/env.sh
      . ${MIGRATE_PATH}/cfg/par_set.sh
      if [ $? -eq 1 ]
      then
      echo "初始化环境ERROR!"
      return 1
      fi
 
      sqlplus $dbusr/$dbpwd@$dbsid << !
 
      @changeSpace.sql;
 
      exit
      !
      echo "end `date '+%Y%m%d %H:%M:%S'`"
    此时生成了对应的AlterChangeSpace.sql脚本:
  3、利用changeSpaceSecond.sh执行AlterChangeSpace.sql脚本:
    

      echo "begin `date '+%Y%m%d %H:%M:%S'`"
      . ${HOME}/yz/env.sh
      . ${MIGRATE_PATH}/cfg/par_set.sh
      if [ $? -eq 1 ]
      then
      echo "初始化环境ERROR!"
      return 1
      fi
 
      sqlplus $dbusr/$dbpwd@$dbsid << !
 
      @AlterchangeSpace.sql;
 
      exit
      !
      echo "end `date '+%Y%m%d %H:%M:%S'`"
  注:基于原来表空间的建立在移动表上的索引必须重建
    alter index index_name rebuild tablespace tablespace_name;
    批量执行索引的重建方法类似于批量移动表
    生成alter的select语句如下;
 
    select 'alter index '|| t.object_name ||' rebuild tablespace FAB;' from dba_objects t,dba_indexes q
      where t.owner='FAB'
        and t.object_type='INDEX'  
        and q.index_name=t.object_name
        and q.index_type!='LOB';
 

oracle RAC调整数据文件大小并移动表到指定的表空间的更多相关文章

  1. 浅谈Oracle中物理结构(数据文件等。。。)与逻辑结构(表空间等。。。。。)

    初始Oracle时很难理解其中的物理结构和逻辑结构,不明白内存中和硬盘中文件的区别和联系,我也是初学Oracle,这里就简单的谈谈我我看法. 首先,你需要明白的一点是:数据库的物理结构是由数据库的操作 ...

  2. 【转】Oracle当中扫描数据的方法

    本文将对oracle当中扫描数据的存取方法进行介绍. 1) 全表扫描(Full Table Scans, FTS) 为实现全表扫描,Oracle读取表中所有的行,并检查每一行是否满足语句的WHERE限 ...

  3. 数据库访问的弹性化---WebLogic和Oracle RAC的整合:Active GridLink

        1.  什么是Active GridLink Data Source 从Oracle WebLogic Server 10.3.4版本开始引进了一种单数据源实现来支持Oracle RAC集群. ...

  4. Oracle查看表空间及修改数据文件大小

    Oracle查看表空间及修改数据文件大小 第一步:查看所有表空间及表空间大小: select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from ...

  5. oracle错误(ORA-01691),单个数据文件大小限制问题

    1.问题:数据库从其他库同步一张大表时,出现错误 ERROR at line : ORA-: illegal parameter value in OCI lob function ORA-: pre ...

  6. 解决 Oracle exp导出表数据时空表不能导出的问题

    一.不能导出空表的原因 1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参 ...

  7. ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法

    ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块  --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...

  8. Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)

    应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create ...

  9. BarTender中如何调整数据输入表单的大小?

    BarTender中的表单设计,是一个简单而又复杂的操作.简单的是它提供很多实用的工具,帮助用户实现更多的功能,复杂的是要对其进行排版设计,这就要看小伙伴们的个人要求高低了. 自定义数据输入表单时,你 ...

随机推荐

  1. ECSTORE日期时间控件转换为时间戳的方法

    如果你在后台使用<{input type=”time” name=”time”}>的话,后台获取到的表单数据为: ["_DTYPE_TIME"]=> array( ...

  2. 1234: ZJTZYRC筛offer(并查集 )

    链接:http://xcacm.hfut.edu.cn/problem.php?id=1234 以后关于字符的输入都用cin吧,换成scanf居然wa了 #include <iostream&g ...

  3. 使用Azure云存储构建高速 Docker registry

    使用Azure云存储构建高速 Docker registry 使用Docker来构建应用程序最常见的操作就是 docker run 或者 docker pull了,但是由于众所周知的原因,在国内想要高 ...

  4. GO语言可以直接输出数组

    package main import "fmt" func main(){ ]int ;i<;i++{ arr[i]=i } fmt.Printf("%v&quo ...

  5. 关于offsetWidth innerWidth的使用

    最近因为有使用到offsetWidth 和innerWidth,刚开始以为这两个属性在jq何js之中是可以通用的,谁知道在js中使用innerWidth时,发现如果对页面元素使用它时,发现出来的是un ...

  6. joomla学习网站资料

    http://joomlaol.com/joomla-chinese/joomla-study/340-joomla-skills.html joomla的强大相信学过和用过joomla的童鞋都知道吧 ...

  7. Jtree (节点的渲染+资源管理器)

    我们的还是自定义的Jtree的类: package jtree.customNode; import java.io.File; import javax.swing.JTree; import ja ...

  8. 获取java类和方法名

    String clazz = this.getClass().getName(); String method = Thread.currentThread() .getStackTrace()[1] ...

  9. C/C++基础概念

    1.类占用的内存大小: 1)在不同位数的操作系统下,各种数据类型所占用的内存大小:32位和64位操作系统 http://blog.csdn.net/b_zhang/article/details/68 ...

  10. python中os模块常用方法

    #!/usr/bin/python## os module test import os print 'os.name: ', os.nameprint 'os.getcwd(): ', os.get ...