db2傻瓜1000问2Word文档格式.docx
《db2傻瓜1000问2Word文档格式.docx》由会员分享,可在线阅读,更多相关《db2傻瓜1000问2Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
1"
.SQLSTATE=57017
DB2要求源代码页与目标代码页是互相兼容的,在上边的例子中,源代码页为819与目标代码页为1386不兼容导致了数据库连接失败,解决方法如下:
在发出db2connect命令失败的机器上,在DB2命令窗口中执行如下命令后重新进行连接:
db2setdb2codepage=1386?
Iinstance_name
db2terminate
DB2UDB的安装程序在UNIX下主要支持哪些shell?
“DB2安装程序”的db2setup命令主要支持Bash、Bourne和Kornshell。
怎么样跟踪DB2UDB安装过程中的信息?
您可以使用如下命令获得与DB2安装有关的信息:
#cd/tmp
#ls?
ldb2*
上述命令将会列出db2setup.log,db2icrt.*等文件,您可以使用vi等文本编辑工具阅读上述文件获得相关信息。
另外您也可以生成跟踪记录db2setup.trc,以记录在安装期间所遇到的错误。
运行db2setup命令,如下所示:
db2setup-d
这会创建一个跟踪文件/tmp/db2setup.trc。
有关DB2UDBforWin32平台有关安装期间所遇错误的信息,参见db2.log文件。
db2.log文件存储安装和卸装活动生成的一般信息和错误信息。
在缺省情况下,db2.log文件位于x:
\db2log目录中,其中x:
表示安装了操作系统的驱动器。
怎么样验证DB2安装是否已经成功?
若尚未安装DB2工具,则您可以通过创建SAMPLE数据库,并通过使用命令行处理器与该数据库相连来验证安装,如下所示:
1.作为具有系统管理(SYSADM)权限的用户向系统注册。
2.输入db2sampl命令以便创建SAMPLE数据库。
创建SAMPLE数据库时,用数据库别名SAMPLE将它自动编目。
3.输入db2start命令以启动数据库管理程序。
4.输入下列命令来与SAMPLE数据库相连,检索在部门20中工作的所有雇员的列表,并重设数据库连接:
db2connecttosample
db2"
select*fromstaffwheredept=20"
db2connectreset
如以上命令均正确执行,则证明DB2UDB数据库服务器的安装已经成功完成.
怎么使用客户机配置辅助(CCA)程序配置从客户机至服务器的通信?
配置步骤
要配置工作站以访问:
远程服务器上的数据库,执行下列步骤:
1)用有效的DB2用户ID向系统注册。
2)启动CCA。
有关详情,参见启动客户机配置辅助程序。
3)单击添加数据库或添加按钮以配置连接。
4)您可以使用简要表来添加数据库或者使用Discovery来添加数据库,另外,您也可以人工添加数据库。
在这里我们以人工添加数据库为例:
选择人工配置与DB2数据库的连接单选按钮,并单击下一步按钮。
5)从协议列表中选择与要使用的协议对应的单选按钮,然后单击下一步按钮。
若已安装了“DB2企业版”或“DB2扩充企业版”所带有的DB2Connect产品或DB2Connect“服务器支持”功能部件,并选择了TCP/IP或APPC单选按钮,则从目标操作系统列表中选择与正尝试连接的数据库所在的系统的类型相对应的单选按钮。
6)输入必需的通信协议参数,并单击下一步按钮。
有关详情,单击帮助按钮。
7)在数据库名字段中输入要添加的远程数据库的数据库别名,并在数据库别名字段中输入本地数据库别名。
在注解字段中添加描述此数据库的注解,并单击下一步按钮。
若正在添加驻留在主机或AS/400系统上的数据库,则数据库名字段将按如下方式出现:
OS/390或MVS:
位置名;
AS/400:
RDB名;
VM或VSE:
DBNAME;
8)将此数据库注册为ODBC数据源。
(此步可选)
确保选择了向ODBC注册此数据库校验框。
选择描述您希望如何注册此数据库的单选按钮:
若您希望系统上的所有用户都可访问此数据源,则选择作为系统数据源单选按钮。
若您只希望当前用户可访问此数据源,则选择作为用户数据源单选按钮。
9)若正在使用人工方法添加数据库,则还可选择节点选项标签、安全性选项标签或主机或AS/400选项标签(若正在添加主机或AS/400数据库),以指定更详细的目录信息。
参考每个标签中的联机帮助以了解详情。
若要使用节点选项、安全性选项和主机或AS/400(若适用的话)选项的缺省设置,则单击完成按钮并转至下一步。
10)单击测试连接按钮以测试连接。
“连接DB2数据库”窗口打开。
若未成功添加您要添加的数据库,则单击更改按钮以更改所有可能未正确指定的设置,或单击帮助按钮以了解详情。
有关更详细的信息,请参考TroubleshootingGuide。
输入用户ID和口令并单击确定。
若该连接成功,则会出现确认该连接的信息。
要怎么样才能检查数据库连接有关的错误?
以TCP/IP连接为例,若连接失败,您可以检查下列项目:
在服务器上:
1)db2comm注册表值包括值tcpip。
输入db2setDB2COMM命令,以检查db2comm注册表值的设置。
有关详情,请参考管理指南。
2)正确地更新了services文件。
3)在数据库管理程序配置文件中正确地更新了服务名(svcename)参数。
4)安全服务已启动。
输入netstartdb2ntsecserver命令(仅对于WindowsNT服务器)。
5)正确地创建并编目了数据库。
6)数据库管理程序已停止并再次启动(在服务器上输入db2stop和db2start命令)。
如果在启动一个协议的连接管理程序时出现问:
,则会出现警告信息,并将错误信息记录在db2diag.log文件中。
在客户机上:
1)正确地更新了services和hosts文件(若使用过的话)。
2)使用正确的主机名(hostname)或IP地址(ip_address)编目了此节点。
3)端口号必须匹配,或服务名必须映射为服务器上所用的端口号。
4)在数据库目录中指定的节点名(node_name)指向节点目录中的正确项目。
5)数据库已正确编目,它使用在服务器上创建该数据库时编目的服务器的数据库别名(database_alias),作为客户机上的数据库名(database_name)。
DB2备份历史文件损坏,怎么办?
如果在作数据库备份操作时遇到DB2备份历史文件db2rhist.asc损坏,错误代码SQL2048的错误,可按照如下步骤操作:
1.先在NODE000x/SQL000x目录下找到该文件,及其备份文件db2rhist.bak,将db2rhist.asc文件移动到其他目录中。
2.重新运行备份命令。
此命令仍会报同样的错误,但同时DB2系统会自动用db2rhist.bak重新生成db2rhist.asc文件。
3.再次运行备份命令,它将能够正确运行。
如果按照上面的步骤操作后,仍出同样的错误,则再按如下操作:
1.先在NODE000x/SQL000x目录下找到该文件,及其备份文件db2rhist.bak,将这两个文件移动到其他目录中。
此命令仍会报同样的错误,但同时DB2系统会自动重新生成这两个文件。
CURRENTDATA(NO)有什么作用?
在什么时候使用?
在BIND PACKAGE时,如果你设置CURRENTDATA(NO)和ISLATION(CS),READONLY CURSOR 将不会对读到的已经COMMITED数据加锁.这将提高系统并发性.你可以在系统一致性得到保障的前提下,使用该选项来提高系统性能。
如何知道某PACKAGB消耗多少系统资源?
起动ACCOUNTING TARCE CLASS(7), 然后打印PM STATISTICS REPORT(LONG), 各PACKAGE相关的系统消耗信息将以图表和数字形式报告出来。
问:
为什么会产生影响INDOUBTTRANSACTION如何处理?
INDOUBTTRANSACTION是DB2为了保护数据一致性而采取的方法。
当一个交易完成一阶段提交而没有开始第二阶段时,DB2不能判断其它同伴的状况,不能作出回滚或前滚决定.这时候,DB2就把这个交易定为INDOUBTTRANSACTION。
严格按MESSAGE推选的方法进行恢复,一般先用DISPLAYTHREAD(INDOUBT)找出INDOUBTTRANSACTION信息,确定采取回滚或前滚.然后用RECOVERYINDOUBT命令回滚或前滚。
数据库CRASH后,COLDLOGSTART,数据有多大可用性?
答:
在最后一次CHECKPOINT以前COMMIT的数据都是可用的。
最后一次CHECKPOINT以后COMMITED和没有COMMITED都可能出错。
需要人工检查。
通过设置DB2/VSE起动参数DSPSTATS=10或20,系统会在CONSOLE上显示每一次CHECKPOINT时间。
怎样判断DB2实例的版本号和修补级别?
用db2level命令。
在DB25.2及以上版本中,在安装每个DB2实例时,即会装入db2level程序。
db2level命令的输出提供了有关DB2实例的版本及修补级别的详细信息。
命令输出如下所示:
DB21085IInstance"
<
instance_name>
"
usesDB2code
release"
rel_ver_mod>
withlevelidentifier
level_id>
andinformationaltokens"
build_id1>
"
build_id2>
and"
build_id3>
.
例如:
DB2"
usesDB2coderelease"
SQL05020"
withlevelidentifier"
02070103"
andinformationaltokens
DB2v5.2.0.30"
"
c990717"
and"
WR21119"
下面解释以下这些信息:
=DB2DB2的实例名
=SQL05020Release号05,Version号02,Module号0
=02070103内部使用的DB2版本号
=DB2v5.2.0.30实例的版本信息
=c990717代码的级别信息
=WR2119修补的级别信息
注:
db2level执行程序不能在不同的系统之间拷贝使用。
并且此程序只显示正式支持的修补级别信息。
对于DB2版本5.0和2.0,可用如下方法获得版本信息:
OS/2:
syslevel命令
NT:
查询regedit变量:
HKEY_LOCAL_MACHINE|SOFTWARE|IBM|DB2|DB2
universaldatabasexxedition|
CurrentVersion
AIX:
用dump-H
$HOME/sqllib/lib/libdb2e.a
Solaris:
cat命令查看文件信息/opt/IBMdb2/V5.0/cfg/bldlevelor
ldd-s
$HOME/sqllib/lib/libdb2e.so|
grepengn|grepsearch|uniq"
HP:
cat命令查看文件信息
/opt/IBMdb2/V5.0/cfgbldlevel
如果想将某操作系统上的数据库备份在另一个不同的操作系统上恢复,如何做?
DB2不支持不同平台之间的备份与恢复操作。
例如WindowsNT和AIX操作系统。
如果数据需要在不同操作系统平台之间移动,需要用Import,Export和Load命令来实现。
在由备份恢复一个数据库时,遇到SQL2542错误,是怎么回事?
如果有几个数据库的备份,在做数据库恢复时,需要提供正确的路径和时间戳,如果是用DB2命令行来执行恢复操作,在WindowsNT操作系统,可参照如下命令:
RESTOREDATABASESAMPLEFROMD:
\backupsTAKENAT19991117125141
此命令中要注意路径和时间戳。
时间戳可以通过listhistory命令得到。
可参照如下命令:
LISTHISTORYBACKUPALLFORSAMPLE
OpObjTimestamp+sequenceTypeDevEarliestlogCurrentlogBackupID
BD19991117125141001FDS0000000.LOGS0000000.LOG
Contains2tablespace(s):
00001SYSCATSPACE
00002USERSPACE1
此命令的输出列出了备份的时间戳加上一个3位的数字序列:
时间戳+3位的数字序列=19991117125141001
所以,可以在restore命令中使用时间戳:
199********141。
如果你有多于一个备份,listhistory命令将显示所有备份纪录的信息。
在WindowsNT备份域控制器上安装DB2时,返回2226错误,如何解决?
在WindowsNT备份域控制器上安装DB2时,返回2226错误是因为不能为数据库的管理服务器生成一个新的用户ID,这是WindowsNT操作系统的限制。
WindowsNT的APINetUserAdd不允许在备份域服务器上增加一个新的用户。
可以尝试如下方法:
1.在安装DB2前,先在主域控制器上生成一个数据库的管理服务器ID(DB2ADMIN是缺省值),需要管理员权限。
2.安装时,用下列语法指定用户:
域名\用户名。
3.安装时,忽视“不能验证用户”的提示。
4.完成安装。
另注:
如果在备份域控制器上有主域控制器的安全数据库的拷贝,则可以将DB2的注册变量DB2DMNBCKCTLR设置为YES,以允许数据库利用备份域控制器上的安全数据库,这可减少网络流量。
怎样直接备份DB2数据库到磁带设备?
在UNIX和WindowsNT操作系统,支持本地的磁带设备。
OS/2操作系统不提供本地磁带机的支持。
下面以Windows操作系统为例,介绍如何将DB2数据库直接备份到磁带设备.
1.首先在备份数据库之前先要初始化磁带设备,可用INITIALIZETAPE命令做此工作,
例如initializetapeon\\.\tape0。
2.备份数据库到磁带设备,可用backupdatabase命令。
如:
backupdatabasesampleto\\.\tape0。
3.在恢复数据库时,要重绕磁带。
可用命令rewindtape。
rewindtapeon\\.\tape0。
4.恢复数据库到一个已经存在的新数据库时,可用restore
database命令。
restoredatabasesamplefrom\\.\tape0intotest。
在备份数据库到磁带设备或从磁带设备恢复时,可能需要检查磁带机的blocking参数
与DB2数据库的管理校验参数MaxrequesterI/Oblocksize是否匹配。
从何处下载DB2UDB的补丁程序?
您可以访问如下网址获取您所需要的补丁程序:
...d2w/report
怎么样访问DB2的用户组及从用户组获取信息?
IDUG(InternationalDatabaseUsersGroup)是一个国际化的DB2用户组织,您可以通过访问网址:
http:
//www.idug.org获取更多的DB2信息资源以及通过讨论组咨询问等等。
另外,您也可以通过查看DB2的在线杂志。
怎样进行DB2的跟踪(Trace)?
完成db2trace的步骤:
1)db2trcon-l4000000-e-1
2)重现您所碰到的问题:
3)db2trcdumpdb2trc.dmp
4)db2trcoff
5)db2trcfmtdb2trc.dmpdb2trc.fmt
6)db2trcflwdb2trc.dmpdb2trc.flw
在成功完成以上的步骤以后,您可以将生成的db2trc.fmt,db2trc.flw,db2trc.dmp和DB2的诊断文件db2diag.log以及其它相关信息一并发往IBM的技术支持组织进行进一步分析。
怎么样注册DB2UDB的许可证(License)?
对于DB2UDBv6.x和v7.x,您可以使用db2licm(DB2LicenseMananger)进行注册和管理。
以DB2UDBEEV6.xforAIX为例:
#cd/usr/lpp/db2_06_01
#lsdb2udbee.lic*此文件可以在安装光盘许可证目录中找到;
#cdadm
#./db2licm-v->
列出版本信息;
#./db2licm-a../db2udbee.lic->
注册许可证;
#./db2licm-l->
列出许可证信息;
ProductName="
DB2EnterpriseEdition"
ProductPassword="
DB2UDBEE"
VersionInformation="
6.1"
ExpiryDate="
Permanent"
ConcurrentUserPolicy="
Disabled"
RegisteredUserPolicy="
EnforcementPolicy="
SoftStop"
Annotation="
Otherinformation="
对于DB2UDBv5.x,您可以使用db2licinst(UNIX)或许可证管理菜单(Windows)进行注册和管理。
在SQL语句的结果信息中如何插入单引号和双引号?
1)单引号的插入:
连续单引号表示一个单引号;
selectempno,'
'
Testing'
testfromemployeewhereempno='
000300'
EMPNOTEST
---------------
000300'
2)双引号的插入:
使用转义字符;
\"
Testing\"
000300"
Testing"
DB2UDB基本备份和恢复命令是怎样的?
以DB2UDBforWindows9x/NT为例:
mdc:
\bakdb/*建立备份目录*/
db2backupdbsampletoc:
\bakdb;
/*备份数据库到目录c:
\bakdb*/
\test
movec:
\bakdbc:
/*此步只是模拟备份镜象的移动,进一步的,您也可以将备份镜象拷贝到其它机器上或其它备份介质上再进行恢复工作.
*/db2restoredbsamplefromc:
\test\bakdb;
/*恢复数据库*/
db2restoredbsamplefromc:
\test\bakdbintosampnew;
/*恢复数据库到另外一个数据库中*/
如何通过TCP/IP协议编目(CATALOG)节点和数据库?
利用TCP/IP协议编目数节点和数据库首先要知道数据库所在服务器端的IP地址。
此外知道数据所属实例(instance)TCP/IP协议所用的服务名对应的对口号:
在服务器端,用db2getdbmcfg得到SVCENAME参数值,在services文件中(NT环境该文件在winnt