DB2常用命令
在开发过程中总结的一些DB2的常用命令,也是自己需要用的时候在网上查的,在此做个汇总。
一、DB2导入/导出表数据语句
1.1 del与ixf区别
del格式是一个文本文件,文件按行来存储,含有回车的文本内容在del文件中会另起一行,del文件可视;ixf格式保存的是结构和数据,是一个二进制文件,ixf文件不可视。
1.2 正常的导入/出数据
db2 "export to 路径/文件名.ixf of ixf select * from tablename";
db2 "export to 路径/文件名.del of del select * from tablename"
db2 "import from 路径/文件名.del或者 文件名.txt of del insert into tablename";
db2 "import from 路径/文件名.ixf或者 文件名.ixf of ixf insert into tablename";
1.3 指定编码导入/导出数据
1383是gb2312
db2 "export to data819.del of del modified by codepage=1208 select * from tab1"
1208是utf-8
db2 "export to data1386.del of del modified by codepage=1383 select * from tab1"
1.4 指定分隔符导入/导出数据
coldel + 分隔符
db2 “import from 路径/文件名 of del modified by coldel分割符号 insert into 表名”
1.5 导出/导入数据生成日志文件
db2 “import from 路径/文件名.ixf of ixf commitcount 5000(提交总数) messages 日志路径/日志文件名.log insert into 表名”;
1.6 db2move:导出表的数据
与export命令功能相似。
二、DB2清除表中数据
db2 “IMPORT FROM /dev/null OF DEL REPLACE INTO 表名”
或 LOAD FROM /dev/null OF DEL REPLACE INTO 表名
REPLACE导入方式会先将表中所有数据清空,然后IMPORT/LOAD又向表中导入了空数据,从而实现数据的清除操作。
replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。
三、Reorg与runstats的区别
1. db2 “reorg table 表名”;
reorg 通过重构行来消除“碎片”数据并压缩信息,对表进行重组。还有一个功能就是可以将表中的数据按照某个索引关键字的顺序排列,从而可以减少某些查询i/o数量,优化数据库性能。
2. db2 “runstats on table 表名”;
runstats命令就是用来收集数据库对象的状态信息,每做一次的runstat将对数据库对象作一次信息更新。
四、DB2导出/导入表结构
1.Db2look参数含义
db2look [-h]
-d: 数据库名称:这必须指定
-e: 抽取复制数据库所需要的 DDL 文件
-o: 将输出重定向到给定的文件名
-dp: 在 CREATE 语句之前生成 DROP 语句
-u: 创建程序标识:如果 -u 和 -a 都未指定,则将使用 $USER
-xs: 导出 XSR 对象并生成包含 DDL 语句的脚本
-xdir: 路径名:将用来放置 XSR 对象的目录
-z: 模式名:如果同时指定了 -z 和 -a,则将忽略 -z
-t: 生成指定表的统计信息
-tw: 为名称与表名的模式条件(通配符)相匹配的表生成 DDL
-h: 更详细的帮助消息
-a: 为所有创建程序生成统计信息
-m: 在模拟方式下运行 db2look 实用程序
-c: 不要生成模拟的 COMMIT 语句
-r: 不要生成模拟的 RUNSTATS 语句
-l: 生成数据库布局:数据库分区组、缓冲池和表空间。
-x: 生成排除对象的原始定义程序的“授权”语句 DDL
-xd: 生成包括对象的原始定义程序的“授权”语句 DDL
-f: 抽取配置参数和环境变量
-td: 将 x 指定为语句定界符(缺省定界符为分号(;))
-i: 登录到数据库驻留的服务器时所使用的用户标识
-w: 登录到数据库驻留的服务器时所使用的密码
-noview: 不要生成 CREATE VIEW ddl 语句
-wrapper: 为适用于此包装器的联合对象生成 DDL
-server: 为适用于此服务器的联合对象生成 DDL
-nofed: 不要生成 Federated DDL
-fd: 为 opt_buffpage 和 opt_sortheap 以及其他配置和环境参数生成 db2fopt 语句。
-v: 只为视图生成 DDL,当指定了 -t 时将忽略此选项
-ct: 按对象创建时间生成 DDL 语句
2. db2look:生成 DDL 以便重新创建在数据库中定义的对象,生成表结构的DLL脚本。
2.1 导出指定表的表结构(表空间)
db2look -d dbname -t 表名1 表名2... -u user_name -dp -e -o 文件名.sql
db2look -d DB_NAME -u USER_NAME -e -o 文件名.sql(导出所有表的表结构)
2.2 导入指定表的表结构(表空间)
db2 -tvf 文件名.sql
五、DB2备份与恢复
1、脱机备份(也称为离线备份或者冷备份),此方法必须断开所有与数据库连接的应用后才能进行,备份时数据库不能提供给用户使用.
2、db2 force application all :强制关闭实例上的所有应用程序。
3、备份
db2 backup database数据库名 to 备份路径
4、恢复
db2 restore database 数据库名 from 备份的路径
六、DB2何如在已有的RMK中添加新的内容
update tablename set concat(rmk,’addContext’) where 条件
update tablename set rmk=rmk||’addContext’ where 条件
七、如何删除索引
7.1 Microsoft Access、MySQL数据库中删除索引
DROP INDEX index ON table ;
index是要删除的索引名,table是索引相关表的名称。
7.2 在Microsoft SQL Server数据库中删除索引
DROP INDEX table.index;
index是要删除的索引名,table是索引相关表的名称。
7.3 在Oracle、DB2或PostgreSQL数据库中删除索引
DROP INDEX index;
index是要删除的索引名。
7.4 db2如何查看索引
db2 describe indexes for table db2inst1.tablename
八、添加、删除、修改字段
ALTER TABLE tablename ALTER COLUMN columnname set data type dataType;
ALTER TABLE tablename DROP COLUMN columnname;
ALTER TABLE tablename ADD COLUMN columnname;
九、创建数据库表--数据存储引擎
9.1 mysql的创建方式
create table tablename() ENGING=InnoDB/myisam;
区别:
myisam 强调的是性能,执行速度比较快,如果执行大量的SELECT,myisam是不错的选择。
InnoDB 支持事务处理等高级处理,支持外键,如果执行大量的select和update语句,出于性能考虑,使用innodb是最好的选择。
9.2 db2的创建方式
默认的,暂未查到指定数据存储引擎语句。
十、DB2执行XXX.txt或XXX.sql语句
db2 -tvf xxx.txt/xxx.sql > xxx.log&
十一、DB2查看数据库服务器命令
db2 get dbm cfg
十二、DB2查询n条数据命令
select * from tablename fetch first n rows only
十三、DB2复制表结构与数据导入
DB2复制表结构:
create table table_name_new as (select * from table_name_old) definition only;
插入数据
insert into table_name_new (select * from table_name_old);
也可以用export 、import来插入数据
--复制表结构,但是不复制主键、约束、索引...
create table table_name_new like table_name_old;
十四、DB2查看数据库表空间大小
1、连接数据库
db2 connect to dbname;
2、连接指定schema
db2 set current schema schename;
3、查看当前数据库的表空间信息
db2 list tablespaces show detail;
4、获取表空间文件的物理地址
Db2 list tablespaces containers for num(num代表的是对应数据库的ID)
5、给表空间扩容,修改原有的相应容器
db2 “alter tablespace 表空间名称 resize(FILE ‘物理地址’新的页数);
十五、db2数据库的锁表与解锁
1、查看锁表情况
db2 get snapshot for locks on databasename ;
Application handle表示进程的标识号。该进程锁住什么表在下面会详细的列出来。
或者查看应用程序执行情况:
list application for database yourdatabasename show detail
2、查看是否有活动的链接
db2 list applications for db db_name
3、解锁
3.1、强制关闭所有连接
force application all //强行终止所有连接
3.2、清除所有db2的后台进程
force application(进程号),将特定的进程号kill
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)