Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南

Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南
作 者: 孙风栋 王澜
出版社: 机械工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 计算机与互联网 数据库
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  孙风栋,资深Oracle数据库专家,从事Oracle数据库的开发、管理、教学和培训十余年,对Oracle数据库系统有深入的研究和认识,积累了丰富的实战经验。领导并参与了包括国家自然科学基金项目在内的多个Oracle项目,负责Oracle数据库的架构、开发和管理工作。此外,他还是一位经验丰富的技术作家,著有多部与Oracle数据库相关的著作,深受读者欢迎。

内容简介

《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南》是Oracle数据库领域独特的、具有创新意义的实力之作。为了降低读者的学习难度,作者根据多年实践和教学的经验和体会,首先从宏观上帮助读者廓清Oracle数据库体系和框架,然后从微观上帮助读者掌握开发中的各个技术细节,这是本书的独到之处。本书内容系统而全面,详细讲解了Oracle数据库的管理、开发、性能优化,以及PL/SQL编程的相关知识,面面俱到;注重实战,为每个知识点精心设计了大量的案例,而且每一章后面都有实践指导,旨在帮助读者提高动手能力;重点突出,对重要的内容进行了深入细致的讲解。《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南》全书共32章,分为五大部分:基础篇(第1~7章),主要介绍了Oracle数据库的作用、特点、应用结构、数据库服务器的安装与配置、三种常用管理与开发工具(OEM、SQL*Plus、SQL Developer)的使用,以及会贯穿全书的案例;体系结构篇(第8~14章),详细讲解了Oracle数据库的内部体系结构,包括数据库实例(内存结构与后台进程)、物理存储结构(数据文件、控制文件、重做日志文件、归档重做日志文件、初始化参数文件)、逻辑存储结构(块、区、段、表空间)的构成、配置与维护,这部分内容是Oracle数据库管理与维护的基础;模式对象篇(第15~19章),详细讲解了Oracle数据库模式对象的应用与管理,包括表、约束、索引、分区表、分区索引、视图、物化视图、簇、外部表、序列、同义词、数据库链接等,这是数据库开发和维护的基础;维护篇(第20~29章),详细介绍了Oracle数据库的创建与配置、启动与关闭方式、网络服务管理与配置、安全性配置与管理、备份与恢复,以及性能优化等;开发篇(第30~32章),介绍了与Oracle数据库开发相关的技术,包括SQL语句应用、PL/SQL程序设计,以及PL/SQL的综合应用等。

图书目录

前言

第一篇 基础篇

第1章 数据库基础知识/ 2

1.1 数据库基本概念/ 2

1.2 数据库的产生/ 3

1.3 数据库的特征/ 4

1.4 数据模型/ 5

1.4.1 数据模型的概念/ 5

1.4.2 概念模型/ 5

1.4.3 组织数据模型/ 6

1.5 关系模型/ 6

1.5.1 数据结构/ 7

1.5.2 关系完整性约束/ 8

1.6 关系数据库/ 8

1.6.1 关系数据库的功能/ 8

1.6.2 常见的关系数据库管理系统/ 8

1.7 数据库系统设计步骤/ 10

1.7.1 数据库设计概述/ 10

1.7.2 需求分析/ 10

1.7.3 概念结构设计/ 11

1.7.4 逻辑结构设计/ 12

1.7.5 物理结构设计/ 13

1.7.6 数据库实施与维护/ 13

实践指导/ 13

第2章 Oracle数据库简介/ 15

2.1 Oracle数据库的发展/ 15

2.1.1 Oracle数据库的应用现状/ 15

2.1.2 Oracle 数据库的版本变迁/ 15

2.1.3 Oracle数据库的技术领先优势/ 17

2.1.4  Oracle数据库的高市场占有率/ 18

2.2 Oracle的网格计算/ 18

2.2.1 Oracle 数据库的网格/ 19

2.2.2 Oracle应用服务器的网格/ 20

2.2.3 Oracle 企业管理器的网格控制/ 20

2.3 Oracle数据库的应用结构/ 21

2.4 Oracle 11g数据库的新特性/ 22

实践指导/ 25

第3章 Oracle 11g数据库的安装/ 26

3.1 安装预处理/ 26

3.1.1 对系统软、硬件的要求/ 26

3.1.2 安装准备/ 26

3.1.3 回环网络适配器的安装与配置/ 27

3.2 Oracle 11g数据库软件下载/ 29

3.3 安装Oracle 11g数据库服务器/ 31

3.4 检查和验证安装结果/ 40

3.4.1 程序组 / 41

3.4.2 产品清单/ 41

3.4.3 系统服务/ 41

3.4.4 文件体系结构/ 43

3.4.5 网络配置/ 43

3.4.6 利用企业管理器登录数据库/ 44

3.4.7 利用SQL Plus登录数据库/ 45

3.5 运行时故障分析与解决/ 45

3.6 卸载Oracle 11g产品/ 49

实践指导/ 50

第4章 Oracle企业管理器/ 51

4.1 Oracle企业管理器的功能与分类/ 51

4.1.1 Oracle企业管理器的功能/ 51

4.1.2 Oracle企业管理器的类型/ 51

4.2 Oracle企业管理器的启动与登录/ 52

4.3 使用联机帮助 / 53

4.4Oracle企业管理器功能界面介绍/ 54

4.4.1 “主目录”选项卡/ 54

4.4.2  “性能”选项卡/ 56

4.4.3 “可用性”选项卡/ 59

4.4.4  “服务器”选项卡/ 60

4.4.5  “方案”选项卡/ 61

4.4.6  “数据移动”选项卡/ 62

4.4.7  “软件和支持”选项卡/ 63

4.5 Oracle企业管理器基本设置/ 64

4.5.1 添加管理员/ 64

4.5.2 管理监视模板/ 65

4.5.3 设置封锁/ 67

4.6 Oracle企业管理器首选项设置/ 69

4.6.1 设置主机首选身份证明/ 70

4.6.2设置数据库首选身份证明/ 72

实践指导/ 73

第5章 SQL﹡Plus工具的使用/ 74

5.1 SQL﹡Plus工具介绍/ 74

5.1.1 SQL*Plus的主要功能/ 74

5.1.2 SQL*Plus启动与退出/ 74

5.1.3 SQL*Plus站点配置文件/ 76

5.2 SQL*Plus命令/ 76

5.2.1 数据库连接与断开命令/ 76

5.2.2 显示数据库对象结构/ 77

5.2.3 编辑命令/ 77

5.2.4 文件操作命令/ 79

5.2.5 注释/ 83

5.2.6 使用替换变量/ 84

5.2.7 与用户通信/ 86

5.2.8 使用绑定变量/ 87

5.2.9 其他常用命令/ 88

5.3 显示与设置环境变量/ 90

5.4 格式化查询结果/ 95

5.4.1 格式化列/ 95

5.4.2 压缩重复列值的显示/ 98

5.4.3 使用汇总/ 99

5.4.4 设置页与报表/ 100

实践指导/ 102

第6章 SQL Developer开发工具的使用/ 104

6.1 SQL Developer概述/ 104

6.2 创建数据库连接/ 104

6.3 SQL Developer基本操作/ 106

6.3.1 浏览数据库对象/ 106

6.3.2 数据操纵/ 107

6.3.3 数据库对象的创建与修改/ 110

6.4开发和调试PL/SQL程序/ 113

6.4.1 存储过程创建与编辑/ 113

6.4.2 存储过程调试/ 115

6.5 导出与导入操作/ 118

6.5.1 导出数据/ 119

6.5.2 导出对象定义/ 119

6.5.3 导入数据/ 120

6.6 运行和创建报表/ 122

6.6.1 运行预定义报表/ 122

6.6.2 创建自定义报表/ 123

实践指导/ 124

第7章 实践案例项目分析与设计/ 125

7.1 实践案例说明/ 125

7.2 系统分析/ 125

7.3 概念结构设计/ 125

7.4 逻辑结构设计/ 127

7.4.1 表结构设计/ 127

7.4.2 序列的设计/ 129

7.4.3 索引的设计/ 129

7.4.4 视图的设计/ 130

7.4.5 存储过程的设计/ 130

7.4.6 函数的设计 / 130

7.4.7 包的设计/ 130

7.4.8 触发器的设计/ 130

7.5 物理存储结构的设计/ 131

实践指导/ 131

第二篇 体系结构篇

第8章 Oracle数据库体系结构/ 134

8.1 Oracle数据库体系结构概述/ 134

8.2 Oracle数据库存储结构/ 135

8.2.1 Oracle数据库物理存储结构/ 136

8.2.2 Oracle数据库逻辑存储结构/ 140

8.3 Oracle数据库实例/ 147

8.3.1 Oracle实例概述/ 147

8.3.2 SGA/ 148

8.3.3 PGA/ 152

8.3.4 内存管理/ 154

8.4 Oracle数据库进程/ 158

8.4.1 Oracle进程概述/ 158

8.4.2 Oracle服务器进程/ 159

8.4.3 Oracle后台进程/ 168

8.5 数据字典/ 173

8.5.1 数据字典的概念/ 173

8.5.2 数据字典的结构/ 174

8.5.3 数据字典的使用/ 175

8.5.4 在OEM中查询数据字典信息/ 179

8.6 SQL语句执行过程/ 180

实践指导/ 181

第9章 数据文件管理/ 182

9.1 数据文件概述/ 182

9.2 数据文件的管理准则/ 183

9.2.1 确定数据文件数量/ 183

9.2.2 确定数据文件大小/ 184

9.2.3 设置数据文件的存储位置/ 184

9.3 创建数据文件/ 184

9.4 修改数据文件大小/ 186

9.4.1 数据文件的自动扩展/ 186

9.4.2 手动改变数据文件大小/ 187

9.5 改变数据文件的可用性/ 188

9.5.1 归档模式下数据文件可用性的改变/ 188

9.5.2 非归档模式下数据文件的脱机/ 189

9.5.3 改变表空间中所有数据文件的可用性/ 190

9.6 改变数据文件的名称与位置/ 191

9.6.1 修改同一个表空间中数据文件的名称与位置/ 192

9.6.2 修改多个表空间中数据文件的名称与位置/ 192

9.7 删除数据文件/ 194

9.8 查询数据文件/ 194

9.9 利用OEM管理数据文件/ 196

实践指导/ 198

第10章 控制文件管理/ 199

10.1 控制文件概述/ 199

10.1.1 控制文件的概念/ 199

10.1.2 控制文件的内容/ 199

10.1.3 控制文件的大小/ 200

10.1.4 控制文件的管理策略/ 200

10.2 创建控制文件/ 201

10.2.1 创建初始控制文件/ 201

10.2.2 创建新的控制文件/ 201

10.3 多路复用控制文件/ 206

10.4 控制文件创建后故障解决/ 207

10.4.1 数据字典与控制文件信息不一致/ 207

10.4.2 创建控制文件时的错误处理/ 208

10.5 备份控制文件/ 208

10.6 删除控制文件/ 208

10.7 查询控制文件信息/ 208

10.8 利用OEM管理控制文件/ 209

实践指导/ 210

第11章 重做日志文件管理/ 212

11.1 重做日志文件概述/ 212

11.1.1 重做日志文件的内容与作用/ 212

11.1.2 重做日志文件工作原理/ 213

11.1.3 重做日志文件切换与日志序列号/ 213

11.1.4 重做日志文件组的概念/ 214

11.1.5 重做日志文件故障响应/ 214

11.1.6 重做日志文件规划/ 215

11.2 创建重做日志文件组及其成员/ 216

11.2.1 创建重做日志文件组/ 216

11.2.2 创建重做日志文件组成员文件/ 217

11.3 修改重做日志文件的名称与位置/ 218

11.3.1 数据库关闭状态下修改重做日志文件的名称与位置/ 219

11.3.2 数据库运行状态下修改重做日志文件的名称与位置/ 220

11.4 删除重做日志文件组及其成员/ 221

11.4.1 删除重做日志文件组成员文件/ 221

11.4.2 删除重做日志文件组/ 223

11.5 重做日志文件切换与检查点/ 224

11.5.1 重做日志文件切换/ 224

11.5.2 检查点/ 225

11.6 清除重做日志文件组/ 226

11.7 查看重做日志文件信息/ 226

11.8 利用OEM管理重做日志文件/ 227

实践指导/ 229

第12章 归档重做日志文件管理/ 230

12.1 归档重做日志文件概述/ 230

12.2 数据库归档与非归档模式选择/ 230

12.2.1 非归档模式/ 231

12.2.2 归档模式/ 231

12.3 归档控制/ 232

12.3.1 设置数据库初始归档模式/ 232

12.3.2 改变数据库归档模式/ 232

12.3.3 手动归档/ 234

12.3.4 调整归档进程数量/ 234

12.4 设置归档目的地/ 234

12.4.1 设置初始化参数指定归档目的地/ 234

12.4.2 归档目的地的状态/ 238

12.4.3 设置备用归档目的地/ 239

12.5 查询归档重做日志文件信息/ 240

12.6 利用OEM管理归档日志文件/ 241

实践指导/ 242

第13章 初始化参数文件管理/ 243

13.1 服务器初始化参数文件概述/ 243

13.2 创建服务器初始化参数文件/ 244

13.3 初始化参数介绍/ 246

13.4 修改初始化参数/ 247

13.5 导出服务器初始化参数文件/ 251

13.6 恢复丢失或损坏的服务器初始化参数文件/ 252

13.7 查看初始化参数设置/ 253

13.8 利用OEM管理初始化参数/ 255

实践指导/ 256

第14章 表空间管理/ 257

14.1 表空间概述/ 257

14.1.1 表空间概念/ 257

14.1.2 表空间分类/ 258

14.1.3 表空间的管理方式/ 259

14.1.4 表空中区的分配与段的管理/ 260

14.1.5 表空间的管理策略/ 262

14.2 创建表空间/ 263

14.2.1 创建表空间概述/ 263

14.2.2 CREATE TABLESPACE语句/ 263

14.2.3 创建本地管理表空间/ 265

14.2.4 创建大文件表空间/ 267

14.2.5 创建非标准块表空间/ 269

14.2.6 创建加密表空间/ 270

14.3 维护表空间/ 272

14.3.1 ALTER TABLESPACE语句/ 272

14.3.2 改变表空间大小/ 273

14.3.3 改变表空间可用性/ 275

14.3.4 改变表空间读写性/ 277

14.3.5 重命名表空间/ 280

14.3.6 设置默认表空间/ 281

14.3.7 备份表空间/ 282

14.4 删除表空间/ 283

14.5 管理临时表空间/ 285

14.5.1 临时表空间概述/ 285

14.5.2 默认临时表空间/ 285

14.5.3 创建临时表空间/ 286

14.5.4 临时表空间组/ 286

14.5.5 收缩本地管理的临时表空间/ 287

14.6 管理撤销表空间/ 288

14.6.1 撤销表空间概述/ 288

14.6.2 创建撤销表空间/ 290

14.6.3 修改撤销表空间 / 291

14.6.4 删除撤销表空间/ 291

14.6.5 切换撤销表空间/ 292

14.6.6 回退信息保留时间设置/ 292

14.6.7 查询撤销表空间信息/ 293

14.7 查询表空间信息/ 294

14.8 利用OEM管理表空间/ 296

实践指导/ 299

第三篇 模式对象篇

第15章 表与约束管理/ 302

15.1 模式与模式对象/ 302

15.1.1 模式与对象的关系/ 302

15.1.2 模式与用户的关系/ 302

15.1.3 CREATE SCHEMA语句/ 304

15.1.4 创建人力资源管理系统模式/ 304

15.2 表管理概述 / 305

15.2.1 表概述/ 305

15.2.2 表创建策略/ 305

15.3 创建表/ 308

15.3.1 CREATE TABLE语句/ 308

15.3.2 表的存储分配方式设置/ 310

15.3.3 Oracle数据类型/ 311

15.3.4 创建标准表/ 313

15.3.5 创建临时表/ 314

15.3.6 利用子查询创建表/ 316

15.4 修改表/ 318

15.4.1 ALTER TABLE语句/ 318

15.4.2 添加、修改、删除列/ 319

15.4.3 修改表参数设置/ 321

15.4.4 表结构重组/ 322

15.4.5 手动分配与回收表的存储空间/ 322

15.4.6 改变表的读写模式/ 324

15.4.7 重命名表/ 326

15.5 维护表/ 326

15.5.1 为表和列添加注释/ 326

15.5.2 删减表/ 327

15.5.3 删除表/ 328

15.5.4 分析表/ 329

15.5.5 查询表信息/ 332

15.5.6 利用OEM管理表/ 333

15.6 约束概述/ 335

15.6.1 约束的分类/ 335

15.6.2 约束的定义方式/ 337

15.6.3 约束的状态/ 338

15.7 创建与维护约束/ 338

15.7.1 创建表时定义约束/ 338

15.7.2 添加、修改与删除约束/ 341

15.7.3 禁用与激活约束/ 344

15.7.4 验证约束状态/ 346

15.7.5 确定违反约束限制的记录/ 347

15.7.6 延迟约束检查/ 349

15.7.7 查询约束信息/ 350

实践指导/ 351

第16章 索引与索引表管理/ 352

16.1 索引概述/ 352

16.1.1 索引的概念与作用/ 352

16.1.2 索引结构/ 354

16.1.3 索引的分类/ 356

16.1.4 索引的管理策略/ 356

16.2 创建索引/ 358

16.2.1 CREATE INDEX语句/ 358

16.2.2 创建非唯一性索引/ 359

16.2.3 创建唯一性索引/ 360

16.2.4 创建位图索引/ 360

16.2.5 创建反序索引/ 360

16.2.6 创建函数索引/ 360

16.2.7 定义约束时创建索引/ 361

16.2.8 创建大型索引/ 361

16.3 修改索引/ 362

16.3.1 ALTER INDEX语句/ 362

16.3.2 修改索引参数设置/ 363

16.3.3 合并与重建索引/ 363

16.3.4 禁用与启用函数索引/ 364

16.3.5 手动分配与回收索引存储空间/ 365

16.3.6 重命名索引/ 365

16.3.7 打开与关闭索引监控/ 365

16.4 维护索引/ 366

16.4.1 删除索引/ 366

16.4.2 查询索引信息/ 367

16.4.3 利用OEM管理索引/ 368

16.5 索引表概述/ 369

16.5.1 索引表的概念/ 369

16.5.2 索引表与标准表比较/ 369

16.5.3 索引表的优、缺点/ 370

16.5.4 索引表的溢出存储/ 370

16.6 创建索引表/ 371

16.7 维护索引表/ 372

16.7.1 修改索引表/ 372

16.7.2 重建索引表/ 373

16.7.3 将索引表转换为标准表/ 373

16.7.4 利用OEM管理索引表/ 373

实践指导/ 374

第17章 分区表与分区索引管理/ 376

17.1 分区概述/ 376

17.1.1 分区的概念/ 376

17.1.2 分区的优点/ 376

17.1.3 何时需要分区/ 377

17.1.4 基本分区方法/ 377

17.1.5 Oracle 11g分区方法扩展/ 379

17.1.6 分区索引/ 381

17.2 创建分区表/ 382

17.2.1 创建范围分区表/ 382

17.2.2 创建列表分区表/ 385

17.2.3 创建散列分区表/ 386

17.2.4 创建复合分区表/ 387

17.2.5 创建间隔分区表/ 389

17.2.6 创建引用分区表/ 391

17.2.7 创建基于虚拟列的分区表/ 392

17.2.8 创建系统分区表/ 392

17.2.9 创建分区索引表/ 393

17.3 维护分区表/ 394

17.4 创建分区索引/ 402

17.4.1 本地分区索引/ 402

17.4.2 全局分区索引/ 403

17.5 维护分区索引/ 404

17.6 查询分区表和分区索引信息/ 404

17.7 利用OEM管理分区表和分区索引/ 406

实践指导/ 408

第18章 视图与实体化视图管理/ 409

18.1 视图的概念/ 409

18.2 创建视图/ 410

18.2.1 CREATE VIEW语句/ 410

18.2.2 创建简单视图/ 411

18.2.3 创建复杂视图/ 411

18.2.4 创建带约束的视图/ 413

18.2.5 创建内嵌视图/ 413

18.2.6 创建TOP-N视图/ 414

18.3 维护视图/ 414

18.3.1 视图的DML操作/ 414

18.3.2 修改视图定义/ 415

18.3.3 删除视图/ 416

18.3.4 查询视图信息/ 416

18.3.5 利用OEM管理视图/ 417

18.4 实体化视图概述/ 418

18.4.1 实体化视图的概念/ 418

18.4.2 实体化视图的特性/ 419

18.4.3 实体化视图的刷新方法/ 419

18.4.4 实体化视图的刷新模式/ 420

18.4.5 实体化视图日志/ 420

18.4.6 实体化视图类型/ 421

18.4.7 实体化视图的查询重写/ 421

18.4.8 实体化视图的创建方式/ 422

18.5 创建实体化视图/ 422

18.5.1 创建实体化视图的权限需求/ 422

18.5.2 CREATE MATERIALIZED VIEW语句/ 422

18.5.3 创建实体化视图示例/ 423

18.6 维护实体化视图/ 427

18.6.1 修改实体化视图/ 427

18.6.2 删除实体化视图/ 428

18.6.3 查询实体化视图信息/ 428

18.6.4 利用OEM管理实体化视图/ 429

实践指导/ 432

第19章 簇、外部表、序列、同义词与数据库链接管理/ 433

19.1 簇/ 433

19.1.1 簇概念/ 433

19.1.2 簇管理准则/ 434

19.1.3 创建簇/ 434

19.1.4 创建聚簇表/ 435

19.1.5 创建聚簇索引/ 435

19.1.6 修改簇/ 436

19.1.7 删除簇/ 436

19.1.8 查询簇信息/ 436

19.2 外部表/ 437

19.2.1 外部表概述/ 437

19.2.2 创建外部表/ 437

19.2.3 利用外部表导出数据/ 440

19.2.4 修改外部表/ 441

19.2.5 删除外部表/ 441

19.2.6 查询外部表信息/ 442

19.3 序列/ 442

19.3.1 序列的概念/ 442

19.3.2 创建序列/ 442

19.3.3 使用序列/ 443

19.3.4 修改序列/ 445

19.3.5 删除序列/ 445

19.3.6 查询序列信息/ 445

19.3.7 利用OEM管理序列/ 445

19.4 同义词/ 446

19.4.1 同义词的概念/ 446

19.4.2 创建同义词/ 447

19.4.3 在DML语句中使用同义词/ 447

19.4.4 删除同义词/ 447

19.4.5 查询同义词信息/ 447

19.4.6 利用OEM管理同义词/ 448

19.5 数据库链接/ 449

19.5.1 数据库链接概述/ 449

19.5.2 创建数据库链接/ 450

19.5.3 在DML中使用数据库链接/ 451

19.5.4 修改数据库链接/ 451

19.5.5 删除数据库链接/ 451

19.5.6 查询数据库链接信息/ 452

19.5.7 利用OEM管理数据库链接/ 452

实践指导/ 453

第四篇 维护篇

第20章 数据库创建与配置/ 456

20.1 创建数据库概述/ 456

20.1.1 创建数据库的方法/ 456

20.1.2 创建数据库前的规划/ 457

20.1.3 创建数据库的先决条件/ 457

20.2 使用DBCA创建数据库/ 458

20.3 设置DBA认证方式/ 462

20.3.1 DBA职责/ 462

20.3.2 DBA权限/ 463

20.3.3 DBA认证方式/ 464

20.3.4 使用操作系统认证/ 465

20.3.5 使用口令文件认证/ 466

20.3.6 共享与禁用口令文件/ 467

20.3.7 修改口令文件/ 468

20.4 手动创建数据库/ 468

20.4.1 手动创建数据库的步骤/ 468

20.4.2 CREATE DATABASE语句/ 469

20.4.3 手动创建数据库实例/ 471

实践指导/ 477

第21章 数据库启动与关闭/ 478

21.1 数据库启动与关闭概述/ 478

21.1.1 Oracle数据库启动过程/ 478

21.1.2 Oracle数据库关闭过程/ 479

21.1.3 数据库启动与关闭的工具/ 479

21.2 启动Oracle数据库/ 479

21.2.1 启动数据库前的准备/ 479

21.2.2 Oracle数据库启动模式/ 481

21.3 改变数据库的状态/ 484

21.3.1 改变数据库的启动模式/ 484

21.3.2 数据库读写状态转换/ 484

21.3.3 数据库受限与非受限状态转换/ 485

21.4 关闭Oracle数据库/ 486

21.4.1 正常关闭数据库/ 486

21.4.2 事务关闭数据库/ 486

21.4.3 立即关闭数据库/ 487

21.4.4 终止关闭数据库/ 487

21.4.5 数据库关闭超时/ 487

21.5 Oracle数据库的静默与挂起/ 488

21.5.1 静默数据库/ 488

21.5.2 挂起数据库/ 490

21.6 利用OEM启动与关闭数据库/ 491

21.6.1 关闭数据库/ 491

21.6.2 启动数据库/ 492

实践指导/ 493

第22章 网络服务管理与配置/ 495

22.1 Oracle网络服务概述/ 495

22.1.1 网络解决方案/ 495

22.1.2 网络服务组件/ 498

22.1.3 网络连接基本概念/ 500

22.1.4 完整的Oracle网络服务结构/ 503

22.1.5 本地管理的网络配置文件/ 504

22.2 服务器端网络配置/ 504

22.2.1 监听器配置概述/ 504

22.2.2 安装Oracle时配置默认监听器/ 505

22.2.3 配置监听协议地址/ 506

22.2.4 配置静态服务注册/ 507

22.2.5 配置运行参数/ 508

22.2.6 创建与配置新的监听器/ 510

22.2.7 配置动态服务注册/ 512

22.2.8 监听器的管理/ 514

22.3 客户端网络配置/ 516

22.3.1 客户端网络配置概述/ 516

22.3.2 配置本地命名方式/ 516

22.3.3 配置主机命名方式/ 520

22.3.4 配置轻松连接命名方式/ 522

22.4 利用OEM进行网络管理与配置/ 522

22.4.1 配置与管理监听器/ 522

22.4.2 配置与管理本地网络服务名/ 524

实践指导/ 524

第23章 Oracle数据库安全管理/ 525

23.1 Oracle数据库安全控制策略/ 525

23.2 用户管理/ 526

23.2.1 预定义用户/ 526

23.2.2 用户属性/ 527

23.2.3 创建用户/ 528

23.2.4 用户身份认证/ 530

23.2.5 修改用户/ 531

23.2.6 删除用户/ 533

23.2.7 查询用户信息/ 534

23.3 资源限制与口令管理/ 534

23.3.1 资源限制与口令管理概述/ 534

23.3.2 资源限制参数介绍/ 536

23.3.3 口令管理参数介绍/ 537

23.3.4 创建概要文件/ 537

23.3.5 将概要文件分配给用户 / 538

23.3.6 修改概要文件/ 539

23.3.7 删除概要文件/ 539

23.3.8 查询概要文件信息/ 540

23.4 权限管理/ 541

23.4.1 权限概述/ 541

23.4.2 系统权限分类/ 541

23.4.3 系统权限的授权/ 546

23.4.4 系统权限的回收/ 547

23.4.5 对象权限分类 / 549

23.4.6 对象权限的授权 / 551

23.4.7 对象权限的回收 / 552

23.4.8 查询权限信息/ 554

23.5 角色管理/ 556

23.5.1 角色概述/ 556

23.5.2 预定义角色/ 557

23.5.3 创建角色/ 558

23.5.4 角色权限的授予与回收/ 559

23.5.5 修改角色/ 560

23.5.6 禁用与激活角色/ 561

23.5.7 删除角色/ 562

23.5.8 利用角色进行权限管理/ 562

23.5.9 查询角色信息/ 564

23.6 审计/ 565

23.6.1 审计的概念/ 565

23.6.2 审计分类/ 566

23.6.3 审计环境设置/ 566

23.6.4 语句审计/ 567

23.6.5 权限审计/ 570

23.6.6 对象审计/ 571

23.6.7 网络审计/ 572

23.6.8 精细审计/ 572

23.7 利用OEM进行安全管理/ 574

实践指导/ 577

第24章 用户管理的备份与恢复/ 579

24.1 Oracle数据库备份与恢复概述/ 579

24.1.1 备份与恢复的作用/ 579

24.1.2 数据库故障类型与恢复措施/ 580

24.1.3 备份与恢复的解决方案/ 581

24.2 Oracle数据库备份分类/ 582

24.2.1 物理备份与逻辑备份/ 582

24.2.2 一致性备份与不一致性备份/ 583

24.2.3 完全备份与部分备份/ 584

24.2.4 联机备份与脱机备份/ 585

24.2.5 增量备份/ 586

24.3 Oracle数据库备份原则与策略/ 586

24.4 用户管理的脱机备份/ 587

24.4.1 脱机备份概述/ 587

24.4.2 脱机完全备份/ 588

24.4.3 脱机备份表空间与数据文件/ 589

24.5 用户管理的联机备份/ 590

24.5.1 联机备份概述/ 590

24.5.2 联机备份表空间与数据文件/ 591

24.5.3 备份控制文件/ 592

24.5.4 备份归档重做日志文件/ 593

24.5.5 数据库挂起状态备份/ 594

24.5.6 联机完全备份数据库/ 595

24.6 Oracle数据库恢复的工作机制/ 595

24.6.1 数据库恢复原理/ 595

24.6.2 数据库恢复操作基本步骤/ 596

24.6.3 数据库恢复分类/ 596

24.7 数据库恢复的原则与策略/ 597

24.8 数据库实例恢复过程/ 598

24.9 非归档模式下的介质恢复/ 598

24.10 归档模式下的完全介质恢复/ 600

24.10.1 完全恢复概述/ 600

24.10.2 数据库关闭状态下的完全恢复/ 601

24.10.3 数据库打开状态下的完全恢复/ 602

24.11 归档模式下的不完全介质恢复/ 603

24.11.1 不完全恢复概述/ 603

24.11.2 归档模式下不完全恢复步骤/ 604

24.12 控制文件的恢复/ 605

24.12.1 丢失多路复用控制文件的一个成员/ 606

24.12.2 丢失所有当前的控制文件/ 606

24.12.3 重建控制文件/ 608

实践指导/ 609

第25章 基于RMAN的备份与恢复/ 611

25.1 RMAN概述/ 611

25.1.1 RMAN介绍/ 611

25.1.2 RMAN运行环境组件/ 612

25.1.3 RMAN基本概念/ 614

25.1.4 RMAN预定义配置参数/ 616

25.2 RMAN基本操作/ 617

25.2.1 连接数据库/ 617

25.2.2 创建恢复目录/ 618

25.2.3 注册数据库/ 618

25.2.4 启动与关闭数据库/ 619

25.2.5 执行SQL语句/ 619

25.2.6 SHOW命令/ 620

25.2.7 CONFIGURE命令/ 620

25.2.8 LIST命令/ 620

25.2.9 REPORT命令/ 621

25.2.10 用RMAN执行操作系统命令/ 621

25.3 RMAN备份的基本概念/ 621

25.3.1 RMAN备份对象/ 621

25.3.2 RMAN备份形式/ 622

25.3.3 RMAN备份类型/ 623

25.3.4 增量备份的工作机制/ 624

25.3.5 复合备份集/ 625

25.3.6 多副本备份/ 626

25.3.7 并行备份/ 627

25.4 通道分配/ 628

25.4.1 自动分配通道/ 628

25.4.2 手动分配通道/ 629

25.5 利用RMAN备份数据库/ 630

25.5.1 BACKUP命令/ 630

25.5.2 备份文件存储格式/ 632

25.5.3 备份整个数据库/ 633

25.5.4 备份表空间/ 635

25.5.5 备份数据文件/ 636

25.5.6 备份控制文件/ 636

25.5.7 备份服务器初始化参数文件/ 637

25.5.8 备份归档重做日志文件/ 638

25.5.9 非归档模式下的备份/ 639

25.5.10 多副本备份/ 640

25.5.11 增量备份/ 641

25.5.12 镜像复制/ 642

25.6 利用RMAN恢复数据库/ 644

25.6.1 RMAN恢复的基本概念/ 644

25.6.2 RESTOER与RECOVER命令/ 645

25.6.3 利用RMAN进行完全恢复/ 647

25.6.4 利用RMAN进行不完全恢复/ 649

25.6.5 控制文件的恢复/ 650

25.6.6 将数据文件恢复到新的位置/ 652

实践指导/ 654

第26章 Oracle数据库逻辑备份与恢复/ 656

26.1 逻辑备份与恢复概述/ 656

26.1.1 逻辑备份与恢复简介/ 656

26.1.2 数据泵技术介绍/ 657

26.2 创建目录对象/ 657

26.3 使用EXPDP导出数据/ 658

26.3.1 EXPDP调用模式与导出模式/ 658

26.3.2 EXPDP命令参数与交互式命令/ 659

26.3.3 EXPDP导出实例/ 664

26.4 使用IMPDP导入数据/ 665

26.4.1 IMPDP调用接口与导入模式/ 665

26.4.2 IMPDP命令参数与交互式命令/ 666

26.4.3 IMPDP导入实例/ 671

26.5 使用EXP/IMP导出与导入数据/ 673

26.5.1 EXP/IMP概述/ 673

26.5.2 利用EXP导出数据/ 674

26.5.3 利用IMP导入数据/ 676

实践指导/ 678

第27章 Oracle数据库闪回技术/ 679

27.1 闪回技术概述/ 679

27.1.1 闪回技术介绍/ 679

27.1.2 闪回特性分类/ 679

27.2 闪回查询/ 680

27.2.1 闪回查询概述/ 680

27.2.2 撤销表空间相关参数配置/ 681

27.2.3 闪回查询操作/ 681

27.3 闪回版本查询/ 684

27.3.1 闪回版本查询概述/ 684

27.3.2 闪回版本查询操作/ 685

27.4 闪回事务查询/ 687

27.4.1 闪回事务查询概述/ 687

27.4.2 闪回事务查询操作/ 688

27.5 闪回表/ 690

27.5.1 闪回表概述/ 690

27.5.2 闪回表操作/ 691

27.6 闪回删除/ 692

27.6.1 闪回删除概述/ 692

27.6.2 回收站的管理/ 693

27.6.3 闪回删除操作/ 695

27.7 闪回数据库/ 695

27.7.1 闪回数据库概述/ 695

27.7.2 快速恢复区的配置/ 696

27.7.3 闪回数据库的配置/ 698

27.7.4 闪回数据库操作/ 699

27.8 闪回数据归档/ 700

27.8.1 闪回数据归档概念/ 700

27.8.2 闪回数据归档区的管理/ 701

27.8.3 启用或禁用表的闪回数据归档/ 703

27.8.4 闪回数据归档操作示例/ 703

实践指导/ 705

第28章 使用OEM备份与恢复数据库/ 706

28.1 利用OEM备份与恢复数据库概述/ 706

28.2 物理备份数据库/ 706

28.2.1 配置备份设置/ 706

28.2.2 备份数据库/ 708

28.2.3 管理数据库备份/ 709

28.3 物理恢复数据库/ 710

28.3.1 配置恢复设置/ 710

28.3.2 恢复数据库/ 712

28.4 逻辑备份与恢复数据库/ 713

28.4.1 创建目录对象/ 713

28.4.2 数据导出/ 714

28.4.3 数据导入/ 715

实践指导/ 717

第29章 Oracle数据库性能优化/ 718

29.1 数据库性能优化概述/ 718

29.1.1 数据库性能优化的必要性/ 718

29.1.2 影响数据库系统性能的因素/ 718

29.1.3 数据库性能优化的步骤/ 719

29.2 数据库实例性能优化/ 719

29.2.1 内存结构优化概述/ 720

29.2.2 数据缓冲区调整/ 721

29.2.3 共享池调整/ 724

29.2.4 重做日志缓冲区调整/ 727

29.2.5 PGA调整/ 727

29.2.6 数据库碎片整理/ 728

29.2.7 磁盘I/O优化与调整/ 729

29.3 SQL语句优化 / 729

29.3.1 SQL语句优化概述/ 729

29.3.2 SQL语句执行过程/ 732

29.3.3 将常用程序驻留内存/ 732

29.3.4 有效使用索引/ 734

29.3.5 采用适当的多表连接技术/ 735

29.3.6 SQL语句使用技巧/ 736

29.4 其他方面性能优化/ 736

29.4.1 网络优化/ 736

29.4.2 应用程序优化 / 737

实践指导/ 738

第五篇 开发篇

第30章 SQL语言应用基础/ 740

30.1 SQL语言概述/ 740

30.1.1 SQL语言介绍/ 740

30.1.2 SQL语言的分类/ 740

30.1.3 SQL语言的特点/ 741

30.2 数据查询/ 741

30.2.1 数据查询的基本语法/ 741

30.2.2 简单查询/ 742

30.2.3 分组统计查询/ 747

30.2.4 累计统计查询 / 753

30.2.5 连接查询 / 754

30.2.6子查询/ 759

30.2.7 层次查询/ 762

30.2.8 集合操作/ 764

30.3 数据操纵/ 766

30.3.1 插入数据/ 766

30.3.2 修改数据/ 771

30.3.3 MERGE语句/ 772

30.3.4 删除数据/ 774

30.4 事务控制/ 774

30.4.1 事务概述/ 774

30.4.2 Oracle事务处理/ 775

30.5 SQL函数/ 777

30.5.1 SQL函数分类/ 777

30.5.2 数值函数/ 777

30.5.3 字符函数/ 779

30.5.4 日期函数/ 781

30.5.5 转换函数/ 783

30.5.6 其他函数/ 786

实践指导/ 788

第31章 PL/SQL程序设计基础/ 790

31.1 PL/SQL概述/ 790

31.1.1 PL/SQL特点/ 790

31.1.2 PL/SQL功能特性/ 791

31.1.3 PL/SQL执行过程与开发工具/ 791

31.2 PL/SQL基础/ 792

31.2.1 PL/SQL程序结构/ 792

31.2.2 词法单元/ 794

31.2.3 数据类型/ 796

31.2.4 变量与常量/ 799

31.2.5 PL/SQL记录 / 800

31.2.6 编译指示/ 803

31.2.7 PL/SQL中的SQL语句/ 803

31.3 控制结构/ 806

31.3.1 选择结构/ 806

31.3.2 循环结构/ 809

31.3.3 跳转结构/ 811

31.4 游标/ 811

31.4.1 游标的概念及类型/ 811

31.4.2 显式游标/ 812

31.4.3 隐式游标/ 819

31.4.4 游标变量/ 820

31.5 异常处理/ 823

31.5.1 异常概述/ 823

31.5.2 异常处理过程/ 825

31.5.3 异常的传播/ 829

31.6 存储过程/ 830

31.6.1 概述/ 830

31.6.2 存储过程的创建/ 830

31.6.3 存储过程的调用/ 834

31.6.4 存储过程的管理/ 835

31.7 函数/ 835

31.7.1 函数的创建/ 835

31.7.2 函数的调用/ 837

31.7.3 函数的管理/ 837

31.8 包/ 838

31.8.1 包的创建/ 838

31.8.2 包的调用/ 840

31.8.3 包重载/ 840

31.8.4 包的初始化/ 841

31.8.5 包的持续性/ 842

31.8.6 包的串行化/ 845

31.8.7 包的管理/ 845

31.9 触发器/ 846

31.9.1 触发器概述/ 846

31.9.2 DML触发器/ 847

31.9.3 INSTEAD OF触发器/ 850

31.9.4 系统触发器/ 851

31.9.5 变异表触发器/ 854

31.9.6 触发器的管理/ 856

实践指导/ 857

第32章 PL/SQL高级程序设计/ 859

32.1 集合/ 859

32.1.1 索引表/ 859

32.1.2 嵌套表/ 863

32.1.3 可变数组/ 866

32.1.4 集合类型在数据库中的应用/ 868

32.2 批绑定/ 870

32.2.1 批绑定概述/ 870

32.2.2 批DML操作/ 871

32.2.3 批查询/ 875

32.2.4 批绑定属性/ 876

32.3 动态SQL/ 877

32.3.1 动态SQL概述/ 877

32.3.2 动态非查询语句及单行查询语句/ 878

32.3.3 动态多行查询语句/ 882

32.3.4 动态批绑定/ 884

32.4 利用PL/SQL实现分页查询/ 886

32.4.1 利用集合实现分页查询/ 887

32.4.2 利用游标变量实现分页查询/ 889

32.4.3 分页查询在Java开发中的应用/ 891

实践指导/ 892