世界上只有自己是最难战胜的,也只有自己才能拯救自己!
世上本没有路,走的人多了也就成了路!
记录我的开发历程!
 
 

3G时代即将到来,各大增值电信运营商们在着黎明前的黑暗中都在打磨自己的绝世利器!

3G时代应该是个融合通讯时代,手机无线网和互连网将在这个时×××始融合;
伴随着这个时代的SP暴利已经过去,大家应该想想怎么才能更好的发展自己的业务,为大家提供更加便利的应用。

如果说WEB2。0时代成了互连网的救命稻草,那3G时代无线增值业务的救命稻草在那里?

摈弃传统的靠业务定制来赚钱的思路,无线增值业务应该更加深入的溶入到现实生活中来;
迄今为止无线手机网络还是婴儿时代,在各大运营商的纵容下,永远也张不大。

做一件事情首先要考虑到他有什么意义,如果整天以赚钱为唯一目的的企业很难做出什么创新的产品;

3G综合门户是我最近一直在考虑的一个新的增值运营产品,他构建出了一个和现实生活完全对接的平台;
把大家的信息需求、通讯需求有效的结合在一起;

我敢预言,手机门户平台必将在以后的几年内发挥巨大的作用

 
 
 

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
17 插入数据:
db2 insert into tb1 values(1,’sam’);
db2 insert into tb2 values(2,’smitty’);
18 .查询数据:
db2 select * from tb1
19 数据:
db2 delete from tb1 where id=1
20 创建索引:
db2 create index idx1 on tb1(id);
21 创建视图:
db2 create view view1 as select id from tb1
22 查询视图:
db2 select * from view1
23 节点编目
db2 catalog tcp node node_name remote server_ip server server_port
24 察看端口号
db2 get dbm cfg|grep SVCENAME
25 测试节点的附接
db2 attach to node_name
26 察看本地节点
db2 list node direcotry
27 节点反编目
db2 uncatalog node node_name
28 数据库编目
db2 catalog db db_name as db_alias at node node_name
29 察看数据库的编目
db2 list db directory
30 连接数据库
db2 connect to db_alias user user_name using user_password
31 数据库反编目
db2 uncatalog db db_alias
32 导出数据
db2 export to myfile of ixf messages msg select * from tb1
33 导入数据
db2 import from myfile of ixf messages msg replace into tb1
如有问题用:
import from c:/backup/usercar of ixf create into usercar
34 导出数据库的所有表数据
db2move test export
35 生成数据库的定义
db2look -d db_alias -a -e -m -l -x -f -o db2look.sql
36 创建数据库
db2 create db test1
37 生成定义
db2 -tvf db2look.sql
38 导入数据库所有的数据
db2move db_alias import
39 重组检查
db2 reorgchk
40 重组表 tb1
db2 reorg table tb1
41 更新统计信息
db2 runstats on table tb1
42 备份数据库 test
db2 backup db test
43 恢复数据库 test
db2 restore db test
44. 命令处理器参数
列举可用命令格式:db2 list command options
更改命令格式:update command options using option value(on/off)
实例:比如更改命令行自动提交的参数
db2=>update command options using C off--或on,只是临时改变
命令行下 db2set db2options=+c --或-c,永久改变
 
45. 获取当前机器db2所有配置信息:
db2support . -d dbname -c
此时数据库管理程序将生成一个db2support 压缩文件包。
 
46. 更新数据库版本级别(适用于使用不通版本备份恢复时使用)
v7: db2updv7
db2updv7 –d dbname –u username –p password
v8: db2updv8
db2updv7 –d dbname –u username –p password
47. 获取当前机器的管理级配置
db2set –all
48. 强制终止指定连接
db2 force application appname
49 .强制终止所用连接
db2 force application all

 

 
 

DB2 常用命令
这段时期刚参与公司一新项目,数据库使用的是IBM的DB2,小的我一直使用ORACLE,刚接触DB2,有点不适应,总结了一下常用命令,也许对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

  12. 查看表的索引

  db2 describe indexes for table user1.department

  13. 查看视图

  select viewname from views
  where viewname='V_ZJT_TABLES';

  14. 查看索引

  select indname from indexes
  where indname='I_ZTABLES_TABNAME';
  15. 查看存贮过程

  SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15)
  FROM SYSCAT.PROCEDURES;

  16. 类型转换(cast)

  ip datatype:varchar
  select cast(ip as integer)+50 from log_comm_failed

  17. 重新连接

  connect reset

  18. 中断数据库连接

  disconnect db2_gcb

  19. view application

  LIST APPLICATION;

  20. kill application

  FORCE APPLICATION(0);
  db2 force applications all (强迫所有应用程序从数据库断开)

  21. lock table

  lock table test in exclusive mode

  22. 共享

  lock table test in share mode

  23. 显示当前用户所有表

  list tables

  24. 列出所有的系统表

  list tables for system

25. 显示当前活动数据库

  list active databases

  26. 查看命令选项

  list command options


  27. 系统数据库目录

  LIST DATABASE DIRECTORY

  28. 表空间

  list tablespaces

  29. 表空间容器

  LIST TABLESPACE CONTAINERS FOR
  Example: LIST TABLESPACE CONTAINERS FOR 1

  30. 显示用户数据库的存取权限

  GET AUTHORIZATIONS


  31. 启动实例

  DB2START

  32. 停止实例

  db2stop

  33. 表或视图特权

  grant select,delete,insert,update on tables to user
  grant all on tables to user WITH GRANT OPTION

  34. 程序包特权

  GRANT EXECUTE
  ON PACKAGE PACKAGE-name
  TO PUBLIC

  35. 模式特权

  GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER

  36. 数据库特权

  grant connect,createtab,dbadm on database to user

  37. 索引特权

  grant control on index index-name to user

  38. 信息帮助 (? XXXnnnnn )

  例:? SQL30081

  39. SQL 帮助(说明 SQL 语句的语法)

  help statement
  例如,help SELECT

  40. SQLSTATE 帮助(说明 SQL 的状态和类别代码)

  ? sqlstate 或 ? class-code

  41. 更改与"管理服务器"相关的口令

  db2admin setid username password

  42. 创建 SAMPLE 数据库

  db2sampl
  
  43. 使用操作系统命令

  ! dir

  44. 转换数据类型 (cast)

  SELECT EMPNO, CAST(RESUME AS VARCHAR(370))
  FROM EMP_RESUME
  WHERE RESUME_FORMAT = 'ascii'
  45. UDF

  要运行 DB2 Java 存储过程或 UDF,还需要更新服务器上的 DB2 数据库管理程序配置,以包括在该机器上安装 JDK 的路径

  db2 update dbm cfg using JDK11_PATH d:/sqllib/java/jdk
  TERMINATE
  update dbm cfg using SPM_NAME sample

  46. 检查 DB2 数据库管理程序配置

  db2 get dbm cfg

  47. 检索具有特权的所有授权名

  SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DATABASE' FROM SYSCAT.DBAUTH
  UNION
  SELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ' FROM SYSCAT.TABAUTH
  UNION
  SELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROM SYSCAT.PACKAGEAUTH
  UNION
  SELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ' FROM SYSCAT.INDEXAUTH
  UNION
  SELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ' FROM SYSCAT.COLAUTH
  UNION
  SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ' FROM SYSCAT.SCHEMAAUTH
  UNION
  SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ' FROM SYSCAT.PASSTHRUAUTH
  ORDER BY GRANTEE, GRANTEETYPE, 3

  create table yhdab
  (id varchar(10),
  password varchar(10),
  ywlx varchar(10),
  kh varchar(10));
  create table ywlbb
  (ywlbbh varchar(8),
  ywmc varchar(60))



48. 修改表结构

  alter table yhdab ALTER kh SET DATA TYPE varchar(13);
  alter table yhdab ALTER ID SET DATA TYPE varchar(13);
  alter table lst_bsi alter bsi_money set data type int;
  insert into yhdab values
  ('20000300001','123456','user01','20000300001'),
  ('20000300002','123456','user02','20000300002');

  49. 业务类型说明

  insert into ywlbb values
  ('user01','业务申请'),
  ('user02','业务撤消'),
  ('user03','费用查询'),
  ('user04','费用自缴'),
  ('user05','费用预存'),
  ('user06','密码修改'),
  ('user07','发票打印'),
  ('gl01','改用户基本信息'),
  ('gl02','更改支付信息'),
  ('gl03','日统计功能'),
  ('gl04','冲帐功能'),
  ('gl05','对帐功能'),
  ('gl06','计费功能'),
  ('gl07','综合统计')

  二. 目录视图说明



说明 目录视图
检查约束 SYSCAT.CHECKS
列 SYSCAT.COLUMNS
检查约束引用的列 SYSCAT.COLCHECKS
关键字中使用的列 SYSCAT.KEYCOLUSE
数据类型 SYSCAT.DATATYPES
函数参数或函数结果 SYSCAT.FUNCPARMS
参考约束 SYSCAT.REFERENCES
模式 SYSCAT.SCHEMATA
表约束 SYSCAT.TABCONST
表 SYSCAT.TABLES
触发器 SYSCAT.TRIGGERS
用户定义函数 SYSCAT.FUNCTIONS
视图 SYSCAT.VIEWS


  三. 字符串类型

  二进制大对象 (BLOB) 字符串。
  字符大对象 (CLOB) 字符串,它的字符序列可以是单字节字符或多字节字符,或这两者的组合。
  双字节字符大对象 (DBCLOB) 字符串,它的字符序列是双字节字符。

  四. 数据库范式

  第一种规范形式:表中的每一行和每一列均有一个值,永远不会是一组值。
  第二种规范形式:不在关键字中的每一列提供取决于整个关键字的事实。
  第三种规范形式:每个非关键字列提供与其他非关键字列无关并只取决于该关键字的事实。
  第四种规范形式:没有行包含有关一个实体的两个或更多个独立的多值事实。

  五. 数据类型

数据类型 类型 特性 示例或范围
CHAR(15) 定长字符串 最大长度为 254 'Sunny day '
VARCHAR(15) 变长字符 最大长度为 4000 'Sunny day'
SMALLINT 数字 长度为 2 字节精度为 5 位 范围为-32768 至 32767
INTEGER 数字 长度为 4 字节精度为 10 位 范围为-2147483648 至 2147483647
REAL 数字 单精度浮点32 位近似值 范围为-3.402E+38至-1.175E-37或 1.175E-37 至-3.402E+38或零
DOUBLE 数字 双精度浮点64 位近似值 范围为-1.79769E+308 至-2.225E-307或 2.225E-307 至 1.79769E+308或零
DECIMAL(5,2) 数字 精度为 5小数位为 2 范围为 -10**31+1 至 10**31-1
DATE 日期时间 三部分值 1991-10-27
TIME 日期时间 三部分值 13.30.05
TIMESTAMP 日期时间 七部分值 1991-10-27-13.30.05.000000







六. 列函数

  列函数对列中的一组值进行运算以得到单个结果值。下列就是一些列函数的示例。

  AVG

  返回某一组中的值除以该组中值的个数的和

  COUNT

  返回一组行或值中行或值的个数

  MAX

  返回一组值中的最大值

  MIN

  返回一组值中的最小值

  七. 标量函数

  标量函数对值进行某个运算以返回另一个值。下列就是一些由DB2 通用数据库提供的标量函数的示例。

  ABS

  返回数的绝对值

  HEX

  返回值的十六进制表示

  LENGTH

  返回自变量中的字节数(对于图形字符串则返回双字节字符数。)

  YEAR

  抽取日期时间值的年份部分

 

 
 

1、RV800 科立×××通讯协议
2、TOTA120 TOTA×××通讯协议
3、S1601 三乐协议
4、CLT-168 保千里的协议
5、TD-500 保千里高速球通讯协议
6、V1200 银信V1200×××、银信矩阵通讯协议
7、ZION 锡安数码 CBR2400
8、ANT 中晖协议
9、CBC 日本CBC高速球通讯协议
10、CS850A 松下CS850A高速球通讯协议
11、CONCORD 2000b、维多B01及美国concord智能快球通讯协议
12、HD600 CCVE闭路监控系统通讯协议
13、SAMSUNG 三星641-643高速球通讯协议
14、YAAN 亚安高速球控制协议
15、PIH 利凌PIH717×××通讯协议
16、MG-CS160 明景B01通讯协议
17、WISDOM WISDOM×××通讯协议
18、PELCOD1 派尔高公司D通讯协议(四种)
19、PELCOD2
20、PELCOD3
21、PELCOD4
22、PELCOP1 派尔高公司P通讯协议(三种)
23、PELCOP2
24、PELCOP3
25、philips 飞利浦高速球通讯协议(需要485-曼码转换器)
26、NEOCOM 耐康姆协议
27、名称未定 新增加振华重大协议

协议 预制、是否支持 是否有 协议 预制、是否支持 是否有
调用 高速球 自 动功能 调用 高速球 自动功能
Philips 有 支持 没有 CONCORD 有 不支持 有
PELCOP3 有 不支持 有 CS850A 有 支持 有
PELCOP2 有 不支持 有 CBC 有 支持 有
PELCOP1 无 不支持 有 ANT 无 不支持 有
PELCOD4 有 不支持 有 ZOIN 有 不支持 有
PELCOD3 有 不支持 有 V1200 有 不支持 有
PELCOD2 有 不支持 有 TD-500 有 不支持 有
PELCOD1 无 不支持 有 CLT-168 无 不支持 有
WISDOM 无 不支持 有 S1601
MG-CS160 有 支持 有 TOTA120 无 不支持 有
PIH 有 不支持 有 RV800 无 不支持 有
YAAN 有 支持 有 NEOCAM 无 不支持 有
SAMSUNG 有 支持 有 ZHZD 无 不支持 有
HD600 有 不支持 有

请注意: PELCO协议的自动码很有可能不同,基本上一个厂家一个定义,所以有自动功能并不能说明自动能控制,只有和我们协议相符合才能控制。

云台控制原理
DVR通过与×××(或球机)的通讯控制云台
DVR--------à×××/球机————―――>摄像头
DVR通过485信号向×××球机发送命令,×××/球机通过各种方式控制摄像头
协议是DVR与×××通讯的协议,DVR为发送命令方,×××、球机接收,双方的协议相同才能控制。

常见问题
1如出现继电器响但是聚焦不成功等问题
问题出在×××(或球机)与摄像头的控制,请客户与×××(或球机)的厂商联系。
2如果协议对上但是继电器不响,可以变换地址码(加1或减1)进行控制。
3如果方向可以控制,但是不能控制预制调用或自动,如果继电器没有响,那么就是我们的协议不同,不支持客户的×××。
×××/高速球对应厂商明细表
以下是我们的机器支持的协议,以及对应厂家(黑体字协议可以控制高速球)
协议 适用型号 厂家或代理 地址 联系电话
Philips G3 Autodome系列 深圳博世公司(BOSCH) 中国广东省深圳市福田华强北商业中心区振兴路金茂礼都大
厦B栋13层B、C、D 0755- 82810012
PELCOP3
PELCOP2
PELCOP1
PELCOD4
PELCOD3
PELCOD2
PELCOD1 派而高的协议比较杂,有很多种都不一样,只增加PELCOD4的自动码 (和以前的兼容)
WISDOM 没有找到对应的厂家,很多×××都支持这个协议
MG-CS160 所有明景的产品的型号 明景电子 深圳市北发四路长安花园C路12E 0755-83784005
YAAN 所有型号通用 天津亚安

亚安深圳代理 天津市华范产业园区梓苑路8号
深圳市福田区红荔路群星广场A1717室 022-27682999

0755-83747358
SAMSUNG 三星641-643高速球协议(三星高速球通用) 深圳深特电子有限公司 深圳市福田区华强北群星广场A座1013 0755-83748614
CS850A CS850A,CS850B CW860(室外) 深圳丽泽智能科技有限公司 深圳市景田西路21号民进投资大厦深圳丽泽智能科技有限公司 0755-83157323
CBC CBC高速球 北京CBC 北京市朝阳区东三环北路2号南银大厦2301室 010-6410-8081(4线)
ANT 协议可以选择加上ANT协议,正常出货机器没有ANT需要提出要求 深圳市智敏科技有限公司 深圳市福田区梅林路亚捷大厦五楼西侧 0755-83102325
ZOIN ZION-DEC (室内,室外) 锡安数码 杭州市古墩路7号 0571-85026998
V1200 V1200协议通用
银信V1200 银信科技发展有限公司 天津市南开区华苑产业园区鑫茂科技园D2座6层 022-83712226
TD-500 TD-500 广州保千里电子技术有限公司 广州市天河北路908号高科大厦B座19楼 020 38259191
CLT-168 CLT-168 广州保千里电子技术有限公司 广州市天河北路908号高科大厦B座19楼 020-38259191
TOTA120 通用 北京金蓝科技发展有限公司
深圳市恒天数码科技有限公司 :北京市海淀区中关村南大街12号4区2003室
深圳市罗湖区宝安南路北京大厦902、903室 010-62189484
0755-82111616
RV800 通用 成都科力 中国成都市高新区高朋东路8号 028-85192195
NEOCAM 通用 深圳市安泰君威实业有限公司 深圳市宝岗北路华建工业大厦东4楼 0755-25928380(分机号212)
 

 
 

----------------------------------------------------------------------------------------------------
-- DB2 数据迁移脚本
-- 彭建军
-- 2007-3-2 14:22
-- 源环境: Windows 2003 Server + DB2 V8.2
-- 目标环境: Linux + DB2 V8.2
-- 数据库名称: htdctr
----------------------------------------------------------------------------------------------------
关于数据库迁移,如果操作系统相同,例如从 Windows 系统迁移到 Windows 系统,或者从 AIX 系统迁移到 AIX 系统都比较好处理,一般使用 BACKUPRESTORE 命令就可以进行。当然,有些情况下需要注意表空间重定向的问题。

那么,如果数据库迁移涉及到的操作系统不相同该怎么办呢?BACKUP 和 RESTORE 这个方法就行不通了。DB2 UDB 提供了两个非常实用的工具,一个是数据迁移工具 db2move,另一个是数据字典获取工具 db2look

目前,我进行了一次从 Windows 2003 到 Linux 的 DB2 数据库迁移,以下是详细的操作步骤和部分脚本。希望本文能为大家在不同操作系统之间迁移 DB2 数据库的提供一些指导和帮助。

步骤一:登录 Windows ,使用 db2move 命令将源数据库(htdctr)数据导出至指定的文件夹 G:/db2move/htdctr 下。

命令清单 - 1

C:/Documents and Settings/Administrator>cd /d G:/db2move/htdctr

G:/db2move/htdctr>db2move htdctr export -sn db2admin -u db2admin -p *****

***** DB2MOVE *****

Action: EXPORT

Start time: Fri Mar 02 10:58:05 2007

All schema names matching: DB2ADMIN;

Connecting to database HTDCTR ... successful! Server: DB2 Common Server V8.2.4

EXPORT: 3 rows from table "DB2ADMIN"."APP_REG"
EXPORT: 0 rows from table "DB2ADMIN"."APP_TEXT"
EXPORT: 45 rows from table "DB2ADMIN"."APP_TOOL_FUNC"
EXPORT: 263 rows from table "DB2ADMIN"."DC_DMDL_ACCT_EX_GRAN"
EXPORT: 208 rows from table "DB2ADMIN"."DC_DMDL_DIM"
EXPORT: 225 rows from table "DB2ADMIN"."DC_DMDL_GRAN"
…… ……
…… ……

Disconnecting from database ... successful!

End time: Fri Mar 02 10:58:09 2007

步骤二:登录 Windows ,使用 db2look 命令将数据库 DDL 导出至指定的文件夹 G:/db2look/htdctr 下。

命令清单 - 2

C:/Documents and Settings/Administrator>cd /d G:/db2look/htdctr

G:/db2look/htdctr>db2look -d htdctr -e -a -o db2look_htdctr.sql
-- 为所有创建程序生成统计信息
-- 创建表的 DDL
-- 输出被发送到文件: db2look_htdc.sql

警告:需要通过将 REMOTE_AUTHID 添加至 CREATE USER MAPPING
语句修改 db2look 输出脚本

步骤三:登录 Windows ,使用 ftp 命令登录 Linux 服务器(IP:172.168.16.105),将 DDL 脚本 G:/db2look/htdctr/db2look_htdctr.sql 上传至 Linux 服务器的指定路径下:home/db2admin/dbback/db2look/htdctr,注意,上传 DDL 脚本的时候必须使用 ASCII (asc)模式进行数据传输,否则后面执行该脚本会报错:DB21007E 读取该命令时已到达文件末尾。

命令清单 - 3

C:/Documents and Settings/Administrator>cd /d G:/db2look/htdctr

G:/db2look/htdctr>ftp 172.168.16.105
Connected to 172.168.16.105.
220 localhost.localdomain FTP server (Version 5.60) ready.
User (172.168.16.105:(none)): db2admin
331 Password required for db2admin.
Password:
230 User db2admin logged in.
ftp> cd dbback/db2look/htdctr
250 CWD command successful.
ftp> prompt
Interactive mode Off .
ftp> asc
200 Type set to A.
ftp> put db2look_htdctr.sql
200 PORT command successful.
150 Opening ASCII mode data connection for db2look_htdctr.sql.
226 Transfer complete.
ftp: 1798538 bytes sent in 0.16Seconds 11529.09Kbytes/sec.
ftp> bye
221 Goodbye.

步骤四:登录 Windows ,使用 ftp 命令登录 Linux 服务器(IP:172.168.16.105),将 导出的数据文件 G:/db2move/htdctr/* 全部上传至 Linux 服务器的指定路径下:home/db2admin/dbback/db2move/htdctr,注意,上传 db2move.lst 脚本的时候必须使用 ASCII (asc)模式进行数据传输,否则后面执行该脚本会报错:DB21007E 读取该命令时已到达文件末尾。上传 *.ixf、*.001 和 *.msg 文件的时候必须使用二进制模式(bin)进行数据传输。

命令清单 - 4

C:/Documents and Settings/Administrator>cd /d G:/db2move/htdctr

G:/db2move/htdctr>ftp 172.168.16.105
Connected to 172.168.16.105.
220 localhost.localdomain FTP server (Version 5.60) ready.
User (172.168.16.105:(none)): db2admin
331 Password required for db2admin.
Password:
230 User db2admin logged in.
ftp> cd dbback/db2move/htdctr
250 CWD command successful.
ftp> prompt
Interactive mode Off .
ftp> asc
200 Type set to A.
ftp> put db2move.lst
200 PORT command successful.
150 Opening ASCII mode data connection for db2move.lst.
226 Transfer complete.
ftp: 5271 bytes sent in 0.00Seconds 5271000.00Kbytes/sec.
ftp> bin
200 Type set to I.
ftp> mput *.ixf
ftp: 49814 bytes sent in 0.00Seconds 49814000.00Kbytes/sec.
200 PORT command successful.
150 Opening BINARY mode data connection for tab98.ixf.
226 Transfer complete.
…… ……
…… ……
ftp> mput *.msg
ftp: 110 bytes sent in 0.00Seconds 110000.00Kbytes/sec.
200 PORT command successful.
150 Opening BINARY mode data connection for tab97.msg.
226 Transfer complete.
…… ……
…… ……
ftp> mput *.001
150 Opening BINARY mode data connection for tab19a.001.
226 Transfer complete.
200 PORT command successful.
150 Opening BINARY mode data connection for tab1a.001.
226 Transfer complete.
ftp: 53382 bytes sent in 0.00Seconds 53382000.00Kbytes/sec.
200 PORT command successful.
…… ……
…… ……
ftp> bye
221 Goodbye.

步骤五:使用 telnet 命令登录 Linux 服务器,切换至指定路径:home/db2admin/dbback/db2look/htdctr,创建数据库 htdctr,完毕之后执行 DDL 脚本,创建数据库对象

命令清单 - 5

telnet 172.168.16.105

Fedora Core release 3 (Heidelberg)
Kernel 2.6.9-1.667smp on an x86_64
login: db2admin
Password:
Last login: Fri Mar 2 11:21:53 from 172.168.16.32
[db2admin@localhost ~]$ ls
db2admin dbback Desktop sqllib
[db2admin@localhost ~]$ cd dbback/db2look/htdctr
[db2admin@localhost htdctr]$ pwd
/home/db2admin/dbback/db2look/htdctr
[db2admin@localhost htdctr]$ ls
db2look_htdctr.sql
[db2admin@localhost htdctr]$ db2 CREATE db htdctr USING CODESET GBK TERRITORY cn
DB20000I CREATE DATABASE 命令成功完成。
[db2admin@localhost htdctr]$ ls
db2look_htdc.sql
[db2admin@localhost htdctr]$ db2 -tvf db2look_htdctr.sql
…… ……
…… ……

步骤六: 在 Linux 服务器上使用 load 命令装载数据

命令清单 - 6

…… ……
…… ……
[db2admin@localhost dbback]$ pwd
/home/db2admin/dbback/db2move/htdctr/
[db2admin@localhost htdctr]$ db2move htdctr load
***** DB2MOVE *****
Action: LOAD
Start time: Fri Mar 2 14:12:54 2007
Connecting to database HTDCTR ... successful! Server: DB2 Common Server V8.2
Binding package automatically ...
Bind file: D:/SQLLIB/BND/DB2MOVE.BND
Bind was successful!
* LOAD: table "DB2ADMIN"."XMDL_SUBJECT"
-Rows read: 5
-Loaded: 5
-Rejected: 0
-Deleted: 0
-Committed: 5
…… ……
…… ……
Disconnecting from database ... successful!

End time: Fri Mar 2 14:13:48 2007

至此,数据库迁移顺利完成。

附录1:db2move 命令

** DB2MOVE
**
** Error: Invalid number of parameters!
**
** Usage: "db2move dbname action [options]"
**
** - Action: must be EXPORT, IMPORT, or LOAD.
** - Options: If not specified, defaults will be used.
**
** Option Default Notes
** ==========================================================================
** -tc table-creators all creators EXPORT. Wildcard (*) allowed.
** -tn table-names all user tables EXPORT. Wildcard (*) allowed.
** -sn schema-names all schemas EXPORT. Wildcard (*) allowed. UDB sources only.
** -ts tblspace-names all tablespace EXPORT. Wildcard (*) allowed.
** -tf tables from file none EXPORT only.
** -io import-option REPLACE_CREATE IMPORT only.
** -lo load-option INSERT LOAD only.
** -l lobpaths current dir separated by commas. NO BLANKS.
** -u userid logged on userid
** -p password logged on password
** -aw allow-warnings false include tables that encounter
** warnings during export.

附录2:db2look 命令

db2look 版本 8.2

db2look:生成 DDL 以便重新创建在数据库中定义的对象

语法: db2look -d DBname [-e] [-u Creator] [-z Schema] [-t Tname1 Tname2...TnameN] [-tw Tname] [-h] [-o Fname] [-a]
[-m] [-c] [-r] [-l] [-x] [-xd] [-f] [-fd] [-td x] [-noview] [-i userID] [-w password]
[-v Vname1 Vname2 ... VnameN]
[-wrapper WrapperName] [-server ServerName] [-nofed]

db2look -d DBname [-u Creator] [-s] [-g] [-a] [-t Tname1 Tname2...TnameN]
[-p] [-o Fname] [-i userID] [-w password]
db2look [-h]

-d: 数据库名称:这必须指定

-e: 抽取复制数据库所需要的 DDL 文件
此选项将生成包含 DDL 语句的脚本
可以对另一个数据库运行此脚本以便重新创建数据库对象
此选项可以和 -m 选项一起使用
-u: 创建程序标识:若 -u 和 -a 都未指定,则将使用 $USER
如果指定了 -a 选项,则将忽略 -u 选项
-z: 模式名:如果同时指定了 -z 和 -a,则将忽略 -z
联合部分的模式名被忽略
-t: 生成指定表的统计信息
可以指定的表的数目最多为 30
-tw: 为名称与表名的模式条件(通配符)相匹配的表生成 DDL
当指定了 -tw 选项时,-t 选项会被忽略
-v: 只为视图生成 DDL,当指定了 -t 时将忽略此选项
-h: 更详细的帮助消息
-o: 将输出重定向到给定的文件名
如果未指定 -o 选项,则输出将转到 stdout
-a: 为所有创建程序生成统计信息
如果指定了此选项,则将忽略 -u 选项
-m: 在模拟方式下运行 db2look 实用程序
此选项将生成包含 SQL UPDATE 语句的脚本
这些 SQL UPDATE 语句捕获所有统计信息
可以对另一个数据库运行此脚本以便复制初始的那一个
当指定了 -m 选项时,将忽略 -p、-g 和 -s 选项
-c: 不要生成模拟的 COMMIT 语句
除非指定了 -m 或 -e,否则将忽略此选项
将不生成 CONNECT 和 CONNECT RESET 语句
省略了 COMMIT。在执行脚本之后,需要显式地进行落实。
-r: 不要生成模拟的 RUNSTATS 语句
缺省值为 RUNSTATS。仅当指定了 -m 时,此选项才有效
-l: 生成数据库布局:数据库分区组、缓冲池和表空间。
-x: 如果指定了此选项,则 db2look 实用程序将生成授权 DDL
对于现有已授权特权,不包括对象的原始定义器
-xd: 如果指定了此选项,则 db2look 实用程序将生成授权 DDL
对于现有已授权特权,包括对象的原始定义器
-f: 抽取配置参数和环境变量
如果指定此选项,将忽略 -wrapper 和 -server 选项
-fd: 为 opt_buffpage 和 opt_sortheap 以及其它配置和环境参数生成 db2fopt 语句。
-td: 将 x 指定为语句定界符(缺省定界符为分号(;))
应该与 -e 选项一起使用(如果触发器或者 SQL 例程存在的话)
-p: 使用明文格式
-s: 生成 postscript 文件
此选项将为您生成 postscript 文件
当设置了此选项时,将除去所有 latex 和 tmp ps 文件
所需的(非 IBM)软件:LaTeX 和 dvips
注意:文件 psfig.tex 必须在 LaTeX 输入路径中
-g: 使用图形来显示索引的页访存对
必须安装 Gnuplot,并且 <psfig.tex> 必须在您的 LaTeX 输入路径中
还将随 LaTeX 文件一起生成 <filename.ps> 文件
-i: 登录到数据库驻留的服务器时所使用的用户标识
-w: 登录到数据库驻留的服务器时所使用的密码
-noview: 不要生成 CREATE VIEW ddl 语句
-wrapper: 为适用于此包装器的联合对象生成 DDL
生成的对象可能包含下列各项:
包装器、服务器、用户映射、昵称、类型映射、
函数模板、函数映射和索引规范
-server: 为适用于此服务器的联合对象生成 DDL
生成的对象可能包含下列各项:
包装器、服务器、用户映射、昵称、类型映射、
函数模板、函数映射和索引规范
-nofed: 不要生成 Federated DDL
如果指定此选项,将忽略 -wrapper 和 -server 选项