DB2那些常用命令其实挺多,平时工作中总会用到的合集分享
- 问答
- 2026-01-08 08:55:50
- 4
DB2数据库管理员日常运维手册、开发者SQL操作备忘清单)
得知道命令在哪里执行,DB2的命令主要是在DB2的命令行处理器(CLP)里跑的,你先要登录到安装了DB2的服务器上,然后用db2命令进入交互模式,或者直接在系统shell里每条命令前面加上db2也行,就是开头有个db2 =>提示符的那个界面。
最最基础的入门命令
这几个命令是每天打开电脑可能就会用到的,像敲门砖一样。
-
连接数据库 你想操作数据库,总得先连上它吧,命令是
connect。connect to sample user db2inst1 using password这里sample是数据库名字,db2inst1是用户名,password当然是密码,如果已经用操作系统用户登录了,有时候可以直接connect to sample就行。 -
看表里有什么 这就是大名鼎鼎的
select语句了,别看它简单,能变出好多花样。 最直接的就是:select * from 表名,这个星号代表所有列,但工作中一般不这么用,尤其表很大的时候,会卡死,通常我们会配上fetch first 10 rows only,只看前10行。 完整版:select * from 员工表 fetch first 10 rows only。 -
断开连接 干完活了,优雅地断开一下,命令是:
connect reset,这个好记。
数据库和实例层面的操作
这些命令通常需要高一点的权限,DBA(数据库管理员)用得更多。
-
启动和停止DB2实例 有时候数据库会宕掉或者需要重启服务,启动实例命令:
db2start,停止实例命令:db2stop,注意,停止之前最好用db2 force applications all把所有的连接都强制断开,不然可能停不掉。 -
列出所有数据库 你可能会管理好几个数据库,怎么知道服务器上有哪些呢?用这个:
list database directory,它会列出所有已经编目的数据库。 -
备份和恢复 这是DBA的保命技能,备份命令长得像这样:
backup database sample to /home/backup_path,就是把名叫sample的数据库备份到指定的目录下。 恢复命令就是:restore database sample from /home/backup_path taken at 20240520120000,这个taken at后面跟的是备份文件的时间戳,备份成功后会告诉你这个时间点。
表和相关对象的操作
这部分是开发和测试人员最常碰的。
-
建表
create table语句,这个比较复杂,因为要定义列的名字、类型。create table 订单表 (订单号 int not null, 客户名 varchar(50), 金额 decimal(10,2))。 这里定义了三个列,订单号是整数且不能为空,客户名是最大50个字符的字符串,金额是总共10位数其中2位是小数的数值。 -
给表里插数据 建好空表后,要往里放数据,用
insert。insert into 订单表 values (1001, '张三', 199.99)。 也可以指定列名插入:insert into 订单表 (订单号, 客户名) values (1002, '李四'),这样没指定的列就是空值。 -
改数据 数据写错了要修改,用
update。update 订单表 set 金额 = 250 where 订单号 = 1002。这里要千万小心! 一定要写上where条件,不然会把整个表的所有行的金额都改成250,那就出大事了,这就是传说中的“删库跑路”前奏。 -
删数据 删除用
delete,同样,致命的where条件必须牢记! 只删一条:delete from 订单表 where 订单号 = 1001。 如果想清空整个表,但保留表结构,可以用delete from 订单表,或者效率更高的alter table 订单表 activate not logged initially with empty table。 -
看表结构 你拿到一张不熟悉的表,第一件事就是看看它长啥样,有哪些列,命令是:
describe table 表名,或者用它的简写desc table 表名,结果会列出所有列名、数据类型、是否允许为空等,非常直观。 -
查看执行计划 有时候你写的SQL跑起来特别慢,就需要看看数据库是怎么执行你这句SQL的,这叫执行计划,用
explain命令。 最简单的是:explain plan for select * from 大表 where 条件,然后可以用db2exfmt等工具来生成一个容易读的报告,看看是不是全表扫描了,有没有走索引。
监控和排错命令
当系统慢或者出问题时,这些命令能帮上大忙。
-
看当前有哪些连接 命令是:
list applications,这会显示所有连接到当前数据库的应用、是谁连的、在执行什么语句,如果发现异常连接或者想踢掉某个连接,可以先在这里找到对应的句柄(Application Handle)。 -
强制断开某个连接 如果某个查询卡死了,或者你想维护数据库需要清场,就用这个,先通过
list applications找到那个应用的句柄,比如是12345,然后执行:force application (12345),括号不能少。 -
查看数据库配置参数 DB2有很多参数控制着它的行为,比如内存分配、日志大小等,查看实例级参数:
get dbm cfg,查看某个数据库级的参数:get db cfg for 数据库名。 -
看锁的情况 数据库里经常因为锁导致程序卡住,查看当前锁的状态:
db2pd -db 数据库名 -locks,这个命令会输出比较详细的信息,能看到哪个连接锁住了哪个对象,另一个连接在等待。
一些实用小技巧
-
在系统shell里直接执行一条命令:不用进
db2交互模式,直接写db2 "select * from 表名"。 -
把命令执行结果输出到文件:可以在交互模式里用
db2 => export to 文件名.del of del select * from 表名,这样查询结果就存到文件里了。 -
从文件导入数据到表:对应的就是
import from 文件名.del of del insert into 表名。
这些命令只是冰山一角,DB2的功能非常强大,最重要的是,尤其是在生产环境操作update和delete时,一定要先写好where条件,最好先select一下确认条件是否正确,养成这个习惯能避免很多灾难性的错误。
来源综合:IBM官方DB2文档知识库、多年DBA岗位实践操作记录、内部培训材料整理)

本文由称怜于2026-01-08发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/76720.html
