db2相关问题及解决方法

简介: DB2相关问题及解决方法: 一、DB2中的代码页(codepage)问题。DB2备份时发生过代码页错误的问题,修改代码页后备份正常,但创建数据库时又发生代码页的错误。这是DB2服务器使用的代码页配置和客户端使用的代码页配置不同造成的(注: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

作者:从此启程/范存威

出处:http://www.cnblogs.com/fancunwei/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。如文章对您有用,烦请点个推荐再走,感谢! 本博客新开通打赏,鼠标移到右侧打赏浮动处,即可赏博主点零花钱,感谢您的支持!

相关文章
|
8月前
|
边缘计算 负载均衡 NoSQL
FreeMQTT Plus: 一个新型 MQTT Broker 集群的实现
FreeMQTT Plus 是一款基于 MQTT 协议的高性能消息中间件,采用分布式架构解决单点瓶颈问题。其核心由 Nginx 负载均衡器、黑(A)节点(MQTT Broker)、白(B)节点(消息路由)和日志(L)节点组成。通过无主从设计,支持高可用性、负载均衡与灵活扩展。针对会话同步、消息路由等挑战,FreeMQTT Plus 利用 MQTT5 特性定义元命令,实现节点间高效通信,无需依赖第三方组件。适用于物联网海量设备接入与高并发场景,为未来边缘计算和多级集群部署提供坚实基础。
1380 74
|
SQL 关系型数据库 测试技术
详解DB2 restore恢复数据库
本文介绍了将生产数据库完整恢复到测试环境的具体步骤和注意事项。包括检查服务器空间、上传数据库文件、停掉数据库连接、查看日志、设置编码页、日志重定向、设置表空间大小、执行恢复、前滚日志、恢复字符集、善后工作等操作,帮助确保数据恢复过程顺利进行。
625 0
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
《迈向认知智能新高度:深度融合机器学习与知识图谱技术》
在人工智能发展中,机器学习与知识图谱正成为推动行业变革的关键力量。机器学习使机器能从数据中学习并预测,而知识图谱以结构化方式描绘实体与关系,提供语义框架。两者的深度融合突破了传统AI的局限,提升了推理能力和决策质量,开启了认知智能的新篇章。通过特征工程、嵌入技术和联合推理等方法,二者在智能客服、金融风险评估和智能教育等领域展现出巨大应用潜力,尽管仍面临数据质量、语义理解和模型融合等挑战,但未来前景广阔,有望推动AI向更高水平发展。
261 1
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
603 3
|
数据采集 安全 测试技术
数据中心代理IP有哪些用途?
数据中心代理IP用于网站爬取、数据采集、SEO、市场竞争情报及广告验证,隐藏真实身份,防止被封禁,模拟全球用户行为,优化网站排名,检测广告效果,保障测试环境的多样性,并作为反爬虫工具保护信息安全。适用于多种场景,提升效率与竞争优势。
|
数据采集 机器学习/深度学习 数据挖掘
使用Python进行数据预处理与清洗的最佳实践
本文探讨了Python在数据预处理和清洗中的关键作用。预处理包括数据收集、整合、探索、转换和标准化,而清洗则涉及缺失值、重复值、异常值的处理及数据格式转换。文中提供了使用pandas库进行数据读取、缺失值(如用平均值填充)和重复值处理、异常值检测(如IQR法则)以及数据转换(如min-max缩放)的代码示例。此外,还讲解了文本数据清洗的基本步骤,包括去除标点、转换为小写和停用词移除。整体上,文章旨在帮助读者掌握数据预处理和清洗的最佳实践,以提高数据分析的准确性和效率。
2048 2
|
人工智能 小程序 搜索推荐
【利用AI让知识体系化】从理论层面了解微信小程序(二)
【利用AI让知识体系化】从理论层面了解微信小程序
|
iOS开发 MacOS
macOS10.13.6及以下版本不能自动升级到更高版本的解决方案
macOS10.13.6及以下版本不能自动升级到更高版本的解决方案
2377 1
|
前端开发 数据可视化 Java
前后端分离项目部署上线详细教程
前后端分离项目部署上线详细教程
|
自然语言处理 JavaScript 计算机视觉
ModelScope安装问题之无法安装如何解决
ModelScope安装是指设置和部署ModelScope环境的过程;本合集将提供ModelScope安装步骤、配置要求和环境准备,以便用户顺利启动ModelScope进行模型开发和测试。
823 0