当前位置:文档之家› 为DB2数据库创建表空间

为DB2数据库创建表空间

为DB2数据库创建表空间
为DB2数据库创建表空间

为 DB2 数据库创建表空间
2007-10-29 13:02:55 来源: 来源 WebjxCom 提示:DB2 数据库中的表空间(tablespace) 是一个逻辑层,一些 数据库对象(比如表、视图和索引)驻留在这里。一个数据库可以有多个表空 间。在首次创建数据库时,DB2 会自动地创建一组表空间。 DB2 数据库中的表空间(tablespace) 是一个逻辑层,一些数据库对象(比如 表、视图和索引)驻留在这里。一个数据库可以有多个表空间。在首次创建数据 库时,DB2 会自动地创建一组表空间。 在 Control Center 中,展开 HELLOWLD 并点击 Table Spaces。应该会在 Control Center 右边的窗口中看到三个表空间,如图 7 所示: 图 7. Control Center Table Spaces 视图
这些表空间是 DB2 在创建数据库 HWLD 时创建的。SYSCATSPACE 和 TEMPSPACE1 都是系统表空间,不能删除或重新创建它们。SYSCATSPACE 是系统 编目表空间,用来存储关于数据库的元信息。TEMPSPACE1 在某些数据库操作期 间用来存储临时结果。USERSPACE1 是默认的用户表空间,用来存储表、视图和

索引等用户数据。任何具有足够权力的 DB2 用户都可以删除和重新创建 USERSPACE1 或者创建其他用户表空间。 SMS 或 DMS 表空间 在创建表空间时,可以选择表空间是 SMS 表空间还是 DMS 表空间。SMS 代 表 System Managed Space,DMS 代表 Database Managed Space。在 SMS 表空 间中,空间由操作系统的文件系统管理,会根据需要分配空间。SMS 表空间需要 的初始设置比较少,管理方面需要考虑的因素少,而且一般更容易创建和使用, 因为空间会在需要时自动地分配。在 DMS 表空间中,空间由 DB2 管理。DMS 表 空间需要在创建时预先分配空间,所以需要进行比较多的初始设置工作,管理方 面也有更多需要考虑的因素。但是,它为用户提供了更大的灵活性,可以更好地 控 制数据的布局并改进数据访问的性能。在一般情况下,经过良好设计和调优 的 DMS 表空间可以提供比相似的 SMS 表空间更好的性能。 在 Table Spaces 视图中,点击每个表空间。查看在右下方的窗口中显示的 详细信息。SYSCATSPACE 和 USERSPACE1 都是 DMS 表空间,TEMPSPACE1 是 SMS 表空间。您还可以创建自己的表空间。 缓冲池 缓冲池(bufferpool) 是一个内存块的集合,这些内存块采用页面的形式。 在首次创建数据库时,同时创建了一个默认的缓冲池 IBMDEFAULTBP。可以在创 建表空间时,或者在 Buffer Pools 视图中使用 Create New Bufferpool 向导, 创建新的缓冲池。 缓冲池最重要的作用是,在数据库读写硬盘上 的数据时帮助减少 I/O 开 销。 这是通过 I/O 预获取和页面清理器实现的。 预获取能够减少读取页面的 I/O 开销,其原理是:预先判断特定查询可能需要的页面,然后将这些页面读入缓冲 池,因此当查询需要它们时,它们已经准备好了。页面清理器确保将事务不再需 要的 已经更新的页面首先写到硬盘上,然后从缓冲池中清除它们。这确保缓冲 池中有足够的干净空间可以读取页面。 DB2 支持不同的页面大小: 4K、 16K 和 32K。 2K、 8K、 IBMDEFAULTBP 使用 4K 的页面大小。如果希望创建采用其他页面大小的表空间,那么首先要确保数据库 中有采用这种页面大小的缓冲池。多个表空间可以使用同一个缓冲池。在创建或 更改表空间时,可以指定要使用哪个缓冲池。选择和创建适当的缓冲池对于数据 库性能很重要。可以根据需要创建新的缓冲池或更改现有的缓冲池。 在 Control Center 中,点击 Buffer Pools。可以看到数据库中的所有缓 冲池。选择创建新的缓冲池或更改现有的缓冲池。 图 8. Control Center Bufferpool 视图

DB2 系统目录表和视图 在创建新数据库时,DB2 会在编目表空间中创建多个系统编目表和视图。这 访问 些系统编目表和视图用来跟踪数据库管理程序需要知道的关于数据库对象、 控制信息和工具的重要信息。系统编目视图基于基本系统编目表。用户在一般情 况下通过查询系统编目视图来查看感兴趣的系统编目表数据。 在 Control Center 中,在 All Database 视图下面,展开 HELLOWLD,然 后选择 Table Spaces。选择右上窗口中显示的 SYSCATSPACE。可以在右下窗口 中看到这个表空间的概况: 图 9. Control Center —— Tablespaces 视图

点击 Show Related Objects。会出现一个新页面,其中显示表空间 SYSCATSPACE 中的所有表和索引,以及它们的模式 SYSIBM。点击 Indexes,列 出 SYSCATSPACE 中的所有索引。Show SQL 显示用来获得这个表空间中的表或索 引列表的 select 命令。 表、索引、模式和视图都是重要的 DB2 对象,本教程后面都会详细讨论。但 是,首先试试手工创建表空间: 1. 在 Control Center 中点击 Create New Tablespace,启动 Create Table Space 向导。输入 TBSP_DATA1 作为表空间名,在 comment 中输入 DMS tablespace to hold data。 2. 选择 Regular 来选择要使用的表空间类型并点击 Next。出现 Specify a buffer pool 面板,在这里选择这个表空间要使用的缓冲池。 3. 使用默认的 IBM 缓冲池, 但是也可以使用 Create 按钮创建新的缓冲池。 点击 Next。 图 10. 创建新的表空间 —— 指定缓冲池
4. 这个面板允许指定表空间是由数据库管理(DMS),还是由系统管理 (SMS)。选择 Database-managed space (high performance)。点击 Next。 Containers 页面出现。 5. 在 Containers 页面上,可以指定容器的数量。容器(Container) 可以 是存储表空间数据的目录、文件或设备。可以为每个表空间创建多个容器,而且 在创建表空间之后,可以删除现有的容器或添加更多的容器。点击 Add,Define Container 页面出现,可以在这里为新的表空间定义容器。

6. 可以为新的表空间定义多个容器。 不同的容器可以位于不同的物理节点 或路径。按照图 11 所示添加容器,然后点击 OK。 图 11. 创建新的表空间 —— 添加容器
7.
用相同的操作添加相同路径上的另一个容器 tbsp_data1_c02。
8. 应该会看到添加的两个容器,见图 12。每个容器的大小是 5MB,总共 10MB。如果对已经定义的容器不满意,那么点击 Change 或 Remove。点击 Next 继续。 图 12. 创建新的表空间 —— 容器页面
9. 下一个页面帮助您定义这个表空间使用的区间和预获取大小。 一个区间 (extent)包含一系列连续的页面。页面的数量称为区间的大小。一 般来说,希

望一次分配多个页面,从而减少空间分配的开销。预获取大小是指在启用预获取 时预获取器读取的页面数量。预获取的概念在前面讨论过。选择 Less than 25MB 来改变表的平均大小,建议的区间大小会自动地改为适当的设置。 10. 点击 Summary 显示 Summary 页面。点击 Show SQL 并将 SQL 保存在 C:\DB2\hellowld\crt_tbsp.clp 中。点击 Finish 让 Create Tablespace 向导 完成操作。 11. 在 Control Center Table Spaces 视图中,应该能够找到新的表空间 TBSP_DATA1。如果对新创建的表空间 TBSP_DATA1 不完全满意,那么点击 Alter Tablespace 来修改这个表空间。如果希望创建 SMS 表空间,那么点击 Create New Tablespace。 图 13. Control Center —— Tablespace 视图
12. 将索引、 大对象(Large Object, LOB)和大字段(Long Field, LF)或 XML 数据与表数据分开存储是有好处的。但是,在本教程中没有 LOB/LF 数据,所以 不需要为它们创建表空间。XML 数据存储在与其他数据相同的表空间 TBSP_DATA1 中,所以也不需要为它创建表空间。后面几节将讨论索引。 13. 在 DB2 命令行上,输入 cd C:\DB2\HELLOWLD\ 来创建表空间。如果 目录 HELLOWLD 还不存在,需要首先创建它。然后,运行以下命令 notepad crt_tbsp.clp。在 notepad 中,编辑 Create Tablespace 语句,将它改为以下

代码: CREATE LARGE TABLESPACE TBSP_INDEX1 PAGESIZE 4 K MANAGED BY DATABASE USING (FILE 'C:\DB2\NODE0000\hellowld\dbdir\tbsp_index1_c01' 5120, FILE 'C:\DB2\NODE0000\hellowld\dbdir\tbsp_index1_c02' 5120) EXTENTSIZE 8 OVERHEAD 10.5 PREFETCHSIZE 8 TRANSFERRATE 0.14 BUFFERPOOL IBMDEFAULTBP; 14. 将 COMMENT 语句改为: COMMENT ON TABLESPACE TBSP_INDEX1 IS 'tablespace to hold index data'; 现在 crt_tbsp.clp 中的命令应该是下面这样: CONNECT TO HELLOWLD; CREATE LARGE TABLESPACE TBSP_INDEX1 PAGESIZE 4 K MANAGED BY DATABASE USING (FILE 'C:\DB2\NODE0000\hellowld\dbdir\tbsp_index1_c01' 5120, FILE 'C:\DB2\NODE0000\hellowld\dbdir\tbsp_index1_c02' 5120 ) EXTENTSIZE 8 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL IBMDEFAULTBP ; COMMENT ON TABLESPACE TBSP_INDEX1 IS 'tablespace to hold index data'; CONNECT RESET; 15. 保存并退出 notepad。
16. 在 DB2 命令行窗口中运行 db2 -tvf crt_tbsp.clp 命令,应该会看 到成功地创建了这个表空间。DB2 命令行选项 -tvf 允许运行来自文件的 DB2 命令。 17. 进入 Control Center,点击 Control Center 主菜单中的 Selected, 然后点击下拉菜单中的 Refresh,查看到目前为止创建的所有表空间。

db2look命令详解

db2look 今天整理了一下db2look命令参数说明 db2look Command syntax | |>>-db2look-- -d--DBname--+-----+--+--------------+--------------> | '- -e-' '- -u--Creator-' | |>--+-------------+--+-------------------------------------+-----> | '- -z--schema-' '-+----------------+--+-------------+-' | | .-------. | '- -tw--Tname-' | | V | | | '- -t----Tname-+-' | |>--+----------------+--+-----+--+------------+--+-----+---------> | | .-------. | '- -h-' '- -o--Fname-' '- -a-' | | V | | | '- -v----Vname-+-' | |>--+-----------------------+--+-----+--+-----+--+------+--------> | '- -m--+-----+--+-----+-' '- -l-' '- -x-' '- -xd-' | '- -c-' '- -r-' | |>--+-----+--+-----------------+--+-----+--+-----+--+-----+------> | '- -f-' '- -td--delimiter-' '- -p-' '- -s-' '- -g-' | |>--+----------+--+----------------------------+-----------------> | '- -noview-' '- -i--userid-- -w--password-' | |>--+------------------+--+---------+---------------------------><

DB2表空间已满

解决方法但由于是双机,所以裸设备需要在hacmp中建,或者建了后两边同步一下,可以找富通和IBM解决。 DB2解决tablespace满的问题 1. 连接到数据库,查看一下tablespace的使用情况 db2 => list tablespaces show detail Tablespaces for Current Database Tablespace ID = 0 Name = SYSCATSPACE Type = System managed space Contents = Any data State = 0x0000 Detailed explanation: Normal Total pages = 4814 Useable pages = 4814 Used pages = 4814 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1 Tablespace ID = 1 Name = TEMPSPACE1 Type = System managed space Contents = System Temporary data State = 0x0000 Detailed explanation: Normal Total pages = 227 Useable pages = 227 Used pages = 227 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1

db2数据库使用

一、db2 基础 基本语法 注释:“--”(两个减号) 字符串连接:“||” 如set msg=’aaaa’||’bbbb’,则msg为’aaaabbbb’ 字符串的引用:'’(一定用单引号),如果需要输入单引号,输入两个单引号即可。 语句结束:“;” 语法来源:PASCLE 转义字符: 如果你想查询字符串中包含'%’或'_’ ,就得使用转义字符(Escape Characters)。比如,要想查询book_title中包含字符 串’99%’的纪录: SELECT * FROM books WHERE book_title like '%99!%%’escape '!’ 后面的escape '!’是定一个转义字符'!’, 指明紧跟着转义字符’!'后的%不再是统配符。 DB2命令参数选项 Db2 list command options 可以查看 -a 显示 SQLCA OFF -c 自动落实 ON -e 显示 SQLCODE/SQLSTATE OFF -f 读取输入文件 OFF -l 将命令记录到历史文件中 OFF -n 除去换行字符 OFF -o 显示输出 ON -p 显示交互式输入提示 ON -r 将输出保存到报告文件 OFF -s 在命令出错时停止执行 OFF -t 设置语句终止字符 OFF -v 回送当前命令 OFF -w 显示 FETCH/SELECT 警告信息 ON -x 不打印列标题 OFF -z 将所有输出保存到输出文件 OFF 这些选项的具体功能及其缺省设置为: .a 显示 SQLCA 的数据,缺省为 OFF。 .c 是否自动落实 SQL 命令,缺省为 ON。

DB2_数据库日志管理

1、load 方法装入数据: export to tempfile of del select * from tablename where not 清理条件; load from tempfile of del modified by delprioritychar replace into tablename nonrecoverable; 说明: 在不相关的数据表export数据时,可以采取并发的形式,以提高效率; tablename指待清理table的名称; modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况; replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容; nonrecoverable无日志方式装入; 2、查找当前的应用: db2 list application grep btpdbs; 3、删除当前正在使用的application: db2 "force application (id1,id2,id3)" id1,id2,id3 是list显示的应用号; 4、查看当前应用号的执行状态: db2 get snapshot for application agentid 299 grep row 5、查看数据库参数: db2 get db cfg for //当前数据库可以省略 6、修改数据库的log数据: db2 update db cfg using <参数名> <参数值> 7、db2stop force的用法: 在进行bind的时候出现如下错误: sql0082can error has occurred which has terminated processing. sql0092nno package was created because of previous errors. sql0091nbinding was ended with "3" errors and "0" warnings. 主要是表文件被加锁,不能继续使用; 在进行stop的时候报错:db2stop 8/03/2005 21:46:530 0 sql1025nthe database manager was not stopped because databases are still active.

DS连接DB2和Oracle

DB2: 1.在ds服务器安装oracle客户端 2.db2 catalog数据库 3.配置$DSHOME/dsenv文件,加入如下内容: DB2DIR=/opt/IBM/db2/V10——实际路径 DB2INSTANCE=db2inst1 ——实际的db2实例用户 INSTHOME=/home/db2inst1 ——实际路径 DB2PATH=/opt/IBM/db2/V10 ——-实际路径 PATH=$PATH:$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/mi sc:$INSTHOME/sqllib/db2tss/bin:$DSHOME/bin:$DB2PATH/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INSTHOME/sqllib/lib:$DB2PATH/lib64 THREADS_FLAG=native export DB2DIR DB2INSTANCE INSTHOME DB2PATH PATH LIBPATH THREADS_FLAG Oracle: 1.在ds服务器安装oracle客户端 2.编辑$ORACLE_HOME/network/admin/tnsnames.ora文件,加入数据库信息 3.配置oralce驱动程序: Oracle 11g需要配置驱动过程如下: 请使用root用户

切换到oracle目录下 $cd/home/db/oracle/app/product/11g_64/lib 为oracle驱动建立软连接: $cd ORACLE_HOME/lib $ln -s /IBM/InformationServer/Server/StagingArea/Installed/OracleConnector/Server/linux/li bccora11g.so licccora11g.so $ln –s /IBM/InformationServer/Server/StagingArea/Installed/OracleConnector/Server/linux/li bccora10g.so licccora10g.so 4.安装软连接库文件 export APT_ORCHHOME=/IBM/InformationServer/Server/PXEngine export DSHOME=/IBM/InformationServer/Server/DSEngine $cd /IBMInformationServer/Server/StagingArea/Installed/PxOracle/install/ $vi install.liborchoracle 找到 install_driver() { case $version in 9 ) VER='9i';; 10 ) VER='10g';; 0 ) return;; esac

DB2不允许访问表空间解决

1. DB2进行异常操作后,如命令未执行完将其中断,或对DB2表进行 load/restore操作后,DB2将只能select,不能update,altet,insert,报错如下: DB2 SQL Error: SQLCODE=-290, SQLSTATE=55039, SQLERRMC=null, DRIVER=3.50.152 消息:不允许访问表空间。. SQLCODE=-290, SQLSTATE=55039, DRIVER=3.50.152 2. 可查看DB2的表空间状态,确认状态后进行相应的处理解决 $ db2 "list tablespace show detail" Tablespaces for Current Database Tablespace ID = 0 Name = SYSCATSPACE Type = System managed space Contents = Any data State = 0x0000 Detailed explanation: Normal Total pages = 2519 Useable pages = 2519 Used pages = 2519 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1 Tablespace ID = 1 Name = TEMPSPACE1 Type = System managed space Contents = System Temporary data State = 0x0000 Detailed explanation: Normal Total pages = 1 Useable pages = 1 Used pages = 1 Free pages = Not applicable High water mark (pages) = Not applicable Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32

在db2上建立数据库分区的步骤和命令

本文简单介绍了在DB2上建立数据库分区的步骤和涉及到的命令等,供大家参考! AD:创建database partition 1、创建需要建立数据库分区的db instance 可使用命令建立db instance: db2icrt -s ESE -u db2admin,aaa123456 -h ANWENHAO DBINSTANCENAME 创建完成对应的instance 后需要重启DB2。 2、将新建的db instance加入到DB2中: CATALOG LOCAL NODE DB2INST1 INSTANCE DB2INST1 SYSTEM ANWENHAO OSTYPE NT; 3、在命令行中设置当前需要操作的dbInstance。 set db2instance=db2inst1 db2 get instance

db2 attach to db2inst1 4、创建DBPartition db2start dbpartitionnum 1 ADD DBPARTITIONNUM HOSTNAME ANWENHAO PORT 1 COMPUTER ANWENHAO USER db2admin PASSWORD aaa123456 WITHOUT TABLESPACES 5、创建完成后需要重新启动db2。DB2在此时会增加一个database partition并进行redistribution。 以上操作即完成database partition。 创建database partition group CREATE DATABASE PARTITION GROUP "NODE1" ON DBPARTITIONNUMS (1); COMMENT ON DATABASE PARTITION GROUP "NODE1" IS 'ANWENHAO _1';

linux下安装DB2的详细步骤

linux下安装DB2的详细步骤 安装前准备: DB2 10.1的版本需要在Linux5以上版本,核心要求2.6.16以上。 可以通过lsb_release –a和uname –a命令查看系统版本和核心版本。/etc/redhat-release文件中描述了系统的版本信息。 第一步 在IBM网站下载,下载db2数据包,目前我下载的是 db2_v1012_linuxia32_expc_lite.tar.gz 第二步 把下载下来的包(名称有可能是:db2_v1012_linuxia32_expc_lite.tar.gz)通过FTP放进opt目录 第三步 用命令解压db2_v1012_linuxia32_expc_lite.tar.gz如下: #cd /opt #gunzip db2_v1012_linuxia32_expc_lite.tar.gz # tar -xvf db2_v1012_linuxia32_expc_lite.tar 第四步 解压以后会有目录名如:tar -xvf DB2_V81_PE_LNX_32_NLV,点击进去以后,可以看到有三个文件,其它一个是用指令(db2_install)安装,另一个是图片介面(db2setup) 切换到/opt/devinst/db2_v101fp2/linuxia32/s121127/expc_lite/,用指令

如下: #cd /opt/devinst/db2_v101fp2/linuxia32/s121127/expc_lite/ #sh db2_install稍后会出现如果提示: DB2.ADMCL DB2 Administration Client for LINUX26 DB2.ESE DB2 Enterprise Server Edition for LINUX26 DB2.ADCL DB2 Application Development Client for LINUX26 然后进行选择,选择时一定要用大写如果选择:DB2.ESE这时它自己会执行所有文件,执行完以后在:/opt目录里面会出现:IBM 表示安装已经完毕 接下来,我们要创建实例和创建数据库 第五步(注册license) 要注册license不然到时没法创建数据库,license在哪里你要自己去找一下,一般情况会出现在这里: /home/db/db2/V10.1/adm/db2licm /opt/devinst/db2_v101fp2/linuxia32/s121127/expc_lite/db2/license/ db2expc_uw.lic 然后在root用户下执行 #/home/db/db2/V10.1/adm/db2licm –a /opt/devinst/db2_v101fp2/linuxia32/s121127/expc_lite/db2/license/db 2expc_uw.lic

DB2数据库表空间重定向恢复

DB2数据库表空间重定向恢复 一、情况说明 在为某市搭建新营销系统演示环境时,从公司测试环境(以下简称公司环境)备份出来的数据库TCDATA文件无法在某市演示环境(以下简称某市环境)还原,提示容器错误。原因是公司环境服务器的盘符为C、D、E、F,某市环境的盘符为C、D、E。公司环境TCDATA 库的部份表空间容器指向盘符F,在某市环境无法找到盘符F。 二、解决流程 1、在公司环境备份TCDA TA库,并记录备份时间戳20100916122505 Db2 backup tcdata to e:/db2backup 2、将备份文件复制到某市环境,并在某市环境E盘新建一个TCDATA库 db2 create db tcdata on e: 3、用重定向语句还原TCDATA库,还原过程中会提示需要设置容器 db2 RESTORE DATABASE tcdata USER tc USING tcpwd FROM e:\db2backup TAKEN AT 20100916122505 TO e: INTO tcdata redirect 4、在公司环境查看TCDA TA库每个表空间的容器情况,一般容器用path,类型为file的容器用file。注意:每个容器都需要重定向 db2 set tablespace containers for 1 using (path "E:\DB2\NODE0000\SQL00002\SQLT0001.0") db2 set tablespace containers for 2 using (path "E:\DB2\NODE0000\SQL00002\SQLT0002.0") db2 "set tablespace containers for 3 using(File 'e:\db2data\tcdata\userfile\datafile01.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile02.dat' 64000,file 'e:\db2data\tcdata\userfile\datafile03.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile04.dat' 64000,File 'e:\db2data\tcdata\userfile\datafile05.dat' 64000)" db2 "set tablespace containers for 4 using(File 'E:\db2data\tcdata\tmpfile\public_usrtmp01.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_usrtmp02.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_usrtmp03.dat' 32000)" db2 "set tablespace containers for 5 using(File 'E:\db2data\tcdata\tmpfile\public_systmp01.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_systmp02.dat' 32000,File 'E:\db2data\tcdata\tmpfile\public_systmp03.dat' 32000)" db2 set tablespace containers for 6 using (path "E:\DB2\NODE0000\SQL00002\SYSTOOLSPACE") db2 set tablespace containers for 7 using (path "E:\DB2\NODE0000\SQL00002\TBSP32K0000") db2 set tablespace containers for 8 using (path "E:\DB2\NODE0000\SQL00002\TBSP32KTMP0000") db2 set tablespace containers for 9 using (path "E:\DB2\NODE0000\SQL00002\SQLT0250.0") 4、继续执行恢复 db2 restore db tcdata continue 5、如数据库不一致就执行一下前滚 db2 rollforward db tcdata to end of logs and complete

db2数据库复制

DB2 与DB2 之间的远程SQL 复制 白玉媛 (baiyy@https://www.doczj.com/doc/c14817753.html,), 软件工程师,IBM 中国软件开发中心,IBM 肖振春 (xiaozc@https://www.doczj.com/doc/c14817753.html,), 软件工程师, IBM 中国软件开发中心 简介:本文介绍了基于SQL 的DB2 与DB2 之间的远程复制,力求为初学者掌握DB2 复制提供一个参考步骤。 标记本文! 发布日期: 2006 年12 月21 日 级别:中级 访问情况 2363 次浏览 建议: 0 (添加评论) 平均分(共3 个评分) 本文介绍了基于“SQL复制”的DB2 与DB2 之间的远程复制。很多读者反映,对于初学者,由于对DB2 的复制概念不是很清楚,在实践中或多或少遇到了入手难的问题。本文通过对远程DB2 之间的复制的介绍,力求为初学者对DB2 的掌握提供一个参考步骤。 背景 “SQL”复制又称为“DB2 复制”,是为DB2 开发的两种数据复制类型中的一种,它是通过SQL 进行的复制。在这里简单提一下,DB2 复制中的另一种”Q 复制”是通过WebSphere MQ 队列进行的。在进行SQL 复制时,Capture 程序读取DB2 恢复日志以获取对指定源表的更改。该程序将更改保存到分级表中,Apply 程序并行读取更改并应用于目标事务。见图1。 图 1. SQL复制的结构 动机 商业上用复制出于很多原因,可以归纳为: ?分散,把数据分散到各个地方 ?整合,把其他地方的数据联合起来

?交换,与其他地方进行双向的数据交换 ?灵活应用,对上面提到的进行一些改变或者结合 在企业的生产环境中,常常会遇到把分公司的数据汇总到总公司的情况。这些数据可能分别建立在不同的数据库系统之中,也可能只使用DB2 数据库。无论哪种情况,都可以通过IBM 的DB2 ESE 和Webshpere II 产品进行操作。如果产品只是DB2 之间的SQL 复制,那么生产环境中只需安装DB2 ESE 即可。 假设用户有两台服务器都在使用DB2 V8。用户想把其中一台DB2 V8 中的数据复制到另外一台的DB2 系统中。这种情况下,可以选定任意一台服务器中的DB2 作为控制平台,为了方便,本例中直接使用了所要复制到的目标所在的DB2 V8 为控制平台。如图二所示: 图 2. 数据复制目标图 回页首实现的步骤 首先需要确定本地计算机安装了:DB2 ESE(DB2 Enterprise Server Edition)。 本文把复制的过程分为五步介绍,分别为: ?DB2 数据库环境及配置 ?编目(Catalog)DB2 数据库 ?密码配置 ?建立DB2 与DB2 之间的复制过程及错误分析 DB2 数据库环境及配置 在本例中采用了Windows 2000 运行环境,具体配置见表1: 表 1. 操作系统环境与DB2 版本 描述Server A Server B 主机名WSII155 db2repl 主机IP 9.181.139.155 9.181.138.233 操作系统Windows 2000 Server SP4 (Eng) Windows 2000 Server SP4 (Eng)

DB2 9.7安装和配置(完善)

DB2 安装和配置 1DB2 安装和配置 1.1拷贝DB2安装包到OPT下 [root@localhost opt]# scp DB2_WSE_97_Linux_x86.tar.gz root@192.168.1.239:/opt The authenticity of host '192.168.1.239 (192.168.1.239)' can't be established. RSA key fingerprint is 31:14:ff:22:04:6c:50:13:7d:a5:5d:ee:04:f3:56:c6. Are you sure you want to continue connecting (yes)? yes Warning: Permanently added '192.168.1.239' (RSA) to the list of known hosts. root@192.168.1.239's password: db2v82_32_linux_2.6_ESE.tar 100% 410MB 45.6MB/s 00:09 1.2解压安装包到当前目录 tar -xvf DB2_WSE_97_Linux_x86.tar.gz 1.3检查并设置字符集 安装DB2 8.7 时,应该用 [root@localhost 334_ESE_LNX26_32_NLV]# vi /etc/sysconfig/i18n#LANG="zh_CN.UTF-8"LANG="zh_CN.GB18030"LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"LC_C TYPE=zn_CN.GB18030lC_TIME=en_US.UTF-8 [root@localhost ]# source /etc/sysconfig/i18n 1.4安装DB2 [root@localhost wse]# ./DB2_install

DB2数据库补丁安装步骤

1.1补丁安装(可选) 若DB2安装介质文件中已包含fix pack5版本的补丁,通常不用进行补丁安装。但若是在原有版本之上打补丁,可以参考本节的内容。 DPF或者HADR或者PureScale环境中,需要在每台物理机器或者VM上安装DB2补丁包。 注意:对于DPF或者PureScale这边,没有什么特别注意的地方,也是按照同样的步骤安装、更新实例、启动、重新绑定程序包就可以了。(PureScale是多个实例,一个DB,DPF是1个实例多个partition),就需要在每一台物理机器或者VM上执行相同的步骤安装补丁。在启动实例之前需要确保所有机器上的补丁都在同一个补丁层次上。 1.1.1准备工作 1.1.1.1解压缩补丁包 将下载后的补丁包压缩文件上传到DB2数据库服务器的/tmp/db2v105目录下。 通过root用户登录DB2数据库服务器,具体步骤如下:

1.1.1.2停止DB2实例进程 1.作为 root 用户登录DB2数据库服务器。 2.确定与 DB2 副本相关联的所有实例。 发出以下命令: 本节后续步骤不需要执行)。 注:/opt/ibm/db2/V10.5/bin/db2greg -dump也可查看各种版本下的所有实例。 3.对 DB2 副本中的每个实例运行下列命令: 的停止步骤,停止每个存在的实例进程。 如果是 PowerHASystemMirror用户,那么必须使用 ha_db2stop 命令而不是 db2stop命令来停止 DB2。如果使用 db2stop 命令而不是 ha_db2stop 命令,将触发故障事件。 1.1.1.3停止DB2管理服务器 如果 DB2 管理服务器 (DAS) 属于要更新的 DB2 副本(如果服务器上没有安装

db2top工具详解

Database (d) Figure 2. Database screen 在数据库屏幕,db2top提供了一组对整个数据库的性能监控单元。 用户可以监视活动会话(MaxActSess),排序内存(SortMemory)和日志空间(LogUsed)。这些监测元素可以帮助用户确定这些元素的当前使用百分比。如果这些因素中的一个开始达到很高甚至100%时,用户应该开始调查发生了什么事。 当前时间和数据库开始时间(Start Time)相比能让我们了解数据库运行了多久。这个值结合其他检测元素去调查那些已存在一段时间的问题是非常有用的。 锁的使用(LockUsed)和升级(LockEscals)对缩小锁定问题非常有帮助。如果LockEscals 数量很大时,则增加LOCKLIST和MAXLOCKS数据库参数是一个好主意或者寻找那些引起这个问题的不良查询语句。 L_Reads,P_Reads和A_Reads代表逻辑读,物理读和异步读取。结合的命中率(HitRatio)值,这些变量对于评估大多数的读取发生在存储器中还是磁盘I / O里是非常重要的。因为磁盘的I / O比存储器存取慢得多,用户更喜欢访问在内存中的数据。当用户看到HitRatio 下降低则可以查看缓冲池(bufferpools)是不是不够大了,或是不是有查询进行了太多的全白扫描而导致页面数据从内存洗冲到磁盘。

和读类似,A_Writes代表异步写入,这表明数据页是由异步页清洁剂之前写的缓冲池空间是必需的。通过db2top 刷新频率这段时间内的写数量我们还能知道有多少写请求发生了。还能计算每次写入的平均花费时间这对分析I/O瓶颈引起的一些性能问题有所帮助。当A_Writes/Writes的比值越高则写I/O性能越高。 SortOvf代表排序溢出。如果用户发现这个数字变为非常高,就需要寻找查询了。排序溢出发生在SORTHEAP不足够大,导致排序(Sort)或HashJoin操作可能会溢出数据到临时空间。有时该值随着SORTHEAP增加而降低,但在其他情况下,可能没有多大帮助,如果进行排序的数据集比可分配给SORTHEAP内存大得多。如果请求的数据量超过缓冲池可容纳的临时空间大小那么就可能需要物理I/O来进行SORT或哈希链接在这种情况下排序溢出将是很大的瓶颈。因此优化查询来减少排序溢出的数量能显著提高系统的性能。 在数据库屏幕的最后四个条目显示的平均物理读取时间(AvgPRdTime),平均直接读取时间(AvgDRdTime),物理平均写入时间(AvgPWrTime)和平均直接写入时间(AvgDWrTime)。这四个项目直接反映I/ O子系统性能。如果用户发现一个意想不到的大量的时间花费在每个读或写操作,进一步的调查应到I/ O子系统。 正常情况下,DB2 排序发生在内存中,这块内存叫做排序堆,即 SORTHEAP。当需要排序的数据超出 SORTHEAP 大小限制时,就会发生排序溢出。溢出的数据会写到临时表中,这会产生更多的I/O,因此对性能会有较大影响。 Tablespace (t) Figure 3. Tablespace screen

DB2数据库安装

建用户 # groupadd db2iadm1 # useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1 # groupadd db2fadm1 # useradd -m -g db2fadm1 -d /home/db2fenc1 db2fenc1 # groupadd dasadm1 # useradd -m -g dasadm1 -d /home/dasusr1 dasusr1 一、下载安装DB2 到IBM网站下载免费的DB2 Express-C 9.5,网址https://www.doczj.com/doc/c14817753.html,/developerworks/cn/downloads/im/udbexp/ 下载db2exc_952_LNX_x86.tar.gz到/home/hz 使用 tar -xvf db2exc_952_LNX_x86.tar.gz命令解压, 解压到/home/hz/expc/目录下, X/home/hz/expc/db2setup,命令行终端使用/home/hz/expc/db2_install来进行DB2的安装。 安装时若提示找不到libaio.so.1及libstdc++.so.5,则先下载安装相应的软件包。 libaio.so.1 -> libaio1 # aptitude install libaio1 libstdc++.so.5 -> libstdc++5 # aptitude install libstdc++5 二、配置DB2 #创建用户组及用户 #与实例名同名? groupadd -g 2000 db2iadm1 useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1

DB2数据库表空间修改文档

DB2数据库表空间检查与维护 一、表空间占满故障现象 1、系统上线初期正常,稳定运行半年以后突然出现故障。 2、对数据库进行写入操作时失败:用户的流程计划不能正常提交,录 入数据无法保存。 3、系统应用程序操作响应慢,甚至宕机(死机)。 4、DB2数据库能正常连接,select语句执行正常,insert语句执行失败。 二、表空间状态检查与查看 1、使用DB2管理员账户查看表空间状态:db2 list tablespaces |more , 其中|more 用于分页显示输出结果,按空格键翻页。结果如图1所示。 图1 其中状态0x0000 表示表空间正常。 2、查看表空间及其表空间所属容器的详细信息:

db2 list tablespaces show detail |more ,结果如图2所示。 图2 剩余表空间=可用页数*页大小,如图2中SYSCATSPACE表空间的可用空间大小:=3532*4096(4K)=14M,即该表空间最多还能增加14M的数据,若占满后需要扩充表空间。 三、表空间占满解决方法 1、改变容器大小: db2 alter tablespace idx_data resize(file 'd:\db2\datafile_netdb\idx_data' 32000) 该命令是将表空间idx_data 的大小为1000MB(因为该表空间扩展数 据库大小为32K),d:\db2\datafile_netdb\idx_data是该表空间文件 存放位置。执行结果如图3所示。

图3 2、增加新的容器: db2 alter tablespace idx_data add(file 'd:\db2\datafile_netdb\idx_data_ex1' 640) 该命令是将表空间idx_data 增加新的容器idx_data_ex1,大小为 20MB(因为该表空间扩展数据库大小为32K), d:\db2\datafile_netdb\idx_data_ex1是该新增容器文件存放位置。执行结果如图4所示。 图4

DB2数据库参数详解配置

DB2数据库参数配置 数据库配置发行版级别= 0x0c00 数据库发行版级别= 0x0c00 数据库地域= CN 数据库代码页= 1208 数据库代码集= UTF-8 数据库国家/地区代码= 86 数据库整理顺序= IDENTITY 备用整理顺序(ALT_COLLATE) = 数字兼容性= OFF Varchar2 兼容性= OFF 数据库页大小= 4096 动态SQL查询管理(DYN_QUERY_MGMT) = DISABLE 对此数据库的发现支持(DISCOVER_DB) = ENABLE 限制访问= NO 缺省查询优化类(DFT_QUERYOPT) = 5 并行度(DFT_DEGREE) = 1 在算术异常时继续(DFT_SQLMATHWARN) = NO 缺省刷新有效期(DFT_REFRESH_AGE) = 0 缺省维护的选项(DFT_MTTB_TYPES)的表类型= SYSTEM 保留的高频值的数目(NUM_FREQVALUES) = 10 保留的分位点数目(NUM_QUANTILES) = 20 十进制浮点舍入方式(DECFLT_ROUNDING) = ROUND_HALF_EVEN 备份暂挂= NO

数据库是一致的= NO 前滚暂挂= NO 复原暂挂= NO 启用的多页文件分配= YES 恢复状态的日志保留= NO 日志记录状态的用户出口= NO 自调整内存(SELF_TUNING_MEM) = ON 数据库共享内存大小(4KB)(DATABASE_MEMORY) = AUTOMATIC 数据库内存阈值(DB_MEM_THRESH) = 10 锁定列表的最大存储量(4KB)(LOCKLIST) = AUTOMATIC 每个应用程序的锁定百分比列表(MAXLOCKS) = AUTOMATIC 程序包高速缓存大小(4KB)(PCKCACHESZ) = AUTOMATIC 共享排序的排序堆域值(4KB)(SHEAPTHRES_SHR) = AUTOMATIC 排序列表堆(4KB)(SORTHEAP) = AUTOMATIC 数据库堆(4KB)(DBHEAP) = AUTOMATIC 目录高速缓存大小(4KB)(CATALOGCACHE_SZ) = 260 日志缓冲区大小(4KB)(LOGBUFSZ) = 98 实用程序堆大小(4KB)(UTIL_HEAP_SZ) = 23665 缓冲池大小(页)(BUFFPAGE) = 250 SQL 语句堆(4KB)(STMTHEAP) = AUTOMATIC 缺省应用程序堆(4KB)(APPLHEAPSZ) = AUTOMATIC 应用程序内存大小(4KB)(APPL_MEMORY) = AUTOMATIC 统计信息堆大小(4KB)(STAT_HEAP_SZ) = AUTOMATIC 检查死锁的时间间隔(毫秒)(DLCHKTIME) = 10000 锁定超时(秒)(LOCKTIMEOUT) = -1

DB2数据库安全配置基线.

DB2数据库系统安全配置基线

备注: 1.若此文档需要日后更新,请创建人填写版本控制表格,否则删除版本控制表格。

目录 第1章概述 (4) 1.1适用范围 (4) 1.2适用版本 (4) 1.3实施 (4) 1.4例外条款 (4) 第2章帐号与口令 (4) 2.1帐号 (4) 2.1.1删除不必要的帐号* (4) 2.1.2分配数据库用户所需的最小权限* (5) 2.2口令 (5) 2.2.1DB2用户口令安全 (5) 第3章数据库权限 (7) 3.1从PUBLIC撤销隐式的权限和特权 (7) 3.1.1从PUBLIC撤销隐式的权限和特权 (7) 3.2跟踪隐式的特权 (9) 3.2.1跟踪隐式的特权 (9) 3.3检查用户许可和特权 (9) 3.3.1检查用户许可和特权* (9) 第4章DB2认证 (11) 4.1为SYS XXX_GROUP参数使用显式值 (11) 4.1.1为SYSxxx_GROUP 参数使用显式值 (11) 4.2使用加密的AUTHENTICATION模式 (11) 4.2.1使用加密的AUTHENTICATION模式 (11) 第5章DB2审计 (13) 5.1执行随机安全审计 (13) 5.1.1执行随机安全审计* (13) 第6章评审与修订 (14)

第1章概述 本文档旨在指导系统管理人员或安全检查人员进行DB2数据库系统的安全合规性检查和配置。 1.1 适用范围 本配置标准的使用者包括:数据库管理员、应用管理员、网络安全管理员。 1.2 适用版本 DB2数据库系统。 1.3 实施 1.4 例外条款 第2章帐号与口令 2.1 帐号 2.1.1删除不必要的帐号*

DB2分区表

DB2 V9.7 for Linux, UNIX, and Windows 表分区 表分区功能是一种数据组织方案,即,表数据根据一个或多个表列中的值分布到多个存储对象(称为数据分区或范围)中。每个数据分区都是单独存储的。这些存储对象可以在不同的表空间中,也可以在相同表空间中。 存储对象的行为与单个表的行为非常类似,它通过使用ALTER TABLE ... ATTACH 语句将现有表合并到分区表中,可以很容易实现快速转入。同样,使用ALTER TABLE ... DETACH 语句很容易实现转出。查询处理同样可以利用分离的数据来避免扫描不相关数据,从而使许多数据仓库样式查询具有更好地查询性能。 按照CREATE TABLE 语句的PARTITION BY 子句中指定那样将表数据分区。此定义中使用的列被称为表分区键列。 这种组织方案可以单独地使用,也可与其他组织方案结合使用。通过组合使用CREATE TABLE 语句的DISTRIBUTE BY 和PARTITION BY 子句,可以将数据分布到跨多个表空间的数据库分区。该组织方案包括: ?DISTRIBUTE BY HASH ?PARTITION BY RANGE ?ORGANIZE BY DIMENSIONS 表分区功能可用于DB2? 企业服务器版Linux 版、UNIX 版和Windows 版版本9.1 和更高版本。 表分区的优点 如果下列任何情况适用于您和您的组织,请考虑表分区的许多优点: ?更容易转入和转出表数据使数据仓库受益 ?数据仓库包括大型表 ?您正在考虑从先前发行版或某个竞争数据库产品迁移至版本9.1 数据库 ?想要更有效地使用分层存储管理(HSM) 解决方案 表分区简化了表数据转入和转出以及管理工作,并且提高了索引位置的灵活性和查询处理效率。 有效转入和转出 表分区功能提高了表数据的转入和转出效率。这可通过使用ALTER TABLE 语句的 ATTACH PARTITION 和DETACH PARTITION 子句来实现。通过转入分区表数据,可以方便地将新范围作为附加数据分区合并到分区表中。通过转出分区表数据,可以方便地从分区表中分离出某些范围的数据,以进行后续清除或归档处理。 更容易管理大型表 由于您可以在各个数据分区上执行管理任务,因此表级别管理更灵活。这些任务包括:拆离和重新连接数据分区、备份和复原各个数据分区以及重组各个索引。通过将花费较

相关主题
文本预览
相关文档 最新文档