db2数据库.docx
《db2数据库.docx》由会员分享,可在线阅读,更多相关《db2数据库.docx(30页珍藏版)》请在冰豆网上搜索。
db2数据库
db2backupdbDBNAMEonlinecompressincludelogs
脱机备份
db2forceapplicationsall
Db2backupdbDBNAMEEcompress
查看表空间
db2listtablespaceshowdetail//显示很多信息。
Highwatermark曾经达到过的占用率
80%左右,要扩表空间或者清理数据
查看表状态
db2loadquerytableTABNAME
查看归档日志目录
db2getdbcfgforDBNAME|grepLOGARCHMETH1
数据库重整
Runstats,reorgchk,计算是否需要重整
db2diag。
log文件,看中间是否有异常
Cd
演示
1,增加表空间(文件系统,裸设备)
2,查看表空间
3,循环日志变归档日志
4,脱机备份数据库
5,联机备份数据库
6,归档日志
7,load数据
8,扩表空间
很多操作都要先关闭数据库,然后再开启,连接后再操作
3:
Db2updtedbcfgforsampleusing
Db2stop停数据库
Db2start启数据库
Db2connecttosample连接到数据库sample
Db2“importfromtest.delofdelinsertintoDBNAME”从本地的DEL文件中导入数据中
Db2prunelogfilepriortodddddd.log日志
1:
Db2“alterTablespacedms_dat4kextend//扩展表空间
Db2termiate//写到当前目录。
空闲时备份
Db2backupdb
Db2listutilitiesshowdetail查看备份信息
Db2“exporttostaff.delofdelselect*fromtest”//导出或者备份
CDLDB2Advocacy计划,DB2实验室与客户之间的直接交流解决客户问题。
不是售前服务人员,不是紧急事的负责人,不是技术支持。
EveryPlace移动终端
PersonalEdition个人版,单用户
EnterpriseEdition企业版
查询:
查询语言,索引,视图等,也与存储方式有关
DB2数据类型分为:
内置类型和自定义类型
数据查询常用的sql语句,多表查询join
基础查询,统计分析等
内置类型:
数值型,文件型,日期时间型(DATE,TIME,TIMESTAMP时间戳型),XML型(V9中引入的数据类型,把XML作为内容存储到表中,XQUERY专门针对XML查询使用的)
数据的存储:
逻辑存储:
表,表存储在特定的表空间中,与具有相同页面大小的缓冲池相联系
物理存储:
物理磁盘上.
Insert,工具exportimportload
数据的安全性和性能:
完整性,约束
可靠性:
多用户,隔离,临时性访问
安全性:
加锁
一台物理机上可以安装多个DB2实例,它是数据库的运行环境,为数据库提供进程\内存等资源;.每个实例都有自己的的相应配置信息.一个DB2实例中可以有多个数据库,每个数据库都有自己的配置,一个数据中多相应的配置和多张数据表,还有约束,索引,视图等数据对象。
创建实例:
启动实例:
Db2icrt实例名db2start
删除实例:
关闭实例:
Db2stop
查看实例的参数信息
Getdbmcfg
修改实例的参数信息
Update
创建DB
CreatedatabaseDBNAME[automaticstorage自动存储][on存储路径][dapathon数据库路径][usingcodeset字符集][territory区域码]
数据库的删除:
DropDBNAME
查看数据库配置信息:
Getdbcfgfor数据库名
修改数据库配置信息:
Updatedbcfgfor数据库名using参数名更新后的值
缓冲池是内存中一块区域,用于临时存储
Createbufferpool
Alterbufferpool
Dropbufferpool
查看缓冲池状态
Db2mtrk–d–p-v
表空间(TABLESPACE),是DB2数据库中存储数据的逻辑块.
常规表空间regular
大对象表空间large
系统临时表空间:
复杂查询表,大量数据内存不够用时.system
用户临时表空间:
usring
CreateTalespace
Altertalespace//修改表空间
Droptalespace
查看表空间
Listtablespace[showdetail]
Listtablespacecontainersfor表空间ID号
模式(Schema)是一个逻辑分组,每个数据库内部的对象在创建时,都可以显示或者隐式指定模式,以用户分类.
表:
是最重要的数据对象
普通表的创建:
DGTT用户临时表,与普通用户表不同,用临时表并不是一直存储在硬盘上,而是在一个应用程序结束之后,与之相关的用户临时表会自动从系统中删除.
Declareglobaltemporarytable…//创建全局临时表.
视表(view)是一个逻辑,并不存储数据,数据是存在表中的,它只是为了方更查询,优化角度出发
创建视图:
索引(index)主要是用于提高数据库查询的效率,唯一索引还能保证列的唯一性.有普通索引,唯一索引和聚簇索引三种,对XML字段可以单独定义索引.
普通索引,提高查询效率
唯一索引,提高查询效率,保证唯一性,会报错
聚簇索引,又叫集群索引,对经常访问的数据按照指定的顺序进行排列,提高效率
Createindex…
Dropindex…
约束:
关系数据库有常见约束:
非空,唯一,主键,外键,检查
补充约束:
缺省值,标识列
序列(sequence)与标识列相类型。
创建序列,循环增长
Creatsequencemyseq
Startwith1
Incrementby1
Nocycle
Cache30
存储过程:
是数据库中的一种程序,它可以拥有输入输出参数,可以访问和修改一个或多个数据表中的数据。
有自定的整套规则,以一定的逻辑包装多条SQL语句,存储在DB2的系统空间中;在调用是执行编译好的存储过程来访问数据库,进行查询操作。
Createprocedure过程名
(参数列表)
Languagesql
Begin
过程体
End
Dropprocedure过程名
触发器(trigger)是根据数据库的变化而自动执行的程序,定义在一张表上,如果该表数据发生变化时满足条件就执行触发器。
CreatetriggerRateStatus
NOCASCADEBEFORE
Updateofrateoncurrentrate
Referencingoldasoldrate
Newasnewrate
Foreachrow
ModeDB2SQL
语句体
End
删除触发器:
droptrigger触发器名称
用户自定义函数:
与存储过程很相似,都可以接收输入参数,然后再返回。
DB2数据的安全性
身份认证:
如果没有用户名和密码则用操作的用户名和密码
验证类型:
server(明文)server_encrypt(加密),kerberos(第三方的加密模块),krb_server_encrypt(以第三方的加密模块进行加密),client(所有的客户端视为安全的连接。
全部大写),可以通修改数据配置参数来变更。
授权:
权限级别,授根和撤消。
针对用户或者用户组。
授特权:
插入
GRANTINSERTONTABLEaccountTOUSERjeff
WITHGRANTOPTION:
级联授权
GRANTALTERIN,CREATIN
撤消特权:
REVOKE…
并发性:
事务(Transaction)就是一系列操作的集合,作为一个整体。
这些操作要么全成功,要么全失败,也称为一个工作单元(UnitofWorkUow)。
原子性,一致性,独立性,持久性。
多用户访问的挑战:
并发执行的应用程序四种问题:
更新丢失,脏读,不可重复的读,幻像。
隔离级别:
DBMS中,一般不需要用直接设置锁,DB2通过隔离级来控制并发性,选择了合适的隔离级别。
会隐式地进行各种加锁。
可重复读:
RR
读稳定性:
RS
游标稳定性:
CS
当前已提交:
CC
未提交读UR
隔离级别是通过锁(Lock)实现的。
实际上是加在数据库,表空间,表,行或者数据页上的一种标记,用户对各种数据库对象进行读取或者写入操作时首先要看该对象上的锁是否允许其进行相应操作。
基本分为:
共享锁(S锁)和排它锁(X锁),锁的升级和死锁。
系统有专门的处理方式来解决死锁。
DB2的备份和恢复:
日志:
跟踪对数据库对象和数据进行的操作进行记录。
它们被用于恢复:
如果发生崩溃,日志用于回放/重做已落实的事务,并撤消未落实的事务。
日志可以存储在文件中或者裸设备中。
对于DB2中的常规表,日志总处于ON状态。
循环日志模式:
只能进行脱机全量备份,不能进行表空间备份,联机备份,增量备份等。
可以使用崩溃恢和版本恢复,不能使用前滚恢复。
归档日志模式:
可以进行各种备份和恢复,可以使用logarchmeth1配置参数来启用归档日志模式。
在某个时间会对之前的日志进行归档,然后生成新的活动日志文件。
一般使用归档日志。
备份:
根据备分时是否允许用户访问:
脱机备份,联机备份
根据备份对象不同:
数据库备份,表空间备份
根据对数据库的备份范围:
全量备份,增量备份(累积备份,差异备份)累积备份,第一次备份全量,每次都备份增加积累的。
差异备份,第一次全量,每次都备份每一次新增的。
崩溃恢复:
DB2故障重启时,使用事务日志执行自动的恢复操作。
版本恢复:
使用备份操作期间创建的映象来复原数据库的先前版本。
前滚恢复:
使用完整的数据库备份和日志相结合,可能使一个数据库或表恢复之前某一时间段。
Csliu@cn.I刘长生
所有的培训资料都放在一个163邮箱上的:
zjrcutraining@zjrcu123
二、使用创建数据库gspsdb:
4、用命令创建用户和添加密码:
useraddgspirr
passwdgspirr
5、在root下创建实例gspirr:
(当然在安装时候也可以创建实例)
[root@localhost6:
/opt/ibm/db2/instance]#./db2icrt-p61002-ugspirrgspirr
其中/opt/ibm/db2/instance是db2的安装路径,
-p用来指定服务名称(也可以不指定,由系统自行设定,在/etc/services中可以查看)
-u表示将用来运行受防护用户定义的函数(UDF)和受防护存储过程的用户的名称(可以随意设定)。
指定您创建的受防护用户的名称。
6、启动/停止实例gspirr:
Sugspirr
Db2start
Db2stop
7、查看/设置gspirr配置:
Db2set-all
显示:
[i]DB2COUNTRY=86
[i]DB2COMM=TCPIP
[i]DB2CODEPAGE=1386
[g]DB2SYSTEM=localhost6.localdomain6
[g]DB2INSTDEF=db2inst1
[g]DB2ADMINSERVER=dasusr1
可以用命令db2set设置配置:
db2setdb2country=86
db2setdb2codepage=1386
db2setDB2COMM=TCPIP
db2setDB2AUTOSTART=YES(设置db2自动随linux启动)
备注:
设置服务端口
输入db2命令,进入db2命令行模式
updatedatabasemanagerconfigurationusingsvcenameserver1|50000
server1|50000两者选其一,server1|为服务名,50000为端口号
getdatabasemanagerconfiguration;
为了打开DB2ControlCenter,记得要以root用户发出xhost+,如xhostlocal:
db2,以添加对XServer的访问权限。
然后,以实例所有者身份重新登录,并启动DB2ControlCenter;
用户可以使用以下几种方法来运行命令编辑器:
在操作系统CLP中输入db2ce命令。
使用LISTDATABASEDIRECTORY命令查看系统数据库目录的内容
8、在gspirr里创建数据库gspsdb:
Db2start
Db2"CREATEDATABASEgspsdbON'/GSPMM/db2data'USINGCODESETGBKTERRITORYCN"
9|、创建缓冲池:
Db2connecttogspsdb
Db2"CREATEBUFFERPOOLbf_main_dataIMMEDIATESIZE1024PAGESIZE32k"
Db2"CREATEBUFFERPOOLbf_large_dataIMMEDIATESIZE1024PAGESIZE32K"
Db2"CREATEBUFFERPOOLbf_index_dataIMMEDIATESIZE1024PAGESIZE32K"
10、创建表空间:
Db2"CREATEREGULARTABLESPACEts_main_dataPAGESIZE32KMANAGEDBYDATABASEUSING(FILE'$HOME/GSPMM/db2ts_rr/maindata'512M)EXTENTSIZE32OVERHEAD10.5PREFETCHSIZE32TRANSFERRATE0.14BUFFERPOOLbf_main_data"
Db2"CREATEREGULARTABLESPACEts_large_dataPAGESIZE32KMANAGEDBYDATABASEUSING(FILE'$HOME/GSPMM/db2ts_rr/largedata'512M)EXTENTSIZE32OVERHEAD10.5PREFETCHSIZE32TRANSFERRATE0.14BUFFERPOOLbf_large_data"
Db2"CREATEREGULARTABLESPACEts_index_dataPAGESIZE32KMANAGEDBYDATABASEUSING(FILE'$HOME/GSPMM/db2ts_rr/indexdata'256M)EXTENTSIZE32OVERHEAD10.5PREFETCHSIZE32TRANSFERRATE0.14BUFFERPOOLbf_index_data"
11、批量建表并导入数据:
Sugspirr
Db2connecttogspsdb
Shcrttbl.sh
Shinsert.sh
其中crttbl.sh内容如下:
db2connecttogspsdb
foriin`ls*sql`
do
echo"====[$i]===="
db2-tf$i
done
db2disconnectcurrent
其中insert.sh内容如下:
db2connecttogspsdb
foriin`ls*sql`
do
echo"====[$i]===="
db2-tf$i
done
db2disconnectcurrent
三、配置客户端连接gspsdb:
12、gspsdb端配置:
db2listdbdirectory//查看已经建好的所有的数据库
db2listdbdirectoryshowdetail
1)验证实例使用的通讯协议,查看DB2COMM变量(tcp/ip)
db2set-all
2)查看数据库管理器的配置,查看SVCENAME(特指tcpip协议)
db2getdbmcfg|grep-iSVCENAME
显示:
TCP/IPServicename(SVCENAME)=61002
SSLservicename(SSL_SVCENAME)=
3)查看/etc/services中,有无与上面对应SVCENAME的端口,例如:
db2cDB250000/tcp
运行Viservices,添加:
db2_gspirr61002/tcp
4)要确认服务器是否在监听,可以用netstat-an来查看端口是否处于LISTEN状态
[gspirr@~]$netstat-na|grep61002
tcp000.0.0.0:
610020.0.0.0:
*LISTEN
13、检查客户端的配置如下:
1)启动客户端db2命令控制台
Db2cmd
db2listnodedirectory
db2listnodedirectoryshowdetail//查看是否有节点
pinghostname来验证通讯
使用telnethostnameport来验证是否能连到实例
2)若没有节点,配置如下:
Db2
db2=>catalogtcpipnodedb2node2remote192.168.0.120/
server61002remote_instancegspirr/
ostypelinux
catalogtcpipnodeesb02remote10.20.2.247server60004remote_instanceesb02ostypelinux
db2=>catalogdatabasegspsdbasmydb2atnodedb2node2
authenticationserver/
catalogdatabasegspdbasesb2dbatnodeesb2node
authenticationserver
catalogtcpipnodeesb1noderemote192.168.0.109server61006remote_instanceesb1ostypelinux
catalogdatabasegspdbasesb1dbatnodeesb1node
authenticationserver
Gspsdb/gspmdb/db
3)测试到gspsdb的连接
db2=>connecttomydb2usergspirr
显示:
输入gspirr的当前密码:
成功连接,会显示
4)db2"select*fromTBL_FUNCTION_INFO",显示表内容。
亦可以使用db2控制中心,直接添加数据库gspsdb,打开数据库中的内容了。
安装了DB2,并成功创建实例之后,便可以以实例所有者的身份(在这个例子中是db2inst1)登录,然后调用db2profile脚本来设置环境变量。
可以使用db2sampl脚本创建样例数据库。
四、卸载数据库:
suroot
cddb2数据库的安装目录:
/opt/ibm/db2/instance,如:
[root@localhost6:
/opt/ibm/db2/instance]#./db2idrop-fgspmdb
住:
db2level可以查看数据库版本的相关信息;
/opt/ibm/db2/instance里有数据库操作的所有命令;
UNCATALOGDB<数据库别名>,如:
db2=>uncatalogdbgspsdb
如何查看linuxip:
netstat-i-n
or:
/sbin/ifconfig
不同数据库之间映射表:
1、在gspirr上建立esb上的gspdbnode
db2catalogtcpipnodedbnodeREMOTE192.168.0.120SERVER61003
db2catalogdatabasegspdbatnodedbnodeauthenticationserver
db2connecttogspmdbusergspirrusinggspirr
db2createwrapperdrda
createserverMYSERVERtypedb2/linuxversion9.7.0wrapperDRDAauthorization"gspirr"password"gspirr"options(dbname'gspdb')
createusermappingfor"gspirr"SERVER"MYSERVER"options(REMOTE_AUTHID'esb',REMOTE_PASSWORD'esb')
db2createnicknameTBL_TRANSACTION_TRACE_1forMYSERVER.esb.TBL_TRANSACTION_TRACE_1
db2createnicknameTBL_TRANSACTION_TRACE_2forMYSERVER.esb.TBL_TRANSACTION_TRACE_2
/////////11111
db2"createwrapperdrda"&&db2"createserveresbsvrtypedb2/aix64version9.1.0wrapperdrdaauthorization/"esb02/"password/"esb02/"options(dbname'esbdb')"
姜海胜13:
51:
21
db2createusermappingforesb01SERVER"MYSERVER"options(REMOTE_AUTHID'esb02',REMOTE_PASSWORD'esb02')
db2catalogtcpipnodedbnodeREMOTE10.20.2.247SERVER60004
db2catalogdatabaseesbdbatnodedbnodeauthenticationserver
db2createwrapperdrda
cr