DB2数据库常规操作命令

1、强制断开所有连接

db2 force application all

2、根据时间戳恢复数据库

db2 restore database TEST from 'home/db2bk' taken at 20230101010101123

3、重启数据库

db2stop
db2start

--强制停止
db2stop force

4、锁表解锁语句

CALL SYSPROC.ADMIN_CMD('REORG TABLE TEST')

5、查询锁表语句

db2 get snapshot for locks on TEST

6、DB2运行监控状态

db2top -d TEST -u root -p 123456

7、根据时间戳压缩备份数据库

db2 backup database TEST to /home/db2bk compress

8、数据库配置操作

db2 get db cfg for TEST

--查看某些设置
db2 get db cfg for TEST |grep LOG

9、数据库工作空间操作

--查询表空间
db2 list tablespaces

--删除表空间
db2 drop tablespace TEST

 10、数据库操作

--连接数据库
db2 connect to TEST

--查询有哪些数据库
db2 list database directory

--删除数据库(谨慎操作)
db2 drop database TEST

11、数据库迁移步骤(针对机器操作系统不一致时的操作步骤,机器一致可以直接使用时间戳方式还原)

1、导出数据库DDL
db2look -d TEST -e -a -x -i root -w 123456 -0 /home/db2bk/test.sql

2、查看数据库的db2codepage,保证导出时数据库的db2codepage值一致
(1) 查看数据库的db2codepage
    db2 get db cfg for TEST
(2) 查看服务器设置的db2codepage
    db2set
(3) 若不一致,设置为一致
    db2set db2codepage=1208

3、导出数据:
db2move TEST export -u root -p 123456

4、创建数据库
(1) 创建数据库
db2 create databse test automatic storage yes alias test using codeset utf-8 territory US collate using system numsegs 1 def_extent_sz 
(2) 创建缓冲池
db2 create bufferpool TEST immediate all dbpartitionnums size 1024 numblockpages 1003 blocksize 32 pagesize 32k
(3) 创建工作空间
create regular tablespace TEST pagesize 32k managed by database using (file '/home/test/test' 10G) bufferpool TEST 

5、根据步骤2检查db2codepage是否一致

6、执行数据库导出SQL
db2 -tvf test.sql

7、导入数据

方式一:使用import导入(比较慢,但是安全)
db2move TEST import -u root -p 123456

方式二:使用load导入(比较快,但是有风险)
db2move TEST load -lo replace

8、尝试使用迁移后的数据库。

导入中可能用到的语句:
(1)使用load导入时若异常导致导入失败,会把表挂起,需要解挂;(test.txt为一个空文件,或者不存在的文件)
db2 load from test.txt of del terminate into test_tablename

(2)重新装载一个表
db2 load from test_tablename.ixf of ixf insert into test_tablename

(3)导出单张表数据
db2 export to /home/test/test_tablename.ixf of ixf select * from test_tablename

(4) 用import导入单张表
db2 import from /home/test/test_tablename.ixf of ixf insert into test_tablename

(5)导入时出现事务日志已满可以尝试修改日志配置
db2 update db cfg for TEST using LOGFILESIZ 1024;
db2 update db cfg for TEST using LOGPRIMARY 25;
db2 update db cfg for TEST using LOGSECOND 4;

(6)查看表当前状态
db2 load query table TEST

(7)查询处于挂起状态表
select * from syscat.tables where status='C'

(8)对于有外键的表,load导入时会将表在暂挂,状态是Set Integrity Pending状态,需要根据子表出现顺序依次解挂:
db2 set integrity for TEST immediate checked
db2 set integrity for TEST2 immediate checked






12、db2查询操作常用操作

表名以TESTTABLE,字段已FILED1,FILED2为例
(1) NULL值替换
SELECT COALESCE(FILED1,'123') FROM TESTTABLE

(2)只取一条数据
SELECT * FROM TESTTABLE FETCH FIRST 1 ROWS ONLY

(3)每组数据只取一条
SELECT * FROM (SELECT ROW_NUMBER() OVER (PARTITION BY FILED1 ORDER BY FILED2 DESC ) AS RN,FILED1,FILED2 FROM TESTTABLE)) WHERE RN='1'

(4)添加字段
ALTER TABLE TESTTABLE ADD FILED1 VARCHAR(100)

(5)修改字段
ALTER TABLE ALTER COLUMN FILED1  SET DATA TYPE VARCHAR(100)

(6)删除字段
ALTER TABLE ALTER DROP COLUMN FILED1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值