db2常用命令+常见问题处理

合集下载

db2数据库常用语句 -回复

db2数据库常用语句 -回复

db2数据库常用语句-回复DB2数据库常用语句是指在DB2数据库管理系统中经常使用的一些关键性的查询、更新以及管理数据库的语句。

这些语句帮助用户在数据库中进行数据的增加、删除、修改和查询操作,同时也可以用于控制数据库的访问权限和执行事务。

在本文中,我将一步一步地回答关于DB2数据库常用语句的问题。

1. 什么是DB2数据库?DB2数据库是由IBM公司开发的一种关系型数据库管理系统。

它是一种高性能、可靠性强、功能丰富的数据库系统。

它支持大规模数据处理和复杂的查询操作,适用于企业级应用。

2. DB2数据库常用的查询语句有哪些?在DB2中,常用的查询语句包括SELECT、UPDATE、DELETE和INSERT 语句。

SELECT语句用于从数据库表中检索数据,UPDATE语句用于更新数据库表中的数据,DELETE语句用于删除数据库表中的数据,INSERT 语句用于向数据库表中插入新的数据。

3. 如何使用SELECT语句查询数据?使用SELECT语句可以从数据库表中检索数据。

以下是一个使用SELECT 语句查询数据的示例:SELECT column1, column2, ..., columnnFROM table_nameWHERE condition;其中,column1, column2, ..., columnn是要检索的列名,table_name 是要检索数据的表名,condition是一个可选的条件,用于限制查询结果。

4. 如何使用UPDATE语句更新数据?使用UPDATE语句可以更新数据库表中的数据。

以下是一个使用UPDATE 语句更新数据的示例:UPDATE table_nameSET column1 = value1, column2 = value2, ..., columnn = valuen WHERE condition;其中,table_name是要更新数据的表名,column1, column2, ..., columnn是要更新的列名,value1, value2, ..., valuen是要更新的新值,condition是一个可选的条件,用于限制更新的范围。

db2 无效的命令行参数

db2 无效的命令行参数

db2 无效的命令行参数(原创版)目录1.引言2.DB2 命令行参数概述3.无效参数的原因和影响4.解决无效参数的方法5.结论正文1.引言DB2 是一款广泛使用的关系型数据库管理系统,其命令行界面提供了丰富的操作选项。

然而,在使用过程中,有时会出现无效的命令行参数,给用户带来困扰。

本文将探讨 DB2 无效命令行参数的原因、影响及解决方法。

2.DB2 命令行参数概述DB2 命令行参数是指在 DB2 命令行界面中输入的用于控制 DB2 操作的选项。

有效的参数可以使 DB2 按照用户的意愿执行相应的操作,而无效的参数可能导致操作失败或产生不可预料的结果。

3.无效参数的原因和影响无效参数的原因可能有以下几点:a.参数拼写错误:用户在输入参数时可能出现拼写错误,导致 DB2 无法识别该参数。

b.参数语法错误:用户可能不熟悉 DB2 参数的语法,导致输入的参数不符合规范。

c.参数与操作不匹配:用户可能在执行某个操作时使用了不正确的参数,导致该参数无效。

无效参数的影响包括:a.操作失败:由于无效参数导致 DB2 无法识别用户的操作意图,从而使操作失败。

b.结果不可预料:使用无效参数可能导致 DB2 执行非预期的操作,进而产生不可预料的结果。

4.解决无效参数的方法要解决无效参数问题,可以采取以下措施:a.仔细阅读文档:用户在使用 DB2 命令行参数前应仔细阅读相关文档,了解参数的正确使用方法。

b.参数检查:在执行操作前,用户可以检查输入的参数是否符合规范,避免因拼写或语法错误导致参数无效。

c.寻求帮助:如果遇到无法解决的无效参数问题,用户可以寻求专业人士的帮助,获取正确的解决方案。

5.结论总之,DB2 命令行参数在操作过程中可能会出现无效的情况,给用户带来一定的困扰。

DB2故障总结

DB2故障总结

1.还原数据库之后,客户端无法和服务器主机连接,SQL30081N 检测到通信错误。

正在使用的通信协议:"TCP/IP"。

正在使用的通信API:"SOCKETS"。

检测到错误的位置:"192.168.247.120"。

检测到错误的通信功能:"connect"。

特定于协议的错误代码:"10061"、"*" 和 "*"。

SQLSTATE=08001a.最可能是数据库没启动。

b.可能还原之后端口设置缺失的原因。

肯定和db2 dbm的svcename服务有关。

>>db2 get dbm cfg|grep SVCENAMETCP/IP Service name (SVCENAME) =SSL service name (SSL_SVCENAME)=这里TCP/IP端口设置时缺失了。

需要手动设置。

>>db2set DB2COMM=TCP/IP,NETBIOS设置通信方式>>db2set>>db2 update dbm cfg for tsbdw using svcename 50000DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully更新通信端口>>db2stop>>db2start>>db2 get dbm cfg |grep SVCENAMETCP/IP Service name (SVCENAME) = 50000SSL service name (SSL_SVCENAME) =重连数据库即可成功2.在忘记关闭数据库的情况下重启的服务器会导致实例挂起,数据库起不起来无法执行DB2的各种命令报错SQL6036N START or STOP DATABASE MANAGER command is already in progress.Kill alldb2_kill + ipclean to recycle the instancenote:kill db2 process force。

关于DB2常见性能问题的解决参考

关于DB2常见性能问题的解决参考

关于DB2常见性能问题的解决参考最近一个项目在做性能测试时,在并发达到一定数后,DB2数据库资源占用很大,必须对数据库和应用进行优化。

该项目要求性能指标(CPU<70%,内存占用<70%,IO<60),按照网友介绍的经验,分别针对CPU、内存、IO进行问题排查和分析。

现将过程总结如下:一、CPU分析通过资源监视器查看一个或多个CPU 的使用率,确定确实存在CPU使用率一直居高不下的情况。

1、首先排除掉存在死循环的情况。

(并发下来后,CPU使用率会降下来)。

2、DB2占用CPU的主要行为有:语句编译、大量排序、DB2实用工具运行。

3、先查看是否有大量的语句编译:通过DB2的表函数MON_GET_WORKLOAD,可以查看到:select varchar(workload_name,30) as workload_name,sum(total_cpu_time),sum(total_compile_proc_time),sum(act_rqsts_total),um(total_compilations),sum(total_act_time), sum(pkg_cache_inserts), sum(pkg_cache_lookups) from TABLE(MON_GET_WORKLOAD('',-2)) as T group by workload_name如果compile_proc_time 高于5-10% 的total_cpu_time,并且pkg_cache_inserts/pkg_cache_lookups 高于4-5%,则数据库在语句编译上花费了太多的时间。

必须调大语句集中器STMT_CONC的大小。

采用逐步调大的方式来跟踪效果。

4、查看是否存在大量的SORT首先通过db2的快照,看是否存在大量的sort溢出✓Sort overflows/Total sorts * 100% 表示排序溢出百分比,通常情况下,该值应该小于3。

DB2故障总结

DB2故障总结

1.还原数据库之后,客户端无法和服务器主机连接,SQL30081N 检测到通信错误。

正在使用的通信协议:"TCP/IP"。

正在使用的通信API:"SOCKETS"。

检测到错误的位置:"192.168.247.120"。

检测到错误的通信功能:"connect"。

特定于协议的错误代码:"10061"、"*" 和 "*"。

SQLSTATE=08001a.最可能是数据库没启动。

b.可能还原之后端口设置缺失的原因。

肯定和db2 dbm的svcename服务有关。

>>db2 get dbm cfg|grep SVCENAMETCP/IP Service name (SVCENAME) =SSL service name (SSL_SVCENAME)=这里TCP/IP端口设置时缺失了。

需要手动设置。

>>db2set DB2COMM=TCP/IP,NETBIOS设置通信方式>>db2set>>db2 update dbm cfg for tsbdw using svcename 50000DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully更新通信端口>>db2stop>>db2start>>db2 get dbm cfg |grep SVCENAMETCP/IP Service name (SVCENAME) = 50000SSL service name (SSL_SVCENAME) =重连数据库即可成功2.在忘记关闭数据库的情况下重启的服务器会导致实例挂起,数据库起不起来无法执行DB2的各种命令报错SQL6036N START or STOP DATABASE MANAGER command is already in progress.Kill alldb2_kill + ipclean to recycle the instancenote:kill db2 process force。

DB2常用操作及注意事项

DB2常用操作及注意事项

DB2常用操作1. 后台连接数据库db2 connect to bassdb user bass2 using bass22. 执行SQL脚本db2 –tvf 脚本名称注:执行前需要连接数据库,或在脚本中连接数据库,执行完成断开数据库连接用terminate 语句;SQL语句间用分号隔开3. 查看表结构db2 describe table bass2.dim_product_item4. 清空表=oracle的truncate table 表名alter table 表名activate not logged initially with empty table;注意:清空全表数据,最好不要用delete from 表名5. 查看建表语句可以用QC查看,不要用Rapid SQL后台查看语句为:db2look -d bassdb -i bass2 -w bass2 -a -e -t 表名(表名前不要加模式,不然找不到)注意事项(切记切记):1. 建表统一使用以下建表语句:create table dim_acct_item(item_id smallint,item_name varchar(20))in 表空间名partitioning key (item_id) using hashingnot logged initially;必须指定表空间,不同意义的表对应的不同的表空间,创建时问一下各位老同事分区键partitioning key的指定选择数据分布最分散的列,不清楚多问问,以免对表空间大小造成影响。

不指定分区键,默认为第一列。

2. QC查询时,在SQL语句后加上with ur,以避免锁表。

Rapid SQL查询时,在设置中指定查询行数。

不然在查询大表时,即使停止了查询,后台进程仍然存在3. delete操作时,请先select出来看看是否是你需要删除的数据,以免误删除4. 创建表时,先查看表是否已存在。

DB2故障处理的解决办法

DB2故障处理的解决办法

解决问题的关键在于分清问题的种类,并清楚每种问题的解决办法。

另外很多的数据库的问题都是由于错误的操作,错误的配置引起的,所以本文在解释怎么样处理问题时也会给出一些好的建议,来避免产生问题。

本文重点介绍实用的方法。

对问题的分类有很多种方法,在本文中我我采用了两种分类方案。

第一种方案是是否有错误码。

即发生错误时是否同时返回了错误码,错误码既包括执行命令的返回码,也包扩应用程序的返回码。

有返回码的错误解决方案是,在db2 CLP中运行db2?SQLXXXX,然后根据对该问题的解释采取相应的解决方案。

对没有错误码的问题,如数据库hang,CPU使用率过高等问题,解决问题的经验将非常重要,在本文中会有详细的说明。

根据错误码解决问题举例(在下文中,再出现需要用这种方法解决问题时将不再重复):如在连接数据库时发生错误db2 connect to sampleSQL0332N There is no available conversion for the source codepage"1386" tothe target code page "819". Reason Code "1". SQLSTATE=57017错误码分为返回码(SQL0332N)和原因码(Reason Code "1"),针对不同的原因码有不同的解决方案运行db2 ? sql0332从输出种可以看到对于reason code 1的解释是……1 source and target code page combination is not supported bythedatabase manager.……所以可以通过设置代码页来解决这个问题db2set db2codepage=1386db2 terminatedb2 connect to sample就可以成功连接了。

db2 常用问题

db2 常用问题

大家在应用DB2的时候可能会遇到一些看似简单的问题,特别对新手来说,我在此简单的总结一下,发布给大家,希望对大家能有所帮助,同时也欢迎大家一起探讨,共同发展,共同进步!以下主要以DB2 7.X为基础的. 以下的字符为小写.本文对DB2高手来说是不用看的.1. DB2产品的级别有那些?企业版的 NTERPRISE EDITION工作组版 WORKGROUP EDITION企业扩展版 ENTERPRISE EXTENDED EDITION个人版的 PERSONAL EDITION卫星版的 SATELLITE EDITION微型版的 EVERYPLACE2. 可以连接到DB2数据库的产品有哪些?DB2客户端DB2 CONNECTDB2 DATAPROPAGATORDB2 NET.DATADB2 DATAJOINERDB2 RELATIONAL CONNECTWEBSPHERE应用服务器等3. DB2支持的通讯协议有哪些?TCP/IPNETBIOSAPPGIPX/SPXNAME PIPE等4. DB2客户端产品有哪些?DB2运行时间客户端 DB2 RUNTIME CLIENTDB2管理客户端 DB2 ADMINISTRATION CLIENTDB2应用程序开发客户端 DB2 APPLICATION DEVELOPMENT CLIENTDB2瘦客户端 DB2 THIN CLIENT5. 一个数据库是否可以安装在多个数据库服务器上?可以6. 从哪个版本后存储过程可以用SQL语句来创建?7.1版后7. DB2提供哪些关系扩展器?文本扩展器 TEXT EXTENDER图象扩展器 IMAGE EXTENDER音频扩展器 AUDIO EXTENDER视频扩展器 VIDEO EXTENDER空间数据扩展器 SPATIAL EXTENDERXML扩展器 XML EXTENDER网络搜索扩展器 NET.SEARCH EXTENDER8. WINDOWS和OS/2环境下的DB2安装目录结构?用SETUP.EXE来安装SQLLIB 安装的根目录,包括README文件SQLLIBADSM 包含ADSTAR分布式存储管理器文件SQLLIBBIN 包含DB2工具的可执行文件SQLLIBBND 包含DB2工具的绑定文件SQLLIBCC 包含运行控制中心所需的文件SQLLIBCFG 包含默认的系统配置文件SQLLIBCONV 包含代码页转换表文件SQLLIBDB2 默认的实例目录SQLLIBDB2DAS00 缺省的DB2管理服务器目录SQLLIBDOC 包含DB2联机手册SQLLIBFUNCTION 默认的用户自定义函数目录SQLLIBFUNCTIONUNFENCED 默认的非隔离用户自定义函授目录 SQLLIBHELP 联机帮助文件SQLLIBJAVA DB2所需的JAVA类库JAVA12 包含JDK1.2的支持程序SQLLIBMISC 包含HTML搜索服务器文件SQLLIBMSGPRIME 包含信息文件SQLLIBQP 包含QUERY PATROLLER的客户端文件SQLLIBSAMPLES 包含样例程序和样例脚本SQLLIBSPMLOG 包含DB2同步点管理器日志文件SQLLIBTHNSETUP 包含瘦客户端安装文件9. UNIX和LINUX环境下的DB2安装目录结构?用DB2SETUP.EXE来安装安装的根目录下还将创建以下目录:README 安装的根目录,包括README文件ADM 包含系统管理工具文件ADSM 包含ADSTAR分布式存储管理器文件BIN 包含DB2工具的二进制可执行文件BND 包含DB2工具的绑定文件CC 包含运行控制中心所需的文件CFG 包含默认的系统配置文件CONV 包含代码页转换表文件DOC 包含DB2联机手册FUNCTION 默认的用户自定义函数目录FUNCTIONUNFENCED 默认的非隔离用户自定义函授目录 INSTALL 包含安装程序INSTANCE 包含实例脚本JAVA DB2所需的JAVA类库LIB DB2库文件MAP 包含DB2 CONNECT使用的映射文件MISC 包含HTML搜索服务器文件SAMPLES 包含样例程序和样例脚本MSG$L 包含DB2信息文件10. AIX下用哪个命令来安装DB2?INSTALLP命令11. 同一操作系统下可以安装多个DB2 数据库?可以的12. 如何停止实例?DB2STOP13. 如何启动实例?DB2START14. 如何修改注册项的值?DB2SET可以修改如:设定当前实例的一个参数DB2SET PARAMETER=value设定一个全局级的参数DB2SET PARAMETER=value -G (小写)查看能在配置文件注册表中设置的所有变量的列表 DB2SET -LR (小写)15. 如何在CLP执行操作系统的命令?在命令前加" ! "作为前缀DB2=> !DIR C:16. 在CLP中命令过长怎么办?用 " " 作为续行符号17. 如何获得DB2的命令的语法相关信息?DB2? 显示所有DB2命令DB2? COMMAND 显示命令信息DB2? SQLnnnn 显示这个SQLCODE的解释信息DB2? DB2nnnn 显示这个DB2错误的解释信息18. 如何查看当前CLP的设置?DB2=>LIST COMAND OPTIONS19. 如何更新当前CLP会话的特定项设置?DB2 UPDATE COMMAND OPTIONS USING OPTIONS ...20. COMMAND WINDOWS可以通过哪个命令调用?DB2CMD命令21. 管理服务器的默认名为?UNIX下为DB2ASWINDOWS下为DB2DAS0022. 常用管理DB2服务器实例的命令?DB2ADMIN START 启动DB2管理服务器实例DB2ADMIN STOP 停止DB2管理服务器实例DASICRT UNIX下创建DB2管理服务器实例DASIDROP UNIX下删除DB2管理服务器实例DB2ADMIN CREATE WINDOWS OR OS/2下创建DB2管理服务器实例 DB2ADMIN DROP WINDOWS OR OS/2下删除DB2管理服务器实例DB2 GET ADMIN CFG 显示DB2管理服务器的配置参数DB2 UPDATE ADMIN CFG 修改DB2管理服务器的配置参数DB2 RESET ADMIN CFG 将DB2管理服务器的配置参数设为默认值23. DB2目录分为哪几种?系统数据库目录本地数据库目录节点目录DCS目录管理节点目录24. 如何查看系统数据库目录?LIST DB DIRECTORY25. 如何查看数据库服务器目录?LIST NODE DIRECTORY26. DB2实例的服务器的默认端口是?50000服务器名称为DB2CDB227. DB2 UDB服务器端的认证类型有?SERVERSERVER_ENCRYPTCLIENTDCEDCE_SERVER_ENCRYPTKERBEROSKRB_SERVER_ENCRYPT28. DB2客户端的认证类型有?SERVERSERVER_ENCRYPTDCSDCS_ENCRYPTCLIENTDCE29. DB2中有哪几种类型的权限?SYSADM 系统管理权限SYSCTRL 系统控制权限SYSMAINT 系统维护权限DBADM 数据库管理权限LOAD 对表进行LOAD操作的权限30. 不能通过GRANT授权的权限有哪种?SYSAMSYSCTRLSYSMAINT要更该上述权限必须修改数据库管理器配置参数31. 表的类型有哪些?永久表(基表)临时表(说明表)临时表(派生表)32. 如何知道一个用户有多少表?SELECT * FROM SYSIBM.SYSTABLES WHERE CREATOR=‘USER‘33. 如何知道用户下的函数?select * from ERFUNCTIONselect * from sysibm.SYSFUNCTIONS34. 如何知道用户下的VIEW 数?select * from sysibm.sysviews WHERE CREATOR=‘USER‘35. 如何知道当前DB2的版本?select * from sysibm.sysvERSIONS36. 如何知道用户下的TRIGGER 数?select * from sysibm.SYSTRIGGERS WHERE SCHEMA=‘USER‘37. 如何知道TABLESPACE的状况?select * from sysibm.SYSTABLESPACES38. 如何知道SEQUENCE的状况?select * from sysibm.SYSSEQUENCES39. 如何知道SCHEMA的状况?select * from sysibm.SYSSCHEMATA40. 如何知道INDEX的状况?select * from sysibm.SYSINDEXES41. 如何知道表的字段的状况?select * from sysibm.SYSCOLUMNS WHERE TBNAME=‘AAAA‘42. 如何知道DB2的数据类型?select * from sysibm.SYSDATATYPES43. 如何知道BUFFERPOOLS状况?select * from sysibm.SYSBUFFERPOOLS44. DB2表的字段的修改限制?只能修改VARCHAR2类型的并且只能增加不能减少.45. 如何查看表的结构?DESCRIBLE TABLE TABLE_NAMEORDESCRIBLE SELECT * FROM SCHEMA.TABLE_NAME46. 如何快速清除一个大表?ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE47. 如何查看数据库的包?select * from sysCAT.PACKAGES48. 如何查看数据库的存储过程?SELECT * FROM SYSCAT.PROCEDURES49. 如何查看表的约束?SELECT * FROM SYSCAT.CHECKS WHERE TABNAME=‘AAAA‘50. 如何查看表的引用完整约束?SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME=‘AAAA‘51. 安裝DB2默認的实例名稱是?在WINDOWS或OS/2中默認的是DB2在LINUX或UNIX環境下默認的是DB2INST152. 安裝后的默認帳戶是?在WINDOWS或OS/2中默認的是DB2ADMIN在LINUX或UNIX環境下默認的是DB2AS53. 实例的類型有哪些?CLIENT(客戶)STANDALONE(獨立的)SATELLITE(衛星)EE DB2EEE54. 如何創建实例?DB2ICRT INSTNAME <...PARAMETERS>55. 如何列出系統上的所有可用实例?DB2ILIST56. 如何知道當前對話用的是哪個实例?GET INSTANCE57. 如何更新实例的配置?DB2IUPDT <INST NAME><PARAMETER OPTIONS...>58. 如何刪除实例?DB2IDROP INSTANCE_NAME具体步驟如下:停止实例上所有應用程序在所有打開的命令行上執行DB2 TERMINATE咝蠨B2STOP備份DB2INSTPROF注冊變量指出的实例目錄退出实例所有登陸者使用DB2IDROP也可以刪除ID59. 如何列出本地系統上有許可信息的所有產品?DB2LICM -L60. 如何增加一產品許可?DB2LICM -A FILENAME61. 如何刪除一個產品的許可?DB2LICM -R PRODUCT PASSWORD62. 如何更新已購買的許可數量?DB2LICM -U <PRODUCT PASSWORD> <NUMBER OF USERS>63. 如何強制只使用已經購買的數量?DB2LICM -E HARD64. 如何更新系統上所使用的許可政策類型?DB2LICM -P <PRODUCT PASSWORD> REGISTERED CONCURRENT65. 如何更新系統上的處理器的數量?DB2LICM -N <PRODUCT PASSWORD> <NUMBER OF PROCESSORS>66. 如何查詢許可文件記錄的版本信息?DB2LICM -V67. 如何查詢DB2LICM的幫助信息?DB2LICM -H68. 一個數据庫至少包括哪些表空間?一個目錄表空間一個或多個用戶表空間一個或多個臨時表空間69. 根据數据与存儲空間之間移動的控制方式不同,分哪兩种表空間?系統管理的空間(SMS)數据庫管理的空間(DMS)70. 如何列出系統數据庫目錄的內容?LIST DATABASE DIRECTORY71. CREATE DATABASE 是SQL命令嗎?不是, 是系統命令72. 如何查看數据庫ABC的配置文件的內容?GET DATABASE CONFIGURATION FOR ABC73. 如何將數据庫ABC的參數設置為默認數值?RESET DATABASE CONFIGURATION FOR ABC74. 如何修改數据庫ABC配置參數數值?UPDATE DATABASE CONFIGURATION FOR ABCUSING <PARAMETER NAME> <NEW value>75. 如何重新啟動數据庫?RESTART DATABASE DATABASE_NAME76. 如何激活數据庫?ACTIVATE DATABASE DATABASE_NAME77. 如何停止數据庫?DEACTIVATE DATABASE DATABASE_NAME78. 如何刪除數据庫?DROP DATABASE DATABASE_NAME79. 如何建立模式?CREATE SCHEMA SCHEMA_NAME80. 如何設置模式?SET SCHEMA=SCHEMA_NAME81. 表的類型有哪些?基本表結果表概要表類型表子類型子表聲明的臨時表系統臨時表82. 如何定義序列?CREATE SEQUENCE ORDERSEQ START WITH 1 INCREMENT BY 1 NOMAXvalue NOCYCLE CACHE 2483. 如何將表置于檢查挂起狀態?SET INTEGRITY TABLE_NAME OFF84. 如何獲得表的排斥鎖?LOCK TABLE TABLE_NAME IN EXCLUSIVE MODE85. 如何把表調整為沒有檢查數據的在線狀態?SET INTEGRITY FOR TABLE_NAME ALL IMMEDIATE UNCHECKED86. 如何解除表的鎖定?COMMIT87. 如何關閉表的日志?ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INIALLY88. 如何刪除表?DROP SCHEMA.TABLE_NAME89. 如何重命名表?RENAME TABLE_OLD TO TABLE_NEW90. 如何取當前時間?SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY191. 如何創建DB2的概要表?DB2的概要表功能類似于ORACLE的實体化視圖!語法為:CREATE SUMMARY TABLE TABLE_NAME AS (FULLSELECT) ...例如:定義一個可以刷新的概要表:CREATE SUMMARY TABLE TABLE_NAME AS (SELECT * FROM TABLE_NAME1 WHERE COL1=‘AAA‘)DATA INITIALLY DEFERRED REFRESH DEFERRED其中DATA INITIALLY DEFERRED規定不能將數据作為CREATE TABLE語句的一部分插入表中.REFRESH DEFERRED規定表中的數据可以在任何使用了REFRESH TABLE語句的時候獲得刷新!92. 如何刷新概要表?REFRESH TABLE SUM_TABLE其中SUM_TABLE為概要表.93. 如何修改概要表?ALTER TABLE SUM_TABLE ...94. 如何創建臨時表?語法:DECLARE GLOBAL TEMPORARY TABLE TABLE_NAMEAS (FULLSELECT) DEFINITION ONLYEXCLUDING IDENTITY COLUMN ATTRIBUTESON COMMIT DELETE ROWSNOT LOGGED第一行規定臨時表的名稱.第二行規定臨時表的列的定義.第三行規定不是從源結果表定義中復制的恒等列.第四行規定如果沒有打開WITH GOLD光標,將會刪除表的所有行.第五行規定不對表的改變進行記錄.例如:DECLARE GLOBAL TEMPORARY TABLE DEC_BSEMPMSAS (SELECT * FROM BSEMPMS) DEFINITION ONLYEXCLUDING IDENTITY COLUMN ATTRIBUTESON COMMIT DELETE ROWSNOT LOGGED95. 視圖的管理?如何創建視圖:CREATE VIEW VIEW_NAME AS SELECT * FROM TABLE_NAME WHERE ... 刪除視圖:DROP VIEW VIEW_NAME96. 如何知道視圖定義的內容?SELECT * FROM SYSCAT.VIEWS中的TEXT列中.97. 如何創建別名?CREATE ALIAS ALIAS_NAME FOR PRO_NAME后面的PRO_NAME可以是TABLE,VIEW,ALIAS,NICKNAME等.98. 如何創建序列?例如:CREATE SEQUENCE SEQUENCE_NAMESTART WITH START_NUMBERINCREMENT BY value1NOMAXvalueNOCYCLECACHE MAXIMUM NUMBER OF SEQUENCE valueS第一行規定序列的名稱.第二行規定序列的開始數值.第三行規定每次新增的幅度.第四行規定沒有最大數值限制.第五行規定最大數值限制.99. 如何更改序列?ALTER SEQUENCE SEQUENCE_NAME ...可以修改的參數START WITH 的 START_NUMBERINCREMENT 的 value1NOMAXvalue的數值NOCYCLE屬性MAXIMUM NUMBER OF SEQUENCE valueS 最大數值100. 如何刪除序列?DROP SEQUENCE SEQUENCE_NAME101. DB2支持導入(IMPORT)的文件格式有?有: DEL,ASC,IXF,WSF等102. DB2支持導出(EXPORT)的文件格式有?有: DEL,IXF,WSF等.不支持ASC格式.103. DB2支持載入(LOAD)的文件格式有?有: DEL,ASC,IXF等.不支持WSF格式.104. DB2支持DB2MOVE的文件格式有?有: IXF等.不支持ASC,DEL,WSF格式.105. DB2數据庫監控的兩個組成部分?快照監控(SNAPSHOT MONITOR)可返回特定時間點的數据庫活動的快照.事件監控(EVENT MONITOR)記錄事件發生的數据.106. 系統監控的數据元素類型?計數器(COUNTER)記錄活動發生的次數.測量(GAUGE)測量條目的當前值.水線(WATER MARK)從監控來元素達到的最大或最小數值.信息(INFORMATION)監控活動的參照類型細節.時間點(TIMESTAMP)活動發生的日期時間.時間(TIME)返回一個活動花費的時間.107. 如何知道監控堆所需的頁的數量?(NUMBER OF MONITORING APPLICATIONS+1)*(NUMBER OFDATABASES*(800+(NUMBER OF TABLESACCESSED*20)+((NUMBER OF APPLICATIONS CONNECTED+1)*(200+(NUMBER OF TABLESPACES*100)))))/4096其大小受參數MON_HEAD_SZ控制.108. 如何建立事件監控器?CREATE EVENT MONITOR TABLEMON FOR TABLES WRITE TO FILE ‘D:TEMP‘109. 如何激活事件監控器?SET EVENT MONITOR TABLEMON STATE 1110. 如何停止事件監控器?SET EVENT MONITOR TABLEMON STATE 0111. 如何查詢監控器的狀態?SELECT EVMONNAME,EVENT_MON_STATE(EVMONNAME) FROMSYSCAT.EVENTMONITORS112. 如何刪除事件監控器?DROP EVENT MONITOR TABLEMON113. UNIX和WINDOWS上創建管道事件監控器(PIPE意EVNT見MONITOR)的不同?第一步: 定義事件監控器UNIX:CONNECT TO SAMPLECREATE EVENT MONITOR STMB2 FOR STATEMENTS WRITE TO PIPE‘/TMP/EVPIPE1‘WINDOWS:CONNECT TO SAMPLECREATE EVENT MONITOR STMB2 FOR STATEMENTS WRITE TO PIPE‘.TMPEVPIPE1‘第二步: 建立命名管道UNIX:可以使用MKFIFO()函數或者MKFIFO命令.WINDOWS:可以使用CREATENAMEDPIPE()函數,管道名稱与CREATE EVENT MONITOR規定名稱相同.第三步: 打開命名管道UNIX:使用OPEN()函數.WINDOWS:使用CONNECT NAMEDPIPE()函數.也可以用DB2EVMON命令,如:DB2EVMON -DB SAMPLE -EVM STMB2第四步: 激活命名管道事件監控器除非自動激活命名管道事件監控器,否則SET EVENT MONITOR STMB2 STATE 1第五步: 從命名管道讀取數据UNIX:可以使用READ()函數.WINDOWS:可以使用READFILE()函數.第六步: 停止事件監控器SET EVENT MONITOR STMB2 STATE 0第七步: 關閉命名管道UNIX:可以使用CLOSE()函數.WINDOWS:可以使用DISCONNECTNAMEDPIPE()函數.第八步: 刪除命名管道UNIX:可以使用UNLINK()函數.WINDOWS:可以使用CLOSEHANDLE()函數.114. DB2的SQL語句的類別?DCL: 數据控制語言,提供對數据庫對象的訪問權限.DDL: 數据定義語言,創建,修改,刪除數据庫對象的.DML: 數据操縱語言,用來插入,更新,刪除數据的.115. DCL的權限有哪些?CONTROL權限: 如果用戶創建一個對象,則改用戶能完全訪問該對象. GRANT 語句將權限授予給用戶.REVOKE 語句撤銷一個用戶的權限.116. DDL有哪些?CREATEDECLAREALTERDROP等117. DML有哪些?INSERTSELECTUPDATEDELETE等118. DB2有沒有布爾類型?沒有119. 如何查詢DB2的內置函數?自帶文檔ADMINISTION-->SQL REFERENCE-->FUNCTIONS內120. 如何執行DB2的腳本文件?DB2 -VTF FILENAME121. DB2中象ORACLE的ROWNUM()是?ROW_NUMBER() OVER()122. DB2如何得到錯誤代碼的說明?DB2 ? SQLCODE123. DB2中的VARCHAR轉換為INTEGER的函數為?CAST()124. DB2中的INTEGER轉換為VARCHAR的函數為?CHAR()125. DB2中的VARCHAR轉換為DATE的函數為?DATE()126. DB2中的DATE轉換為VARCHAR的函數為?CHAR()127. DB2中的TRIGGER能否修改?不能,只能刪除重建128. WINDOWS下如何知道DB2的端口號?WINNTSYSTEM32DRIVERSETCSERVICES129. DB2如何執行存儲過程?可以 DB2 CALL PROCEDURE_NAME130. 如何進入DB2的DOS命令方式?DB2CMD131. 如何得到DB2的進程號?DB2 LIST APPLICATIONS132. 如何殺DB2的進程?FORCE APPLICATION(ID)133. A用戶安裝DB2后,如何用B用戶啟動DATABASE?在B用戶下的.PROFILE中加上./HOME/DB2INST/SQLLIB/DB2PROFILE134. DB2中類似ORACLE的快照是?SUMMARY TABLE。

db2锁超时解决方案

db2锁超时解决方案

db2锁超时解决方案DB2是一种关系型数据库管理系统,用于存储和管理大量结构化数据。

在使用DB2时,经常会遇到锁超时的问题。

本文将介绍DB2锁超时的解决方案。

我们需要了解什么是锁超时。

在多用户并发访问数据库的情况下,为了保证数据的一致性和完整性,DB2会对需要修改数据的操作进行加锁。

当一个事务获取了一个锁并且没有释放时,其他事务要修改相同数据就需要等待该锁释放。

如果等待的时间超过了系统设置的锁超时时间,就会发生锁超时。

那么,如何解决DB2锁超时问题呢?1. 优化查询语句:锁超时通常是因为某个事务长时间占用了锁资源,导致其他事务等待超时。

优化查询语句可以减少事务执行时间,从而减少锁资源的占用时间。

可以通过添加索引、优化SQL语句等方式进行优化。

2. 提高锁粒度:锁粒度是指锁的范围,粒度越小,锁的冲突越少。

可以通过调整事务的隔离级别,减少锁的粒度,从而减少锁冲突。

但需要注意的是,锁粒度过小会增加锁的数量,可能会导致性能下降。

3. 使用乐观锁:乐观锁是一种乐观的并发控制方式,不会进行加锁操作,而是在更新数据时比较数据的版本号,如果版本号相同则更新成功,否则更新失败。

乐观锁可以减少锁的冲突,提高并发性能。

4. 分批处理数据:如果需要处理大量数据,并且有可能会引发锁超时问题,可以将数据分批处理,每次处理一部分数据,减少单个事务的执行时间,降低锁冲突的可能性。

5. 设置合理的锁超时时间:可以根据系统的实际情况,设置合理的锁超时时间。

如果锁超时时间设置过短,可能会导致正常的事务因为等待超时而失败;如果锁超时时间设置过长,可能会导致事务等待时间过长,影响系统的响应速度。

需要根据系统的负载情况和性能要求来进行调整。

6. 监控和诊断锁超时问题:通过DB2的性能监控工具,可以实时监控系统的锁超时情况,并对发生锁超时的事务进行诊断。

通过分析诊断信息,可以找到引发锁超时的原因,并进行相应的优化和调整。

DB2锁超时问题是在多用户并发访问数据库时常见的问题。

DB2报错参考解决方案

DB2报错参考解决方案

DB2报错:SQL10007N Message "-1390" could not be retrieved. Reason code:"3"2009-09-22 16:07问题现象:某人安装完DB2 9.7以后,发现db2inst1用户下无法运行一切db2命令,如果跑到d 会给出标题内的错误提示。

分析:开始以为是传统的PATH变量抽风了,后来发现不是。

偶然发现db2ilist可以运行,只是结没有建立instance造成的。

解决:回到root用户,运行db2icrt命令去创建instance,再切回db2inst,一切ok。

当然,不以下是引用了某位兄弟博客里的关于db2 创建instance的,蛮详细的这个问题解决了。

刚接触DB2不久,不知道要运行db2profile正确运行后,OK#find /home -name db2profile搜索出这个文件的路径以后,我的显示如下/home/db2inst1/sqllib/db2profile然后我执行一下这个语句#. /home/db2inst1/sqllib/db2profile这样上面出现的问题就可以解决了,这个文件涉及到了DB2数据库环境变量的问题,在具体的原因我也说不好,请大家在到网上查阅详细资-------------------------------------------------------------------------------------使用db2icrt 创建实例DB2® 实例是用来存储数据和运行应用程序的一种环境。

使用db2icrt 命令来创建实例。

在Linux® 或UNIX® 操作系统上,必须具有root 用户权限。

在Windows® 操作系统上,必须以本地管理员登录。

要使用db2icrt 创建实例:1. 使用适当权限登录。

2. 运行db2icrt 命令。

db2 无效的命令行参数

db2 无效的命令行参数

db2 无效的命令行参数db2是一种常用的数据库管理系统,它提供了丰富的命令行参数供用户进行数据库操作和管理。

然而,在实际使用过程中,有时候会遇到一些无效的命令行参数,这可能会导致操作失败或者产生意想不到的结果。

本文将针对db2的无效命令行参数进行介绍和分析,以帮助用户更好地理解和使用db2。

一、无效的命令行参数是什么?无效的命令行参数指的是在使用db2命令时,输入了不被db2识别或者不支持的参数。

这些参数可能是拼写错误、格式错误、或者是不存在的参数。

无效的命令行参数会导致db2无法正确解析用户的命令,从而无法执行相应的操作。

二、无效的命令行参数的表现形式在使用db2命令时,如果输入了无效的命令行参数,通常会出现以下几种表现形式:1. 命令行提示错误信息:当输入了无效的命令行参数时,db2会提示相应的错误信息,告诉用户输入的参数无效。

例如,当输入了一个不存在的参数时,db2可能会显示类似于“无效的参数”、“未知的参数”等错误信息。

2. 命令行无响应:有时候,当输入了无效的命令行参数时,db2可能会直接忽略这些参数,并且不会给出任何提示。

这种情况下,用户可能会发现命令行没有任何响应,无法得知是否执行成功。

3. 命令行执行异常:在某些情况下,输入无效的命令行参数可能会导致命令行执行异常。

例如,当输入了一个需要指定参数值但未提供的参数时,db2可能会报错并中止执行。

三、常见的无效的命令行参数1. 拼写错误:在输入命令行参数时,如果拼写错误,db2将无法识别这些参数。

例如,当输入了一个正确的参数名但拼写错误时,db2会提示该参数不存在。

2. 格式错误:命令行参数通常有一定的格式要求,如果格式错误,db2将无法解析这些参数。

例如,当输入了一个需要指定参数值但未提供值的参数时,db2会报错。

3. 无效的参数:有时候,用户可能会尝试输入一些不被db2支持的参数。

这些参数可能是过时的、不再被支持的,或者是用户自定义的参数。

DB2之上机操作和问题解决

DB2之上机操作和问题解决

DB2学习笔记DB2上机操作命令1实例相关:查询实例:db2ilist查看当前实例:db2 get instance创建实例:db2icrt instance_name(windows)db2icrt -u fenced_user_IDinstance_name(linux)使用实例:set db2instance=实例名称删除实例:db2idrop -finstance_name迁移实例:db2imigr instance_name更新实例:db2iupdt instance_name连接实例:db2 attach to instance_name断开实例:db2 detach启动实例:db2start关闭实例:db2stop [force]2数据库相关:查询数据库:db2 list database directory [on /home/db2inst1]db2 list active databases创建数据库:db2 create database yzht using codeset ISO8859-1 territory cn pagesize 4096 db2 create database itp using codeset GBK territory cn pagesize 8192db2CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32db2 CREATE DATABASE DB2TEST1 USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM PAGESIZE 4096删除数据库:db2 drop database db_name连接数据库:db2connect to db_name user user_name using password;连接复位:db2 connect reset查看连接:db2 list application for db db_name[show detail]关闭连接:db2 force applications alldb2force application(id1,id2)读数据库管理程序配置:db2 get dbm cfg写数据库管理程序配置:db2 update dbm cfg using 参数名参数值读数据库的配置:db2 get db cfg for db_name写数据库的配置:db2 update db cfg for db_name using 参数名参数值获取数据库的权限:db2GET AUTHORIZATIONS停止启动数据库:db2activate/deactivate db db_name3缓冲池相关:查询缓冲区:db2 SELECT BPNAME FROM SYSCAT.BUFFERPOOLSdb2select BPNAME , NPAGES from sysibm.sysbufferpools 创建缓冲区:db2 create bufferpool bp_name [immediate] size 5000[automatic] pagesize 8k/16k/32kPS: DEFERRED不会立刻激活缓冲池;immediate立即激活32k为缓冲池页大小,这边创建了32*100=3.2m的缓冲池空间修改缓冲池:db2 alter bufferpool bp_name SIZE bp_size删除缓冲池:db2 drop bufferpool bp_name4表空间相关:查询表空间:db2 list tablespaces [show detail]db2pd -tablespaces –db db_namedb2listtablespace containers for tbs_id show detail创建表空间:db2 CREATE REGULAR TABLESPACE tp_name PAGESIZE 4K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL bp_namedb2CREATE [SYSTEM/USER] [TEMPORARY]TABLESPACE tp_name IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/exoa2/exoacontainer32k') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL bp_name OVERHEAD 24.10 TRANSFERRATE 0.90DROPPED TABLE RECOVERY OFF;GRANT USE OF TABLESPACE tp_nameTO PUBLIC;PS:create tablespace datatblsp pagesize 32Kmanaged by databaseusing (device '/dev/rdata0' 30720M ,device '/dev/rdata1' 30720M ,)extentsize 8 prefetchsize 48bufferpool databp;device:指的是设备路径。

db2错误总结

db2错误总结
2
db2 => connect to ESBDBDB
SQL0956C Notenough storage is available in the database heap to process the statement. SQLSTATE=57011
db2 => ?sql0956cSQL0956C数据库堆中没有足够的存储器可用来处理语句。说明:使用了数据库的所有可用内存。不能处理该语句。用户响应:接收到此消息时,终止应用程序。增大数据库配置参数dbheap的值以允许更大的数据库堆。如果I/O服务器数接近最高限制,那么减小此数目可能也会有所帮助。如果dbheap数据库配置参数已设置为AUTOMATIC,您将需要增大DATABASE_MEMORY数据库配置设置的值,或者增大INSTANCE_MEMORY数据库管理器配置设置的值。更新配置参数时,建议更改这些参数的值。每次将它们增大当前大小的10%,直到错误情况得到解决为止。要更改dbheap,请输入一个类似如下的命令,该命令对数据库样本将dbheap设置为2400:db2 UPDATE DB CFG FOR sample USING DBHEAP 2400要在已与数据库断开连接的情况下更改dbheap,请输入一个类似如下的命令:db2 CONNECT RESET;db2 UPDATE DB CFG FOR sample USING DBHEAP 2400如果所有相关联的配置参数都设置为AUTOMATIC或COMPUTED,那么实例的内存需求将超过机器上配置的内存量。可以采用的解决方案包括减少数据库工作负载、启用连接集中器功能部件或者向机器添加更多内存。
序号错误描述处源自步骤备注1命令1:db2 => db2start
SQL1032N Nostart database manager command was issued. SQLSTATE=57019

DB2故障处理的解决办法

DB2故障处理的解决办法

解决问题的关键在于分清问题的种类,并清楚每种问题的解决办法。

另外很多的数据库的问题都是由于错误的操作,错误的配置引起的,所以本文在解释怎么样处理问题时也会给出一些好的建议,来避免产生问题。

本文重点介绍实用的方法。

对问题的分类有很多种方法,在本文中我我采用了两种分类方案。

第一种方案是是否有错误码。

即发生错误时是否同时返回了错误码,错误码既包括执行命令的返回码,也包扩应用程序的返回码。

有返回码的错误解决方案是,在db2 CLP中运行db2?SQLXXXX,然后根据对该问题的解释采取相应的解决方案。

对没有错误码的问题,如数据库hang,CPU使用率过高等问题,解决问题的经验将非常重要,在本文中会有详细的说明。

根据错误码解决问题举例(在下文中,再出现需要用这种方法解决问题时将不再重复):如在连接数据库时发生错误db2 connect to sampleSQL0332N There is no available conversion for the source codepage"1386" tothe target code page "819". Reason Code "1". SQLSTATE=57017错误码分为返回码(SQL0332N)和原因码(Reason Code "1"),针对不同的原因码有不同的解决方案运行db2 ? sql0332从输出种可以看到对于reason code 1的解释是……1 source and target code page combination is not supported bythedatabase manager.……所以可以通过设置代码页来解决这个问题db2set db2codepage=1386db2 terminatedb2 connect to sample就可以成功连接了。

DB2常见错误及解决办法

DB2常见错误及解决办法
原因:DB2 UTIL_HEAP_SZ 未设置得足够高以用于备份实用程序。
解决办法:db2 update db cfg for dbname using UTIL_HEAP_SZ 具体的数字(db2备份使用的内存是UTIL_HEAP_SZ,请使用以上命令调整)。
7、用JDBC往表批量插入数据时。报23502错误。如:
DB2常见错误及解决办法
文章分类:数据库
1、创建数据库的时候,报42704错误。如:
Sql代码
=>create database test
=>SQL0204N "SYSTEM_1386_US" is an undefined name. SQLSTATE=42704
解决办法:
解决办法:查看表定义,加大字段长度。
9、用JDBC往表批量插入数据时。报-4474错误。如:
Sql代码
非法转换:不能从“ng.String”转换到“byte[]” ERRORCODE=-4474, SQLSTATE=null
原因:表中某字段定义为‘ID CHAR(16) FOR BIT DATA NOT NULL’(这个是使用MTK从MS SQL迁移到DB2时,uniqueidentifier转换成的)。
Contents = Any data
State = 0x0020
Detailed explanation:
Backup pending
原因:在归档的数据库做过load或者改了参数重新启动了db
Sql代码
Error for batch element #0: DB2 SQL error: SQLCODE: -407, SQLSTATE: 23502, SQLERRMC: TBSPACEID=2, TABLEID=15, COLNO=2

db2 超过最大连接请求数

db2 超过最大连接请求数

db2 超过最大连接请求数当我们在使用DB2数据库时,有时候会遇到一个问题:超过最大连接请求数。

这个问题是由于数据库连接数达到了DB2所设定的最大连接请求数限制而导致的。

在这种情况下,我们需要了解一些相关的知识和解决方法。

首先,我们需要明白什么是数据库连接数。

数据库连接数是指数据库服务器同时能够接受的连接请求数量。

当数据库连接数超过了设定的最大连接请求数限制时,就会出现“超过最大连接请求数”的错误。

解决这个问题的方法有几种。

首先,我们可以通过查看数据库的当前连接数和最大连接数来确认是否超过了限制。

我们可以使用以下SQL语句来查看当前连接数:```select count(*) as total_connectionsfrom sysibmadm.snapdb;```然后,我们可以通过以下SQL语句来查看数据库的最大连接数限制:```select dbcfg('MAXAPPLS') as max_connectionsfrom sysibmadm.dbcfg;```如果我们发现数据库连接数已经超过了最大连接请求数限制,我们可以采取以下几种方法来解决这个问题:1. 增加最大连接请求数限制:我们可以通过修改数据库配置参数来增加最大连接请求数限制。

我们可以使用以下SQL语句来修改最大连接请求数限制:```update db cfg for <database_name> using MAXAPPLS <new_max_connections>;```2. 优化连接池:我们可以通过优化连接池来减少连接数,提高连接的重用率。

我们可以将连接的最大寿命和空闲连接的回收时间设置得更合理,以减少连接数。

3. 检查应用程序连接数:我们可以检查应用程序的连接数是否过多,如果是,我们可以优化应用程序的连接管理,减少连接数。

总的来说,当我们遇到“超过最大连接请求数”的问题时,我们可以通过查看连接数、修改最大连接请求数限制、优化连接池和检查应用程序连接数来解决这个问题。

记录一次问题解决:DB2死锁解决办法(SQLCODE=-911,SQLSTATE=40001)

记录一次问题解决:DB2死锁解决办法(SQLCODE=-911,SQLSTATE=40001)

记录⼀次问题解决:DB2死锁解决办法(SQLCODE=-
911,SQLSTATE=40001)
(DB2的数据库)在做update更新的时候,发⽣了死锁。

后台报的错误为:SQLCODE=-911, SQLSTATE=40001
---------------------------------------
SQLCODE=-911, SQLSTATE=40001 错误的原因:是在执⾏update语句的时候发⽣了死锁
SQLCODE=-911, SQLSTATE=40001 解决⽅法:
---------------------------------------
然后我在CSDN上看到⼀个解决办法,成功搞定死锁
db2 命令⾏:
1、⽤管理员⽤户登录:db2 connect to 你的数据库名 user ⽤户名 using 密码
2、db2 "get snapshot for locks on 数据库名"
-------上⾯语句执⾏完成以后,你可以找到下⾯⼀段⽂字
应⽤程序句柄 = 689
应⽤程序标识 = *LOCAL.DB2.120711101108
序号 = 00001
应⽤程序名 = javaw.exe
CONNECT 授权标识 = DB2ADMIN
应⽤程序状态 = UOW 正在等待
3、db2 "force application(689)" 689就是上⾯查询出来的应⽤程序句柄
杀掉死锁进程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.db2常用命令大全EXPORT TO D:\PRINTXML.IXF OF IXF近一年来在项目开发中使用到了IBM的DB2 9.1的数据库产品,跟Oracle 相比一些命令有很大的区别,而它最大的功能是支持xml存储、检索机制,通过XPath进行解析操作,使开发人员免于对xml文件在应用进行解析处理,先对其常用命令进行一下汇总,以免遗忘。

注意:在执行如下命令时,需要首先安装db2客户端并通过在运行中输入db2cmd进行初始化一、基础篇1、connect to <数据库名> --连接到本地数据库名db2 connect to <数据库名> user <用户名> using <密码> --连接到远端数据库2、force application all --强迫所有应用断开数据库连接3、db2 backupdb db2name<数据库名称> --备份整个数据库数据db2 restore db<db2name> --还原数据库4、list application --查看所有连接(需要连接到具体数据库才能查看)5、db2start --启动数据库db2stop --停止数据库6、create database <数据库名> using codeset utf-8 territory CN --创建数据库使用utf-8编码7、db2 catalog 命令catalog tcpip node <接点名称> remote <远程数据库地址> server <端口号> --把远程数据库映射到本地接点一般为50000db2 catalog db<远程数据库名称> as <接点名称> at node PUB11 --远程数据库名称到本地接点db2 CONNECT TO <接点名称> user <用户名> using <密码> --连接本地接点访问远程数据库8、数据库导出db2look -d <数据库名> -u <用户> -e -o <脚本名称>.sql --导出数据库的表结构,其中用户空间一般为db2admin/db2inst1db2look -d <数据库名> -u <用户> -t <表1><表2> -e -o <脚本名称>.sql --导出数据库中表1和表2的表结构db2move <数据库名> export --导出数据库数据db2move <数据库名> export -tn<表1>,<表2> --导出数据库中表和表数据9、数据库导入db2 -tvf<脚本名称>.sql --把上述导出的表结构导入到数据库表结构db2move <数据库名> load -lo replace --把上述“db2move <数据库名> export “导出的数据导入到数据库中并把相同的数据替换掉在实际使用过程中,如果用到db2自增主键,需要使用by default,而不是always,功能是一样的,但这样在数据移植时候会很方便!10、db2 connect reset 或db2 terminate --断开与数据库的连接11、db2set db2codepage=1208 --修改页编码为120812、db2 describe table <表名> --查看表结构13、db2 list tables --查看数据库中所有表结构list tables for system --列出所有系统表14、db2 list tablespaces --列出表空间二、高级篇15、fetch first 10 rows only --列出表中前10条数据例如:select * from <表名> fetch first 10 rows only16、coalesce(字段名,转换后的值) --对是null的字段进行值转换例如:select coalesce(id,1) from <表名>--对表中id如果为null转换成117、dayofweek(日期) --计算出日期中是周几(1是周日,2是周一 (7)是周六)dayofweek_iso --计算出日期中是周几(1是周一.......7是周日)例如:dayofweek(date(2008-01-16)) --它会返回是4,代表星期三dayofweek_iso(date(2008-01-16)) --它会返回是3,代表星期三18、dayofyear(日期) --一年中的第几天,范围在1-366范围之内注意:参数中日期的格式是YYYY-MM-DD的形式,如果不是需要进行转换,否则函数不能使用例如:日期是20080116必须要进行转换dayofweek(concat(concat(concat(substr(openDate,1,4),'-'),concat(substr(openDat e,5,2),'-')),substr(openDate,7,2))) as week)这样格式正确的。

19、concatt(参数1,连接值) --把参数1加上连接值组成一个新值。

例如:concat('aa','b') --返回是aab把oracle表导入到db2数据库中,有些字段类型需要进行转换,具体看:oracle 与db2数据类型转换启动DB2服务:db2start关闭DB2服务: db2stop一、加载数据:1、以默认分隔符加载,默认为“,”号db2 "import from btpoper.txt of del insert into btpoper"2、以指定分隔符“|”加载db2 "import from btpoper.txt of del modified by coldel| insert into btpoper"二、卸载数据:1、卸载一个表中全部数据db2 "export to btpoper.txt of del select * from btpoper"db2 "export to btpoper.txt of del modified by coldel| select * from btpoper"2、带条件卸载一个表中数据db2 "export to btpoper.txt of del select * from btpoper where brhid='907020000'"db2 "export to cmmcode.txt of del select * from cmmcode where codtp='01'"db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode where codtp='01'"三、查询数据结构及数据:db2 "select * from btpoper"db2 "select * from btpoper where brhid='907020000' and oprid='0001'"db2 "select oprid,oprnm,brhid,passwd from btpoper"四、删除表中数据:db2 "delete from btpoper"db2 "delete from btpoper where brhid='907020000' or brhid='907010000'"五、修改表中数据:db2 "update svmmst set prtlines=0 where brhid='907010000' and jobtp='02'"db2 "update svmmst set prtlines=0 where jobtp='02' or jobtp='03'"六、联接数据库db2 connect to btpdbs七、清除数据库联接db2 connect reset 断开数据库连接db2 terminate 断开数据库连接db2 force applications all 断开所有数据库连接八、备份数据库1、db2 backup dbbtpdbs2、db2move btpdbs exportdb2look -d btpdbs -e -x [-a] -o crttbl.sql九、恢复数据库1、db2 restore dbbtpdbs without rolling forward2、db2 -tvfcrtdb.sqlcrtdb.sql文件内容:createdbbtpdbs on /db2catalogdb2 -stvfcrttbl.sqldb2movebtpdbs import十、DB2帮助命令:db2 ?db2 ?restroedb2 ?sqlcode (例:db2 ? sql0803) 注:code必须为4位数,不够4位,前面补0十一、bind命令:将应用程序与数据库作一捆绑,每次恢复数据库后,建议都要做一次bind(1) db2 bind br8200.bnd(2) /btp/bin/bndall /btp/bnd/btp/bin/bndall /btp/tran/bnd十二、查看数据库参数:db2 get dbmcfgdb2 get dbcfg for btpdbs十三、修改数据库参数:db2 update dbcfg for btpdbs using LOGBUFSZ 20db2 update dbcfg for btpdbs using LOGFILSIZ 5120改完后,应执行以下命令使其生效:db2 stopdb2 start补充:db2 set schema btp修改当前模式为"btp"db2 list tablespaces show detail 查看当前数据库表空间分配状况db2 list tablespace containers for 2 show detail 查看tablespace id=2使用容器所在目录db2 list applicationdb2 list db directory 列出所有数据库db2 list active databases 列出所有活动的数据库db2 list tables for all 列出当前数据库下所有的表db2 list tables for schema btp列出当前数据库中schema为btp的表db2 list tablespaces show detail 显示数据库空间使用情况db2 list packages for alldb2 "import from tab76.ixf of ixfcommitcount 5000 insert into achact"db2 "create table achact_t like achact"db2 "rename table achact_t to achact"db2 "insert into achact_t select * from achact where txndt>=(select lstpgdt fromacmact where actno=achact.actno)"db2 get snapshot for dynaimicsql on jining删除一个实例:# cd /usr/lpp/db2_07_01/instance# ./db2idrop InstName列出所有DB2实例:# cd /usr/lpp/db2_07_01/bin# ./db2ilist为数据库建立编目$ db2 catalog dbbtpdbs on /db2catalog取消已编目的数据库btpdbs$ db2 uncatalogdbbtpdbs查看版本# db2level显示当前数据库管理实例$ db2 get instance设置实例系统启动时是否自动启动。

相关文档
最新文档