先定位一下是哪个程序句柄导致的死锁。
方法一、查看db2diaglog文件
找到DeadLock or Lock timeout 死锁或锁超时信息
db2 force application(句柄ID)
直接结束进程即可。
方法二、DB2快照信息
1、看一下DB2快照信息
db2 get snapshot for locks on sample
可以得到类似信息:
数据库锁定快照
数据库名称 = SAMPLE
数据库路径 = D:\IBM\DB2\NODE0000\SQL00001\
输入数据库别名 = SAMPLE
挂起的锁定 = 8
当前已连接的应用程序 = 2
当前正等待锁定的代理程序数 = 1
应用程序句柄 = 54
应用程序标识 = LOCALDB2140304192925
序号 = 00001
应用程序名 = db2bpexe CONNECT
授权标识 = DB2ADMIN
应用程序状态 = 锁定等待
应用程序代码页 = 1208
挂起的锁定 = 4
总计等待时间(毫秒) = 247867
锁定列表
锁定名称 = 0x5359534C564C3031DDECEF2841
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 2312
对象类型 = 行
表空间名 = IBMDB2SAMPLEREL
表模式 = DB2ADMIN
表名 = TEST
方式 = IX
查看锁定的详细信息:db2 get snapshot for locks for application agentid 1728
----(1728是句柄ID)
3、观察命令db2 list applications的输出
查看应用程序的状态是否有锁定等待(Lock-wait)状态出现。
执行命令 list applications for db sample show detail;
4、db2 force application(句柄ID)
直接结束进程即可。
在一个DB2 实例下,可以创建多个database(具体每个实例下可以创建多少个database,可以通过DB2 GET DBM CFG查看一旦建立了数据库之后,就可以对其进行 *** 作,然而,在向数据库中建立对象或访问数据库中的对象(数据)之前,必须先知道如何启动和停止数据库
本小节简单介绍了db2 database通过command line的方式如何实现启动和停止
激活数据库
如果在database没有激活之前,就在应用中使用connect to database_name或隐式连接,那么应用就必须要进行等待,知道数据库管理器启动了你要连接的数据库一般第一个应用会引发等待数据库管理器执行数据库启动的所有开销
我们也可以使用activate database database_name这样的命令启动特定的数据库这个命令就会免除第一个应用程序连接上来的时候等候数据库初始化所花费的时间。一般情况下,DB2 DBA会提前激活所有必要的数据库
注意:1)如果发出activate database命令的应用已经与一个database建立了活动的数据库连接,就回返回错误消息
2)如果需要重新启动(restart)的数据库接受了一个activate database命令,那么这个activate database命令就会象connect to 或隐式连接一样工作
3)如果数据库配置了
启用的自动重新启动 (AUTORESTART) = ON
那么在activate database命令对其初始化之前,数据库会重新启动
察看指定数据库的配置参数
--默认
DB2 GET DB CFG FOR study
--分屏显示
DB2 GET DB CFG FOR study | More
--将显示结果存入studytxt 文件中
DB2 GET DB CFG FOR study > studytxt
下面是一个示例,我在当前DB2实例下,创建了3个database,我利用activate命令挨个将他们激活
D:DB2BIN>db2 db2start
DB20000I DB2START命令成功完成。
D:DB2BIN>db2 list database directory
系统数据库目录
目录中的条目数 = 3
数据库 1 条目:
数据库别名 = TEST
数据库名称 = TEST
本地数据库目录 = D:DB2test
数据库发行版级别 = c00
注释 = test
目录条目类型 = 间接
目录数据库分区号 = 0
备用服务器主机名 =
备用服务器端口号 =
数据库 2 条目:
数据库别名 = BANK
数据库名称 = BANK
本地数据库目录 = D:db2bank
数据库发行版级别 = c00
注释 = bank
目录条目类型 = 间接
目录数据库分区号 = 0
备用服务器主机名 =
备用服务器端口号 =
数据库 3 条目:
数据库别名 = STUDY
数据库名称 = STUDY
本地数据库目录 = D:db2study
数据库发行版级别 = c00
注释 = STUDY
目录条目类型 = 间接
目录数据库分区号 = 0
备用服务器主机名 =
备用服务器端口号 =
D:DB2BIN>db2 list active databases
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>db2 activate database study
DB20000I ACTIVATE DATABASE命令成功完成。
D:DB2BIN>db2 list active databases
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
D:DB2BIN>db2 activate database bank
DB20000I ACTIVATE DATABASE命令成功完成。
D:DB2BIN>db2 list active databases
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
数据库名称 = BANK
当前连接的应用程序 = 0
数据库路径 = D:db2bankDB2NODE0000SQL00001
D:DB2BIN>db2 activate database test
DB20000I ACTIVATE DATABASE命令成功完成。
D:DB2BIN>db2 list active databases
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
数据库名称 = BANK
当前连接的应用程序 = 0
数据库路径 = D:db2bankDB2NODE0000SQL00001
数据库名称 = TEST
当前连接的应用程序 = 0
数据库路径 = D:DB2testDB2NODE0000SQL00001
D:DB2BIN>停止数据库
由activate database命令初始化的数据库可以由deactivate database命令关闭,也可以通过stop database manager(或db2stop)命令终止数据库管理器来关闭
如果使用activate
database命令初始化一个数据库,那么最后一个与数据库断开连接的应用就不会关闭数据库必须要使用deactivate
database在这种情况下,stop database manager(或db2stop)会关闭数据库,也会终止实例
如果使用connect
to 或隐式地连接启动数据库,然后再由另外一个应用对相同的数据库发出activate database命令,那么就必须使用deactivate
database命令关闭数据库如果没有使用activate
database启动数据库,那么当最后一个应用断开与数据库连接的时候,数据库就会关闭
示例一:使用connect to方式启动的数据库
D:DB2BIN>db2 list active databases
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>db2 connect to study --连接到study数据库,将自动激活study数据库
数据库连接信息
数据库服务器 = DB2/NT 950
SQL 授权标识 = ZHANGRP
本地数据库别名 = STUDY
D:DB2BIN>db2 list active databases
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 1
数据库路径 = D:db2studyDB2NODE0000SQL00001
说明:数据库被激活,并有一个应用连接上来(就上面的connect to study *** 作)
D:DB2BIN>db2 connect reset --断开连接
DB20000I SQL命令成功完成。
D:DB2BIN>
D:DB2BIN>db2 list active databases
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>
说明:可以发现,上面的连接断开后,数据库study也自动停止(因为这个study数据库是通过connect to 的方式激活的)
示例二:使用activate database方式启动的数据库
D:DB2BIN>db2 list active databases --这个时候没有启动的数据库
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>db2 activate database study --用activate database激活study数据库
DB20000I ACTIVATE DATABASE命令成功完成。
D:DB2BIN>db2 list active databases --可以看到study数据已经激活,但没有应用连接上来
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
D:DB2BIN>db2 connect to study --发起一个连接到study数据库
数据库连接信息
数据库服务器 = DB2/NT 950
SQL 授权标识 = ZHANGRP
本地数据库别名 = STUDY
D:DB2BIN>db2 list active databases --再看一下活动的数据库,发现study 数据库上有一个应用连接上来了
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 1
数据库路径 = D:db2studyDB2NODE0000SQL00001
D:DB2BIN>db2 connect reset --关闭刚才那个连接,看看数据库是不是会自动关闭
DB20000I SQL命令成功完成。
D:DB2BIN>db2 list active databases --数据库依然启动,虽然没有了任何连接
活动数据库
数据库名称 = STUDY
当前连接的应用程序 = 0
数据库路径 = D:db2studyDB2NODE0000SQL00001
D:DB2BIN>db2 deactivate database study --使用deactivate database命令关闭数据库
DB20000I DEACTIVATE DATABASE命令成功完成。
D:DB2BIN>
D:DB2BIN>db2 list active databases
SQL1611W “数据库系统监视器”没有返回任何数据。
D:DB2BIN>
找到命令行dbcmd打开电脑,进入电脑 *** 作系统,使用快捷键组合WIN+R键可以直接打开运行,输入dbcmd命令行,即可直接打开db2命令行dbcmd。
使用db2start启动db2数据库通过以上方法,在电脑中找到db2命令行db50pxd后,点击确定或者直接点击回车键,进入命令行db50pxd的运行程序界面。在db50pxd运行界面中,输入db2start,开始启动db2数据库。
完成db2数据库的启动在dbcmd运行界面中,输入db2start,开始启动db2数据库,等待系统启动db2数据库。系统启动db2数据库的时间由当前电脑或者服务器的配置确定。
使用create database命令创建数据库待系统启动db2数据库完成后,就可以开始使用db2创建数据库命令进行创建db2数据库了。在dbcmd中,输入:“db2 create database 数据库名”开始创建db2数据库。
db2数据库的创建在dbcmd运行界面中,输入:“db2 create database 数据库名”后,点击回车就可以开始创建db2数据库了,等待db2数据库创建完成。db2数据库创建时间由当前电脑或者服务器的配置决定。
连接db2数据库使用“db2 create database 数据库名”db2命令创建完成db2数据库后,就可以使用“db2 connect to 数据库名”进行连接刚才创建的数据库了,如果可以连接上数据库,就说明数据库可以正常使用了。db2数据库 db2创建数据库 db2命令创建数据库就为大家分享到这。
新建java工程
在java代码中输入如下代码
importjavasql;
publicclassDB2conn{
/设置参数/
privatestaticConnectionconn=null;
privatestaticStatementstmt=null;
privatestaticResultSetrs=null;
/构造方法,链接数据库/
publicDB2conn(){
try{
Systemoutprintln("正在连接数据库");
ClassforName("comibmdb2jDB2Driver");//加载mysql驱动程序类
Stringurl="jdbc:db2://localhost:50000/toolsdb";//url为连接字符串
Stringuser="db2admin";//数据库用户名
Stringpwd="1234";//数据库密码
conn=(Connection)(url,user,pwd);
Systemoutprintln("数据库连接成功!!!");
}catch(Exceptione){
Systemoutprintln(egetMessage());
//e();
}
}
publicstaticvoidmain(String[]args)throws{
DB2conna=newDB2conn();//实例化对象,作用是调用构造方法
agetClass();//无意义
/查询语句/
Stringsql="selectfromperson";
stmt=(Statement)conn();
stmtexecute(sql);//执行select语句用()方法,执行insert、update、delete语句用()方法。
rs=(ResultSet)stmt();
while(rsnext()){//当前记录指针移动到下一条记录上
inti=rsgetInt(1);//得到当前记录的第一个字段(id)的值
Stringname=rsgetString(2);//得到第二个字段(name)的值
Stringpsw=rsgetString("ppassword");//得到(password)的值
Systemoutprintln(IntegertoString(i)""name""psw);
}
rsclose();//后定义,先关闭
stmtclose();
connclose();//先定义,后关闭
}
}
SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制
DB2是IBM出口的一系列关系型数据库管理系统,分别在不同的 *** 作系统平台上服务。虽然DB2产品是基于UNIX的系统和个人计算机 *** 作系统,在基于UNIX系统和微软在windows系统下的Access方面,DB2追寻了ORACLE的数据库产品。
这款新型数据服务器率先实现了可扩展标记语言(XML)和关系数据间无缝交互,而无需考虑数据的格式、平台或位置。来自8个国家的750多名软件开发人员为“Viper”的问世做出了努力,他们进行了精心设计和调试,力求将其打造成SOA环境下的首选信息引擎 DB2 9取得了十项重大进步,包括已获得专利的“pureXML”技术、突破性的“Venom”存储压缩以及增强的自动化数据管理能力等。
1、新的XML特性:
在无需重新定义XML数据的格式,或将其置于数据库大型对象中的前提下,IBM DB2 9允许用户无缝管理普通关系数据和纯XML数据。此项能力是Viper所独有的,它将有助于客户增加其信息的实用性、速度和多功能性,同时大大降低与现有数据管理技术相关的管理成本。它还将显著降低复杂性,并减少普通开发商创建“同时访问关系数据和XML数据的应用”所花费的时间。
新的XML数据类型,允许客户在分层的表格栏中存储规范的XML文档。
支持SQL语句及SQL/XML函数中的XML数据类型。
支持由万维网联盟(W3C)开发的新XQuery语言。IBM DB2 9允许客户直接调用XQuery语言,调用功能可以从DB2表格与视图中提取XML数据。
支持XML数据的检索功能,提高了针对XML文档的查询效率。
为支持DB2的编程程序语言中的XML提供支持,允许应用整合对XML及关系型数据的访问和存储。
2、新的应用与开发特性:
对应用开发工具和原生XML数据存储新特性的支持,允许应用访问和存储XML及相关数据。
DB2 Developer Workbench是一种综合开发环境,可用于创建、编辑、调试、测试和部署DB2存储流程和用户自定义的功能。客户还可以使用Developer Workbench开发SQL应用,创建、编辑和运行SQL语句与XML查询。
面向JDBC和SQLJ的增强型DB2驱动程序符合JDBC 30规范,它还同时支持SQLJ语句。
SQLJ语句的功能特性与大多数JDBC方法相似。
此外,还包括其它重要特性:支持众多新数据类型、DB2独有的支持到面向z/OS 数据服务器IBM DB2 9版可靠连接的方式、异构组合、连接重用等。除支持Visual Studio 2005以外,还包括对Web服务的支持,对本地XML数据存储的全面支持,以及无需编写代码就可以构建应用及Web站点的能力。增强型DB2 Runtime Client支持64位计算,还可在同一台计算机上与其它DB2产品共存。
3、新增自动数据库管理功能:
适应性、自调式内存分配,通过不断更新配置参数、调整缓冲池大小和动态分配可用的内存资源,帮助用户简化或排除DB2服务器的配置工作。面向z/OS对象的DB2 UDB自动状态检测功能,允许客户通过控制中心的创建和变更对象策略向导,使面向z/OS对象的DB2 UDB实现对象维护策略评估自动化。
自动存储支持,可以自动扩充磁盘和文件系统中数据库的大小,现在可用于多分区数据库。
自动统计数据收集,创建新数据库时会自动启动。
根据DB2数据库系统的环境特点,自动配置prefetchers进程与页清洁器。
面向自动表格与索引重组的新策略选项,为数据库管理员提供更多管理表格与索引重组的功能。
4、性能与可扩展性增强(存储压缩等):
利用数据行压缩技术压缩数据对象的功能,可以帮助客户节省磁盘存储空间,并加快数据访问速度。
统计数据视图,为改进查询功能提供更出色的访问计划。
使用定制的脚本或程序加快数据载入速度。
增强型物化查询表(MQT)可为设计MQT提供更强大地支持,更出色的查询性能和更完善的MQT维护。
更大的记录标识符(RID)允许每个对象拥有更多数据页,系统中每页拥有更多记录,一方面为数据库管理员使用系统和用户的临时表格提供了便利,另一方面也便于执行分类和登录 *** 作。
索引的关键字最多可达64组,大小可以扩充至8 KB。
5、新的安全特性与增强:
使用基于标签的访问控制(LBAC),改进行、列级别的数据访问控制功能。
新安全管理器(SECADM)的授权级别,将若干个与安全性相关的优先权集中到一项优先权名下,提高了对于访问信息资产的控制。
“创建数据库”语句中新增的“限制”选项,增强了对进入数据库的控制。
SETSESSIONUSER优先权加强了对拥有转换会话用户身份权力的人的控制。它允许掌握该项权力的人转换为任何被赋予权利的授权ID。
TRANSFER OWNERSHIP SQL语句,提供了改变数据库对象的归属权的能力。
6、使用表格分区改进大型数据库管理:
表格分区是一种数据组织计划,在该计划中,表格数据根据多个表格列,被划分到多个被称为表格分区或范围的存储对象中。这些存储对象可能存放在不同的表空间或相同的表空间中,或两种情况兼而有之。此项新特性的优势包括:
能够创建非常大的表格。分区表格包含的数据远远超过了普通表格。将表格数据划分到众多存储对象中,有助于显著增加表格尺寸。
更灵活的管理能力。现在,客户可以在个别数据分区中完成管理工作,将消耗时间的维护 *** 作分成一系列小型 *** 作。
更加精确地控制索引位置。客户可以将索引放置在不同的表空间,分别对其进行管理。
快速、轻松地访问数据或转出数据。这一功能在数据仓库环境中尤为有用,客户经常在此环境中移入或移出数据,运行支持决策的查询。
改进的查询功能。通过表格分区分离数据,避免对不相关数据进行扫描,从而改进查询处理的功能。
7、数据恢复增强:
重新启动中断的恢复 *** 作,可以在数据库恢复时节省宝贵的时间,同时简化恢复工作。
支持重定向恢复 *** 作,在现有备份镜像中自动生成脚本。
能够从表空间备份镜像中重新构建数据库。此项功能让DB2的恢复更加灵活和多样化,同时为客户提供更全面的恢复解决方案。
8、自主管理性能增强:
使用适应性、自调内存分配简化了内存管理。自调内存提供动态配置,能对工作负载特性的重大变化做出积极响应。
客户创建数据库时,自动统计数据收集功能会自动启动。凭借自动统计数据收集,IBM DB2 9版自动在后台运行RUNSTATS实用程序,确保收集到正确的统计数据,并进行维护。
面向多分区数据库的自动存储支持。这一功能可以按照需求,自动扩大磁盘和文件系统中数据库的容量。
ALTER TABLE语句增强允许客户无需停止或重新创建表格,就可以改变部分表格的属性。
新的策略选项为数据库管理员提供了新的表格和索引自动重组功能。
可以拷贝数据库计划,创建模块方案。一旦数据库管理员创建了模块方案,他们就可将其作为创建新视图的模板。
新的管理SQL例程和视图提供了基本、易用的可编程界面,便于借助SQL来管理DB2。
动态快速通信管理器(FCM)缓冲和新的配置参数,可通过DB2数据库管理器进行自动调节。
9、安装性能增强:
新的CLI驱动程序(面向ODBC和CLI的IBM DB2驱动程序),客户可以在不安装DB2客户端软件的情况下安装此驱动程序。
更加灵活、有效的产品授权管理
可以在同一台计算机上安装多个DB2版本和修补包。
新的响应文件关键字允许IT员工无需与最终用户交互安装DB2产品。
自动演进 — 从Stinger到Viper
基于第82版推出的增强功能,IBM DB2 9版中新的自动数据管理特性将继续帮助提高数据库管理员的生产效率和效用。
其中一些关键特性包括:
适应性、自调内存分配功能此项新功能通过不断更新配置参数和重新调整缓冲池的大小,简化或排除了DB2服务器的配置工作。一旦启动,该功能可在不同内存消耗点之间,动态分配可用的内存资源。在Windows和AIX *** 作系统中,自调内存功能也可以确定数据库内存总体需求,并会自动调节数据库共享内存。
面向 z/OS对象的DB2 UDB自动状态监测功能 通过控制中心的创建和变更对象策略向导,客户可以实现面向z/OS对象的DB2 UDB对象维护策略评估的自动化,从而可使其按照预定次数和时间间隔运行。对创建了策略警报的对象而言,警报通知会发送至对象维护策略指定的状况警报联系处。
自动存储支持 自动存储可以自动扩大磁盘与文件系统中数据库的容量。它消除了对管理存储器的需求,同时利用了数据库管理存储的性能和灵活性。在IBM DB2 9版中,已经添加了面向多分区数据库的自动存储功能。此外,在创建新数据库时,自动存储会自动启动。
自动统计数据收集 在IBM DB2 9版中,当创建新数据库时,使用RUNSTATS命令的自动统计数据收集功能会自动启动。必要时,DB2服务器会在后台处理中收集数据的统计信息。
DB2优化器(DB2 optimizer)利用这些信息对数据库中的信息最有效地恢复。
prefetchers进程和页清洁器的自动配置 在IBM DB2 9版中,prefetchers进程与页清洁器的数量可由DB2数据库系统根据某些环境特性,如CPU的数量、数据库分区的数量和数据库表空间的并行设置,自动确定。
表格与索引自动重组功能增强 表格与索引重组的新策略选项,为数据库管理员提供了更丰富的表格与索引重组管理功能。
以上就是关于DB2数据库中排序码字段的初始化怎样做全部的内容,包括:DB2数据库中排序码字段的初始化怎样做、如何启动DB2数据库管理器、db2创建数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)