一、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. 导入IP安全策略图解

    导入IP安全策略图解 点击“开始菜单”→点击“运行”→输入gpedit.msc并回车 →点击“计算机配置”→“windows设置”→“安全设置”,用鼠标右键点击“IP安全策略”,在弹出菜单中点击“所有 ...

  2. List容器

    List 容器 list是C++标准模版库(STL,Standard Template Library)中的部分内容.实际上,list容器就是一个双向链表,可以高效地进行插入删除元素. 使用list容 ...

  3. DataTables自定义筛选器

    /* Custom filtering function which will search data in column four between two values */ $.fn.dataTa ...

  4. Java并发编程--多线程中的join方法详解

    Java Thread中, join()方法主要是让调用该方法的thread在完成run方法里面的部分后, 再执行join()方法后面的代码 例如:定义一个People类,run方法是输出姓名年龄. ...

  5. JavaWeb学习笔记--跳转方法小结

    服务端跳转:1. RequestDispatcher.forward()  public void doGet(HttpServletRequest request, HttpServletRespo ...

  6. Swift类和结构体定义-备

    Swift中的类和结构体定义的语法是非常相似的.类使用class关键词定义类,使用struct关键词定义结构体,它们的语法格式如下: class 类名 { 定义类的成员 } struct 结构体名 { ...

  7. 渐变颜色的进度条WGradientProgress-备用

    今天我们来实现一个iOS平台上的进度条(progress bar or progress view).这种进度条比APPLE自带的更加漂亮,更加有“B格”.它拥有渐变的颜色,而且这种颜色是动态移动的, ...

  8. LINUX小技巧,如何在指定目录下搜索到含特定关键字的文件。

    先找出文件,然后将文件作为输入,找具体关键字 find /etc -name "*" | xargs grep "Hello"

  9. Android中实现全屏、无标题栏的两种办法(另附Android系统自带样式的解释)

    在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏.要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置. 1.在xml文件中进行配置 在项目的清单文件AndroidManife ...

  10. 【转】android service 之二(IntentService)

    原文网址:http://rainbow702.iteye.com/blog/1143286 不管是何种Service,它默认都是在应用程序的主线程(亦即UI线程)中运行的.所以,如果你的Service ...