DB2学习必须有的

颛孙越
2023-12-01

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
        总览
        项目和工作区
        数据源浏览视图
        创建数据库连接
        添加、修改、删除数据和数据库对象
        创建、执行和分析查询
        项目浏览视图
        创建数据项目
        创建和部署内置程序

命令大全:下一篇见!

 类似资料: