db2 简单数据库操作

由于工作需要,时常对数据库进行简单的操作,在此记录一下对db2数据库简单的操作。包括,数据库启动,停止,用户,连接, 增,删,改,查,权限,模式,表结构,表列,表主键,表索引,表数据,表空间,备份数据,回滚数据,数据库日志,数据库端口号。
关于导出数据库表结构,可用命令行的db2look;对于导出表数据,还没有命令行的指令,只能借助第三方工具或者自己实现。


#查看db2版本
su - db2inst1
export DB2INSTANCE=db2inst1
db2level

#查看db2端口号

/etc/services  DB2C_db2inst1 50001/tcp

#修改db2配置(重启才能生效)
db2 update database manager configuration using svcename DB2C_db2inst1   


#数据库启动,停止
db2start
db2stop


#数据库连接
ssh root@10.10.5.20
su - db2inst1 
db2 connect to cmccpay
connect to CMCCPAY user db2inst1 using db2inst1
#查看所有连接
list application
#关闭指定的连接
force application (1134) (Appl.Handle)
#关闭所有连接
force application all

增删查改


# 修改表的列(db2只能增加表的列的长度或者增加列)
alter table "CMCCPAY"."T_MER_PAY_TRANS" alter "RESERVED" set data type VARCHAR(128);

# 给表增加列
alter table cmccpay.T_MER_EXT add COLUMN INVOICECNM varchar(60) not null with default '';

# 列出系统数据库目录的内容,数据库实例

list database directory
select name from sysibm.systables where type='T' and creator='DB2INST1'
--type:数据库表用T表示;数据库视图用V表示,creator:数据库对象的创建者
select * from sysibm.systables where type='T'

# 显示表结构
describe table tablename

# 清空表数据
delete from table;
alter table "CMCCPAY"."T_MER_PAY_TRANS" activate not logged initially with empty table


#清空表数据没有日志
db2 "load from /dev/null of ixf replace into umpay.t_gbkpay_0 nonrecoverable"
db2 runstats on table umpay.t_gbkpay_0 and indexes all

# 显示当前模式
select current schema from sysibm.sysdummy1
values current schema
values current sqlid
select current schema from sysibm.dual

#查看模式下的所有的表
db2 list tables for schema usp
db2 list tables for schema UBP591

#查询指定模式下的表
db2 "select table_name from sysibm.tables" 
db2 "select table_name from sysibm.tables where table_schema='UBP591'"

#显示表空间
db2 list tablespaces show detail

#查看数据库模式
db2 "select substr(schemaname,1,20),substr(definer,1,30) from syscat.schemata"
db2 "select substr(schemaname,1,20),substr(definer,1,30) from syscat.schemata"

#执行sql文件
db2 -tvf sunxiaoye2.txt
#查看数据库用户 db2用户是操作系统用户
cat /etc/group
cat /etc/passwd
cd /home
cd /home/db2inst1 

#生成 赋权限SQL语句
# 所有的表结构的授权语句
db2 "select 'grant select,insert,update,delete on '||table_schema||'.'||table_name||' to user ucmpprtl;' from sysibm.tables"
# 该模式下的授权模式
db2 "select 'grant select,insert,update,delete on '||rtrim(table_schema)||'.'||table_name||' to user ucmpprtl;' from sysibm.tables where table_schema='UBP591'" > grant.sql
db2 "grant select,insert,update,delete on table UBP591.T_AGENT to user ucmpprtl"
DB20000I The SQL command completed successfully.

#查询表空间
db2pd -db cmccpay -tab |grep 0x00000000 | awk '{printf "%-2s %10s %10s %10.2f%\n",$2,$4,$5,$5/$4*100}'
#查询表空间序号对应的模式
db2 "select TBSPACEID,TBSPACE from sysibm.SYSTABLESPACES "

#查询表主键
describe indexes for table <instancename>.<tablename>
例:
describe indexes for table db2inst1.aaa 或者
select A.constname,A.TABNAME from syscat.tabconst A where  A.TABNAME='T_GGSY' and A.TYPE='P'; 
或者
select A.constname,A.TABNAME, B.COLNAME  from syscat.tabconst A ,SYSCAT.KEYCOLUSE B WHERE A.CONSTNAME = B.CONSTNAME AND A.TYPE='P' AND A.TABNAME='T_GGSY' 

#删除表主键
alter table <instancename>.<tablename> drop primary key
例:
alter table db2inst1.aaa drop primary key
alter table "UBP591"."T_GGSY" drop constraint "P_KEY_1";

#建立表主键
alter table <instancename>.<tablename> add CONSTRAINT <primarykeyname> PRIMARY KEY (<columnname>)      
例:
alter table db2inst1.aaa add constraint aaa_pk primary key(id);
alter table "UBP591"."T_GGSY" add constraint "P_GGSY_1" primary key("GGSYCODE");

#重组表
reorg table test 


#DB2创建用户
 Rev1976,
the easiest way to add user to Linux is by command:
useradd -g db2grp1 -m -d /db2home/db2inst1 db2inst1 -p password1
Notes:
-g db2grp1 -> add user to this group
-m -d /db2home/db2inst1 -> create home directory
db2inst1 -> new user name
-p password1 -> password

If user already exists and you would like to change password:
passwd userid
Note:
userid -> userid you would like to change password
P.S. I recommend the following web site for Unix/Linux commands: http://www.computerhope.com/unix.htm
Hope this helps,
Grofaty


#导整个数据库的表结构
db2look -d CMCCPAY -u db2inst1 -e -o xxxxxx.sql
#导数据库下的uetmp模式下的表结构
db2look -d CMCCPAY -z UETMP -u db2inst1 -e -o db2look.sql


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值