第Ⅰ部分Oracle Streams简介 3
第1章Oracle Streams的概念 3
1.1 Oracle Streams中的信息流 4
1.2 Oracle Streams体系结构概述 5
1.2.1捕获组件 5
1.2.2暂存和传播组件 7
1.2.3消费组件 8
1.2.4队列 9
1.2.5 Oracle Streams标签 10
1.2.6规则和规则集 10
1.2.7实例化 11
1.2.8 LogMiner数据字典 11
1.2.9 Streams数据字典 12
1.2.10 NOLOGGING操作和UNRECOVERABLE操作 12
1.2.11补充日志 12
1.2.12逻辑修改记录 13
1.2.13表数据的比较 14
1.3本章小结 14
第2章 使用Oracle Streams 15
2.1数据复制 16
2.1.1单向复制 16
2.1.2双向复制 17
2.1.3点对点复制 17
2.1.4辐射型复制 18
2.1.5与非Oracle数据库的复制 21
2.2数据仓库加载 21
2.3数据审计 21
2.4数据保护 22
2.5消息队列管理 22
2.6在数据库升级时减少停工时间 23
2.7在进行维护工作时减少停工时间 23
2.8本章小结 24
第Ⅱ部分Oracle Streams的概念和架构 27
第3章Streams规则和规则集 27
3.1规则 28
3.1.1评估上下文 28
3.1.2规则条件 28
3.1.3操作上下文 29
3.2规则集 29
3.2.1正规则集 30
3.2.2负规则集 31
3.3创建规则和规则集 33
3.3.1系统创建的规则和规则集 34
3.3.2用户创建的规则和规则集 47
3.3.3用于删除不支持LCR的规则条件 50
3.4管理规则和规则集的存储过程 52
3.5本章小结 52
第4章 捕获进程 55
4.1捕获规则的类型 56
4.1.1本地捕获进程 56
4.1.2下游捕获进程 57
4.2捕获进程检查点和系统修改编号 59
4.2.1必需的检查点SCN 60
4.2.2最大检查点SCN 60
4.2.3 First SCN 60
4.2.4 Start SCN 61
4.2.5已捕获的SCN 61
4.2.6最近入队的SCN 62
4.2.7应用的SCN 62
4.2.8源重置日志SCN 62
4.2.9检查点保存时间 62
4.3创建捕获进程 63
4.3.1创建本地捕获进程 63
4.3.2创建下游捕获进程 68
4.3.3创建同步捕获进程 70
4.3.4捕获用户 72
4.4捕获进程组件 72
4.5捕获进程参数 73
4.6未捕获到的修改 77
4.6.1捕获进程未捕获到的修改 78
4.6.2同步捕获进程未捕获到的修改 79
4.6.3检查不支持对象的方法 79
4.7 NOLOGGING操作 81
4.8补充日志 82
4.8.1补充日志的用途 82
4.8.2补充日志的类型 83
4.8.3系统创建的补充日志组 86
4.9本章小结 87
第5章 暂存进程与传播进程 89
5.1队列模型 90
5.2队列类型 90
5.2.1 ANYDATA类型的类型化队列 90
5.2.2缓冲区队列 90
5.2.3持久化队列 91
5.2.4安全队列 91
5.2.5事务队列 91
5.2.6非事务队列 91
5.2.7提交时队列 91
5.3 Streams客户端使用队列的方式 92
5.4创建Streams队列 92
5.5传播 96
5.5.1队列-数据库链接传播 96
5.5.2队列-队列传播 96
5.5.3有向网络 97
5.5.4创建传播进程 98
5.5.5传播规则集和规则 103
5.5.6传播作业和调度计划 104
5.6本章小结 108
第6章 应用进程 109
6.1应用进程概述 110
6.2应用进程状态 110
6.3应用进程组件 110
6.3.1 reader服务器 111
6.3.2协调器进程 112
6.3.3服务器进程 112
6.4应用用户 114
6.5创建应用进程 114
6.5.1自动创建应用进程 115
6.5.2手动创建应用进程 119
6.6应用进程参数 121
6.7处理触发器 125
6.8处理列差异 127
6.8.1数据类型不匹配 127
6.8.2目标表中列的数目不够 127
6.8.3目标表中列的数目过多 128
6.8.4列名不匹配 128
6.8.5没有主键或唯一键 128
6.9处理事务依赖 129
6.9.1对象依赖 130
6.9.2值依赖 130
6.10应用进程的消息处理 131
6.10.1 DML处理程序 132
6.10.2 DDL处理程序 137
6.10.3错误处理程序 139
6.10.4预提交处理程序 142
6.11不能应用的修改 142
6.12本章小结 143
第7章 逻辑修改记录 145
7.1行LCR 146
7.2 DDL LCR 147
7.3 LCR中的额外特性 148
7.4访问LCR内容 149
7.4.1访问行LCR内容 152
7.4.2访问DDL LCR内容 157
7.5修改LCR内容 159
7.5.1修改行LCR内容 159
7.5.2修改DDL LCR内容 163
7.6 LCR和LOB数据类型 165
7.7本章小结 166
第Ⅲ部分Oracle Streams配置 171
第8章 为数据复制配置Oracle Streams 171
8.1 Streams配置方法 172
8.2首要任务 172
8.2.1准备数据库 172
8.2.2创建数据库之间的网络连接 176
8.2.3创建Streams Administrator账户 177
8.2.4创建数据库链接 178
8.2.5创建目录对象 179
8.3使用MAINTAIN存储过程配置Streams 179
8.3.1数据库级别的Streams复制 180
8.3.2模式级别的Streams复制 182
8.3.3表级别的Streams复制 184
8.3.4表空间级别的Streams复制 185
8.3.5使用MAINTAIN存储过程配置下游捕获进程 188
8.3.6监控MAINTAIN存储过程的进度 190
8.3.7从MAINTAIN存储过程的错误中恢复 192
8.3.8MAINTAIN存储过程的优势 194
8.3.9MAINTAIN存储过程的限制 194
8.4使用自定义脚本配置Streams 195
8.4.1含有本地捕获进程的单向复制 196
8.4.2包含下游捕获进程的单向复制 202
8.4.3双向复制 207
8.4.4从单个源到多个目标的复制 211
8.4.5使用队列转发的复制 211
8.4.6使用应用转发的复制 212
8.4.7使用同步捕获进程的复制 213
8.4.8辐射型复制 216
8.4.9点对点复制 218
8.5本章小结 219
第9章 数据转换 221
9.1基于规则的转换的种类 222
9.1.1声明性的基于规则的转换 222
9.1.2自定义的基于规则的转换 223
9.2使用基于规则的转换的场合 224
9.3找到规则名 224
9.4配置声明性的基于规则的转换 225
9.4.1 ADD COLUMN存储过程 225
9.4.2 DELETE COLUMN存储过程 227
9.4.3 KEEP COLUMNS存储过程 228
9.4.4 RENAME COLUMN存储过程 230
9.4.5 RENAME SCHEMA存储过程 231
9.4.6 RENAME TABLE存储过程 232
9.5基于规则的转换和DDL复制 233
9.6配置自定义的基于规则的转换 233
9.6.1针对DDL LCR的自定义的基于规则的转换 234
9.6.2针对行LCR的自定义的基于规则的转换 238
9.7移除基于规则的转换 240
9.7.1移除声明性的基于规则的转换 240
9.7.2移除自定义的基于规则的转换 243
9.8表子集规则转换 243
9.9转换的执行顺序 244
9.10本章小结 245
第10章 数据冲突处理 247
10.1冲突类型 248
10.1.1删除冲突 248
10.1.2更新冲突 248
10.1.3唯一性冲突 248
10.1.4外键冲突 248
10.2避免冲突的方法 249
10.2.1避免唯一性冲突 249
10.2.2避免删除冲突 251
10.2.3避免更新冲突 251
10.3解决冲突 251
10.4使用预置的更新冲突处理程序 251
10.4.1使用列列表(column list) 253
10.4.2使用解析列 253
10.4.3建立预置的更新冲突处理程序 253
10.4.4列出定义的更新冲突处理程序 256
10.4.5修改更新冲突处理程序 256
10.4.6移除更新冲突处理程序 257
10.5为非关键列停止冲突检测 258
10.6自定义冲突处理程序 259
10.7本章小结 265
第Ⅳ部分Oracle Streams管理 269
第11章 管理和监控Streams复制 269
11.1管理Streams进程 270
11.1.1管理捕获进程 270
11.1.2管理同步捕获进程 277
11.1.3管理传播进程 277
11.1.4管理应用进程 279
11.2监控Streams进程 283
11.2.1监控捕获进程 284
11.2.2监控传播进程和队列 287
11.2.3监控应用进程 289
11.3监控事务 295
11.4分割和合并:管理和监控 297
11.4.1自动分割和合并 298
11.4.2手动分割和合并 300
11.5 Streams Performance Advisor 301
11.6本章小结 304
第12章 维护和错误处理 305
12.1扩展Streams环境 306
12.1.1添加对象到已有的Streams环境中 306
12.1.2添加数据库到已有的Streams环境中 308
12.2移除Streams配置 311
12.2.1移除整个Streams配置 311
12.2.2移除指定的Streams配置 311
12.3调试Streams进程 317
12.3.1调试捕获进程 317
12.3.2调试传播进程 320
12.3.3调试应用进程 322
12.4 Streams消息跟踪 331
12.5 Streams健康检查报告 334
12.6数据比较和收敛 335
12.6.1创建比较 336
12.6.2运行比较 336
12.6.3列出比较 337
12.6.4从本地表向远程表收敛 337
12.6.5重新检查比较 338
12.6.6清除比较 339
12.6.7删除比较 339
12.7本章小结 339
第13章Streams性能考量 341
13.1 Streams队列溢出 342
13.2应用溢出 343
13.3处理大事务 343
13.3.1 Streams标签 345
13.3.2存储过程复制 346
13.4处理长时间运行的事务 346
13.5日志挖掘活动 347
13.6考量捕获进程 347
13.6.1并行化 348
13.6.2检查点信息 348
13.7考量传播进程 349
13.8考量应用进程 350
13.8.1调校应用进程参数 350
13.8.2处理LOB数据类型 351
13.8.3应用规则集 353
13.8.4检测冲突 353
13.9修复故障 353
13.10本章小结 354
第14章OEM Grid Control在Streams复制中的应用 355
14.1 Streams配置向导 356
14.2创建模式级别的复制 358
14.2.1第1步:对象选择 358
14.2.2第2步:目标选项 358
14.2.3第3步:复制选项 359
14.2.4第4步:调度作业 360
14.2.5第5步:检查 361
14.3监控和管理Streams复制环境 362
14.3.1监控捕获进程 363
14.3.2监控传播进程 364
14.3.3监控应用进程 365
14.3.4显示事务细节:LogMiner会话 367
14.3.5显示Streams组件概要信息 368
14.3.6显示Streams路径和性能分析数据 369
14.3.7管理Streams进程 371
14.3.8管理应用错误 373
14.4 Streams指标和告警 374
14.5本章小结 376
第Ⅴ部分 附录 379
附录A Oracle Streams最佳实践 379
附录B RAC环境中的Oracle Streams复制 387
附录C Streams健康检查报告 393
附录D Streams复制的数据字典视图 399
附录E参考文献 407