DB2数据信息库的学习培训及小结

摘要:db2 grant dbadm on database to user dsp#导出来数据信息库构造会转化成一个faldb.sql文档db2look -d udep -e -a -x -i dsp -w dsp -o dsp.sql导出来隶属scheme:dsp的全部表构造的指令以下db2look -d tyfx -e -z dsp -o ...

db2 grant dbadm on database to user dsp
#导出来数据信息库构造会转化成一个faldb.sql文档
db2look -d udep -e -a -x -i dsp -w dsp -o dsp.sql

导出来隶属scheme:dsp的全部表构造的指令以下
db2look -d tyfx -e -z dsp -o udep.ddl
英语的语法: db2look -d DBname [-u Creator] [-s] [-g] [-a] [-t Tname1 Tname2...TnameN]

[-p] [-o Fname] [-i userID] [-w password]
db2look -d DBname [-u Creator] [-a] [-e] [-t Tname1 Tname2...TnameN]
[-m] [-c] [-r] [-x] [-l] [-f] [-o Fname] [-i userID] [
-w password]
db2look [-h]

-d: 数据信息库名:这务必特定

-a: 为全部建立者转化成统计分析信息内容
-c: 不必转化成仿真模拟的 COMMIT 句子
-e: 提取拷贝数据信息库需要要的 DDL 文档
-g: 应用图型来显示信息数据库索引的页取装对
-h: 更详尽的协助信息内容
-m: 在仿真模拟方法下运作 db2look 好用程序
-o: 将輸出跳转到给定的文档名
-p: 应用简易文字文件格式
-r: 不必转化成仿真模拟的 RUNSTATS 句子
-s: 转化成 postscript 文档
-t: 转化成特定表的统计分析信息内容
-x: 转化成 管理权限 句子 DDL
-l: 转化成数据信息库合理布局:连接点组、缓存池和表室内空间
-f: 提取配备主要参数和自然环境自变量
-u: 建立者 ID:若 -u 和 -a 都未特定,则将应用 $USER
-i: 申请注册到数据信息库驻留的网络服务器时需应用的客户 ID
-w: 申请注册到数据信息库驻留的网络服务器时需应用的动态口令
#转化成faldb.sql文档以后要实行这一文档
db2 -tvf faldb.sql

db2 [option ...] [mand | sql-statement |
[? [phrase | message | sqlstate | class-code]]]
选择项:-a, -c, -e{c|s}, -finfile, -lhistfile, -n, -o, -p, -rreport, -s, -t,
-td;, -v, -w, -x, -zoutputfile。

选择项 表明 默认设置设定
------ ---------------------------------------- ---------------
-a 显示信息 SQLCA OFF
-c 全自动贯彻落实 ON
-e 显示信息 SQLCODE/SQLSTATE OFF
-f 载入键入文档 OFF
-l 将指令纪录到历史时间文档中 OFF
-n 去除换行标识符 OFF
-o 显示信息輸出 ON
-p 显示信息 db2 互动式提醒 ON
-r 将輸出汇报储存到文档 OFF
-s 在指令错误时终止实行 OFF
-t 设定句子停止标识符 OFF
-v 回送当今指令 OFF
-w 显示信息 FETCH/SELECT 警示信息内容 ON
-x 不复印列题目 OFF
-z 将全部輸出储存到輸出文档 OFF

留意:
应用 DB2OPTIONS 自然环境自变量订制选择项默认设置值。
紧随选择项英文字母后的减号(-)使该选择项关掉。
在互动方法或文档键入方法下应用 UPDATE COMMAND OPTIONS
变更选择项设定。

 

select db2 export to ||table_name|| .ixf of ixf select * from CUSTRISK. ||table_name|| from sysibm.TABLES where TABLE_SCHEMA= CUSTRISK


select db2 import from ||table_name|| .ixf mitcount 500 messages msg.out insert into CUSTRISK. ||table_name|| from sysibm.TABLES where TABLE_SCHEMA= CUSTRISK


从数据信息库里在一张表格中任意的提取10条纪录的db2SQL 句子是:
select * from moiamds.p_mon_dsm_cdt order by rand() FETCH FIRST 10 ROWS ONLY
起动db2数据信息库的指令是: db2start
关掉db2数据信息库的指令是: db2stop

指令提醒符里联接db2数据信息库的指令是: db2 connect to moia user moiamds using moiamds

导出来一张表中的数据信息的指令是:db2 export to F:IMPp_mon_dsm_cdt.txt of del select * from MOIAMDS.P_MON_DSM_CDT
IMPORT FROM employee.ixf OF IXF REPLACE_CREATE INTO employee_copy;
(REPLACE_CREATE 这一主要参数表明假如employee_copy数据信息表早已存有,则先清除数据信息表格中的数据信息随后将ixf 中的数据信息导进,假如employee_copy 数据信息表不会有,则会先创建该表,随后将数据信息导进。)
导进数据信息到一张表格中的指令式:db2 import from tg.txt of del insert into MOIAMDS.P_MON_TAB_ONE


假如对一张表开展实际操作的情况下报由于表不主题活动,因此不可以对表实际操作, table ---表名;


假如报事务管理系统日志已满的处理方法
DB2COPY2- 指令行解决专用工具- 指令行解决器 db2 get db cfg for mds
db2 update db cfg for mds using logfilsiz 6000
db2显示信息表室内空间的句子:db2 list tablespaces show detail


去基准线导出来数据信息的方式:197.3.6.1上来导出来数据信息的方式:
moiase@/home/mds/file/tmp db2 connect to moia user moiamds using moiamds
moiase@/home/mds/file/tmp db2 export to P_DQM_SERVICE_CASE_TAB.ixf of ixf select * from moiamds.P_DQM_SERVICE_CASE_TAB
导出来取得成功! 把它用在当地用E:JDK API ftp 197.3.6.1
键入user:moiase pwd:moiase
联接取得成功 ; ftp get P_DQM_SERVICE_CASE_TAB.ixf 回车键 如今自身的测算机e:盘JDK API 下就存有了P_DQM_SERVICE_CASE_TAB.ixf文档

查询db2的全部的联接:db2 list applications 断掉全部的联接:db2 force applications all


db2 去实行配备文档的方式:
如:在D:盘建一个myscript.txt文档键入:
!db2start;
connect to moia user moiamds using moiamds;
select * from emp;
terminate;
便可以在指令提醒符里键入db2cmd 随后键入:db2 -tf D:myscript.txt

查询db2的数据信息库系统分区方式:
db2 list node directory //查寻编文件目录(连接点)
db2 list db directory //查寻编文件目录下面实际有什么库
db2 connnect to mds user mdsuser using mdsuser //联接数据信息库

 

 

建立备份数据表的sql句子:
create table new_table as (select * from old_table) definition only;

备份数据数据信息:insert into new_table select * from old_table;

excel 数据信息导进到DB2数据信息库的方式1(先把excel文档另存为.csv文档,放进d盘,随后实行下边的sql)
import from d:/test.csv of del messages d:/msg.out insert into M_CM_PROD_PRODUCT_ATTRIBUTE;
---------------------------------------------------------------------------------------------------------------------------------------------------------
查询db2数据信息库较大联接数的指令:
查询当今主题活动的案例的指令: db2ilist
查询当今主题活动的案例下的数据信息库的指令:db2 list db directory
建立一个新的案例下建立数据信息库的指令:db2icrt newinstance(案例);
删掉案例的指令: db2idrop instancename;
set db2instance = 案例;
db2start;
db2 create database 数据信息库名
联接到数据信息库后,用db2 get db cfg for database查询一下maxappls和avg_appls的标值。
用db2 update db cfg for database using maxappls number试一下把maxappls设定得更大些。
-----------------------------------------------------------------
db2给数据信息库变更表名的指令:rename table rep_data_04 to rep_data_04_
------------------------------------------------------------------------------
linux系统软件下重新启动db2数据信息库的指令
db2 force applications all
db2stop
db2start
db2 backup db sample on all dbpartitionnums
重新启动取得成功---------------------------------------
---------db2只有提升字段名的长短(varchar和此外2个)不可以dorp掉字段名,只有drop掉表,在建表导进数据信息
改动字段名的指令:alter table log_data_11 ALTER nm_rep SET DATA TYPE varchar(200);
-----------------统计分析字段名的出現同样值的行数的sql---------------
select count(formula) as sum, formula from code_formula group by formula


1. 从指令对话框建立一个名叫newinst 新案例
db2icrt newinst
2. 在这里个新案例newinst 中,应用默认设置值建立一个名叫newdb 的数据信息库
set db2instance=newinst
db2start
db2 create database newdb
3. 列举网络服务器上全部的案例
db2ilist
4. 变换到DB2 案例,并确定变换取得成功
set db2instance=db2
db2 get instance
5. 把dbm cfg 的FEDERATED 主要参数值由NO 改成YES 并认证改动的結果。
db2 update dbm cfg using FEDERATED YES
db2 force applications all
db2 terminate
db2stop
db2start
db2 get dbm cfg
6. 应用登陆实际操作系统软件的客户名和登陆密码联接SAMPLE 数据信息库
db2 connect to sample user userID using psw
7. 查询当今案例上面有是多少运用程序在运作
db2 list applications show detail
8. 开启另外一个DB2 指令对话框,不指出客户名和登陆密码联接到SAMPLE 数据信息库。随后查询当今有
是多少运用联接到该案例上。
db2 connect to sample
db2 list applications
9. 强制性关掉一个DB2 指令对话框
db2 force application ( application 填写程序 b2bp.exe 的句柄,该值由db2 list applications指令得到)
10. 删掉案例newins
db2idrop newinst
11. 删掉并举初创建DAS,随后起动DAS。
db2admin stop
db2admin drop
db2admin create
db2admin start
12. 在您的案例中设定DB2 申请注册自变量DB2COMM,使其数值tcpip,npipe。
m=tcpip,npipe
db2stop
db2start
13. 置空DB2COMM 申请注册自变量
m=
db2stop
db2start
14. 查验当今db cfg 的LOGSECOND 主要参数,随后将其值设定成5 并认证新值
db2 connect to sample
db2 get db cfg
db2 update db cfg using LOGSECOND 5
db2 get db cf
------------------db2(标志列)中建立一张表,这张表的一个字段名从100刚开始而且以100提升----------
CREATE TABLE subscriber(subscriberID INTEGER GENERATED ALWAYS AS
IDENTITY (START WITH 100
INCREMENT BY 100),
firstname VARCHAR(50),
lastname VARCHAR(50) )
在这里个案子中,列subscriberID 是INTEGER 种类,被界定为标志列而且是基本界定。其值将
从100 刚开始,按增加量100 提升
-------编码序列目标造成全部数据信息库的一个唯一值。跟标志列不一样的是,编码序列单独于数据信息表。下边出示一个案子:
CREATE TABLE t1 (salary int)
CREATE SEQUENCE myseq
START WITH 10
INCREMENT BY 1
NO CYCLE
INSERT INTO t1 VALUES (nextval for myseq)
INSERT INTO t1 VALUES (nextval for myseq)
INSERT INTO t1 VALUES (nextval for myseq)
SELECT * FROM t1
SALARY
------------------------------------------------------
10
11
12
3 record(s) selected.
SELECT prevval for myseq FROM sysibm.sysdummy1
1
----------------------------------------------------------------------------------------------------------------------------------
db1move 专用工具
Export,Import 和Load 每一次都只对一个表开展实际操作。可是您若应用他们来写一段脚本制作,便可对
一数量据库文件的全部的表开展实际操作。另外一个专用工具db1move 能够更便捷地进行一样的工作中。db1move
专用工具只适配IXF 文件格式的文档,并且IXF 文档的姓名由db1move 全自动转化成。下边的事例展现如何样使
用db1move 并融合export 和import 选择项来对SAMPLE 数据信息库开展总体实际操作。
导出来
db1move faldb export -u slsadmin -p slsadmin
导进
db1move faldb import -u slsadmin -p slsadmin
导出来固定不动schema的句子以下
db1move tyfx(db) export -sn dsp(schema) -u dsp -p dsp
----------------------------------------------------db2load----------------------------------------------------------------
下边的事例将IXF 文件格式的employee.ixf 文档里边的全部数据信息导进到表employee_copy。
REPLACE 是LOAD 专用工具所出示的诸多选择项之一。它表明将更换employee_copy 表格中的全部数据信息。
LOAD FROM employee.ixf OF IXF REPLACE INTO employee_copy
实行完上边的指令后,该表进到查验暂挂情况。这时候您务必运作SET INTEGRITY 指令来查验数据信息的一致性,下边是实行SET INTEGRITY 的事例:
SET INTEGRITY FOR employee_copy ALL IMMEDIATE UNCHECKE
----------------------------------------------------给客户赋权的指令--------------------------------------------------------
DBADM(DataBase ADMinistrator)是数据信息库的非常客户。它并不是案例层级的管理权限,因此它沒有在前一节中列举,要想授于DBADM 管理权限,应用GRANT 句子,以下面的事例所显示:
connect to sample
grant DBADM on database to user userid
--------------假如您要想备份数据udep 数据信息库到相对路径/home/db2inst1/backup,您能够在DB2 Window/Linux 指令行表述器中实行这条指令------
db2 BACKUP DB sample TO C:BACKUPS;
比如: db2 backup db udep to /home/db2inst1/backup/ compress
备份数据的文档构造以下
备份数据进行以后,假如要产生重特大灾祸,如:DB2 DROP DATABASE UDEP
随后数据信息库也不存有了,开展数据信息修复以下:


指令以下:db2 restore db udep incremental from /home/db2inst1/backup taken at 200
----------查寻的db2的版本号的指令------------------------------------------------------------
SELECT service_level, fixpack_num FROM TABLE(())as INSTANCEINFO
-------------------------------linux上架安裝的DB2---------------------------------------------------
db2查询改动端口号号
db2安裝进行后,tcp/ip联接端口号默认设置为50000,可根据下边的方式确定:
1、应用指令 db2 get dbm cfg
寻找 SVCENAME 搜索到TCP/IP 服务名

2、到系统软件配备文档里寻找service name 相匹配的 port number
windows:查询 c:windowssystem32driversetcservices
aix: 查询 /etc/services
以下:
DB2_DB2 60000/tcp
DB2_DB2_1 60001/tcp
DB2_DB2_2 60002/tcp
DB2_DB2_END 60003/tcp
db2c_DB2 50000/tcp
-----------------------------------------------------------
1,先转换到db2inst1客户下,
su - db2inst1
2,查询当今主题活动的案例
db2ilist
3,转换到当今案例下,
set db2instance = 案例
4,在该案例下建立数据信息库
----DB2 数据信息库一旦建立就没法再改动标识符集的编号方法了。
----能够在建立的情况下特定标识符集,以下特定为GBK:
----create db SRCDB using codeset GBK territory CN
db2 create database custrisk
5,为该数据信息库建立客户和登陆密码(客户名和登陆密码不必超出八个标识符,客户名不可以英文大写)
useradd custrisk
passwd custrisk 键入登陆密码:custrisk
建立进行后建立schema,指令以下
CONNECT TO UDEP USER dsp;
------------------------------------------------
-- DDL Statements for Schemas
------------------------------------------------
CREATE SCHEMA DSP AUTHORIZATION DSP
---------------建立进行以后务必从起server才可以够用建立的客户联接该数据信息库
6,建立缓存池
---先联接db2
db2 connect to custrisk
db2 create bufferpool udeptmp32k all nodes size 9060 pagesize 32k //100*1024%32
7,建立表室内空间
db2 create regular tablespace eastsp pagesize 32k managed by database using(file /home/db2inst1/east 5g) bufferpool udeptmp32k
@指令建立临时性表室内空间
db2 create USER TEMPORARY TABLESPACE TEMPSPACE2 pagesize 32k managed by database using(file /home/db2inst2/faldbtemp 2g) bufferpool faltmp32k
@指令建立系统软件表室内空间
db2 create system TEMPORARY TABLESPACE TEMPSPACE3 pagesize 32k managed by database using(file /home/db2inst2/faldbtemp3 2g) bufferpool faltmp32k
8,把表室内空间赋给客户
db2 grant use of tablespace TEMPSPACE3 to user slsadmin
9,沒有甚么默认设置的表室内空间
建立表的情况下务必特定如:
create table test(userid varchar(5),username varchar(20)) in custrisk
-------------------------------------------------------------------------------------------------------------------

建立缓存池:create bufferpool dsppool size 1000 pagesize 32k;
create tablespace newtbs pagesize 32k managed by system using (file /home/db2 300M) bufferpool dsppool
db2 list tablespaces;
db2 list tablespaces contraners for 4 {4为上面查出来的id}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


=================================================DB2建立开启器的事例===================================================
-- 建表句子
CREATE TABLE WANGZSTABLE (
ID INTEGER NOT NULL,
NAME VARCHAR(20) NOT NULL,
AGE VARCHAR(20) NOT NULL,
STATUS VARCHAR(10),
CREATETIME TIMESTAMP,
UPDATETIME TIMESTAMP,
SENDTIME TIMESTAMP
)
select * from wangzsTable;
insert into WANGZSTABLE(id,name,age) values(1, wangzs1 , 26
update WANGZSTABLE set status= 4 where id=1;
--update 升级特殊情况 status=4
DROP TRIGGER WANGZS_UPDATE
CREATE TRIGGER WANGZS_UPDATE
AFTER UPDATE OF STATUS ON WANGZSTABLE
REFERENCING OLD AS OLDROW NEW AS NEWROW
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
IF(NEWROW.STATUS= 4 )
THEN
update wangzsTable set UPDATETIME=CURRENT TIMESTAMP where id=NEWROW.id;
END IF;
END;
--update 升级特殊id
DROP TRIGGER WANGZS_UPDATE
CREATE TRIGGER WANGZS_UPDATE
AFTER UPDATE OF STATUS ON WANGZSTABLE
REFERENCING OLD AS OLDROW NEW AS NEWROW
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
update wangzsTable set UPDATETIME=CURRENT TIMESTAMP where id=NEWROW.id;
END;
--insert
DROP TRIGGER WANGZS_INSERT
CREATE TRIGGER WANGZS_INSERT
AFTER INSERT ON WANGZSTABLE
REFERENCING NEW AS NEWROW
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
update wangzsTable set CREATETIME=CURRENT TIMESTAMP where id=NEWROW.id;
END;

=======================================================================================================================

 



联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503