DB2数据库基础
DB2数据库基础 1
1 DB2概念 8
1.1 版本 8
1.1.1 DB2产品的级别 8
1.1.2 可以连接到DB2数据库的产品 8
1.1.3 DB2支持的通讯协议 9
1.1.4 DB2客户端产品 9
1.1.5 DB2提供哪些关系扩展器 9
1.1.6 Journal 9
1.2 层次结构 10
1.3 GUI工具 11
1.4 备份与恢复 12
1.4.1 备份 12
1.4.2 恢复 12
1.5 配置参数 13
1.5.1 配置参数 13
1.5.2 注册表变量和环境变量 14
1.5.3 管理服务器配置设置 15
1.5.4 数据库管理器配置参数 16
1.5.5 数据库配置参数 19
2 实例和数据库 24
2.1 管理服务器 24
2.2 实例和数据库 24
2.2.1 启停实例 24
2.2.2 实例 24
2.2.3 数据库 25
2.3 客户端配置 29
2.3.1 为了保证数据库能够远程连接和管理,需要首先保证: 29
2.3.2 unix的客户端安装: 30
2.4 特殊对象 31
2.5 通用对象 32
2.6 触发器 35
2.7 存储过程procedure 35
2.8 db2look 40
2.9 Common process 40
3 SQL介绍 41
3.1 DB2数据类型 41
3.2 DDL数据定义语言 42
3.2.1 数据库(不能算DDL语言,只能算DB2 CLP命令): 43
3.2.2 表: 43
3.2.3 表空间: 44
3.2.4 缓冲池 44
3.2.5 索引: 45
3.2.6 视图: 45
3.3 DML数据库操纵语言 45
3.3.1 SELECT 46
3.3.2 DELETE 46
3.3.3 INSERT 46
3.3.4 UPDATE: 46
3.3.5 WITH表达式(公共表表达式) 47
3.3.6 CASE表达式 47
3.3.7 CAST表达式 47
3.3.8 查看一个sql语句执行需要的时间的命令 48
3.3.9 value函数 48
3.3.10 取得一个表的行数 48
3.4 DCL—数据控制语言 48
3.4.1 GRANT 48
3.4.2 REVOKE 48
3.4.3 COMMIT 49
3.4.4 ROLLBACK 49
3.5 高级sql简单介绍 49
3.5.1 查询间使用运算词 49
3.5.2 外连接 49
3.5.3 超级分组和移动函数 50
3.5.4 常用函数介绍 50
4 表空间状态 56
5 约束 69
5.1 唯一约束 69
5.2 引用约束(就是外键约束) 69
5.3 表检查约束 70
5.3.1 将表置于检查挂起状态 70
6 数据移动 71
DB2MOVE支持IXF 71
6.1 del格式的倒入倒出(del文件可视) 71
6.1.1 概述 71
6.1.2 改变del格式文件的格式控制符 71
6.1.3 大数据的导出 72
6.2 ixf格式的倒入倒出(ixf文件不可视) 72
6.2.1 概述 72
6.2.2 把导出信息保存在消息文件中 72
6.2.3 给导出数据列重命名 73
6.3 ASC格式的导入导出 73
6.3.1 以ASC格式将数据导出到文件 73
6.3.2 从ASC格式文件中导入数据 73
6.4 整个倒入倒出 74
6.4.1 Db2move格式 74
6.4.2 具体步骤 75
6.5 LOAD 76
6.5.1 从游标类型文件进行导入 77
6.5.2 关于异常表 77
6.5.3 关于DUMP文件 77
6.5.4 限制装入行数 78
6.5.5 出现警告信息时强令装入操作失败 78
6.5.6 防止产生警告信息 79
6.5.7 生成统计数据 79
6.5.8 解除检查挂起状态 80
6.5.9 性能因素 80
6.5.10 批量复制 81
7 应用技巧 82
7.1 强行中断用户联接方法 82
7.2 通过结果集创建表 82
7.3 单引号转换 82
7.4 DB2备份历史文件损坏 82
7.5 发布存储过程 83
7.6 行长度、列数以及每页行数在表空间中的限制 83
7.7 编译SQL语句时出现SQL0101N错误 83
7.8 已删除表的恢复(Dropped Table Recovery) 84
7.9 如何更改本地系统名称 84
7.10 在AIX上建立裸设备数据库管理(DMS)表空间 84
7.11 如何在Unix平台上启动控制中心(Control Center) 85
7.12 解決数据库別名已存在问题 85
7.13 直接备份DB2数据库到磁带设备 86
7.14 如何解决DB2数据库代码页不相容的问题 86
7.15 经常遇上的一些问题 86
7.15.1 缺省临时表空间设置需要注意问题 86
7.15.2 内存太小容易引起的问题 86
7.15.3 以空文件导入并替换目标表 86
7.15.4 不能重新创建工具数据库的方法 87
7.15.5 查询的优化(HASH) 87
7.16 获取表结构以及索引的信息 87
7.17 检查数据库连接有关的错误 88
7.18 在恢复数据库遇到SQL2542错误 88
7.19 使用IMPORT如何避免日志空间满错误 89
7.20 如何创建用户定义临时表 89
7.21 在 AIX 和 Solaris 上如何配置存储过程构建器(SPB) 90
7.22 db2move export 时报错SQL3132W 90
8 Db2操作 91
8.1 执行脚本命令 91
8.2 获得帮助命令 91
8.3 CLP命令总结 92
8.3.1 Get Snapshot 92
8.3.2 事件监控 93
8.3.3 Visual Explain (说明SQL) 96
8.3.4 存取方案(估计执行时间) 96
8.3.5 存取方案图 97
8.3.6 重组和运行统计信息 98
UPDATE STATISTICS: 更新表的统计数据,根据该统计数据判断是否需要重组表 98
8.3.7 应用程序开发 99
9 SQL 复制 100
9.1 服务器参数配置 100
9.1.1 更改服务器参数 100
9.1.2 更改管理服务器参数 100
9.1.3 更改数据库参数 100
9.2 在迁移之后存取数据源 100
9.2.1 在迁移至 DB2 II 之后存取 Oracle 数据源 100
9.2.2 在迁移至 DB2 II 之后存取 Sybase 数据源 102
9.2.3 在迁移至 DB2 II 之后存取 Microsoft SQL Server 数据源 103
9.2.4 在迁移至 DB2 II 之后存取 ODBC 数据源 105
9.2.5 迁移至 DB2 版本 8 64 位(UNIX) 106
9.3 DB2 II 控制中心连接配置 107
9.3.1 sql server 2000 107
9.3.2 Sybase11.9 108
9.3.3 Oracle9i 109
9.4 XML 109
9.5 EXCEL 110
9.6 DB2 II 复制中心连接配置 110
9.6.1 capture控制服务器 110
9.6.2 apply控制服务器 113
9.7 DB2II访问Oracle数据库的配置说明 115
9.8 复制的方式 116
9.9 复制的起停 116
9.9.1 建立密码文件 116
9.9.2 启动capture 116
9.9.3 启动apply 116
CONTROL_SERVER是指apply服务器的名字 116
9.9.4 停止capture 117
9.9.5 停止apply 117
9.9.6 aix自动调用 117
9.9.7 备注 117
9.10 如何手工完成复制的初次全量数据刷新 117
9.11 疑点难点 120
9.11.1 复制中会遇到的问题 120
D:\Program Files\IBM\SQLLIB\DB2\ db2diag.log文件需要定期删除 120
9.11.2 获得其他数据库的结构 120
9.11.3 概要表 120
9.11.4 DB2复制出现G错误的解决方式 121
9.11.5 当CAPTRUE出现ASN0121E错误时 121
9.11.6 跟踪错误 121
9.11.7 删除数据库日志 123
9.12 在aix环境下创建复制时常用命令 123
9.12.1 在aix环境下配置oracle客户端 123
9.12.2 db2升级后oracle的初始化配置 123
9.12.3 设置oracle在db2的环境变量 124
9.12.4 设置sybase环境变量 124
9.12.5 在aix环境下启动oracle控制台 124
10 备份复原 125
10.1 日志 125
10.2 备份 125
10.2.1 第一次联机备份数据库 126
10.3 增量备份 126
10.4 复原 127
11 安全性 129
11.1 认证(Authentication) 130
11.2 授权层次和特权(Hierarchy of Authorities and Privileges) 131
11.3 锁定 133
11.3.1 锁定的隔离级别(isolation levels) 133
11.3.2 获得表的排斥锁 133
11.3.3 解除表的锁定 134
COMMIT 134
12 审计设施 134
13 并行性 134
13.1 数据分区 134
13.2 并行性 134
13.2.1 输入输出并行性 134
13.2.2 查询并行性 135
13.2.3 应用程序并行性 135
14 逻辑数据库设计 136
14.1 数据类型 136
14.2 规范化 136
14.2.1 第一范式 136
14.2.2 第二范式 136
14.2.3 第三范式 137
14.2.4 第四范式 137
15 物理数据库设计 138
15.1 数据库目录和文件 138
15.2 数据库对象的空间需求 138
15.3 系统目录表的空间需求 139
15.4 用户表数据的空间需求 139
15.5 长型数据和大对象所需空间需求 139
15.6 索引需要的表空间 140
15.7 日志文件的空间需求 140
15.8 表空间设计 140
15.8.1 系统管理空间 141
15.8.2 数据库管理空间 142
15.8.3 表空间映射 143
15.8.4 在DMS表空间中如何添加和扩展容器 143
15.8.5 如何在DMS表空间中缩小和删除容器 144
15.8.6 SMS和DMS表空间的比较 145
15.9 表空间磁盘I/O 145
15.10 表空间设计中的工作负荷注意事项 146
15.10.1 联机事务处理的工作负荷 146
15.10.2 查询工作负荷 146
15.10.3 混和工作负荷 146
15.11 数据块大小 147
15.12 临时表空间设计 148
15.13 目录表空间设计 148
15.14 当数据在RAID设备上时优化表空间性能 148
15.15 为表选择表空间需要注意的事项 149
16 许可证中心 150
DB2LEVEL 150
DB2LICM -L 150
DB2LICM -A FILENAME 150
DB2LICM -R PRODUCT PASSWORD 150
DB2LICM -U 150
DB2LICM -E HARD 150
DB2LICM -P REGISTERED CON CURRENT 150
DB2LICM -N 150
DB2LICM -V 150
DB2LICM –H 150
Db2licm –l 150
17 内存开支情况 151
17.1.1 Database manager shared memory 151
17.1.2 Database global memory 151
17.1.3 Application global memory 151
17.1.4 Agent private memory 152
17.1.5 Agent /application shared memory 152
18 附件 153
18.1 DB2用“DB2 发现”自动配置数据库连通性 153
18.2 daslist 列出系统中的DAS 155
18.2.1 QUIESCE Command 156
Scope 156
Authorization 156
Command syntax 157
'-DEFER--+-----------------------+-' 157
'-DEFER--+-----------------------+-' 157
Required connection 157
Database 157
Command parameters 157
DEFER 157
WITH TIMEOUT 157
IMMEDIATE 158
FORCE CONNECTIONS 158
DATABASE 158
INSTANCE instance-name 158
USER user-name 158
GROUP group-name 158
Examples 158
Usage notes 159
18.2.2 Setting the error capture level for the administration notification log file 159
DB2 GET DBM CFG 159
DB2 UPDATE DBM CFG USING NOTIFYLEVEL X 159