`
bowld
  • 浏览: 13955 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

DB2相关问题及解决方法

 
阅读更多

  DB2相关问题及解决方法: 
  一、DB2中的代码页(codepage)问题。
  DB2备份时发生过代码页错误的问题,修改代码页后备份正常,但创建数据库时又发生代码页的错误。这是DB2服务器使用的代码页配置和客户端使用的代码页配置不同造成的(注:DB2服务器的代码页配置是独立的,用代码页不同的客户端操作服务器就会产生错误。本机操作服务器称为本地客户端,操作系统使用的代码页有可能和DB2服务器的配置不同,和远程客户端一样会产生上面的问题)。代码页和系统使用的字符集有关,这也是windows下的数据库备份和Linux下的数据库备份不能相互恢复的原因(Windows的codepage为819,一般的国标库/GBK为1386)。可用db2set命令对服务器的代码页进行设置。(具体设置见后文)
  locale命令查看本地字符集
  二、TIANJIN数据库备份不能恢复的问题
  TIANJIN数据库备份恢复时,在Linux系统下提示container被占用,这是由于TIANJIN数据库采用了系统以外的表空间引起的,不能采用常规方法进行恢复。
  恢复步骤为:
  db2 create db targetdb using codeset GBK territory zh_CN
  (创建数据库供恢复)
  db2 connect to tianjin
  (连接到TIANJIN数据库)
  db2 list tablespaces
  (查看TIANJIN数据库使用的表空间)
  db2 list tablespace containers for 3
  (查看表空间3使用的容器)
  …………
  db2 list tablespace containers for 7
  (查看表空间7使用的容器。)
  (TIANJIN数据库用到了7个表空间,其中1、2为系统默认,其他为自己创建,若已知道数据库表空间,以上步骤可省略)
  mkdir [directory]
  (创建表空间用到的容器所在目录。需要多少容器,创建多少个目录,这个目录必须是DB2用户有权限的目录)
  db2 connect reset
  (释放所有连接)
  db2 restore db sourcedb from /DB2Data/backupdata/ into targetdb redirect
  (恢复数据库)
  db2 "set tablespace containers for 3 using (path '/home/db2inst1/tt/1')"
  (设置表空间的容器,path后是容器存放的路径)
  db2 "set tablespace containers for 4  using (path '/home/db2inst1/tt/2',path '/home/db2inst1/tt/3')"
  (表空间用了多个路径的情况)
  …………
  db2 "set tablespace containers for 7 using (path '/home/db2inst1/tt/6')"
  db2 restore db tianjin continue
  (完成数据库恢复)
  连接数据库验证安装即可
  三、不同操作系统中数据库的移动(db2move)
  由于我们的系统中使用了多个用户、多个表空间,不能直接用db2move进行恢复,必须先生成相关表空间和表,再插入数据。
  1、  生成ddl文件
  db2look -d 数据库别名 -e -p -l -o 目标文件的名字-i 用户名 -w 密码
  -d指定数据库,-o指定目标文件,-l表示生成表空间,-i指定用户名,-w指定密码。
  如:db2look -d jsyrem -e -p -l -o jsyrem.ddl -i zgc3 -w zgc
  注意:源数据库必须在本地客户端编目,生成的文件存放在当前目录下。
  2、  生成db2move的导出文件
  db2move数据库别名export -l 大对象存放目录(可省略) -u 用户名 -p 密码
  如:db2move jsyrem export -l lob -u zgc3 -p zgc
  注意:源数据库必须在本地客户端编目,大对象存放目录可以不用事先建立,由系统自动生成,生成的文件存放在当前目录下。
  3、  新建目标数据库
  4、  在目标数据库里创建表空间和表
  db2 -tvf ddl文件名
  例如:db2 -tvf jsyrem.ddl
  注意:
  ①两个数据库里的代码页必须设置为一致
  ②执行命令前必须先修改ddl文件,设置里面的connection连接至目标数据库(文件里可能会有多处需要对连接进行设置)。
  ③执行命令前必须先修改ddl文件,设置表空间地址,为目标数据库建立表空间指定存放位置。这些目录可能需要事先建好。(目录1、2……n可以不用建,由系统自动生成)
  ④执行命令必须在生成的文件存放的目录下进行。
  5、  导入数据
  db2move 数据库名 import -io insert -l大对象存放目录
  -io 指定导入方式,为create表示数据库中不存在该表时自动生成表,为replace表示替换原有内容,为insert表示仅仅插入数据;-l指定大对象存放目录。
  db2move jsy2 import  u 用户名  p 密码
  注意:执行命令必须在生成的文件存放的目录下进行。
  6、  其他:由于数据库表之间存在键关系,数据导入时可能会发生冲突,需要记下发生冲突的表,并修改db2move.lst文件,把这些表对应的行挪到文件的最后生成。
  7、  可通过EXPORT文件和IMPORT文件查看数据导入导出时的系统信息,通过tablennn.msg文件查看某个表导入导出时的系统信息。 注意:以上操作针对的客户端是windows操作系统,linux系统下会发生错误。
  四、联合数据对象的建立
  联合数据对象提供将一个数据库里的用户和表映射到另一个数据库的功能。用户可通过对后者的访问达到访问前者的目的。
  建立步骤:
  1、  前期工作1:配置数据库实例名的参数,设置"管理"下的FEDERATED为"";是
  2、  前期工作2:源数据库编码到客户端
  3、  在联合数据库对象中创建包装器。(DB2àDB2的映射包装器名选择DRDA,库名使用缺省的缺省db2drda.dll即可)
  4、  创建服务器。(远程数据源的名称填写数据库编码的别名,DB2àDB2的映射服务器类型选择DB2/UDB,选择正确的版本号,用户标示和密码填写目标库的用户名密码,其余内容默认即可)
  5、  建立用户映射。选择远程用户和本地用户进行映射。
  6、  建立别名映射,即是表的映射。
  五、DB2中的常用命令
  1、  db2set命令
  db2set:查看db2的常用设置
  db2set  lr:查看db2的所有变量
  db2set 变量名 = 变量值:设置db2中的变量。如:db2set db2codepage = GBK;db2set db2country = zh_CN。(这是最常用的两个设置,设置codepage为GBK国标库,country为zh_CN中国。设置后可解决数据库创建、备份时代码页错误的问题。设置完后用db2 terminate中止一下即可起作用)
  2、  查看数据库配置
  查看Database Manager配置:db2 get dbm cfg
  查看某数据库配置:
  两种方法:
  第一、   db2 get db cfg for 数据库名。如db2 get db cfg for tianjin
  第二、   先用connect命令连接上数据库,再用db2 get db cfg。如:
  connect to tianjin(或:connect to tianjin user zgc3 using zgc)
  db2 get db cfg
  可以只查看其中某一项的配置,如查看territory
  db2 get db cfg for tianjin|grep terr
  修改数据库配置:db2 update db cfg using 参数 参数值
  3、  数据库备份、数据库创建、数据库恢复
  数据库备份:db2 backup database 数据库名 to 备份位置(DB2用户必须对备份位置有权限)。如:db2 backup database tianjin to /home/db2inst1/backup。注意: 备份数据库时应用db2 connect reset将所有连接去掉。
  数据库创建:db2 create database数据库名。如:db2 create database dbname
  用特定的字符集创建数据库:db2 create database 数据库名 using codeset [codeset] territory [terriroty]。如:db2 create database dbname using codeset GBK territory CN
  数据库恢复几点说明:若文件夹中只有一个备份文件,可以不用写taken at。若数据库恢复中产生错误,可用restore database dbname continue/abort来对恢复进行继续和取消。
  或者用控制台创建数据库时,第六步region处选择PRC(People's Republic Of China)
  4、  其他常用命令
  db2move:在不同操作系统中移植数据库。但因存在外键约束,应对文件进行编辑。
  db2level;查看DB2的修订版本
  db2look:导出ddl?
  db2 list table/tablespaces/db at……列出相应内容
  (具体参看IBM红皮书)
  5、  在客户端增加、查看结点和数据库编目
  增加结点编目:db2 catalog tcpip node 结点名字 remote 结点所在ip地址 server 50000
  查看结点编目:db2 list node directory
  删除结点编目:db2 uncatalog node 结点别名
  增加数据库编目:db2 catalog db 远程数据库名字 as 数据库别名 at node 结点名字
  查看数据库编目:db2 list db directory
  删除数据库编目:db2 uncatalog db数据库别名
  6、  不同操作系统的倒库(db2move):
  export:db2move dbname export
  import:db2move dbname import(-io replace/create -u username  p password)
  load:db2move dbname load
  注意:执行export命令,生成的文件存放在当前目录下,dbname是catalog上的别名。import也是从当前目录读取文件。在将库import入一个新库时,应该先建立一个库,然后db2move 新库名称 import……。-io参数表示导入的库里的表覆盖/新建到新库里,-u、-p表示用于建库的用户名和密码。
  7、  远程操作数据库
  db2 attach to 数据库别名 user 用户名 using 密码
  即可在本地操作远程数据库(create db、drop db等操作)
  注意:要操作的数据库必须在本地编目
  要取消attach可用命令db2 detach,或attach到其他数据库。
  8、  将数据库操作的控制台信息存入文档
  要执行的命令名>控制台信息文件名
  9、  DB2里的帮助
  db2 ? 要查询的内容(如:db2 ? sql30082n)
  或者直接输入命令(db2move)不带参数
  10、              停止application 数据库操作过程中可能会发生错误,导致数据库不可用。此时可用force application命令停止这种操作。命令格式可以是db2 force application application号(停掉单个application)或db2 force application all(停掉所有application)两种形式。
  11、              其他
  六、对于系统优化的建议
  1、  增加buffpage的配置
  2、  增加sortheap的配置(一般4M以上)
  3、  将锁定超时 locktimeout设置为on或yes
  4、  恢复的日志保留
  (具体设置参看IBM红皮书)
  命令:
  db2 connect to tianjin
  db2 update db cfg using LOGRETAIN yes
  db2 backup db tianjin     //设置完LOGRETAIN后应备份数据库
  /home/db2inst1/sqllib/bin       //进入此目录下
  db2empfa tianjin;    //Multi-page file allocation enabled
  db2 update db cfg for tianjin using BUFFPAGE 25000  // 或更多
  db2 update db cfg for tianjin using LOCKLIST 1000; 
  db2 update db cfg for tianjin using LOCKTIMEOUT 15
  db2 update db cfg for tianjin using SORTHEAP 1000   //或更多
  db2 update db cfg for tianjin using LOGFILSIZ 10000
  db2 alter bufferpool ibmdefaultbp size -1
  db2 update dbm cfg using SHEAPTHRES 25000  //Max to half of the total mem.
  七、在root窗口下启动DB2控制台
  1、  以db2inst1登录:su   db2inst1(-表示登录同时读取db2inst1的环境变量)
  2、  export DISPLAY=127.0.0.1:0.0
  3、  xhost +
  4、  db2cc
  八、数据导出
  1、  EXPORT TO 'c:\UR_ENTERPRISE.del' OF DEL SELECT * FROM ZGC3.UR_ENTERPRISE
  2、  EXPORT TO 'c:\UR_ENTERPRISE.ixf' OF ixf SELECT * FROM ZGC3.UR_ENTERPRISE
  九、查看node
  1、list node directory
  2、删除node:? uncatalog
  十、建序列
  CREATE SEQUENCE "ZGC3    "."SP_SEQ_MO_wbk" AS INTEGER
  MINVALUE 0 MAXVALUE 2147483647
  START WITH 21 INCREMENT BY 1
  CACHE 20 NO CYCLE NO ORDER;
  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liu_xing_hui/archive/2008/11/ 20/3340522.aspx
分享到:
评论

相关推荐

    DB2数据库创建脚本自动生成脚本 bash shell和Python开发

    静默模式,很高效的一种批量创建多套db2数据库的解决方案,只需要简单将多套数据库创建要求在配置文件中配置好,运行自动生成脚本,即可快速根据要求生成所有数据库的创建脚本,方便,高效,实用。

    db2-技术经验总结

    1.3. 删除表数据时候出现日志已满的解决方法 24 1.4. DB2快照函数全解析 25 1.5. DB2中的22个命令小技巧 26 1.6. DB2实现类型ORACLE的一些功能 29 1.7. 字符数据类型转换的时候需要注意的问题(原) 30 1.8. 本地谓词...

    从Db2 package 层面优化OLTP系统的性能(2)在实践中遇到的package相关性能问题.doc

    Db2 package很容易被忽略,但其实无处不在,无论什么编程语言,无论 SQL 类型是动态的还是静态的,都离不开 package。...本系列第二部分介绍在具体实践中遇到的 package 相关的性能问题,并给出了相应的解决方案。

    DB2使用经验积累

    DB2使用经验积累,这是一本有关DB2的学习文档,有关经验的积累,上面有一些报错的解决方案。

    DB2 Problem and Answer

    劳驾哪位帮忙解决这个问题。 答:我有两种克服该困难的办法,1. 在新机器上安装旧版本,先恢复,然后更新至新版本。 2. 创建一个同名数据库,设置欲设的代码页,然后进行恢复。 问: 客户要从 Oracle 移植到 DB2 UDB...

    IBM公司云计算解决方案介绍

    4.丰富的产品线:不仅IBM有上面这六种云计算解决方案,而且其在软硬件各个方面都有丰富的产品线,比如硬件有大型机,Power系列和X86这三条产品线,而软件方面,则有DB2和WebSphere为代表的五大品牌。 5.充足的人力...

    构建基于 DB2 Everyplace 的 MIDP 应用程序

    DB2 Everyplace 是 IBM 普适计算技术解决方案的重要组成部分, 通过 DB2 Everyplace 的支持, 一些移动性大的专业人员(如销售人员, 审计员, 技术支持人员, 医生)就能够在办公室以外的地方获取他们所需要的重要数据。...

    数据库系统服务器解决方案.doc

    数据库系统服务器解决方案 数据库是当前信息服务领域内最广泛的一种应用,小到超市购物,大到国家制定某些战 略措施无处不体现着数据库的应用。随着社会的发展,数据的也是一种"价值"的体现, 如果能够利用好"数据...

    在 WebSphere Application Server 中利用 DB2 功能

    本文中,作者 Sandra Baylor 和 Cindy Saracco 讨论了 DB2 功能在 WebSphere Application Server 中的利用。这包括安装和管理中的...这种集成为构建成功的电子商务解决方案提供了一种更具伸缩性、更高的性能基础结构。

    微信公众号 提示:Unauthorized API function 问题解决方法

    主要介绍了微信公众号 提示:Unauthorized API function 问题解决方法的相关资料,这里提供了出现提示的解决方法,需要的朋友可以参考下

    [工具软件] DevArt UniDac 4.5.10 (2012-11-07)

    UniDAC 是一个完整的标准数据库连接解决方案,可以支持 Oracle, Microsoft SQL Server, MySQL, InterBase, Firebird, PostgreSQL, SQLite, DB2, Microsoft Access, Sybase Advantage Database Server, Sybase ...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    例如,IBM 的 Tivoli Storage Manager 和 Veritas 的 Net Backup® 都提供了允许在其软件控制的设备上直接备份和维护 DB2 数据库的解决方案。这些设备可以是磁带库或另一种存储设备。 简单备份适合于只读数据库或由...

    基于J2EE的B2C电子商务系统开发

    在软件工程思想的指导下,运用J2EE开发工具IBM的开发环境 WebSphere,遵循J2EE的相关规范,与同...在某些情况下,使用 JDK 1.4 编译器重新编译应用程序代码将是解决迁移相关问题的简单方法。然而,在极少的情况下,将需

    DBFilesClient.NET:不推荐使用

    该库为解决该问题而实现的解决方案旨在尝试与先前构建中的DB2文件保持向后兼容性。 这是在犯实施 ,和而构建修复一个比较大的bug WDB2处理,它不会被至少要等到7.3.0命中居住部署的NuGet。 TL; DR:如果您不主动...

    Oracle数据库性能优化的艺术 (文平) 高清PDF扫描版

    而且还从流程的角度详细讲解了应该如何在数据库系统的架构阶段、设计阶段、开发阶段、部署阶段、运行阶段等各环节中去寻找性能问题的瓶颈和解决方案。 全书一共12章:第1章从系统工程的角度总结了性能问题可以分为...

    IBM WebSphere Portal门户开发笔记01

    11、搜索功能会遇到的问题及其解决方案 14 12、搜索过滤 16 13、注意 16 14、WCM高级搜索参数 16 ADVANCED WCM/WEBSPHERE PORTAL SEARCH INTEGRATION 17 Introduction 17 How to search WCM content using this ...

    服务器基础培训(涵盖多款服务器).pptx

    总公司在纽约州阿蒙克市,1911年创立于美国(1924年改名为IBM),是全球最大的信息技术和业务解决方案公司,该公司创立时的主要业务为商用打字机,及后转为文字处理机,然后到计算机和有关服务,IBM为计算机产业长期...

    asp.net知识库

    常见的 ASP.NET 2.0 转换问题和解决方案 Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用...

    服务器虚拟化实施方案.doc

    服务器虚拟化实施方案 服务器虚拟化实施方案 (草案) 陕西智维中兴电子科技有限公司 11月 目 录 1 项目背景 4 2 需求分析 5 2.1 系统分析 5 2.2 整合IT基础服务器 5 2.3 整合重要应用服务器 5 3 VMware实施计划 6 3.1...

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)_4.3_及免安装文件

    工具同时提供帮助文档和大量的示例源码(如ECG.Demo等),用VS2005打开每个Demo文件解决方案文件(.sln)即可看到源代码,一些示例以对应数据库自带的示例库为例介绍的(如Oracle)。详见安装后文件和工具帮助. 相关下载...

Global site tag (gtag.js) - Google Analytics