×

db2 数据库

如何搭建db2数据库?db2常用命令

admin admin 发表于2022-09-03 10:24:21 浏览200 评论0

抢沙发发表评论

本文目录

如何搭建db2数据库


1.找到命令行dbcmd 打开电脑,进入电脑操作系统,使用快捷键组合WIN+R...
2.使用db2start启动db2数据库 通过以上方法,在电脑中找到db2命令行db50p...
3.完成db2数据库的启动 在dbcmd运行界面中,输入db2start,开始启动d...
4.使用create database命令创建数据库 待系统启动db2数据库完成后,...
5.db2数据库的创建 在dbcmd运行界面中,输入:“db2 create datab..

db2常用命令


操作数据库命令

1、 启动数据库实例

  #db2start

2、 停止数据库实例

  #db2stop

  如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all就可以了 /db2stop force

3、 创建数据库

  #db2 create db [dbname]

4、 连接到数据库

  #db2 connect to [dbname] user[username] using [password]

5、 断开数据库连接

  #db2 connect reset

操作数据表命令

1、 列出所有用户表

  #db2 list tables

2、列出所有系统表

 #db2 list tables for system

3、列出所有表

  #db2 list tables for all

4、 列出系统表

  #db2 list tables for system

5、列出用户表

  #db2 list tables for user

6、 列出特定用户表

  #db2 list tables for schema[user] 

参考资料来源:百度百科—DB2


DB2与oracle有什么区别


1、体系结构,DB2的实例和数据库分开的做法,我个人还是比较喜欢的,因为实例可以创建多个,数据库的恢复直接恢复到实例下就可以了,相对ORACLE简单多了。
2、管理工具,DB2的管理工具做得太简陋了,控制中心只能说能用而已,而且还有好多BUG,不如ORACLE的企业管理器做得好,连WEB版都没有。
3、备份管理,DB2的备份只能说是简陋了,没有备份集的管理功能,没有恢复预览和校验功能,不能写到网络驱动器上,唉太多的没有了,ORACLE的RMAN确实强大;
4、DB2的命令执行方式,我很喜欢,可以在命令行上执行SQL,也可以在命令窗口上执行SQL,相对SQLPLUS灵活多了;
5、DB2的自动维护功能做的很好,可以定期自动整理数据库碎片和重建索引,唯一不大理想的是自动维护的备份功能不能指定压缩备份,相对而言ORACLE的自动维护功能就很一般了;
6、DB2的运行状况的功能我也很喜欢,ORACLE也有类似的AHM,但是 DB2的运行状况更为直接,可以一下就看出数据库目前有啥问题,DB2还给出了如何处理的建议顾问程序;
7、DB2的内存状况监控功能本来我也很喜欢,可以直接在内存状况监控上直接改相应的参数,但是发现一个巨大BUG后,我就很不喜欢了,如果你一直点刷新,发现内存占用量会不断上升,我有次为了监控一个内存参数,让这个工具运行了一天一夜,结果回来一看,晕倒,所有的内存参数增长到数百G,我想看的历史变化情况居然没有。
8、DB2的远程网络连接采用的编目方式描述连接串的方式我感觉很不爽,为了改个客户端的连接服务器的IP地址,所有的客户端都需要将编目删除,然后重新编目连接地址,晕倒100多台PC机搞下来,尽管可以使用脚本,但是还是把人都快搞疯了。ORACLE采用的用文件来配置远程服务器的方式,所有的PC机都通过更新服务器直接更新本机的TNSNAME,1分钟搞定。
9、DB2的数据库创建如果要手工管理容器,居然没有指定缺省的系统表空间数据文件名,你要创建一堆相应的文件名,没办法,只好照抄oracle的OFA体系结构的文件名。
10、DB2的连接配置图形工具实在是差了,在上面配置一步步配出的连接居然不能用!只好使用脚本,这点ORACLE比DB2强多了。
11、DB2在WINDOWS 平台的可靠性不怎么样,3个多星期无缘无故DOWN了4次机,ORACLE配好了应该没有这么悲惨吧。
12、DB2的锁自动管理机制,我比较喜欢,打开后,互锁的概率大大降低,相同的程序,在DB2下锁明显少许多,但是不爽的是DB2的select命令也是加锁的。
13、DB2 9.7的ORACLE兼容模式,我也很喜欢,迁移麻烦少了许多许多。
14、DEB2 的自动内存管理我看要比ORACLE 要强一些,几乎所有的内存参数都能自动管理,ORACLE11G貌似也可以全部自动管理了。
15、DB2的导出数据的工具实在太简陋了,连oracle的EXP/IMP 都不如,更不要说expdp/impdp
16、DB2的SQL语句运行速度明显快于ORACLE,5-6段相同的代码,同一台机器,参数都是缺省参数,个人测试DB2执行速度大约要快10%-15%,也许和DB2缺省的参数调优有关,ORACLE10g调优后,还是还有5-10%左右的差异。
-db2

如何查看db2的数据库的日志文件


查看db2的数据库的日志文件:

实例日志在sqllib/db2dump/db2diag.log,记录起停、出错警告信息。

数据库的事务日志通过db2 get db cfg for 《dbname》,看NEWLOGPATH下面一行。

扩展资料:

在日常DB2的维护中,transaction log full是比较常见的问题,日志空间使用情况也是我们比较重视的问题,如果日志是单独的文件系统分区,在操作系统上即可看到日志空间使用情况,对日志使用情况进行监控,可以看到如下信息:-数据库

$ df -g

Filesystem GB blocks Free %Used Iused %Iused Mounted on

/dev/db2inst1_log01 60.00 54.50 10% 1458 1% /db2inst1_log01

参考资料来源:百度百科-DB2


如何在DB2中执行存储过程


1、db2
create
database
数据库名
《--
创建数据库
2、db2
connect
to
数据库名
user
用户名
using
用户密码
《--
连接数据库
3、db2
-tvf
otpdb_v3_db2.sql
《--
为新建数据库建立表结构
4、db2
-td@
-f
存储过程文件绝对路径
《--
导入存储过程,无错误会提示成功
4、调用存储过程:
Windows
下:db2
call
存储过程名(参数1,参数2)
AIX
下:db2
《--
要先进入DB2,方可调用存储过程或执行SQL语句
db2=》call
存储过程名(参数1,参数2)
5、验证插入数据是否成功
Windows
下:db2
select
count(*)
from
FTOTP_USERINFO
AIX
下:db2
《--
要先进入DB2,方可调用存储过程或执行SQL语句
db2=》select
count(*)
from
FTOTP_USERINFO
Windows
下:db2
select
count(*)
from
FTOTP_TOKENINFO
AIX
下:db2
《--
要先进入DB2,方可调用存储过程或执行SQL语句
db2=》select
count(*)
from
FTOTP_TOKENINFO
6、db2
SELECT
TOKEN,
PUBKEY
FROM
FTOTP_TOKENINFO
FETCH
FIRST
10000
ROWS
ONLY

要保存文件的绝对全路径
《--

DB2
中导出前一万条记录
windows
-
e.g.
db2
SELECT
TOKEN,
PUBKEY
FROM
FTOTP_TOKENINFO
FETCH
FIRST
10000
ROWS
ONLY

c:\abc.txt
AIX
-
e.g.
db2
SELECT
TOKEN,
PUBKEY
FROM
FTOTP_TOKENINFO
FETCH
FIRST
10000
ROWS
ONLY

c:\abc.txt
《--
注意:不能先进入DB2,执行查询与导出命令组合
7、db2
drop
procedure
存储过程名
《--
删除存储过程
8、db2
drop
database
数据库名
《--
删除指定名称的数据库
注,如果删除时提示有应用程序连接到这个数据库上,可以用如下命令断开所有应用程序的连接:
db2
force
application
all
《--
断开所有应用程序的连接
-db2

db2如何查询表结构


1、打开db2数据库连接工具。

2、选择要导出的db2数据库表。

3、右击点Dump Data to File -》  SQL inserts。tip:将红框都选中,Single File 只会生成一个文件,否则有多少个数据表就会生成多少个sql脚本文件。

4、选择文件保存位置,点【ok】。

5、db2的SQL结构和数据脚本文件查询成功。


Oracle,db2是什么


  Oracle和DB2是两种不同的数据库。
  Oracle:
  Oracle是甲骨文公司的一款关系数据库管理系统。
  ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
  DB2:
  全称为IBM DB2。是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本。
  DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 DB2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。
-数据库

DB2的介绍


IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 DB2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。DB2除了可以提供主流的OS/390和VM操作系统,以及中等规模的AS/400系统之外,IBM还提供了跨平台(包括基于UNIX的LINUX,HP-UX,SunSolaris,以及SCOUnixWare;还有用于个人电脑的OS/2操作系统,以及微软的Windows 2000和其早期的系统)的DB2产品。DB2数据库可以通过使用微软的开放数据库连接(ODBC)接口,Java数据库连接(JDBC)接口,或者CORBA接口代理被任何的应用程序访问。-db2


DB2是什么


DB2是IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、 Windows等平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。
DB2是IBM出口的一系列关系型数据库管理系统,分别在不同的操作系统平台上服务。虽然DB2产品是基于UNIX的系统和个人计算机操作系统,在基于UNIX系统和微软在windows系统下的Access方面,DB2追寻了ORACLE的数据库产品。
除了它可以提供主流的OS/390和VM操作系统,以及中等规模的AS/400系统之外,IBM还提供了跨平台(包括基于UNIX的LINUX,HP- UX,Sun Solaris,以及SCO UnixWare;还有用于个人电脑的OS/2操作系统,以及微软的Windows 2000和其早期的系统)的DB2产品。DB2数据库可以通过使用微软的开放数据库连接(ODBC)接口,Java数据库连接(JDBC)接口,或者 CORBA接口代理被任何的应用程序访问。
-数据库

怎么启动db2数据库


在一个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
--将显示结果存入study.txt 文件中
DB2 GET DB CFG FOR study 》 study.txt

下面是一个示例,我在当前DB2实例下,创建了3个database,我利用activate命令挨个将他们激活

D:DB2BIN》db2 db2start
DB20000I DB2START命令成功完成。
D:DB2BIN》db2 list database directory
系统数据库目录
目录中的条目数 = 3
数据库 1 条目:
数据库别名 = TEST
数据库名称 = TEST
本地数据库目录 = D:DB2test
数据库发行版级别 = c.00
注释 = test
目录条目类型 = 间接
目录数据库分区号 = 0
备用服务器主机名 =
备用服务器端口号 =
数据库 2 条目:
数据库别名 = BANK
数据库名称 = BANK
本地数据库目录 = D:db2bank
数据库发行版级别 = c.00
注释 = bank
目录条目类型 = 间接
目录数据库分区号 = 0
备用服务器主机名 =
备用服务器端口号 =
数据库 3 条目:
数据库别名 = STUDY
数据库名称 = STUDY
本地数据库目录 = D:db2study
数据库发行版级别 = c.00
注释 = 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 9.5.0
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 9.5.0
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》
-db2