DB2 reorg

RUNSTATS:

db2 connect to rmdb11 user rmadmin using rmadmin

对所有用户表执行runstats(reorgchk加update参数等同于runstats)

$ db2 reorgchk update statistics on table user

Doing RUNSTATS ....

REORG:

在检查结果中,所有带星号的表或分区表、以及索引都需要做reorg重建。

$ db2 reorg table RMADMIN.EXPLAIN_DIAGNOSTIC index SYSIBM.SQL120703164841960 use tempspace1
DB20000I The REORG command completed successfully.
$ db2 reorg table RMADMIN.EXPLAIN_DIAGNOSTIC_DATA index RMADMIN.EXP_DIAG_DAT_I1 use tempspace1
DB20000I The REORG command completed successfully.
$ db2 reorg table RMADMIN.EXPLAIN_PREDICATE index RMADMIN.PRD_I1 use tempspace1
DB20000I The REORG command completed successfully.
$ db2 reorg table RMADMIN.RMSTGGRPCLASS index SYSIBM.SQL120321193908820 use tempspace1
DB20000I The REORG command completed successfully.
$ db2 reorg table RMADMIN.RMOBJECTS use tempspace1
SQL2217N The page size of the system temporary table space used by the REORG
utility must match the page size of the table space(s) in which the table data
resides (including the LONG or LOB column data). The cause is based on the
following reason codes "".
SQL2217N
REORG 实用程序使用的系统临时表空间的页大小必须与表数据 (包括 LONG 或 LOB
列数据)所在表空间的页大小相匹配。原因基于下列原因码 原因码。 说明
下面是原因码的列表:
.原因与表的数据的临时表空间的选择相关。
.原因与表的 LONG 或 LOB 数据的临时表空间的选择相关。 如果对 REORG 实用程序显式地指定了系统临时表,那么 REORG 实用程序使用的系统临时表空间的页大小必须与表数据(包括 LONG 或 LOB列数据)所在的表空间的页大小相匹配,否则必须为长数据指定适当的容器。下列其中一项违反了此限制:
表数据所在的表空间的页大小与指定的系统临时表空间的页大小不同。 该表包含 LONG 或 LOB列,这些列的数据驻留在页大小与系统临时表空间和表的规则数据的页大小不同的表空间中,但是,无法为 LONG 或 LOB数据对象找到具有正确页大小的表空间。 如果未对 REORG 实用程序指定系统临时表空间或 LONG临时表空间,那么该实用程序在内部查找系统临时表空间。在数据库中不存在使用与表数据页大小相同的页大小的系统临时表空间,或者该系统临时表空间此时不可用。
用户响应
如果数据库中不存在使用与表数据页大小相同的页大小的系统临时表空间,请创建一个系统临时表空间,它使用与该表数据的页大小相匹配的页大小。如果表数据的页大小与
LOB 或 LONG 数据的页大小不同,那么应确保使用该页大小的系统临时表空间也存在。 如果数据库中存在使用与表数据页大小相同的页大小的系统临时表空间,但是发出命令时该临时表空间不可用,请在该系统临时表空间可用时重新发出该命令。

当前使用的临时表空间页大小和该表的页大小不符合,需要新建一个页大小和该表的页大小符合的系统临时表空间。 
查看各个表空间的pagesize:

SELECT tbspace, pagesize FROM SYSIBM.SYSTABLESPACES

查看当前bufferpool:

SELECT * FROM SYSCAT.BUFFERPOOLS

新建一个页大小为32K的bufferpool

$ db2 CREATE BUFFERPOOL temppool32 PAGESIZE
DB20000I The SQL command completed successfully.

新建一个临时表空间,使用刚才那个bufferpool

$ db2 "create system temporary tablespace tempspace3 pagesize 32K managed by system using ('/rmdb11data/rminst11/NODE0000/SQL00001/tmpspace3') BUFFERPOOL temppool32"
DB20000I The SQL command completed successfully.

重新执行reorg:

$ db2 reorg table RMADMIN.RMMIGRATIONTASKS index SYSIBM.SQL120321193909130   use tempspace3

监视表重组:

select
substr(tabname, , ) as tab_name,
substr(tabschema, , ) as tab_schema,
reorg_phase,reorg_max_phase,
substr(reorg_type, , ) as reorg_type,
reorg_status,
reorg_completion,
dbpartitionnum
from sysibmadm.snaptab_reorg
order by dbpartitionnum

或者

db2 GET SNAPSHOT FOR TABLES on DBName

db2 list history reorg all for DBName

db2pd -db DBName -reorgs index

$ db2pd -reorgs -db rmdb11

Database Partition  -- Database RMDB11 -- Active -- Up  days :: -- Date // ::

Table Reorg Information:
Address TbspaceID TableID PartID MasterTbs MasterTab TableName Type IndexID TempSpaceID
0x070000024C0D1528 n/a n/a n/a EXPLAIN_PREDICATE Offline
0x070000024C0DEDA8 n/a n/a n/a EXPLAIN_DIAGNOSTIC Offline
0x070000024C0E6D28 n/a n/a n/a EXPLAIN_DIAGNOSTIC Offline
0x070000024B2C9628 n/a n/a n/a RMMIGRATIONTASKS Offline
0x070000024B2A64A8 n/a n/a n/a RMSTGGRPCLASS Offline Table Reorg Stats:
Address TableName Start End PhaseStart MaxPhase Phase CurCount MaxCount Status Completion
0x070000024C0D1528 EXPLAIN_PREDICATE // :: // :: // :: IdxRecreat Done
0x070000024C0DEDA8 EXPLAIN_DIAGNOSTIC // :: // :: // :: IdxRecreat Done
0x070000024C0E6D28 EXPLAIN_DIAGNOSTIC // :: // :: // :: IdxRecreat Done
0x070000024B2C9628 RMMIGRATIONTASKS // :: n/a // :: IdxRecreat Started
0x070000024B2A64A8 RMSTGGRPCLASS // :: // :: // :: IdxRecreat Done

db2 reorg(转)的更多相关文章

  1. db2 reorg runstats rebind具体操作

    db2 reorg runstats rebind具体操作 #reorg table db2 -x "select 'reorg table '||rtrim(tabschema)||'.' ...

  2. db2 reorg详解

    reorgchk,检查table index 是否需要重组.reorg 重组,重新放置数据位置.runstats 统计信息,可以优化查询器 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作, ...

  3. db2 reorg到底需要多少表空间(转)

    脱机reorg需要一定的空间,这个空间与目标所在的数据表空间.索引表空间.以及临时表空间均有关,各空间需求的大小与表和索引所占用的数据页和索引页相关. (1)对表执行reorg操作如:db2 reor ...

  4. db2 reorg table failed处理

    概要: 当对一个表的结构进行改变后,需要reorg表,重新组织其目录统计信息,为数据库的访问计划提供信息,以便高效执行对其的操作. 对表作reorg操作,发生错误,通过db2 "? sql0 ...

  5. db2 reorg pending

    通常在数据库上线之前,我们都会对数据库做周密的规划,无论在测试阶段还是上线之初,也难免由于需求的更改会对数据中的表做一些更改.而某些alter table语句则会导致该表处于reorg-pending ...

  6. DB2日常维护——REORG TABLE命令优化数据库性能

    一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止一些错误重复发生. 由于DB2使用CBO作为数据库的优化器,数据库对象的状 ...

  7. DB2 runstats和reorg操作

    [db2inst1@xifenfei ~]$ db2 connect to xff      Database Connection Information    Database server    ...

  8. DB2日常维护——REORG TABLE命令优化数据库性能(转)

    [转]DB2日常维护——REORG TABLE命令优化数据库性能 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止一些错误 ...

  9. db2 runstats和reorg

    当数据库里某张表上有大量插入操作时,需要在表上做 RUNSTATS 命令保证数据库掌握准确的统计信息. 当数据库里某张表中的记录变化很大时(大量插入.删除.更新操作),需要在表上做 REORG 和 R ...

随机推荐

  1. 屌丝也用按位与(&),按位或(|) (二)

    上篇讲到了,用按位操作进行配置,下边来讲一个大神也在用的例子 linux的权限系统 我们知道一个文件,如果是777,那么是最高的权限,那这个七是咋构成的,我会告诉你是 4+2+1么? 我会告诉你,是1 ...

  2. 解决Ubuntu Chrome浏览器很卡不响应的问题

    1. 设定字体,使用Ubuntu Tweak Tool把系统字体设定为默认字体,而不是文泉驿字体: 2. 使用ADBLock Plus把垃圾的广告过滤掉,不然网页上很多Flash就会导致网页非常的卡顿 ...

  3. 解决nginx access日志中400 bad request 错误(转)

    在access.log中有大量400错误,并以每天几百M的速度增加,占用大量空间.tail -f /opt/nginx/logs/access.log 116.236.228.180 - - [15/ ...

  4. Window开启上帝模式

    所谓的上帝模式就是所有功能在一个文件下,方便.快捷地操作! 01.新建一个文件夹 02.重命名文件夹 文件夹重命名为“GodMode.{ED7BA470-8E54-465E-825C-99712043 ...

  5. gdb 拾遗

    1,跳过某个特定信号 (gdb) handle SIGPIPE nostop noprint pass 2,break在特定的系统调用处 (gdb) catch syscall 3 3,遇到一个断点的 ...

  6. 在Repeater中使用DropDownList的方法

    在Repeater中使用DropDownList的方法 以下代码并不完整,只记录了关键的方法 aspx代码中 假设这是一个用户管理的系统的模型,有一个下拉菜单来操作用户状态 <asp:Repea ...

  7. Jmeter发送Json请求

    jmeter发送的post请求,可以是json请求,和普通的post请求稍微有点区别,那么怎么用jmeter发送json请求呢? 首先要找一个json请求的例子,这个例子是携程网搜索机票, 网址为:h ...

  8. 【网络】TCP和UDP的区别以及TCP的三次握手四次释放

    一.两者区别 1.TCP面向连接的运输层协议,UDP无连接 2.TCP是可靠交付,UDP是尽最大努力交付 3.TCP面向字节流,UDP面向报文 4.TCP是点对点连接的,UDP一对一,一对多,多对多都 ...

  9. Java多线程系列——过期的suspend()挂起、resume()继续执行线程

    简述 这两个操作就好比播放器的暂停和恢复. 但这两个 API 是过期的,也就是不建议使用的. 不推荐使用 suspend() 去挂起线程的原因,是因为 suspend() 在导致线程暂停的同时,并不会 ...

  10. java.util.concurrent介绍【转】

    java.util.concurrent介绍   java.util.concurrent 包含许多线程安全.测试良好.高性能的并发构建块.不客气地说,创建 java.util.concurrent ...