DB2学习:
访问数据库方式:
嵌入式sql语句:
调用级接口(CLI):
开放式数据库链接(ODBC):
JAVA:
JDBC:
嵌入式SQLJ
API:
DB2安装:
DB2
db2icrt Instname 创建实例
db2icrt Instname 删除实例
set DB2INSTANCE= 设置当前的缺省实例
db2start 启动实例
db2stop 停止实例
db2ilist 列出所有实例
attach to [实例名] user [用户名]using [用户口令]连接到某个实例
创建实例:
db2icrt db2_name
删除实例:
db2idrop db2_name
设置实例:
set db2instance=db2
得到实例:
get instance
查看实例:
db2ilist
链接实例:
connect to db2_name_instance
connect to db2_name instance user fanzaijun using password;
链接实例重置:
connect reset
DB2卸载再重装:
卸载之后原来的创建的数据库并没有被删除。所以重装就要注意:
tips:
如果样本数据库没有创建成功,系统提示sample数据库已经存在,
此时需要敲入如下的命令重新编目:
db2 catalog db db2_name on drive_name;
db2_name:数据库名称。
drive_name:是db2目录所在的驱动器。
在编目的过程中如果出现数据库需要迁移(Migrate)的错误应该用migrate命令迁移数据库(从低版本到高版本)
migrate database db_name
DB2基本命令:
db2start;
db2stop;
connect to 数据库名 user 用户名 using 密码
list application for db sample show detail
force application all
list tables
list tables for system
describe select * from 表名
取前n行 select * from staff fetch first 2 rows only
执行一个批处理 db2 –tvf 批处理文件名
quit
事务:数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。
一组原子性操作;
提交:commit;
回退:rollback;
db2 +c自动提交
db2 -c不自动提交
List command options 显示CLP的参数
在db2命令行处理器中能够对DDL语句自动提交
DB2 DAS:
DAS(DB2 Administrative Server,DB2管理服务器)是一个特殊的DB2管理控制点,
它用于辅助实例完成本地和远程的管理任务。若使用客户机配置辅助程序或控制中心,则必须要有一个正在运行的DAS.
DB2的数据库管理服务器实际上也是一个实例,只不过这个实例不是用于数据服务的,而是用于管理目的。数据库管理服务器提供以下功能:
1.接受远程客户端的管理请求,将远程的管理请求在数据库服务器端实现
2.允许用户进行任务调度
3.允许用户对系统进行远程监控
4.响应DB2 Discovery,为其提供系统信息
数据库管理服务器可以在系统安装时自动生成,也可以在安装后手工创建,
在一台DB2数据库服务器中只能有一个数据库管理服务器
db2admin create 创建DAS
db2admin drop 删除DAS
db2admin start 启动DAS
db2admin stop 停止DAS
db2admin 查看已有的DAS名称
db2 get admin cfg 查看DAS参数
db2 update admin cfg using ... 修改DAS参数
db2信息中心:--db2ic
对于 DB2 V10.1 主题,DB2 信息中心 URL 是 http://publib.boulder.ibm.com/infocenter/db2luw/v10r1。
对于 DB2 V9.8 主题,DB2 信息中心 URL 是 http://publib.boulder.ibm.com/infocenter/db2luw/v9r8/。
对于 DB2 V9.7 主题,DB2 信息中心 URL 是 http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/。
对于 DB2 V9.5 主题,DB2 信息中心 URL 是 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5。
对于 DB2 V9.1 主题,DB2 信息中心 URL 是 http://publib.boulder.ibm.com/infocenter/db2luw/v9/。
对于 DB2 V8 主题,请转至 DB2 信息中心 URL:http://publib.boulder.ibm.com/infocenter/db2luw/v8/。
db2控制中心 10淘汰掉了
db2日子-db2journal
db2任务中心-db2tc
db2概要文件注册表:全局级概要文件,实例级概要文件,实例节点级概要文件,用户级别概要文件。
db2set -all//显示所有环境变量。
set var=value 设置变量
set var= 删除变量
echo %var% 查看变量
命令窗口--db2cw
命令行处理器:CLP(command line processor)
命令行处理器中输入模式为交互模式,也就是说在输入的命令前无需加上“db2”。命令行处理器在执行操作系统命令的时候,需要在所执行的操作系统命令前加上“!”符号
命令行选项:
db2 list command options
db2 数据库与表空间
db2中,数据库是实例下的最大数据对象的集合。是一组通常以某种方式相关联的表。
从数据库管理员的角度看:
实际数据库包含许多下面列出的物理和逻辑对象。
表,视图,索引和模式。
锁,触发器,存储过程的包。
缓冲池,日志文件和表空间。
数据库中表的类型:
用户表:即存放用户数据的表
系统表:存放系统数据的表,用来记录该数据库中所有的对象(表,视图,索引)
临时表:系统的临时表用于对表排序、重组、连结、创建索引等
DB2 利用一个逻辑存储模型和一个物理存,储模型来处理数据。
数据库由称为表空间的部件组成,
表空间是用来存储表的位置,
表空间可以分布在一个或多个物理存储设备上
容器:物理存储设备(真正的存储设备),可以是操作系统目录(文件夹)、设备或操作系统文件,表实际存储于容器中。
表空间:一个表空间可以包括多个容器,是容器的逻辑集合,一个容器只能属于一个表空间,一个表空间也只能属于一个数据库。 一对多的关系。
表:在逻辑上,表存储于一个表空间中,实际上是分布在对应表空间的物理容器中,表空间在数据库内创建,表则在表空间内创建。
表空间分类:
以存储的数据种类来区分,分为:
1)常规表空间:用户表和系统目录表放在这个表空间中。
2)临时表空间: 分为系统临时表空间和用户临时表空间。
3)大型表空间:包含长型字段数据或大对象数据(例如,多媒体对象)的表可以存在 此表空间中。
以管理方式来区分,DB2的表空间可以分为:
1) SMS 系统管理空间 (SMS)
数据存放在文件系统的文件中
使用操作系统的标准I/O函数来访问数据
除非需要,否则空间不会被额外分配
适用于小型,个人数据库以及存储空间变化频繁的数据库
对维护和监控要求较低
2) DMS 数据库管理空间
数据存储在文件或者Raw设备中
能够绕过操作系统的I/O函数从而增加性能
适用于对数据库性能要求比较高的应用程序
需要较频繁的维护和监控
3) DMS 的自动存储(Automatic Storage With DMS) : 不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
数据库允许使用自动存储时
数据库管理器能够自动分配容器 (物理存储地址)
自动调整表空间的大小
对普通/大型表空间来使用数据库管理
对用户或系统临时表空间使用系统管理
容器:
容器是一块实体磁盘空间。一个表空间可以有一个或多个容器。
一个表空间可以有一个或多个容器。
创建数据库后,磁盘空间:
D:/
DB2
NODE0000
TEST
T0000000
T0000001
T0000002
T0000003
表空间建立;
建立表空间向导或命令
命令格式:
Create tablespace 表空间名 pagesize 4k(或8k等值) managed by database(system) using(file/device ….) extentsize 16
指定数据页的大小 指定表格空间的类型dms或sms 指定数据容器的类型 指定一个数据容器使用多少个页后开始使用下一个数据容器
创建数据库:
create database 数据库名 disconnect 数据库名 connect reset 显示当前活动数据库 list active databases / list db directory; list db directory on d:
当执行完connect reset命令后,断开与当前数据库的连接。然后执行list active databases命令,系统提示““数据库系统监视器”没有返回任何数据。”
数据库处于活动状态并不一定建立了与数据库的连接。但是建立了与数据库连接后,数据库一定处于活动状态
激活数据库
activate database 数据库名 [user 用户名 using 密码]
取消激活数据库
deactivate database 数据库名[user 用户名 using 密码]
在使用deactivate database 命令时,数据库上不能有活动的连接存在
List applications ;force application all
创建有无自动存储功能的数据库
Create database mydb1 automatic storage yes/no on d:
存储路径 数据库路径
驱动器/目录“的具体值可以在 CREATE DATABASE 命令中指定(对于Windows 平台,用户只能指定要创建数据库的驱动器;
eg:
创建数据库mydb4,指定存储路径为E:\ml,数据库路径为D:\
Create Database mydb4 On E:\ml dbpath On D:\
注意: 数据库路径必须指定为驱动器。存储路径的文件夹要先创建成功。
编目
在创建 DB2 数据库的服务器上通常不需要对它进行编目,但是,要想从客户机访问数据库,客户机就必须先在本地对数据库进行编目,这样应用程序才能访问它。
在客户机上对数据库进行编目有三种方法:
使用发现的自动配置
使用访问配置文件的自动配置
手工配置:
要使用命令在命令行处理器进行配置,要执行如下两步:
第一步:catalog tcpip node <节点名> remote <服务器IP> server <服务器端口默认50000>
第二步:catalog database 数据库名 as <别名> at node <节点名>
如果没有编目信息,应用程序就无法连接数据库!
SQL 简介:
DB2支持查询关系型数据的SQL语言,同样也支持查询XML数据的XQUERY语言
SQL四种语句类型:
数据定义语言 (DDL)
定义数据对象的属性
例如. CREATE, ALTER, DROP, TRANSFER OWNERSHIP
数据管理语言 (DML)
用来返回,添加,编辑和删除数据
例如. SELECT, INSERT, UPDATE, DELETE
数据控制语言 (DCL)
控制数据库和数据对象的访问
例如. GRANT, REVOKE
事务控制语言 (TCL)
将一组DML语句组合到事务中来集中地应用到一个数据库或者因为错误而处于未完成的状态
例如. COMMIT, ROLLBACK, SAVEPOINT
DB2处理机制:
db2引擎(db2sysc)
在内存中,住引擎处理程序(db2sysc)以进程模式存在。
引擎分派单元(Engine Dispatchable units -EDU) 负责执行各种任务
进程模型的优势:
增加数据库性能;
节省内存资源;
db2代理(db2agent)
EDU作为应用程序的代理,负责执行各种任务,包括处理数据库应用程序请求。
DB2 engine保持多个代理存在来保证当有服务请求时能够及时响应
两种主要代理方式:
协调代理,子代理。
DB2实例:
独立的db2环境
每个数据库服务器可以有多个实例
所有的实例共享客执行的二进制文件
每个实例有自己的配置参数文件
每个实例可以有不同的软件级别
命令 描述 例子
db2start 启动默认实例 db2start
db2stop 停止当前实例 db2stop -f
db2icrt 创建实例 db2icrt –u db2fenc1 db2inst1
db2idrop 删除实例 db2idrop –f db2inst1
db2ilist 列出所有实例 db2ilist
db2imigr 升级DB2后迁移一个实例 db2imigr –u db2fenc1 db2inst1
db2iupdt 安装补丁后升级实例 db2iupdt –u db2fenc1 db2inst1
描述 例子
查看数据库管理器配置 db2 get dbm cfg show detail
更改数据库管理器配置 db2 update dbm cfg using health_mon off
描述 例子
查看数据库配置 db2 get db cfg for testdb
db2 connect to testdb
db2 get db cfg show detail
更改一个数据库配置 db2 update db cfg using logprimary 10
IBM Data Server Client客户端
允许客户端计算机连接远程服务器并且访问该服务器上的数据库. 通过三种方式:
IBM Data Server Runtime Client
支持在JDBC, ADOODBC, DB2 CLI, .NET, ADO.NET, OLE DB, PHP和Ruby中运行和配置应用程序.
包含DB2 CLP命令行程序,但是没有图形化界面工具
目录保存连接信息(结点, 数据库)
IBM Data Server Client
包括以上所有功能,另外对应用程序开发,数据库管理和配置服务器/客户观提供支持
包括图形化工具
IBM Data Server Drivers
IBM ODBC和CLI数据服务器驱动程序
IBM JDBC和SQLJ数据服务器驱动程序
IBM数据服务器驱动程序包
ODBC, CLI, .NET, OLE DB, PHP, Ruby, JDBC和SQLJ
CLPPlus
DB2 存储 : 缓冲池
用来放置表和索引的缓存数据的内存区
能够有效的减少访问数据的时间
每个数据库至少需要一个缓冲池
通过内存自调优功能(STMM)来自动调价缓冲池达到优化目的
每个表空间都有一个同样页面大小的缓冲池
根据表的用途设置多个缓冲池,能够通过缓冲不同数量的数据来达到增加数据库性能的目的,比如说:
给一个大型的随机访问表空间较小的缓冲池
给OLTP应用程序设置的表空间一个较大的缓冲池
如果创建表空间时,没有特别指定缓冲池,那么数据库会使用默认的 IBMDEFAULTBP缓冲池
CREATE BUFFERPOOL bp4k PAGESIZE 4K
CREATE TABLESPACE tbsp1 PAGESIZE 4K BUFFERPOOL bp4k
DB2 安全性
DB2中有三种授权方式:
权限
特权
LBAC基于标签访问
显式权限/特权:
通过GRANT语句来显式赋予权限或特权给用户
隐式权限/特权:
赋予用户所在的用户组,或用户所属的角色或其所继承的角色权限或特权来隐式的将该权限或特权赋予此用户
如何创建支持XML和关系型数据的SAMPLE数据库:
db2sampl –sql –xml
SAMPLE 数据库能够在任何时候被删除或者重建:
db2 drop database SAMPLE
DB2 访问方案
Import/Export/Load 功能
Oracle 工具
输出数据: Oracle exp; SQL*Plus
输入数据: Oracle imp; SQL*Loader
DB2 EXPORT
用来将表或者视图中数据输出到文件
DB2 IMPORT
使用SQL INSERT语句来向表中输入数据
DB2 LOAD
高速,低级的数据装载功能
装载处理的步骤
装载
创建
删除
拷贝索引
DB2 数据库常用监控命令
DB2 Snapshot
DB2 Event Monitor
db2expln, Visual Explain - DB2 Explain Tool
db2top - IBM Single System View Monitor for DB2
db2pd
db2advis - DB2 Design Advisor
IBM Data Studio
总览
项目和工作区
数据源浏览视图
创建数据库连接
添加、修改、删除数据和数据库对象
创建、执行和分析查询
项目浏览视图
创建数据项目
创建和部署内置程序
命令大全:下一篇见!