为什么只能进保存的google书签保存在哪空间而不能进3G

资源页文档
fksec上传于
Oracle Database 11g数据库管理艺术--详细书签版
0分|下载736次|103.27MB
CruiseYoung提供的带有详细书签的电子书籍目录
http://blog.csdn.net/fksec/article/details/7888251
Oracle Database 11g数据库管理艺术(涵盖DBA必知必会的所有数据库管理知识)
原书名: Expert Oracle Database 11g Administration
原出版社: Apress
作者: (美)Sam R.Alapati
译者: 钟鸣 杨桦 杨卫军 孙登峰
丛书名: 图灵程序设计丛书 数据库
出版社:人民邮电出版社
上架时间:
出版日期:2010 年6月
开本:16开
页码:1033
所属分类:计算机 & 数据库 & Oracle
  本书针对大多数日常的oracle database 11g数据库管理任务,全面覆盖dba行业知识,并将理论与实践相结合,旨在为初中级dba提供高效运行数据库所需的方方面面的知识,帮助他们从oracle公司发行的大量资料中找到自己需要的信息。书中内容主要集中在大多数企业常见的问题之上,如***和升级到oracle database 11g数据库软件、创建数据库、导出和导入数据、数据库的备份与恢复、性能调优,等等。
  本书还提供了dba完成本职工作必备的基本的uniix、sql、pl/sql和数据建模的知识,也给出了许多富有趣味性的例子,通过这些实例详细、循序渐进地说明了oracle database 11g数据库的各个概念和特性。
  Sam R. Alapati是世界顶尖的Oracle技术专家,一位从业20余年的资深数据库管理员。他拥有Oracle OCP DBA***和HP UNIX System Administrator***,做过Oracle公司的高级顾问,并曾在AT&T、NBC等世界顶级公司担任DBA。目前,他管理着世界上最大的Oracle数据库----美国童子军全国总部数据库。除本书外,他还编写了Oracle公司OCP考试的官方教材。
  作者: (美)sam r.alapati
Sam R.Alapati是世界顶尖的Oracle技术专家,一位经验丰富的数据库管理员,有20多年从业经历。他拥有Oracle OCP DBA***和HP UNIX System Administrator***,曾经担任Oracle公司的高级顾问,并在AT&T、雷曼兄弟、NBC等世界顶级公司担任DBA。目前,他管理着世界上最大的Oracle数据库之一----美国童子军全国总部数据库。除本书外,他还是Oracle公司OCP考试官方教材的作者。
版权声明 -27
译者序 -26
第一部分 背景知识、数据建模、UNIX/Linux和SQL*Plus 1
第1章 Oracle DBA的世界 2
1.1 Oracle DBA的任务 2
1.1.1 DBA的安全任务 3
1.1.2 DBA的系统管理任务 3
1.1.3 DBA的数据库设计任务 5
1.2 不同的DBA工作分类 6
1.3 数据库的类型 6
1.3.1 联机事务处理和决策支持系统数据库 6
1.3.2 开发、测试和产品数据库 7
1.4 培训和认证 7
1.4.1 培训 7
1.4.2 认证 8
1.4.3 Oracle DBA的资源和组织 10
1.4.4 Oracle示例 11
1.4.5 Oracle数据库的两天DBA课程 11
1.4.6 Oracle MetaLink 11
1.4.7 Oracle Web Conference 12
1.5 普通Oracle DBA的日常工作 12
1.6 几点建议 12
1.6.1 知道何时寻求帮助 12
1.6.2 记住你并不孤单 13
1.6.3 站在全局看问题 13
1.6.4 首先是不要造成损害 13
第2章 关系数据库建模及数据库设计 14
2.1 关系数据库简介 14
2.2 关系数据库模型 15
2.2.1 数据库模式 15
2.2.2 关系代数 15
2.2.3 关系演算 16
2.2.4 SQL 16
2.3 关系数据库的生命周期 17
2.3.1 需求收集和分析 17
2.3.2 逻辑数据库设计 18
2.3.3 物理数据库设计 25
2.3.4 实现物理设计 27
2.4 反向设计数据库 28
2.5 对象--关系和对象数据库 28
2.5.1 关系模型 28
2.5.2 对象模型 28
2.5.3 对象--关系模型 29
2.5.4 半结构数据模型 30
第3章 Oracle DBA的UNIX/Linux基础 31
3.1 UNIX和Linux操作系统概述 31
3.1.1 UNIX 31
3.1.2 Linux 32
3.1.3 中档系统 32
3.2 理解UNIX shell 33
3.3 访问UNIX系统 33
3.4 基本UNIX命令概览 35
3.4.1 帮助信息:man命令 36
3.4.2 改变提示符 37
3.4.3 文件和目录的查找 37
3.4.4 命令输出的控制 38
3.4.5 显示文件的内容 38
3.4.6 比较文件 38
3.4.7 理解操作系统和Shell变量 38
3.4.8 UNIX中的输入和输出重定向 41
3.4.9 防止文件被覆盖 41
3.5 UNIX中文件和目录的浏览 42
3.5.1 UNIX系统中的文件 42
3.5.2 链接文件 42
3.5.3 管理文件 42
3.5.4 权限:读/写UNIX的文件 43
3.5.5 目录管理 45
3.6 用vi编辑器编写文件 46
3.6.1 利用vi创建和修改文件 46
3.6.2 用head和tail命令移动 47
3.7 文本的提取和排序 48
3.7.1 使用grep匹配模式 48
3.7.2 剪切、粘贴和联结文本 49
3.8 shell脚本 50
3.8.1 shell程序介绍 51
3.8.2 使用shell变量 51
3.8.3 用test命令求表达式的值 51
3.8.4 执行带命令行参数的shell程序 52
3.8.5 分析shell脚本 52
3.8.6 Korn shell编程中的流控制结构 53
3.9 管理UNIX进程 55
3.9.1 用ps命令收集进程信息 55
3.9.2 在注销后运行进程 56
3.9.3 在后台执行进程 56
3.9.4 用kill命令终止进程 56
3.10 UNIX系统管理和Oracle DBA 57
3.10.1 UNIX的备份和恢复实用程序 57
3.10.2 crontab和Automating脚本 57
3.10.3 使用telnet 58
3.10.4 远程登录和远程复制 59
3.10.5 使用SSH 59
3.10.6 使用FTP发送和接收文件 59
3.10.7 UNIX系统性能监控工具 60
3.11 UNIX中的磁盘和存储 64
3.11.1 磁盘存储配置选择 65
3.11.2 监控磁盘使用 65
3.11.3 磁盘存储、性能和可用性 66
3.12 RAID系统 67
3.12.1 RAID级别 67
3.12.2 选择理想的磁盘配置 69
3.12.3 冗余磁盘控制器 70
3.12.4 RAID和备份 70
3.12.5 RAID和Oracle 70
3.13 其他存储技术 70
3.13.1 SAN 71
3.13.2 NAS系统 71
3.13.3 InfiniBand 71
3.13.4 自动存储管理 72
3.13.5 Oracle与存储系统的兼容性 72
第4章 使用SQL*Plus和Oracle企业管理器 73
4.1 启动SQL*Plus会话 73
4.1.1 设置环境 73
4.1.2 从命令行启动SQL*Plus会话 74
4.1.3 用CONNECT命令进行连接 75
4.1.4 用/NOLOG的无连接SQL*Plus会话 76
4.1.5 通过Windows GUI连接SQL*Plus 76
4.1.6 在SQL*Plus中进行操作 77
4.2 退出SQL*Plus 77
4.3 SQL*Plus和SQL命令 77
4.3.1 SQL*Plus的安全性 78
4.3.2 用SET命令设置SQL*Plus环境 80
4.3.3 设置常用的SQL*Plus变量 81
4.3.4 SQL*Plus错误记录 84
4.3.5 SQL*Plus命令行选项 85
4.4 SQL*Plus管理命令 87
4.4.1 CLEAR命令 87
4.4.2 STORE命令 88
4.4.3 SHOW命令 88
4.5 关键的SQL*Plus“工作”命令 90
4.5.1 SQLPROMPT命令 90
4.5.2 DESCRIBE命令 91
4.5.3 HOST命令 91
4.5.4 SPOOL命令 92
4.5.5 ACCEPT和PROMPT命令 92
4.5.6 EXECUTE命令 92
4.5.7 PAUSE命令 93
4.6 格式化SQL*Plus的输出以及创建报告的命令 93
4.6.1 BREAK命令 93
4.6.2 COLUMN命令 94
4.6.3 COMPUTE命令 94
4.6.4 REPFOOTER命令 94
4.6.5 REPHEADER命令 94
4.6.6 BTITLE和TTITLE命令 94
4.7 在SQL*Plus中创建命令文件 95
4.7.1 将SQL缓冲区内容保存到文件中 95
4.7.2 在SQL*Plus中执行SQL脚本 95
4.7.3 创建Windows的批处理脚本 97
4.7.4 DEFINE和UNDEFINE命令 97
4.7.5 预定义SQL*Plus变量 97
4.7.6 在SQL*Plus中使用注释 98
4.7.7 显示SQL命令清单 98
4.8 在SQL*Plus中进行编辑 99
4.8.1 插入和删除行 100
4.8.2 添加文本 101
4.8.3 用REMARK命令加入注释 102
4.8.4 用COPY命令复制表 102
4.8.5 用SQL*Plus使DML的更改永久化 103
4.8.6 用SQL*Plus创建网页 103
4.9 主要的SQL*Plus数据库管理命令 104
4.9.1 RECOVER命令 104
4.9.2 STARTUP和SHOUTDOWN命令 104
4.9.3 ARCHIVE LOG命令 104
4.10 用SQL生成SQL 104
4.11 Oracle SQL Developer 105
4.12 OEM 106
4.12.1 使用OEM管理数据库的好处 106
4.12.2 OEM体系结构和组件 108
4.12.3 配置和使用Database Control 108
4.12.4 访问Database Control 111
4.12.5 Database Control的简要介绍 112
4.12.6 Performance 113
4.12.7 Availability 114
4.12.8 Server 114
4.12.9 Schema 115
4.12.10 Data Movement 115
4.12.11 Software and Support 115
4.12.12 Oracle软件克隆 115
4.12.13 配置使用Setup页 116
4.12.14 Related Links部分和AdvisorCentral页 117
4.12.15 创建Database Control角色 117
4.12.16 链接到MetaLink 118
4.12.17 基于策略的配置框架 118
4.12.18 跟踪数据库特性使用的统计数据 118
4.12.19 OEM Grid Control 120
4.12.20 管理Management Agent 122
4.12.21 OMS(Oracle Management Service,Oracle服务管理) 123
4.12.22 连接到Grid Control 123
4.12.23 登录到Grid Control 123
4.12.24 Grid Control的特性 124
4.12.25 使用Grid Control主页 124
4.12.26 用Grid Control监控整个系统 125
第二部分 Oracle Database 11g的体系结构、模式和事务管理 127
第5章 Oracle Database 11g体系结构 128
5.1 Oracle数据库的结构 128
5.1.1 逻辑数据库结构 128
5.1.2 物理数据库结构 134
5.1.3 其他文件 137
5.2 Oracle进程 139
5.2.1 用户和Oracle进程之间的交互 139
5.2.2 服务器进程 139
5.2.3 后台进程 140
5.3 Oracle内存结构 145
5.3.1 理解主存储器 145
5.3.2 SGA 146
5.3.3 PGA 151
5.4 简单的Oracle数据库事务 153
5.5 提交和回滚 154
5.5.1 提交一个事务 154
5.5.2 回滚一个事务 155
5.6 数据一致性和数据并发性 155
5.6.1 数据库写入器和写前协议 155
5.6.2 SCN 156
5.6.3 撤销管理 156
5.7 备份与恢复体系结构 157
5.7.1 用户管理的备份与恢复 157
5.7.2 RMAN 157
5.7.3 Oracle Secure Backup 158
5.7.4 闪回恢复技术 158
5.8 Oracle数据字典和动态性能视图 158
5.8.1 Oracle数据字典 159
5.8.2 动态性能(V$)视图 159
5.8.3 三组数据字典视图 159
5.8.4 如何创建数据字典 160
5.9 使用静态数据字典视图 160
5.10 与数据库对话 161
5.10.1 连接Oracle 161
5.10.2 OEM 161
5.10.3 SQL*Plus 162
5.11 Oracle实用程序 162
5.11.1 数据泵的导出和导入 162
5.11.2 SQL*Loader 162
5.11.3 LogMiner 162
5.11.4 自动诊断信息库控件接口 163
5.12 调度和资源管理工具 163
5.12.1 Oracle调度程序 163
5.12.2 数据库资源管理器 163
5.13 自动数据库管理 163
5.13.1 ADDM 163
5.13.2 自动撤销保留调优 164
5.13.3 自动优化程序统计数据收集 164
5.13.4 ASM 164
5.13.5 自动SQL调优 164
5.14 公共可管理基础设施 164
5.14.1 AWR 165
5.14.2 ASH 165
5.14.3 服务器产生的预警 166
5.14.4 自动任务特性 166
5.14.5 顾问程序的框架 166
5.14.6 更改管理 167
5.15 高效的管理和监控 167
第6章 管理表空间 169
6.1 表空间区尺寸和空间管理 169
6.1.1 分配区尺寸:自动分配与统一尺寸 169
6.1.2 自动与手动段空间管理 170
6.2 创建表空间 172
6.2.1 数据文件和表空间 172
6.2.2 区分配和解除分配 173
6.2.3 存储参数 174
6.2.4 数据库对象的存储分配 175
6.2.5 增加表空间的大小 176
6.2.6 删除表空间 177
6.2.7 用户表空间的数目 178
6.2.8 表空间限额 178
6.2.9 主动的表空间的空间预警 178
6.2.10 管理重做数据的生成 180
6.2.11 重新命名表空间 180
6.2.12 只读表空间 181
6.2.13 使表空间脱机 181
6.3 临时表空间 181
6.3.1 创建临时表空间 182
6.3.2 更改临时表空间 183
6.3.3 收缩临时表空间 183
6.3.4 默认临时表空间 184
6.3.5 临时表空间组 184
6.4 默认的永久表空间 186
6.5 大文件表空间 187
6.5.1 使用大文件表空间的限制 188
6.5.2 创建大文件表空间 188
6.5.3 更改大文件表空间 189
6.5.4 浏览大文件表空间的信息 189
6.6 管理Sysaux表空间 189
6.6.1 创建Sysaux表空间 190
6.6.2 Sysaux表空间的使用限制 190
6.7 表空间加密 190
6.7.1 为什么需要加密表空间 191
6.7.2 创建Oracle钱夹 191
6.7.3 创建一个加密的表空间 192
6.8 管理表空间的数据字典视图 193
6.8.1 DBA_TABLESPACE 193
6.8.2 DBAFREESPACE 194
6.8.3 DBA_SEGMENTS 194
6.8.4 DBADATAFILES 195
6.8.5 DBATABLESPACEGROUPS 196
6.8.6 V$DATAFILE 196
6.8.7 V$FILESTAT 196
6.9 用Oracle管理的文件方便文件的管理 197
6.9.1 使用OMF的好处 198
6.9.2 创建Oracle管理的文件 198
6.9.3 不同类型的Oracle管理的文件 199
6.10 在两个数据库之间复制文件 202
6.10.1 COPY_FILE 202
6.10.2 GET_FILE 203
6.10.3 PUT_FILE 203
6.11 找出剩下多少可用空间 204
6.12 使用操作系统文件 205
6.12.1 使用UTL_FILE程序包 205
6.12.2 关键的UTL_FILE的过程和函数 206
6.12.3 异常处理程序 206
6.12.4 使用UTL_FILE程序包的简单例子 206
第7章 模式管理 209
7.1 SQL语句的类型 209
7.1.1 系统控制语句 210
7.1.2 会话控制语句 210
7.1.3 嵌入的SQL语句 210
7.1.4 数据操纵语句 210
7.1.5 事务控制语句 211
7.1.6 数据定义语言语句 211
7.2 Oracle模式 211
7.3 Oracle表 212
7.3.1 估计表的尺寸 213
7.3.2 创建简单表 214
7.3.3 什么是NULL值 215
7.3.4 列的默认值 216
7.3.5 虚拟列 216
7.3.6 添加表列 217
7.3.7 删除表列 217
7.3.8 重命名表列 217
7.3.9 重命名表 218
7.3.10 删除表中的所有数据 218
7.3.11 用CTAS选项创建新表 218
7.3.12 设置表为只读模式 219
7.3.13 表压缩 220
7.3.14 删除表 221
7.4 特殊的Oracle表 222
7.4.1 临时表 222
7.4.2 索引组织表 223
7.4.3 外部表 224
7.5 分区表 225
7.5.1 范围分区 225
7.5.2 间隔分区 226
7.5.3 散列分区 227
7.5.4 列表分区 227
7.5.5 引用分区 228
7.5.6 基于虚拟列的分区 229
7.5.7 系统分区 230
7.5.8 组合分区 231
7.5.9 分区维护操作 233
7.6 管理表的数据字典视图 235
7.7 群 237
7.8 散列群 238
7.9 Oracle索引 238
7.9.1 创建索引的准则 239
7.9.2 Oracle的索引模式 240
7.9.3 估算索引的尺寸 240
7.9.4 创建索引 241
7.10 特殊类型的索引 242
7.10.1 位图索引 242
7.10.2 反向键索引 242
7.10.3 键压缩索引 243
7.10.4 基于函数的索引 243
7.10.5 分区索引 243
7.10.6 不可见索引 244
7.11 监控索引的使用 245
7.12 索引的维护 246
7.13 管理数据库完整性约束 246
7.13.1 主键约束 247
7.13.2 非空约束 247
7.13.3 检查约束 247
7.13.4 唯一约束 248
7.13.5 引用完整性约束 248
7.13.6 完整性约束状态 248
7.13.7 信赖约束 249
7.13.8 暂缓和立即约束 250
7.14 与约束和索引有关的视图 250
7.14.1 DBA_CONSTRAINTS 250
7.14.2 DBACONSCOLUMNS 251
7.15 使用视图 251
7.16 使用实体化视图 253
7.16.1 查询重写 254
7.16.2 RewriteorError提示 255
7.16.3 重写的完整性 255
7.16.4 刷新实体化视图的数据 255
7.16.5 使用DBMS_MVIEW程序包 256
7.16.6 创建实体化视图 256
7.17 使用SQL访问顾问程序 258
7.17.1 使用OEM Database Control 259
7.17.2 使用DBMS_ADVISOR程序包 261
7.17.3 使用QUICK_TUNE过程 262
7.18 使用同义词 262
7.18.1 创建公共同义词 263
7.18.2 创建私有同义词 264
7.18.3 删除同义词 264
7.18.4 管理同义词 264
7.18.5 切换到另一个模式 264
7.19 使用序列 265
7.20 使用触发器 266
7.21 浏览对象信息 266
7.21.1 管理数据库对象的视图 266
7.21.2 DBA_OBJECTS 266
7.21.3 DBA_TABLES 267
7.21.4 DBAEXTERNALTABLES 267
7.21.5 DBATABPARTITIONS 267
7.21.6 DBAPARTTABLES 268
7.21.7 DBATABMODIFICATIONS 268
7.21.8 DBATABCOLUMNS 269
7.21.9 DBA_VIEWS 269
7.21.10 DBA_MVIEWS 270
7.21.11 DBA_INDEXES 270
7.21.12 DBAINDCOLUMNS 270
7.21.13 INDEX_STATS 271
第8章 Oracle事务管理 272
8.1 Oracle的事务 272
8.1.1 COMMIT语句 273
8.1.2 ROLLBACK语句 274
8.2 事务的特性 274
8.3 事务并发性控制 275
8.3.1 并发性带来的问题 275
8.3.2 进度表和串行性 276
8.4 隔离级别和ISO事务标准 276
8.5 Oracle的隔离级别 278
8.5.1 事务级和语句级一致性 279
8.5.2 改变默认隔离级别 279
8.6 实现Oracle的并发控制 280
8.6.1 Oracle的锁定方法 281
8.6.2 Oracle的锁类型 281
8.6.3 允许DDL锁等待DML锁 282
8.6.4 显式表锁定 283
8.6.5 Oracle中的显式锁定 283
8.6.6 管理Oracle锁 284
8.7 利用撤销数据提供读一致性 287
8.7.1 AUM 287
8.7.2 有保证的撤销保留 292
8.7.3 使用OEM管理撤销数据 295
8.8 使用撤销数据纠正闪回错误 296
8.9 用DBMS_FLASHBACK程序包进行闪回 297
8.10 闪回事务查询 301
8.10.1 同时使用闪回事务查询和闪回版本查询 302
8.10.2 闪回表特性 303
8.11 事务管理 307
8.11.1 离散事务 307
8.11.2 自主事务 307
8.12 可恢复的空间分配 309
8.12.1 可继续执行的操作 309
8.12.2 常见的可继续执行错误 310
8.12.3 使用可恢复的空间分配特性 310
8.12.4 挂起操作的通知 312
8.12.5 操作挂起的警告 312
8.12.6 监控可恢复的空间分配 312
8.13 管理长事务 312
8.13.1 使用Workspace Manager的好处 313
8.13.2 表版本和工作区 313
第三部分 ***和升级到Oracle Database 11g,创建数据库 315
第9章 ***和升级到Oracle Database 11g 316
9.1 ***Oracle 316
9.1.1 参阅文献 316
9.1.2 确定磁盘和内存需求 317
9.2 OFA 317
9.2.1 ***点 318
9.2.2 目录及文件命名约定 319
9.3 执行预***任务 323
9.3.1 检查预***需求 324
9.3.2 系统管理员的预***任务 325
9.3.3 Oracle拥有者的预***任务 332
9.4 ***的最终检查表 334
9.4.1 访问***软件 334
9.4.2 ***软件 336
9.4.3 使用响应文件***Oracle软件 340
9.5 ***后的任务 341
9.5.1 系统管理员的后***任务 342
9.5.2 Oracle拥有者的后***工作 342
9.6 卸载Oracle 343
9.6.1 删除运行在服务器上的所有Oracle数据库 343
9.6.2 删除Oracle软件 344
9.7 升级到Oracle Database 11g 344
9.8 升级到Oracle Database 11g的方法 345
9.9 升级方法和工具 345
9.9.1 手动升级过程 345
9.9.2 数据库升级助手 346
9.9.3 预升级信息工具 346
9.9.4 后升级状态工具 347
9.9.5 为升级准备数据库 347
9.10 用DBUA升级 348
9.10.1 启动DBUA 348
9.10.2 执行DBUA 348
9.10.3 复原升级前的数据库 350
9.11 手动升级 350
9.11.1 升级和降级脚本 350
9.11.2 创建假脱机文件 351
9.11.3 启动预升级信息工具 351
9.11.4 备份数据库 353
9.11.5 复制参数文件 353
9.11.6 启动新数据库 353
9.11.7 执行升级脚本 354
9.11.8 执行升级活动脚本 354
9.11.9 重启实例 355
9.11.10 运行后升级活动脚本 355
9.11.11 检查无效对象 355
9.11.12 重编译和使无效对象有效 355
9.11.13 运行后升级状态工具 356
9.11.14 结束假脱机文件 357
9.11.15 重启新数据库 357
9.12 升级之后 357
9.12.1 为加强密码保护而重新设置密码 357
9.12.2 降级到旧版本 357
第10章 创建Oracle数据库 359
10.1 准备创建数据库 359
10.1.1 ***Oracle软件 359
10.1.2 为数据库创建文件系统 360
10.1.3 分配足够的内存 361
10.1.4 得到必要的授权 361
10.1.5 设置OS环境变量 361
10.2 创建参数文件 362
10.2.1 数据库参数文件的类型 362
10.2.2 初始化参数文件 362
10.2.3 更改初始化参数值 363
10.2.4 重要的Oracle Database 11g初始化参数 364
10.2.5 文档未记载的初始化参数 382
10.2.6 查看当前初始化参数值 382
10.3 创建新数据库 383
10.3.1 手动创建 383
10.3.2 使用DBCA创建数据库 393
10.4 使用服务器参数文件 400
10.4.1 创建服务器参数文件 400
10.4.2 设置动态参数更改的范围 402
10.4.3 从内存创建SPFILE或PFILE 403
10.5 从SQL*Plus中启动和关闭数据库 403
10.5.1 启动数据库 403
10.5.2 自动启动数据库 405
10.5.3 限制数据库的访问 406
10.5.4 关闭数据库 407
10.5.5 停顿数据库 409
10.5.6 挂起数据库 410
10.5.7 删除数据库 410
10.5.8 使用数据字典监控数据库状态 411
10.5.9 接下来的工作 412
第四部分 连接和用户管理 413
第11章 连接和网络 414
11.1 Oracle网络和数据库连接 414
11.2 网络概念:Oracle网络如何工作 415
11.2.1 Web应用如何连接到Oracle数据库 416
11.2.2 数据库实例名 416
11.2.3 全局数据库名 416
11.2.4 数据库服务名 416
11.2.5 连接描述符 417
11.2.6 连接标识符 417
11.2.7 连接串 417
11.3 建立Oracle连接 418
11.4 Oracle客户机 419
11.4.1 ***Oracle客户机 420
11.4.2 使用TWO_TASK环境变量 420
11.5 即时客户机 421
11.6 ***器和连接 421
11.6.1 自动服务注册 422
11.6.2 ***器命令 423
11.6.3 ***器管理 424
11.7 命名和连接 425
11.7.1 本地命名方法 426
11.7.2 简易连接命名方法 429
11.7.3 数据库驻留连接池 431
11.7.4 外部命名方法 433
11.7.5 目录命名方法 433
11.8 Oracle和Java数据库连接 437
11.8.1 建立数据库连接 437
11.8.2 使用数据库 437
11.8.3 一个完整的程序 439
第12章 用户管理和数据库安全 441
12.1 管理用户 441
12.1.1 临时和默认表空间 442
12.1.2 创建新用户 442
12.1.3 更改用户 444
12.1.4 删除用户 445
12.1.5 创建和使用用户概要文件 445
12.1.6 管理资源 450
12.2 Database Resource Manager 450
12.2.1 使用Database Resource Manager 451
12.2.2 使用OEM管理Database Resource Manager 460
12.3 控制数据库访问 461
12.3.1 Oracle数据库中的权限 461
12.3.2 角色 466
12.3.3 使用视图和存储过程来管理权限 469
12.3.4 管理用户、角色和权限的DBA视图 469
12.3.5 细粒度数据访问 470
12.4 审计数据库使用 477
12.4.1 标准审计 477
12.4.2 细粒度审计 483
12.5 认证用户 485
12.5.1 数据库认证 486
12.5.2 外部认证 489
12.5.3 代理认证 490
12.5.4 集中式用户认证 490
12.6 企业用户安全 491
12.6.1 共享模式 491
12.6.2 单次注册 491
12.6.3 数据加密 491
12.6.4 表空间加密 495
12.6.5 Oracle Internet Directory 497
12.7 数据安全须知 497
12.7.1 自动保护配置 497
12.7.2 用户账号 498
12.7.3 密码 498
12.7.4 操作系统认证 498
12.7.5 数据库审计 498
12.7.6 授予权限 499
12.7.7 涉及多个DBA的环境 499
12.7.8 保护数据字典 499
12.7.9 设置权限 499
12.7.10 网络和***程序 500
12.7.11 细粒度网络访问控制 501
12.7.12 Oracle的高级安全选项 503
12.7.13 应用安全 503
12.7.14 管理用户的有用技术 504
第五部分 数据装载、备份和恢复 507
第13章 装载和转换数据 508
13.1 提取、转换和装载概览 508
13.2 使用SQL*Loader实用程序 509
13.2.1 SQL*Loader控制文件 510
13.2.2 在装载中生成数据 517
13.2.3 调用SQL*Loader 517
13.2.4 装载日志文件 518
13.2.5 使用返回代码 519
13.2.6 使用直接装载方法 520
13.2.7 实用的SQL*Loader数据装载技术 522
13.3 使用外部表装载数据 524
13.3.1 创建外部表层 525
13.3.2 填充外部表 528
13.3.3 使用外部表 530
13.3.4 使用SQL*Loader生成外部表创建语句 531
13.4 转换数据 533
13.4.1 从现有表中派生数据 534
13.4.2 使用SQL转换数据 534
13.4.3 使用SQL MODEL子句 542
13.5 使用Oracle流复制和共享信息 545
13.5.1 研究流体系结构 545
13.5.2 设置Oracle流 546
第14章 使用数据泵导出和导入 549
14.1 数据泵技术的介绍 549
14.1.1 数据泵技术的优点 550
14.1.2 数据泵导出和导入的用途 551
14.1.3 数据泵的组成部分 551
14.1.4 数据访问方法 552
14.1.5 数据泵文件 552
14.1.6 数据泵权限 556
14.1.7 数据泵作业的结构 556
14.2 执行数据泵导出和导入 557
14.2.1 数据泵导出方法 557
14.2.2 数据泵导出的方式 558
14.2.3 数据泵导出参数 559
14.2.4 数据泵导出的例子 571
14.2.5 数据泵导入的类型和方式 572
14.2.6 数据泵导入参数 572
14.3 监控数据泵作业 578
14.3.1 浏览数据泵作业 579
14.3.2 浏览数据泵会话 579
14.3.3 浏览数据泵作业的进度 579
14.4 使用数据泵API 580
14.5 可移植表空间 581
14.5.1 可移植表空间的使用 581
14.5.2 移植表空间 581
14.5.3 在不同Endian格式的平台之间移植表空间 584
第15章 备份数据库 587
15.1 备份Oracle数据库 587
15.1.1 重要的备份术语 588
15.1.2 备份准则 590
15.1.3 测试备份 591
15.1.4 维护冗余集 591
15.1.5 备份策略 591
15.2 闪回恢复区 594
15.2.1 闪回恢复区的好处 595
15.2.2 设置闪回恢复区的大小 596
15.2.3 创建闪回恢复区的方法 596
15.2.4 备份闪回恢复区 599
15.2.5 使用闪回恢复区 599
15.3 恢复管理器 600
15.3.1 RMAN的好处 601
15.3.2 RMAN体系结构 602
15.3.3 连接到RMAN 603
15.3.4 RMAN脚本 605
15.3.5 重要的RMAN术语 609
15.3.6 指定备份标记和备份格式 610
15.3.7 做RMAN备份的副本 610
15.3.8 RMAN备份位置 611
15.3.9 RMAN命令 612
15.3.10 RMAN配置参数 617
15.3.11 使用恢复目录 621
15.3.12 维护恢复目录 623
15.3.13 虚拟专用目录 626
15.3.14 RMAN备份的例子 627
15.3.15 重新启动RMAN备份 630
15.3.16 限制备份时间 630
15.3.17 增量更新备份 630
15.3.18 快速增量备份 631
15.3.19 RMAN压缩备份 632
15.3.20 归档备份 632
15.3.21 监控和验证RMAN作业 634
15.4 备份控制文件 636
15.5 Oracle Secure Backup 637
15.5.1 Oracle Secure Backup的好处 637
15.5.2 Oracle Secure Backup管理域 637
15.5.3 ***Oracle Secure Backup 638
15.5.4 使用Oracle Backup Web Interface工具 639
15.5.5 配置Oracle Secure Backup 639
15.5.6 用Oracle Secure Backup执行备份 640
15.6 用户管理的备份 640
15.6.1 进行完全的数据库备份 641
15.6.2 制作部分数据库备份 644
15.6.3 监控用户管理的联机备份 645
15.7 数据库讹误检测 645
15.7.1 检测介质讹误 645
15.7.2 检测数据块讹误 645
15.8 加强数据保护以便进行灾难恢复 647
15.8.1 高可用性系统 647
15.8.2 Oracle Data Guard和备用数据库 648
第16章 数据库恢复 650
16.1 数据库故障类型 650
16.1.1 系统故障 650
16.1.2 数据中心的灾难 651
16.1.3 人为错误 651
16.1.4 介质故障 651
16.1.5 故障和数据修复 651
16.2 Oracle的恢复过程 652
16.2.1 崩溃和实例恢复 653
16.2.2 快速实例启动 654
16.2.3 介质恢复 654
16.2.4 介质恢复与非介质恢复 656
16.3 用RMAN执行恢复 657
16.3.1 使用RMAN恢复的好处 657
16.3.2 使用VALIDATE BACKUP命令验证RMAN备份 658
16.3.3 使用RESTORE...VALIDATE命令 658
16.3.4 使用RESTORE...PREVIEW命令 658
16.3.5 确定恢复必需的文件 659
16.3.6 RMAN恢复过程 659
16.3.7 用增量更新备份进行恢复 659
16.3.8 监控RMAN作业 660
16.3.9 用户管理的恢复过程 660
16.4 典型的介质恢复方案 661
16.4.1 整个数据库的完全恢复 661
16.4.2 恢复表空间 663
16.4.3 恢复数据文件 664
16.4.4 不完全恢复 666
16.4.5 从控制文件丢失中恢复 670
16.4.6 恢复没有备份的数据文件 673
16.5 数据恢复顾问 674
16.6 克隆数据库 678
16.6.1 使用RMAN克隆数据库 678
16.6.2 使用Database Control克隆数据库 681
16.6.3 手动克隆数据库 682
16.7 粒度恢复技术 683
16.7.1 表空间时间点恢复 683
16.7.2 使用LogMiner进行精确恢复 684
16.8 闪回技术和恢复 689
16.8.1 闪回级别 689
16.8.2 闪回与传统恢复技术 690
16.8.3 闪回删除 690
16.8.4 闪回数据库 694
16.9 使用复原点 700
16.9.1 有保证的复原点 701
16.9.2 查看复原点 702
16.10 修理数据讹误并试验恢复 702
16.10.1 块介质恢复 703
16.10.2 试验恢复 704
16.11 排除恢复错误 704
16.11.1 ORA-01194错误 704
16.11.2 ORA-01152错误 705
16.11.3 ORA-00376错误 706
16.11.4 事务取消特性 706
16.12 闪回数据存档 708
16.12.1 管理闪回数据存档 708
16.12.2 启用闪回数据存档 709
16.12.3 使用闪回数据存档:例子 710
第六部分 管理Oracle数据库 713
第17章 自动管理和联机功能 714
17.1 自动数据库诊断监控器(ADDM) 714
17.1.1 ADDM的用途 715
17.1.2 ADDM可以诊断的问题 715
17.1.3 ADDM判定 716
17.1.4 ADDM建议 717
17.1.5 管理ADDM 718
17.2 自动内存管理 728
17.2.1 内存管理的类型 729
17.2.2 开启自动内存管理 729
17.2.3 调优自动内存管理 731
17.2.4 自动内存参数的相关性 731
17.3 自动优化程序的统计数据收集 732
17.3.1 自动收集优化程序的统计数据 732
17.3.2 手动收集优化程序的统计数据 734
17.4 自动存储管理 734
17.4.1 ASM的优点 734
17.4.2 考察ASM架构 735
17.4.3 ***ASM 736
17.4.4 ASM和集群同步服务 736
17.4.5 创建ASM实例 737
17.4.6 ASM的快速镜像再同步特性 741
17.4.7 ASM首选的镜像读 742
17.4.8 改变ASM磁盘组属性 742
17.4.9 asmcmd命令行工具 743
17.4.10 管理ASM磁盘组 745
17.4.11 利用磁盘组增加性能和冗余 746
17.4.12 创建磁盘组 747
17.4.13 向磁盘组添加磁盘 747
17.4.14 删除磁盘和磁盘组 748
17.4.15 重新平衡磁盘组 748
17.4.16 管理ASM文件 748
17.4.17 ASM文件名的类型 749
17.4.18 使用ASM文件名 750
17.4.19 ASM文件模板 750
17.4.20 创建基于ASM的数据库 750
17.4.21 将数据库迁移到ASM 751
17.5 自动空间管理 752
17.5.1 自动撤销管理 753
17.5.2 使用OMF轻松管理文件 753
17.5.3 联机段收缩和段顾问 758
17.5.4 手动段收缩 759
17.5.5 使用Segment Advisor收缩段 759
17.5.6 自动Segment Advisor作业 761
17.5.7 自动检查点调优 761
17.6 Oracle Database 11g的联机功能 762
17.6.1 联机数据重组 762
17.6.2 联机数据重定义 764
17.6.3 动态资源管理 769
17.6.4 联机更改数据库块尺寸 770
17.6.5 为联机维护使用数据库停顿 772
17.6.6 挂起数据库 772
第18章 管理和监控运行中的数据库 773
18.1 Oracle性能统计的类型 773
18.1.1 累计统计 774
18.1.2 样本数据 774
18.1.3 基线数据 774
18.1.4 数据库度量 775
18.2 服务器产生的预警 777
18.3 基线度量和自适应阈值 779
18.3.1 管理预警 779
18.3.2 主动的表空间预警 781
18.3.3 使用预警日志和跟踪文件进行监控 782
18.3.4 与度量和预警有关的数据字典视图 782
18.4 AWR 783
18.4.1 AWR收集的数据的类型 784
18.4.2 AWR数据处理 784
18.4.3 管理AWR 784
18.4.4 移动窗基线 788
18.4.5 AWR基线模板 788
18.5 ASH 793
18.5.1 当前活动会话数据 794
18.5.2 旧的活动会话历史数据 794
18.5.3 生成ASH报告 795
18.6 管理顾问框架 797
18.6.1 管理顾问程序 798
18.6.2 顾问框架的管理 799
18.7 使用撤销和MTTR顾问程序 801
18.7.1 使用撤销顾问程序 801
18.7.2 使用MTTR顾问程序 802
18.8 管理联机重做日志 802
18.8.1 硬件镜像与Oracle的多路复用技术 803
18.8.2 联机重做日志组 803
18.8.3 创建联机重做日志组 803
18.8.4 增加重做日志组 803
18.8.5 重命名重做日志文件 804
18.8.6 删除联机重做日志 804
18.8.7 联机重做日志讹误 804
18.8.8 监控重做日志 805
18.9 管理数据库链接 805
18.9.1 创建私有数据库链接 805
18.9.2 创建公共数据库链接 806
18.9.3 使用Database Control创建数据库链接 807
18.10 比较和会聚数据库对象 807
18.10.1 比较数据 807
18.10.2 会聚数据 809
18.11 用数据库服务器复制文件 810
18.11.1 文件复制的要求 810
18.11.2 复制本地系统中的文件 811
18.11.3 将文件传送到不同的数据库 811
18.12 映射Oracle文件到物理设备 812
18.12.1 文件映射的结构 812
18.12.2 设置文件映射 813
18.13 使用Oracle的调度程序 813
18.13.1 基本的Scheduler部件 813
18.13.2 调度程序作业的类型 814
18.13.3 Scheduler的高级部件 815
18.13.4 Scheduler的体系结构 815
18.13.5 Scheduler的权限 816
18.13.6 管理Scheduler的基本组件 816
18.13.7 管理轻型作业 818
18.13.8 管理外部作业 820
18.13.9 管理Scheduler的高级部件 828
18.13.10 管理Scheduler属性 833
18.13.11 清除作业日志 834
18.13.12 默认的Scheduler作业 834
18.14 自动维护任务 835
18.14.1 预定义维护窗口 835
18.14.2 管理自动维护任务 835
18.14.3 监控自动维护任务 835
18.15 故障诊断 837
18.15.1 自动诊断信息库 838
18.15.2 ADRCI 839
18.15.3 意外事件打包服务 840
18.15.4 Support Workbench 842
18.15.5 Health Monitor 845
18.15.6 用SQL Repair Advisor修复SQL语句 848
18.15.7 SQL Test Case Builder 850
第七部分 性能调优 851
第19章 改进数据库性能:SQL查询优化 852
19.1 Oracle性能调优的方法 852
19.1.1 性能调优的系统性方法 853
19.1.2 被动的性能调优 853
19.2 优化Oracle查询处理 853
19.2.1 语法分析 854
19.2.2 优化 854
19.2.3 查询的执行 856
19.3 查询优化和Oracle CBO 857
19.3.1 选择优化方式 857
19.3.2 为优化程序提供统计数据 857
19.3.3 设置优化程序方式 859
19.3.4 设置优化程序级别 860
19.3.5 优化程序做些什么 860
19.3.6 CBO的缺点 862
19.3.7 为CBO提供统计数据 862
19.3.8 延迟统计数据公布 865
19.3.9 扩展统计数据 866
19.3.10 Oracle 优化程序的成本模型 868
19.3.11 收集系统统计数据 868
19.3.12 对字典对象收集统计数据 870
19.3.13 统计数据收集的频率 871
19.3.14 没有统计数据时会发生什么事情 871
19.3.15 使用OEM收集优化程序统计数据 871
19.4 编写高效的SQL 872
19.4.1 高效的WHERE子句 872
19.4.2 使用提示影响执行计划 874
19.4.3 选择最佳的联结方法 875
19.4.4 使用位图联结索引 875
19.4.5 选择最佳的联结次序 876
19.4.6 索引策略 877
19.4.7 监控索引的使用 879
19.4.8 删除不需要的索引 880
19.4.9 使用相似的SQL语句 880
19.4.10 通过内嵌函数减少SQL开销 880
19.4.11 使用绑定变量 881
19.4.12 避免不恰当地使用视图 881
19.4.13 避免不必要的全表扫描 881
19.5 DBA如何帮助改进SQL处理 881
19.5.1 使用分区表 882
19.5.2 使用压缩技术 882
19.5.3 使用实体化视图 882
19.5.4 使用存储大纲保证CBO的稳定性 883
19.6 SQL计划管理 885
19.6.1 SQL计划基线 886
19.6.2 捕捉SQL计划基线 886
19.6.3 SQL管理库 889
19.6.4 使用并行执行 890
19.6.5 其他DBA任务 890
19.7 自适应游标共享 891
19.7.1 自适应游标共享如何工作 892
19.7.2 监控自适应游标共享 893
19.8 SQL性能调优工具 894
19.8.1 使用EXPLAIN PLAN 894
19.8.2 使用Autotrace 898
19.8.3 使用SQL Trace和TKPROF 902
19.9 端到端跟踪 907
19.9.1 使用DBMS_MONITOR程序包 908
19.9.2 使用V$SQL 视图查找低效的SQL 910
19.10 SQL Tuning Advisor 912
19.10.1 使用SQL Tuning Advisor 912
19.10.2 SQL Tuning Advisor如何工作 912
19.10.3 SQL Tuning Advisor实践 914
19.10.4 Automatic SQL Tuning Advisor 916
19.10.5 解释自动SQL调优报告 919
19.10.6 使用其他的GUI工具 919
19.11 使用结果高速缓存 920
19.11.1 管理结果高速缓存 920
19.11.2 设置RESULT_CACHE_MODE参数 920
19.11.3 管理结果高速缓存 922
19.11.4 PL/SQL函数结果高速缓存 923
19.11.5 客户机查询结果高速缓存 924
19.12 调优SQL语句的简单方法 925
19.12.1 识别问题语句 925
19.12.2 定位低效资源 925
19.12.3 调优SQL语句 926
19.12.4 比较性能 926
第20章 Oracle性能调优:调优实例 927
20.1 实例调优简介 927
20.2 自动性能调优与动态性能视图 929
20.3 Oracle内存调优 929
20.3.1 共享池调优 930
20.3.2 硬分析和软分析 932
20.3.3 调优缓冲区高速缓存 939
20.3.4 调优大池、流池和Java池 943
20.3.5 调优PGA内存 943
20.4 评估系统性能 947
20.4.1 CPU性能 947
20.4.2 内存 951
20.4.3 磁盘I/O 951
20.5 度量I/O性能 952
20.5.1 I/O是否最佳分布 952
20.5.2 减少磁盘争用 953
20.5.3 最佳磁盘使用的Oracle SAME准则 953
20.5.4 网络性能 954
20.6 度量实例性能 954
20.6.1 数据库命中率 954
20.6.2 数据库等待统计数据 955
20.6.3 等待事件和等待类 956
20.6.4 分析实例性能 956
20.6.5 检查系统性能 971
20.6.6 了解应用程序 972
20.6.7 使用ADDM分析性能问题 973
20.6.8 对各SQL语句使用AWR报告 974
20.6.9 操作系统内存管理 975
20.6.10 用ASH报告分析最近的会话活动 975
20.6.11 当数据库挂起时 976
20.6.12 处理被卡住的归档进程 976
20.6.13 系统使用问题 977
20.6.14 资源的过多争用 977
20.6.15 锁问题 978
20.6.16 进程尺寸的异常增加 978
20.6.17 由于共享池问题导致的延迟 980
20.6.18 由坏统计数据导致的问题 980
20.6.19 在数据库挂起期间收集信息 980
20.6.20 使用Database Control的Hang Analysis页 980
20.7 实例调优的一种简单方法 982
20.7.1 数据库怎么了 983
20.7.2 使用OEM Database Control查看数据库性能 983
20.7.3 存在运行时间很长的事务吗 989
20.7.4 Oracle有问题吗 989
20.7.5 网络正常吗 989
20.7.6 系统是否受到CPU限制 990
20.7.7 系统受到I/O限制吗 990
20.7.8 数据库负荷太高 991
20.7.9 检查与内存有关的问题 991
20.7.10 重做日志的尺寸设置正确吗 991
20.7.11 系统受到等待的限制吗 992
20.7.12 Compare Periods报告 992
20.7.13 排除争用 994
20.8 真应用测试 995
20.8.1 数据库重演 995
20.8.2 SQL性能分析器 1001
附录A Oracle Database 11g SQL和PL/SQL入门知识 1005
  不管是出于兴趣还是为了金钱,越来越多的人向往从事Oracle DBA这一职业。随着Oracle技术的发展,DBA工作涉及的内容越来越丰富。但是,很难找到一本图书能够完整描述DBA职业所需的各方面知识,如建模、UNIX、数据库管理、备份与恢复、性能调整以及联网和故障排除等。许多人即便听了各种课程,阅读了各种书籍,对于管理Oracle仍然没有入门。也有不少人参加了Oracle DBA的各种培训,但还是不能胜任Oracle DBA的工作。原因何在?关键是重要的内容全被淹没在浩瀚的信息之中了。
  有关Oracle的书籍可谓浩如烟海,而且多半是大部头,要在其中找到自己需要的内容,不是不可能,但至少也是一件困难、耗时的工作。正如本书所述,这是一个大海捞针的工作。
  我从事Oracle方面的工作已有多年,具有一定的实际工作经验,但仍然为从Oracle众多的书籍中找出自己需要的知识深感头疼。经常想象,如果有一本内容简明扼要、全面实用的Oracle书籍该有多好?在看到本书后,我备感亲切,恨不得一口气读完它。因此,对本书的翻译工作充满了激情。本书致力于提供Oracle Database 11g DBA需要的所有背景知识,并力求用最少的篇幅做到这一点,让读者一册在手,无复他求。
  本书由钟鸣翻译文前、第1~3章,杨桦翻译第4~6章,孙登峰翻译第7~8章、赵平翻译第9~14章、周宏敏翻译第15~18章,刘晓霞翻译其他章节并担任全书审校。翻译中,我们竭力以信、达、雅为目标,力求忠实原文,准确反映作者意图,使更多的读者从中受益。本书翻译过程中,梅刚、石永平、常征、王君、郝玉洁、魏允韬、左钦文、张杰民、胡石、汪海玲、朱涛江、翁京娟、孙乐、陈小雷、张野、李震等同志帮助审校初稿,在此表示感谢。由于译者水平有限,翻译中肯定会存在不足,欢迎读者斧正。
  这里要特别提出的是,人民邮电出版社对本书的翻译出版给予了高度的重视,指定了具有丰富翻译出版经验、高度负责的编辑,在整个翻译工作中全程给予指导。对于本书翻译是否到位、是否忠实原文、翻译质量是否过关等都进行了严格的监控。译者对他们为读者负责的严谨作风深感钦佩。这里对他们表示诚挚的敬意和衷心的感谢。
  葛莱西安诺:……他们表现得自高自大,好像在说:“我说的都是神谕(Oracle),在我开口时,任何人都不许放声!”
  ----《威尼斯商人》第一场,第一幕
  Oracle公司在Oracle数据库早期版本(Oracle 6)的管理员(DBA)手册的某章开始处引用了莎士比亚戏剧中上述的话,我一直觉得这个引用很有意思。如果在该剧中再往下看,就会看到以下内容:
  巴萨尼奥:葛莱西安诺比威尼斯城里任何人都更会说废话。他的道理就像藏在两桶麦麸里的两粒麦子,你必须花上一整天的工夫才能把它们找到……
  ----《威尼斯商人》第一场,第一幕
  巴萨尼奥说得确实对,葛莱西安诺说得确实太多:从两桶麦麸里只会找出两粒麦子。这正是撰写本书的理由:将麦子与麦麸分离开来。从Oracle Database 11g的大量资料中提取出正确的数据库管理过程绝非易事,考虑到这种难度,第二段引用更为贴切。Oracle公司发布了大量的资料以帮助用户管理其复杂性不断增加的数据库。Oracle公司还提供了各种面授的和基于Web的课程,用来说明有效使用Oracle数据库必须理解的内容。如果用户仅依赖于Oracle公司的手册、课程、基于Web的研讨等形式的众多资料(虽然都编写得很好),就会发现要找到完成自己工作的基本资料实在是太困难了。
  本书是针对大多数日常的Oracle数据库管理任务而撰写的。当然,要完全涉及所有DBA的知识是不切实际的。本书所做的是将精力集中在大多数企业常见的问题上,如***Oracle Database 11g软件、创建和升级数据库、导出和导入数据、数据的备份与恢复以及性能调优等。本书在许多地方反复强调Oracle自动管理方案。利用Oracle的自动管理特性能防止重复劳动。经过多年的发展,Oracle提供了一组强有力的管理顾问和工具,使得许多传统的DBA工作无需再用人工完成。
  如何成为Oracle DBA
  要成为一名熟练的Oracle DBA,必须掌握足够的知识。关于Oracle数据库的知识来源有多种:
  Oracle Database 11g管理课程,现在已浓缩为两个5天的课程;
  Oracle手册,在Oracle Web站点上有一个完整的手册库;
  出版商发行的书籍,涵盖成为一名熟练的Oracle DBA所需的各种知识。
  除此之外,还需要具备必要的操作系统知识。多数大型Oracle数据库是基于UNIX(或Linux)操作系统的,因此,必须对UNIX有较好的理解。这方面的知识可以从许多途径获得。可以参加某些主流UNIX系统供应商(如HP和Sun等)的一两个课程,也可以阅读相关手册,或者购买某些书籍。Microsoft Windows是Oracle数据库的另一种常见的操作系统,因此也必须对Windows 服务器操作系统有基本的了解。
  很多初次接触Oracle Database 11g的新手都发现Oracle DBA的世界令人神往,不过要想深入和扩展也十分不易。哪个Oracle DBA的书架里不是塞满了各种书籍,有建模的书、UNIX教材、DBA手册、备份与恢复指南、性能调优手册,还有联网和故障排除的书。令人吃惊的是,即使听了各种课程,阅读了各种书籍,也不能说就足以应对复杂的日常数据库管理任务了。许多人参加了Oracle DBA的各种培训课程,但培训完后还是不能胜任Oracle DBA的工作。原因何在?想一想前面引用的莎士比亚戏剧中的台词就会知道,我们需要将麦麸与麦子分离开来,而所有的课程和手册(虽然本身内容很不错)只会把水搅得更浑。
  有经验的Oracle DBA能够从众多的资料中找到自己所需的东西,但新手如何才能从浩如烟海的信息中筛选出最急需、最有用的知识呢?本书可以为您效劳。本书不仅讲述关系数据库管理的理论和原理,而且还将手把手地教会你把理论应用到实践中,让你能管理现实生活中的Oracle Database 11g,处理实际的数据,解决实际的问题。
  Oracle Database 11g
  Oracle Database 11g中的g代表grid(网格),其含义是软件能访问分布在廉价服务器网络(网格)上的闲置处理能力。传统数据库系统是在可以同时运行几个非常大的数据库的大型服务器上运行的。但是,单服务器模型存在明显的先天不足。例如,固定在大型服务器上的资源不能在各种数据库和其他服务间重新分配,因而不能达到资源的最优化。如果需要大量的资源来处理数据库的高峰需求,可靠的办法是整天都占用满足高峰需求的资源,但也意味着在非高峰时间这样做肯定会浪费宝贵的资源。
  网格计算给出了灵活的手段利用大量廉价服务器的处理能力来提供所需计算能力。这些硬件可以是基于Intel的刀片服务器(blade server),软件可以是免费(或几乎免费)的开源Linux操作系统。这样选择小型、通用的服务器,你的系统将比传统的大型服务器系统便宜得多。并且因为可以根据实际需要动态地分配和提供资源,资源利用效率会更高。
  网格计算(也称为基于需求和效用的计算)并不是Oracle独创的新发明,这种思想存在已久(主要是在学术界)。事实上,网格计算是学术界为完成复杂的、大量的研究任务需要极快且可伸缩的计算机而引出的。学术界的另一重要目标是允许在大量研究人员之间共享计算资源。当然,也是为了使计算成本尽可能地低。网格计算是在这些相关的研究基础上形成的,它成为建立巨大的共享计算环境的一种可行的方法,在这种计算环境中可根据对计算能力需求的变化做出动态调优。
.  在谈到利用大量的普通服务器的计算能力时,应该认识到所需的计算机数量已经远远不是几台的概念了。我们所谈论的是将链接在一起的数目庞大的小服务器的计算能力组合成一个网格。显然,关键的想法是所得到的计算能力之和远大于各单独的成分。正如Oracle所想象的那样,企业网格计算将模块化的存储和普通服务器当作一个大池子,因为计算能力可在必要时利用集中的资源池来变更,所以资源不充分利用的状况将会改善。
  下面列出网格计算的几个主要优点。
  灵活性:因为利用大量小服务器组建了一个单一的逻辑实体,因此可根据具体的计算需求增加或减少某个部分。
  有效性:动态补充(dynamic provisioning)的概念构成了网格计算的基础。动态补充指分配给各种服务的资源不是固定的,而是根据对资源的需求和资源的可用性变化的。理论上,一个运行良好的网格会把资源从利用不充分的地方导向最需要的地方。
  易管理性:管理计算资源(可能包括几个数据库和应用服务器)的单一逻辑组合远比监控其中每个独立的单元要容易。
  经济性:网格环境的总成本比传统的单一服务器环境要低得多。Oracle强烈建议使用基于Linux的商用服务器,认为这会提供最好的性价比。
  Oracle Database 11g的关键组件
  以下是Oracle基于网格系统的几个基本组件:
  RAC(Real Application Clusters,真应用集群);
  信息共享;
  方便的服务器管理;
  众多的度量工具;
  顾问框架;
  自动性能调优;
  自动存储管理(ASM);
  自动内存管理;
  调度和资源管理;
  真应用测试。
  请注意,不采用“网格”的平台也能使用Oracle Database 11g服务器。不管在哪种情况下都能利用此数据库系统的所有新特性。
  Oracle有一个已经存在许多年的名为Oracle并行服务器(OPS)的特性,利用它能够从两个以上实例访问数据库,从而提供可伸缩性和高可用性。近年来,Oracle对并行服务器技术作了很大的改进,几年前改名为RAC(真应用集群,Real Application Clusters)。
  注解 本书主要关注“主流”的Oracle Database 11g DBA概念和技术,不讨论RAC真应用集群。如果你对RAC感兴趣,可以参阅相关的Oracle手册或RAC的专门书籍。
  信息共享
  为了在网格上有效共享多个异构系统之间的信息,需要提高共享信息的效率。数据交换可能是偶然的(如为新系统装载数据),也可能是有规律的和实时的(如由于系统中某部分的变更而需要更新系统的另一部分)。为了方便任何一种信息共享,Oracle Database 11g提供了可移植表空间以及Oracle流。
  可移植表空间
  可移植表空间特性能将一个数据库的大量数据高速地移植到另一个数据库上,即使它们运行在不同的操作系统上。跨平台移植大量数据(甚至在移植过程中重命名表空间)的能力使信息交换极为容易。
  Oracle流
  Oracle流允许方便地捕获数据库中所做的更改,并将其发布到网格中的订阅节点上。Oracle流特性可在做出变动时保持所有副本同步。
  方便的服务器管理
  通过新的Database Control和Grid Control界面,Oracle企业管理器(OEM,Oracle Enterprise Manager)既能管理单个数据库,也能管理所有数据库、应用服务器、主机、***器、HTTP服务器以及Web应用。
  IT业界流行的看法认为,Oracle是个很复杂、很难管理的数据库,与Windows 的数据库服务器SQL Server相比更是如此。Oracle Database 11g特意在简化管理方面做出了努力,从***到日常管理以及性能调优均有体现。一个新基础结构可用来存储与工作负荷和性能有关的信息。现在可利用强有力的SQL调优工具来确定改善性能的方法。
  Oracle企业管理器(包括单个数据库级的Database Control)及其企业级产品的对应程序Grid Control提供了管理数据库的卓越能力。以往,Oracle DBA依赖复杂的SQL脚本监控数据库,诊断和解决性能问题。OEM现在可帮助你做所有这些事情,甚至更多,不需要花费大量时间编写冗长的脚本帮助管理数据库。
  注解 本书减少了DBA脚本的使用,代之以怎样有效地利用OEM Database Control来快速方便地完成任务。
  众多的度量工具
  首先Oracle Database 11g在代码基础上提供了比以前的Oracle版本更多的度量工具,辅助对数据库性能进行精确度量,这些度量工具以前是没有的。因为Oracle自己的这些度量工具和手段是嵌在数据库代码中的,跟第三方性能度量工具相比,它能提供更好的信息且不会明显地降低性能。
  顾问框架
  Oracle Database 11g含有几个十分有用的顾问程序(advisor),用来优化数据库各组件的性能。如:
  ADDM(Automatic Database Diagnostic Monitor)帮助分析当前和过去的实例性能;
  SQL调优顾问(SQL Tuning Advisor)帮助调优SQL语句;
  SQL访问顾问(SQL Access Advisor)告诉是否应该增加(或删除)索引和实体化视图;
  段顾问(Segment Advisor)帮助为新表规划必需的空间,并回收分配给段的未用空间;
  撤销顾问(Undo Advisor)帮助配置关键的撤销表空间;
  内存顾问(Memory Advisor)提供相关内存参数的建议。
  这些顾问程序都有相似的外观,这种外观一致性有助于用户学会有效地使用它们。当然,这些顾问程序的使用并不是强制性的,你还可以利用Oracle提供的程序包和各种动态性能视图来调整空间和内存。不过,调用相应的顾问程序效率更高一些。
  自动性能调优
  Oracle Database 11g提供了自动性能诊断和调优建议。名为ADDM的专家诊断工具利用新的自动工作负荷信息库(automatic workload repository)的内容来分析实例的性能。ADDM的分析包括数据库问题的汇总(此汇总根据问题所花费的时间量排列),以及排除这些问题的一个建议列表。ADDM的建议可包括修改配置设置或运行前面所列的某个顾问程序。
  自动存储管理
  Oracle为便于管理而推出的一个重要组件是自动存储管理(automatic storage management)。以前,数据库管理员一般依赖第三方供应商(如Veritas和EMC)提供的大系统存储管理工具。ASM能够自动管理磁盘而不用求助于第三方的逻辑卷管理器(LVM)。
  如果使用ASM,可以利用Oracle的存储虚拟层来自动化和简化所有Oracle数据库文件的布局和管理。可以把精力集中在相对少量的磁盘组上,而不用直接管理大量的文件和磁盘。如果需要更多的存储空间,只需在逻辑磁盘组中增加新的物理磁盘即可。
  自动内存管理
  Oracle Database 11g服务器提供了一种管理数据库所用内存的简单方法。自动内存管理和自动程序全局区管理利用从实例收集的信息,能够为Oracle内存分配的两个主要对象,即系统全局区(SGA)和程序全局区(PGA)有效地分配内存。
  调度和资源管理
  企业用户共享计算资源是一种很常见的情况,因此有必要通过一种方法有效调度用户和共享企业的资源。Oracle Database 11g DBA可利用Database Resource Manager(数据库资源管理器)特性在网格的各用户间控制和引导宝贵的数据库资源。还可以利用Oracle Scheduler(Oracle调度员)特性来管理和监控作业并调整它们的优先级。
  真应用测试
  Oracle Database 11g的两个重要特性----Database Replay(数据库重演)和SQL Performance Analyzer(SQL性能分析器)----分别可以重演数据库活动和SQL工作负荷,为更改管理提供方便。例如,可以通过调用数据库重演和SQL性能分析器工具,测试可能的数据库或服务器升级的影响。
  为什么要读本书
  与市场中其他书籍不同,本书重点关注DBA的实际工作。那么,新DBA开始工作时需要知道什么呢?新DBA需要知道多少SQL以及哪些SQL呢?新DBA需要知道什么样的UNIX、Linux和Windows命令及实用程序?DBA怎样执行基本的UNIX管理任务?DBA怎样从头开始***Oracle软件?如何应用Oracle Database 11g服务器强有力的新性能调优功能?
  本书提供了一名专业Oracle DBA必须掌握的所有基础性概念以及实用的操作技巧。下面简单列出了你选择本书的理由。
  这是一本大全式的参考书
  作为一本涵盖DBA工作所需理论和实践的图书,本书旨在成为专业Oracle DBA的一本参考大全。如前所述,这个行业的大多数新人面对大量资料和大量管理命令感到恐惧和不知所措。正好,本书提供了有效运行数据库所需的各种资料。
  在一本书里囊括所有知识,这怎么可能?当然,假如你什么都想学,也会发现本书尚有许多领域没有涉及。但你必须学会分清主次,要能区分什么是最重要的,什么只需大致知道即可(至少在入门时)。
  当然,我不是说本书可以取代所有其他Oracle资料。我强烈建议富有钻研精神的读者把参考Oracle Database 11g文档作为一种习惯。你可以注册成为Oracle Technology Network(OTN)的免费成员以查阅相应文档,为此需要访问Oracle 的 Web站点。
  阅读Oracle数据库手册并理解数据库如何工作极为重要。不过,要掌握DBA技术,什么也比不上在一个实际的数据库上工作来得重要,因此如果你有一个Windows桌面电脑,就可以方便地下载***免费的Oracle Database 11g软件,对Linux系统也是一样的。事实上,产品数据库与桌面机上的“实验数据库”的运行是完全相同的,因此完全有条件试验有关Oracle Database 11g的内容。
  阅读Oracle手册
  不管是使用本书还是别的DBA手册,都需要经常参考Oracle数据库手册以获得复杂数据库操作的完整详细的知识。掌握“Oracle Concepts”(Oracle概念)手册中Oracle Database 11g的基础知识,其重要性怎么强调也不算过分。掌握该手册的内容对于理解许多高级DBA过程极为关键。
  如果需要详细了解各种细节,该手册是非常有参考价值的。例如,关于备份与恢复的章节是掌握这方面知识的一个很好的起点。还有几本Oracle手册介绍备份与恢复的内容。一旦读完本书中相应的两章(第15章和第16章),你会发现读懂各种Oracle资料是一件相当容易的事情,因为你已经对所有重要的概念有了良好的理解。本书提供了读懂各种Oracle手册和联机帮助的知识基础。
  除了联机手册外,Oracle还提供了一套优秀的教程,循序渐进地说明如何完成许多有用的Oracle Database 11g任务。可访问/technology/obe/start/index.html阅读这些教程(Oracle by Example系列)。
  重点介绍新方法及使用时机
  新DBA面临的第一个难题就是如何选择正确的管理数据库策略。虽然在Oracle Database 11g中数据库管理的基本任务与以前版本基本相同,但是新版数据库含有几项革新性的技术,使得许多例行任务的完成比过去更为容易。不过Oracle公司并未坚定地推荐采用这些新方法和新技术来管理数据库。其原因有两个,首先,Oracle很少在版本更新之间突然废弃原有技术。注定要废弃的特性被真正废弃一般要经历若干年。因而,完成类似任务的旧方法和新方法并存于同一个版本中。其次,Oracle在明确通告其主张的方法的指导原则方面从来效率都不高。因此,当完成一个任务存在不止一种方法时,作为DBA,在你选择使用方法时必须仔细考虑。
  本书推荐使用Oracle的新特性(这些特性在最近几年得到了提高),鼓励在新特性显然优于旧特性时应该转向它们。在有多项策略供选择时,本书详细地帮助你选择一种。例如,性能调优通常是利用传统的SQL脚本来完成的,但本书直接采用Oracle企业管理器(OEM)GUI技术来完成所有性能调优等DBA任务。
  涵盖UNIX、SQL、PL/SQL和数据建模
  有的人很想成为Oracle DBA,但因为缺乏UNIX/Linux和SQL方面的培训而止步不前。有时,DBA被数据建模和“逻辑DBA”技术搞得稀里糊涂。DBA在完成自己的工作时所应该知道的基本UNIX、SQL、PL/SQL和数据建模知识,是本书的一个重要特点。
  作为DBA,要能使用许多UNIX工具和实用程序来管理Oracle数据库。遗憾的是,迄今为止许多书籍都没有介绍这些重要工具。本书弥补了这一缺憾,介绍了telnet、FTP、crontab等内容。许多开发人员和管理人员希望对UNIX系统有较好的理解,包括如何使用vi文件编辑器、进行文件操作以及基本的shell脚本编写等。本书使你能够立即开始使用UNIX操作系统,并介绍如何编写完成各种任务的可靠的shell脚本。当然,你也可以参加上述内容的专门培训或阅读专门书籍,不过使用本书可尽量省去这些麻烦。
  除了立即使用UNIX进行工作所需的知识以外,你还可以从本书中获得从DBA角度来看的SQL和PL/SQL良好工作的知识。当然,我强烈建议你进一步钻研UNIX和SQL以提高DBA职业技能。
  传授实际管理经验
  虽然近十年来出版了许多Oracle数据库管理方面的书籍,但令人吃惊的是它们很少将Oracle数据库的概念与完成管理任务所需的技术结合起来讲述。备份与恢复方面就是如此,很难找到其深层概念的介绍。因而,许多DBA虽然学习了备份与恢复的技术,却没有理解备份与恢复的基本原理。可以想象,理论与实践的这种分离其代价是很大的,概念的模糊可能会导致错误。
  DBA的成功与其实践经验的丰富程度及其对数据库运行的基本概念(这些概念隐藏在操作之后)的理解程度有直接的关系。为了获得这种实践经验,读者可以在UNIX或Windows的Oracle Database 11g上试用本书中的所有命令。Oracle Database 11g载入了使其成为数据库市场上的优势数据库的那些特性,本书介绍包含在11g版本中的所有新增加的功能和修改。经验丰富的DBA如果有机会用到新数据库的所有美妙功能,会乐此不疲,不过初中级的DBA更会饶有趣味,因为他们正试图努力掌握Oracle数据库的管理技能。
  本书读者
  本书读者主要面向初中级Oracle Database 11g DBA。不要求读者具有使用过Oracle数据库的经验,因此如果你从未管理过数据库且打算掌握Oracle Database 11g的管理技能
收藏(27)评论分享
新浪微博QQ好友QQ空间

参考资料

 

随机推荐