当前位置:文档之家› db2数据库复制

db2数据库复制

db2数据库复制
db2数据库复制

DB2 与DB2 之间的远程SQL 复制

白玉媛 (baiyy@https://www.doczj.com/doc/473256395.html,), 软件工程师,IBM 中国软件开发中心,IBM

肖振春 (xiaozc@https://www.doczj.com/doc/473256395.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)

图 3. 查看节点

这样就把远程的数据库映射到了本地数据库中。见图4,参考图3。

图 4. 远程数据编目到本地

3. 通过在服务器 A 上执行命令db2 list database directory。可以检查数据库ISOURCE 是不是成功的编目了。见图4:

图 5. 测试从节点West 到节点East 的连接情况

4. 测试从节点West 到节点East 的连接情况:

列表 2. 测试节点连接情况

db2 connect to ISOURCE user administrator using ***

db2 terminate

图 6. 检查两个系统的连接状况

配置密码和连接

在进行capture/apply 服务器的配置之前,首先需要配置密码和连接。如果不配置密码连接,会影响复制。

1. 配置系统密码

本文中需要配置IP 地址为9.181.139.155 的系统WSII155(WEST)和IP 地址为

9.181.138.233 的系统db2Repl(EAST)。需要注意的是,复制控制中心建立在WSII155 系统中,在配置系统密码和参数的时,属于远程服务器的db2repl 系统需要用其IP 地址进行配置,如果用机器名db2repl 可能会出现配置不成功的状况。

打开复制中心:点击复制中心> 管理密码和连接,见图7。

图7. 打开密码和连接管理

如果要测试两个机器的连接情况,则可以选中所需要测试的服务器,这时对话框右边的Test 按钮会变化到可点击状态,点击Test 按钮,则会显示当前的连接状态,见图8。

图8. 系统密码配置

测试的结果见图9。

图9. 测试服务器的连接情况

2. 配置数据库的密码

与上面的步骤类似,点击“添加”按钮可以增加一个用作capture/apply 服务器的数据库。可以通过测试按钮进行数据库之间的连接测试。见图10,图11。

图10. 数据库的密码配置

图11. 数据库连接测试成功

3. 密码文件的配置

创建密码文件的步骤为:

?把目录转换到所要创建密码文件的文件夹中,例如:C:\>cd sqlrep

?敲入asnpwd,按回车键可查询与密码文件相关的命令

?敲入asnpwd INIT ENCRYPT PASSWORD,按回车可创建密码文件

?依次键入自己需要访问的数据库到密码文件中,例如:asnpwd ADD ALIAS SAMPLE ID db2admin PASSWORD admindb2

?想查看密码文件内容,可用命令:asnpwd LIST

见图12。

图12. 创建密码文件过程

4. SQL 复制的配置过程

首先介绍SQL复制的实现过程。

a. 建立SQL capture server (ISOURCE) 和SQL apply server (TARGET)。

图13. 建立capture 和apply server

我们能查看到ISOURCE capture server 的类型是远程(Remote)。

图14. ISOURCE capture server 的定义

相应的TARGET apply server 的类型是本地。

图15. TARGET apply server 的定义

b. 注册一个远程服务器中的表QHDSVT.STUDB559 到ISOURCE 中。图16. 注册表

c. 在TAEGET apply server 中建立订阅集。

图17. 建立订阅集

d. 在capture server 和apply server 所在的系统上建立password 文件。具体步骤请参阅“创建密码文件”一节。这里需要注意的是,如果数据库所在的DB2 是V8,则必须建立password 文件,否则复制不会成功。若数据库所在的DB2 是V9,则可不必建立password 文件。在此例中,ISOURCE 所在的DB2 是V8,所以必须建立password 文件。

e. 启动capture server,apply server,检查他们的状态。

图18. 检查capture,apply 服务器的状态

f. 启动capture,apply 服务器之后,检查QHDSVT.STUDB559。看到表已经复制到target 数据库中。点开目标数据库中的TGSTUDB559,可以查到所有的数据已经复制到了目标表中。

图19. 检查capture,apply 服务器的状态

至此,数据复制成功,整个复制过程结束。

图20. 数据复制成功

5. 错误分析

在编目远程数据库的过程中,读者可能会碰到如下的错误信息:SQL30081N 检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信API:"SOCKETS"。检测到错误

的位置:"9.181.139.155"。检测到错误的通信函数:"connect"。协议特定的错误代码:"10060"、"*"、"*"。SQLSTATE=08001

原因解析:碰到这种错误可能是由于网络连接的不稳定造成的。

解决方案:检查并保证EAST和WEST两个服务器之间的网络连接是可用的,并且服务器的路径设置正确。此问题也可能由于防火墙的存在而引起。如果服务器有病毒,也可能早晨服务器的网络不能正常工作,因此读者需根据自己的实际情况寻找原因。

读者也可能会碰到如下的错误信息:SQL0332N 没有从源代码页"1252" 至目标代码页"1386" 的转换。原因码为"1"。SQLSTATE=57017

原因解析:这个问题是由于本地和远程服务器之间的codepage 不同造成的,本例中由于

源表服务器和目标表服务器都是英文操作系统,因此不会遇到这一问题。但是客户的环境比较复杂,有可能两个操作系统的语言不同,例如,有中文和英文操作系统等。

解决方案:改变codepage。用下面的语句检查codepage:

?db2 get db cfg for ISOURCE: 检查数据库ISOURCE 所用的codepage

?db2 get db cfg for TARGET: 检查数据库TARGET 所用的codepage

?db2set: 检查当前DB2所在系统的codepage

用下面的命令改变DB2 服务器所用的codepage:

?db2set db2codepage=serverdb codepage (e.g. "1252")

?db2 terminate

检查是否连接成功:

?db2 connect to ISOURCE user administrator using passw0rd

详细细节读者可参阅参考资料中的“理解DB2 Universal Database 的字符转换”。

回页首结论

随着DB2的推广,国内越来越多的企业选择使用了DB2产品。但是由于缺乏实践经验,入门往往比较难,本文针对初学DB2的客户:

?深入浅出的介绍了如何进行两个DB2服务器之间的数据复制

?为读者提供了初步认识DB2复制的平台

回页首益处

随着“DB2 与Oracle 之间的远程复制”一文的发表,很多读者写信询问DB2 与DB2 之间的远程复制怎么实现。针对读者的需求,写出本文,供广大读者参考。

参考资料

学习

?“ DB2 与Oracle 之间的远程复制”(developerWorks, 2006 年3 月)

?“理解DB2 Universal Database 的字符转换”(developerWorks, 2005 年6 月)?红皮书:A Practical Guide to DB2 UDB Data Replication V8

?在developerWorks 中国网站Information Management 专区可以找到更多DB2 参考资料。

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.

在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';

DB2数据库备份与恢复详解

DB2数据库备份与恢复 1.备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库(数据库名:ncc) C:\Documents and Settings\Administrator>db2 connect to ncc user nccwykpi using nccwykpi STEP 2 显示数据库应用状态 C:\Documents and Settings\Administrator>db2 list applications

STEP 3 停掉数据库应用 C:\Documents and Settings\Administrator>db2 force applications all 注意:由于该命令是异步的,所以在进行备份的时候会出现以下错误信息。此时可以再次执行db2 force applications all 命令。 STEP 4 对数据库进行离线状态下的备份 C:\Documents and Settings\Administrator>db2 backup database ncc to d:\db2\backup

注意:指定的备份文件的输出目录必须是已创建的,否则会报错。 STEP 5 查看备份历史记录 C:\Documents and Settings\Administrator>db2 list history backup all for ncc

1.2在线备份 注意:如果要做在线的备份,要对两个参数作修改:USEREXIT和LOGRETAIN,将其修改为on,默认是off的,默认使用日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。 STEP 1 查看数据库当前的属性 C:\Documents and Settings\Administrator>db2 get db cfg STEP 2 设置userexit、logretain参数的状态为on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using userexit on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using logretain on

db2数据库复制

DB2 与DB2 之间的远程SQL 复制 白玉媛 (baiyy@https://www.doczj.com/doc/473256395.html,), 软件工程师,IBM 中国软件开发中心,IBM 肖振春 (xiaozc@https://www.doczj.com/doc/473256395.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数据库参数详解配置

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数据库安装

建用户 # 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/473256395.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数据库基础入门

IBM DB2数据库基础 基本命令集合 1. 建立数据库DB2_GCB CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32 2. 连接数据库 connect to sample1 user db2admin using 8301206 3. 建立别名 create alias db2admin.tables for sysstat.tables; CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS create alias db2admin.columns for syscat.columns; create alias guest.columns for syscat.columns; 4. 建立表 create table zjt_tables as (select * from tables) definition only; create table zjt_views as (select * from views) definition only; 5. 插入记录 insert into zjt_tables select * from tables; insert into zjt_views select * from views;

6. 建立视图 create view V_zjt_tables as select tabschema,tabname from zjt_tables; 7. 建立触发器 CREATE TRIGGER zjt_tables_del AFTER DELETE ON zjt_tables REFERENCING OLD AS O FOR EACH ROW MODE DB2SQL Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10)) 8. 建立唯一性索引 CREATE UNIQUE INDEX I_ztables_tabname ON zjt_tables(tabname); 9. 查看表 select tabname from tables where tabname='ZJT_TABLES'; 10. 查看列 select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度 from columns where tabname='ZJT_TABLES'; 11. 查看表结构 db2 describe table user1.department db2 describe select * from user.tables

DB2数据库SQL语法参考手册

DB2数据库SQL语法参考手册 DB2提供了关连式资料库的查询语言SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以"系统R"的名字在IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以IBM SQL 为基础的标准关连式资料语言定义。 一、资料定义DDL(Data Definition Language) 资料定义语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。 1.建表格: CREATE TABLE table_name( column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY], column2 DATATYPE [NOT NULL], ...) 说明: DATATYPE是资料的格式,详见表。 NUT NULL可不可以允许资料有空的(尚未有资料填入)。 PRIMARY KEY是本表的主键。 2.更改表格 ALTER TABLE table_name ADD COLUMN column_name DATATYPE 说明:增加一个栏位(没有删除某个栏位的语法。 ALTER TABLE table_name ADD PRIMARY KEY (column_name) 说明:更改表得的定义把某个栏位设为主键。 ALTER TABLE table_name DROP PRIMARY KEY (column_name)

db2中的常用命令及使用方法

db2中的常用命令及使用方法 一高(重要度) 1 启动一个db 2实例使用: net start instanceName 2 停止一个db 2实例使用: net stop instanceName 3 启动配置助手: db2=>!db2ca 4 手工配置连接: db2=>catalog node/db 5 删除视图: db2=>drop view view_name 6 创建表: db2=>create table tablename 7 列出活动的数据库和连接数: db2=>list active databases 8 断开所有应用程序与数据库的连接: db2=> force application all 9 以用户 通过使用密码 与标识为 的远程实例连接: db2=> attach to user using 10 创建名为 的数据库: db2=> create database 11 显式地使数据库失效: db2=> deactivate database 12 根据需要,显式地以用户 和密码 与数据库 连接:db2=> connect to [ [user ] using ] 13 断开与当前数据库的连接: db2=> connect reset 14 列出数据库中的表。如果没有指定任何参数,则缺省情况是列出当前用户的表:db2=> list tables[for {user | all | system | schema }][show detail] 15 显示一个表或视图的列信息: db2=> describe table 16确定是否需要对表进行重组。这对于对所有表自动执行runstats 很有用 db2=> reorgchk on table all 17通过重构行来消除“碎片”数据并压缩信息,对表进行重组 db2=> reorg table 18将数据库数据抽取到一个平面文件中 db2=> export 19通过使用IMPORT 实用程序,将数据导入到数据库 db2=> import 20返回LOAD 实用程序的进度 db2=> load query table [to local-message-file][nosummary | summaryonly] [showdelta] 21 创建索引:

DB2_数据库日志管理上课讲义

D B2_数据库日志管理

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的用法:

db2数据库

db2 backup db DBNAME online compress include logs 脱机备份 db2 force applications all Db2 backup db DBNAMEE compress 查看表空间 db2 list tablespace show detail //显示很多信息。 High water mark 曾经达到过的占用率 80%左右,要扩表空间或者清理数据 查看表状态 db2 load query table TABNAME 查看归档日志目录 db2 get db cfg for DBNAME|grep LOGARCHMETH1 数据库重整 Runstats ,reorgchk,计算是否需要重整 db2 diag。log文件,看中间是否有异常 Cd 演示 1,增加表空间(文件系统,裸设备) 2,查看表空间 3,循环日志变归档日志 4,脱机备份数据库 5,联机备份数据库 6,归档日志 7,load 数据 8,扩表空间

很多操作都要先关闭数据库,然后再开启,连接后再操作 3: Db2 updte db cfg for sample using Db2stop 停数据库 Db2start 启数据库 Db2 connect to sample 连接到数据库sample Db2 “import from test.del of del insert into DBNAME”从本地的DEL文件中导入数据中Db2 prune logfile prior to dddddd.log 日志 1: Db2 “alter Tablespace dms_dat4k extend //扩展表空间 Db2 termiate //写到当前目录。 空闲时备份 Db2 backup db Db2 list utilities show detail 查看备份信息 Db2 “export to staff.del of del select * from test ”//导出或者备份

如何在Windows CMD里面用命令行操作DB2数据库

如何在Windows CMD里面用命令行操作DB2数据库 尽管 DB2 脚本可以包含 SQL 语句、DB2 系统命令和操作系统命令,但它只是有一个或多个 DB2 命令的文本文件。虽然不是必需的,但通过使用适当的文件扩展名形成一个标准的 DB2 脚本命名约定通常是个很好的方法。表 1显示了几种最常用的文件扩展名。 表 1. 脚本的常用文件扩展名 文件扩展名描述.db2 包含 DB2 命令的 DB2 脚本 .ddl 包含数据定义语言(DDL)语句的 DB2 脚本 .sql 包含 SQL 语句的 DB2 脚本 作为说明之用,清单 1包含一个非常简单的 DB2 脚本,该脚本使用数个 DB2 命令备份 sample 数据库。可以从任一 DB2 命令行工具执行该脚本。本文中用到的全部脚本都可以下载。这些脚本使用缺省的 DB2 实例(DB2)和样本数据库(SAMPLE)。其中的一些脚本将要求您安装 Windows 资源包(Windows Resource Kit)。 清单 1. 备份 sample 数据库的样本 DB2 脚本(db2backup.db2) -- -- This is a sample DB2 Backup Script -- ATTACH TO DB2; BACKUP DATABASE SAMPLE; DETACH; TERMINATE; 您可以使用以下语法从 DB2 命令窗口执行以上 DB2 脚本: db2 -tvf db2backup.db2 -l db2backup.log -r db2backup.rpt

在上面的示例中,使用了以下 DB2 命令选项来执行 DB2 脚本文件(db2backup.db2 ): -t 指明在缺省情况下用分号(;)终止每条命令 -v 指明应将每条命令显示到标准输出 -f 指明从输入文件读取命令 -l 指明将命令记录到输出文件中 -r 指明将结果保存到报告文件中 使用-l 选项将所有 DB2 命令记录到日志文件 (db2backup.log )并且使用-r 选项将命令的输出保存到报告文件(db2backup.rpt ),这始终是一个很好的方法。这两个选项的区别在于: ?-l 选项记录每条命令的开始和结束并记录日期和时间 ?-r 选项将每条命令的输出保存到文件中。 同时使用这两个选项可以让您利用报告文件查看脚本的执行摘要,并利用日志文件查看每条命令的详细信息。 也可以从 Windows shell 调用 DB2 命令窗口本身,只需从 Windows shell(命令提示符)输入db2cmd 即可。它有一些有用的开关,可以在调用它时向它传递这些开关。表 2描述了这些选项: 表 2. DB2 命令窗口的选项 开关描述-c 执行 DB2 命令窗口,然后终止。 -w 一直等到 DB2 命令窗口终止。 -i 从进行调用的 shell 继承环境。 -t 从进行调用的 shell 继承标题。

DB2操作指南及命令大全

DB2操作指南及命令大全 1.启动实例(db2inst1): db2start 2.停止实例(db2inst1): db2stop 3.列出所有实例(db2inst1) db2ilist 4.列出当前实例: db2 get instance 5.设置当前实例 set db2instance=db2 6.察看示例配置文件: db2 get dbm cfg|more 7.更新数据库管理器参数信息: db2 update dbm cfg using para_name para_value 8.创建数据库: db2 create db test 9.察看数据库配置参数信息 db2 get db cfg for test|more 10.更新数据库参数配置信息 db2 update db cfg for test using para_name para_value 11.删除数据库: db2 drop db test 12.连接数据库 db2 connect to test 13.列出所有表空间的详细信息。 db2 list tablespaces show detail 14.列出容器的信息 db2 list tablespace containers for tbs_id show detail

15.创建表: db2 ceate table tb1(id integer not null,name char(10)) 16.列出所有表 db2 list tables 7.插入数据: db2 insert into tb1 values(1,’sam’); db2 insert into tb2 values(2,’smitty’); 18.查询数据: db2 select * from tb1 9.数据: db2 delete from tb1 where id=1 0.创建索引: db2 create index idx1 on tb1(id); 1.创建视图: db2 create view view1 as select id from tb1 2.查询视图: db2 select * from view1 3.节点编目 db2 catalog tcp node node_name remote server_ip server server_port 4.察看端口号 db2 get dbm cfg|grep SVCENAME 5.测试节点的附接 db2 attach to node_name 6.察看本地节点 db2 list node direcotry 7.节点反编目 db2 uncatalog node node_name 8.数据库编目 db2 catalog db db_name as db_alias at node node_name

DB2数据库安全配置基线

DB2数据库系统安全配置基线 中国移动通信有限公司管理信息系统部 2012年 04月

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

目录 第1章概述 (4) 1.1适用范围 (4) 1.2适用版本 (4) 1.3实施 (4) 1.4例外条款 (4) 第2章帐号与口令 (5) 2.1帐号 (5) 2.1.1删除不必要的帐号* (5) 2.1.2分配数据库用户所需的最小权限* (5) 2.2口令 (6) 2.2.1DB2用户口令安全 (6) 第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数据库系统应当遵循的数据库安全性设置标准,本文档旨在指导系统管理人员或安全检查人员进行DB2数据库系统的安全合规性检查和配置。 1.1 适用范围 本配置标准的使用者包括:数据库管理员、应用管理员、网络安全管理员。 本配置标准适用的范围包括:中国移动总部和各省公司信息化部门维护管理的DB2数据库系统。 1.2 适用版本 DB2数据库系统。 1.3 实施 本标准的解释权和修改权属于中国移动集团管理信息系统部,在本标准的执行过程中若有任何疑问或建议,应及时反馈。 本标准发布之日起生效。 1.4 例外条款 欲申请本标准的例外条款,申请人必须准备书面申请文件,说明业务需求和原因,送交中国移动通信有限公司管理信息系统部进行审批备案。

导出db2数据库的表结构和数据

对于db2数据库,导入和导出表结构和数据其实很简单,只需要用到db2look和 db2move两个命令即可。这两个命令都需要在客户端的命令行处理器中执行,但对于数据库服务器和客户端不在同一机器上的,需要借助catalog命令,来先完成远程数据库加载到本地,然后再进行导出导入操作。 如果是远程操作,则先需要把远程的数据库信息加载到本地,如果是本地则跳过1和2,从3开始,具体如下: 1、catalog server端的node ,命令如下: db2 catalog tcpip node node_name remote hostname server service_port db2 uncatalog node node_name(取消节点的编目) 其中node_name是由你任意起的一个结点名,结点名不能跟已有的结点名重复(可通过db2 list node directory查看),hostname也可为IP address,service_port为端口号一般默认为50000。节点目录用于存储远程数据库的所有连通性信息。 2、catalog 远端DB2 数据库,命令如下: db2 catalog db db_name [as alias_name] at node node_name db2 uncatalog db db_name(取消数据库的编目) db_name是指远程数据库的名字,alias_name是客户端实例名(可以忽略),db2node是指上面你所指定的节点node! 3、连接数据库,命令如下: db2 connect to db_name user user_name using password db_name是指数据库的名字,user_name是数据库用户名,password是数据库密码 4、用db2look命令生成表结构的DLL脚本 db2look -d db_name-i user_name-w password-a -e -o d:\script.sql db_name是指数据库的名字,user_name是数据库用户名,password是数据库密码 5、用db2move导出所有表的数据 db2move db_name export -u user_name-p password db_name是指数据库的名字,user_name是数据库用户名,password是数据库密码

db2pd简介及使用方法

1.打开 db2pd – Monitor and Troubleshoot DB Command,如图 3 所示。 图 3. DB2 Information Center 中关于 db2pd 工具的信息

调用 db2pd 工具有两种方式。可以用交互模式调用 db2pd 工具,或者直接在操作系统命令提示符下运行。要是用交互模式执行该工具,可以在操作系统命令提示符下输入 db2pd –interactive 或者直接输入 db2pd,这样将看到 db2pd 命令提示符db2pd>,可以输入命令选项。使用–help 选项可以获得帮助信息。退出 db2pd 命令提示符只需要输入 quit 或者 q。图 4 中的例子说明了如何使用交互模式显示当前的代理。 图 4. 用交互模式调用 db2pd 在操作系统命令提示符下调用该工具可以输入带有命令选项的 db2pd 命令。下面的例子(图 5)使用 -agents 选项显示了所有的活动代理。 图 5. 在操作系统命令提示符下调用 db2pd

此外,还可以通过将选项保存在文件中或者在 DB2PDOPT 环境变量中设置选项来控制该命令。下面的例子(图 6)说明可以将 -agents 选项保存在一个(在该例中)名叫file.out的文件中,然后使用 db2pd –command file.out 执行选项。 图 6. 将 db2pd 选项保存在文件中 如果要使用 DB2PDOPT 环境变量,可以将 DB2PDOPT 设成需要的选项然后像下面这样调用 db2pd: 图 7. 在 DB2PDOPT 环境变量中设置 db2pd 选项

DB2数据库实例

DB2数据库实例 序言 在安装完DB2数据库后,首先需要创建一个数据库实例。因为要创建数据库就必须要先创建实例,数据库是运行在实例之上的。 注意:一个系统可以包含多个DB2实例,每个实例能够管理一个或多个数据库。 反而言之,一个数据库只属于一个实例。一个实例只属于一个系统。

1.实例的概念 实例可以看成是关于所有数据库及其对象的逻辑集合。实例就是在数据库运行时为数据库提供安全、通信、内存分配和进程间通信等功能。这样数据库只负责前天正常的运行,实例就负责管理后台。实例本质上是由后台进程、共享内存和一些配置文件(实例目录)组成的,即实例是逻辑的,不是物理存储的,所以当实例停止时,共享内存释放,进程停止。而数据库与实例不同的是,数据库是物理的,表、索引等存放在数据库中要占物理存储空间的。

2.创建实例 2.1Windows 在Windows上创建一个实例的时候,不需要创建用户,创建完实例后,实例会作为一个服务存在。 2.2Linux/UNIX 在Linux/UNIX上要想创建一个实例,必须首先创建和实例名一样的用户以及该用户所属的组。之所以需要创建用户,主要是因为需要该用户的home目录来作为实例目录,以存放实例相关的实例目录结构。 2.3使用db2icrt命令创建实例 注意:在Linux和UNIX上创建实例时,必须要有一个和实例同名的用户存在。如果该用户不存在,那么创建实例会报错而无法创建。如果用户存在,确保该用户未被锁定和密钥未到期。

2.4使用db2icrt创建实例的步骤 1.使用root权限登录(在Windows上使用系统管理员账号登录)。 2.首先利用操作系统命令(mkuser,userradd;mkgroup,groupadd)创建实例的用户和 组

DB2数据库手记

DB2应用命令 配置DB2 (5) 创建实例 (5) WINDOWS下如何知道DB2的端口号 (5) 查看当前激活的实例 (5) 返回实例的正常快照信息 (5) 返回数据库 的所有正常快照 (6) 返回实例级别的性能信息 (6) 在数据库级别返回所有性能信息 (6) 返回动态 SQL 高速缓存的内容 (6) 增加许可 (6) 建立数据库 (6) 连接数据库 (6) 创建表空间 (6) FOR WINDOWS (7) 扩展块大小(Extent size) (9) 预取大小(Prefetch size) (9) 开销(Overhead)和传送速率(Transfer rate) (9) 在已存在的表空间中添加一个容器 (9) 更改表空间中容器大小 (9) 将表空间的状态复位成正常 (10) 缓冲池 (10) 查看缓冲池属性 (10) 增加容器 (11) 删除表空间 (11) 实例数据库表空间容器关系 (11) 查看表空间的情况 (11) 查看表空间中存储设备的情况 (12) 查看表和表空间之间的联系 (12) 建立别名 (12) 建立表 (13) 插入记录 (13) 建立视图 (13) 建立触发器 (13) 建立唯一性索引 (13) 查看表 (13) 查看表锁 (13) 解决表处于悬挂(不一致)状态 (13) 查看SQL运行情况 (13) 查看列 (14) 查看表结构 (14) 查看表的索引 (14) 查看视图 (14)

查看索引 (14) 查看存贮过程 (14) 类型转换(cast) (14) 重新连接 (14) 中断数据库连接 (14) view application (14) kill application (14) lock table (15) 显示当前用户所有表 (15) 显示当前活动数据库 (15) 查看命令选项 (15) 系统数据库目录 (15) 查看表空间 (15) 查看表空间容器 (15) 显示用户数据库的存取权限 (15) 启动实例 (15) 停止实例 (15) 自动启动实例 (15) 创建表或视图特权 (16) 创建程序包特权 (16) 创建模式特权 (16) 创建数据库特权 (16) 创建索引特权 (16) 查看信息帮助 (16) SQL 帮助(说明 SQL 语句的语法) (16) 更改与“管理服务器”相关的口令 (16) 使用操作系统命令 (16) DB2 Java 存储过程或 UDF (16) 检查 DB2 数据库管理程序配置 (17) 检索具有特权的所有授权名 (17) 修改表结构 (17) 判断DB2实例的版本号和修补级别 (17) 代码页设置 (18) DB2 命令行处理器中命令选项 (18) 打开/关闭实例自启动 (19) DB2 select中取记录行号 (19) 关闭表的日志功能 (19) 改hostname (20) 打开 DB2 监控功能: (20) 查看数据库表的死锁 (20) 更改诊断错误捕捉级别 (20) 复位数据库的监控程序开关 (20) 改变隔离级别 (20) 手工做数据库远程(别名)配置 (20)

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