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相关问题及解决方法的更多相关文章
- [转]Oracle 10g及pro*c相关问题及解决方法(转)
Oracle 10g及pro*c相关问题及解决方法 2008年08月21日 星期四 上午 11:21 最近一直在进行ORACLE 10g和PRO*C的学习. 其中遇到了不少的问题: 现列于此,已备他用 ...
- android6.0SDK 删除HttpClient的相关类的解决方法
本文转载自博客:http://blog.csdn.net/yangqingqo/article/details/48214865 android6.0SDK中删除HttpClient的相关类的解决方法 ...
- 总结关于Ubuntu 安装 Docker 配置相关问题及解决方法
总结关于Ubuntu 安装 Docker 配置相关问题及解决方法 Tomcat 示例 软件镜像(xx安装程序)----运行镜像----产生一个容器(正在运行的软件,运行的xx): 步骤: 1.搜索镜像 ...
- android 6.0 SDK中删除HttpClient的相关类的解决方法
一.出现的情况 在eclipse或 android studio开发, 设置android SDK的编译版本为23时,且使用了httpClient相关类的库项目:如android-async-http ...
- linux下,matplotlib遇到的相关问题以及解决方法
1.在linux下运行matplotlib程序时,matplotlib的安装. 根据不同的linux系统继续相关安装: Debian / Ubuntu : sudo apt-get install p ...
- 使用django建博客时遇到的URLcon相关错误以及解决方法。错误提示:类型错误:include0获得一个意外的关键参数app_name
root@nanlyvm:/home/mydj/mysite# python manage.py runserver Performing system checks... Unhandled exc ...
- .md图片链接转存并替换路径,及相关报错解决方法
最初我想把Typora中.md文件中的web图片链接都下载保存到本地,并且替换.md文本中的路径 说干就干,因为在网上没有找到现成的程序所以自己写了这个程序 思路是循环查找文件夹中的文件,然后yiel ...
- percona 5.6升级到5.7相关error及解决方法
今早,把开发环境的mysql升级到了5.7.15,5.6数据导入后,启动一切正常,检查.err日志,发现有如下异常: 2016-10-31T00:29:33.187073Z 0 [Warning] S ...
- iOS7下status bar相关问题的解决方法
转载自:http://blog.csdn.net/volcan1987/article/details/14227313 iOS7里status bar的实现跟iOS6下有写不一样,前段时间碰到了这个 ...
随机推荐
- mlock家族:锁定物理内存
Start Page Index History Last Change mlock家族:锁定物理内存 系统调用 mlock 家族允许程序在物理内存上锁住它的部分或全部地址空间.这将阻止Linux 将 ...
- js主要知识轮廓笔记
一.js中的基础类型和引用类型: 基础类型:1.Number2.String3.Boolean4.Undefined5.Null 引用类型(内置对象):1.Object类型2.Array类型3.Dat ...
- uLua学习笔记(一):uLua安装及上手
uLua下载:http://www.ulua.org/ VS2012/2013的用于编写Lua的插件:https://babelua.codeplex.com/或http://unknownworld ...
- Oracle- 数据库的备份
Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操作,使得我们不再为Oracle本身丑陋.难用的UI而抱怨.由于我们一般 ...
- web pack的使用事项
一开始把webpack想的很难,很复杂,哈哈. 其实写的好的东西真的是越简单,越简单的东西其实越难写. 按照How to一步一步基本就能理解,webpack怎么使用了, 后面就是如何帮程序一步一步找到 ...
- Judge
1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i ...
- SCOM2012端口需求
Agent push requirements (including firewall ports): The account being used to push the agent must ha ...
- 项目androidAnt编译打包Android项目
时间紧张,先记一笔,后续优化与完善. Ant编译打包Android项目 在Eclipse中对Android项目停止编译和打包如果项目比较大的话会比较慢,所以改为Ant工具来停止编译和打包 Ant环境配 ...
- BZOJ 1022 SHOI2008 小约翰的游戏John 博弈论
题目大意:反Nim游戏,即取走最后一个的人输 首先状态1:假设全部的堆都是1,那么堆数为偶先手必胜,否则先手必败 然后状态2:假设有两个堆数量同样且不为1,那么后手拥有控场能力,即: 若先手拿走一堆, ...
- IOS debug网络PonyDebugger 实践篇
引言: PonyDebugger是一个很给力的iOS调试工具,它的监视器安装在Chrome浏览器下做为插件使用,通过监视器和PonyDebugger的iOS SDK相辅相成,可以很好的监视App的运 ...