第1章 Oracle数据库的创建 1
1.1 Oracle软件的获取与安装 1
1.1.1 Oracle软件的获取 1
1.1.2 Oracle的补丁集 4
1.2 使用DBCA创建数据库 8
1.2.1 DBCA的启动 8
1.2.2 模板选择及EM选项 10
1.2.3 数据库安全与口令 13
1.2.4 存储管理及选件 14
1.2.5 初始化参数选择设定 18
1.2.6 文件存储及创建选项 21
1.2.7 告警日志及跟踪文件 24
1.3 数据库创建的脚本 25
1.3.1 数据库创建脚本 25
1.3.2 创建的起点 26
1.3.3 ORADIM工具的使用 27
1.3.4 ORACLE SID的含义 27
1.3.5 Oracle的口令文件 32
1.3.6 Oracle 12c中的口令文件 36
1.3.7 脚本的执行 37
1.3.8 db_name参数和instance_name参教 38
1.3.9 sql.bsq文件与数据库创建 42
1.3.10 数据文件及字典的创建 43
1.4 auto_space_advisor_job_proc案例一则 46
1.5 口令文件修改案例一则 49
第2章 使用模板创建数据库 52
2.1 数据库创建模板 53
2.2 DBMS_BACKUP_RESTORE包的使用 54
2.3 克隆数据库 55
2.4 传输表空间技术 58
2.5 跨平台表空间传输 63
2.5.1 字节顺序和平台 63
2.5.2 源平台和目标平台 63
2.5.3 源平台的导出及转换 64
2.5.4 文件传输 66
2.5.5 目标数据库的导入 66
2.5.6 同字节序文件的跨平台 68
2.5.7 Oracle 10g同字节序跨平台迁移 73
2.5.8 Oracle 10g同字节序跨平台迁移的增强 75
2.5.9 实现数据迁移的高可用性 83
2.6 Oracle 12c表空间传输的简化和增强 84
2.7 文件系统与ASM的切换 90
2.8 DBMS_FILE_TRANSFER的可选性 93
2.9 用户的锁定 96
2.10 最后的脚本 97
2.11 Oracle 12c引入EM express简化版本 98
2.12 systemstate转储案例分析一则 101
第3章 插接式数据库 109
3.1 插接式数据简介 109
3.2 CDB的组成 110
3.2.1 ROOT 110
3.2.2 Seed PDB 111
3.2.3 PDB 112
3.3 元数据的隔离 113
3.4 CDB的内存管理 114
3.5 PDB的创建和访问 118
3.6 由现有PDB创建新的PDB 123
3.7 PDB的使用与维护 126
3.8 种子数据库的隐藏和保护 129
3.9 CDB与PDB的起停管理 130
3.10 COMMON和Local用户 133
3.11 COMMON和Local用户的内部隔离 142
3.12 将Non-PDB插入CDB 146
3.13 UNPLUG数据库 151
3.14 PDB的备份与恢复 152
3.14.1 启动归档模式 152
3.14.2 对PDB执行备份 154
3.14.3 对PDB及PDB文件执行恢复 155
3.14.4 对PDB执行不完全恢复 157
3.15 CDB的视图与原理 169
3.16 PDB为云计算而生 174
第4章 数据库的启动和关闭 176
4.1 数据库的启动 176
4.1.1 启动数据库到NOMOUNT状态 177
4.1.2 启动数据库到MOUNT状态 202
4.1.3 启动数据库OPEN阶段 209
4.2 数据库的访问 220
4.2.1 客户端的TNSNAMES.ORA文件配置 221
4.2.2 服务器端的监听器文件listener.ora配置 223
4.2.3 通过不同服务器名对数据库的访问 225
4.2.4 动态监听器注册服务 226
4.2.5 简捷的Easy Connect方式 230
4.3 数据库的关闭 231
4.3.1 数据库关闭的步骤 231
4.3.2 几种关闭方式的对比 233
4.3.3 数据库关闭的诊断案例一则 235
第5章 参数及参数文件 238
5.1 初始化参数的分类 238
5.1.1 推导参数(Derived Parameters) 238
5.1.2 操作系统依赖参数 240
5.1.3 可变参数 240
5.1.4 废弃参数 240
5.1.5 初始化参数的获取 241
5.1.6 初始化参数的可选项目 244
5.2 参数文件 245
5.2.1 PFILE和SPFILE 246
5.2.2 获取参数的视图 247
5.2.3 SPFILE的创建 249
5.2.4 由内存创建参数文件 250
5.2.5 SPFILE的搜索顺序 251
5.2.6 使用PFILE/SPFILE启动数据库 251
5.2.7 修改参数 253
5.2.8 解决SPFILE参数修改错误 258
5.2.9 重置SPFILE中设置的参数 259
5.2.10 是否使用了SPFILE 260
5.2.11 SPFILE的备份与恢复 261
5.2.12 如何设置Events事件 267
5.2.13 导出SPFILE文件 267
5.2.14 使用ASM存储参数文件 269
5.3 CDB与PDB的参数管理 270
5.3.1 参数表的引入 271
5.3.2 参数表在PDB启动中的作用 274
5.4 参数文件诊断案例之一 275
5.4.1 登录系统检查告警日志文件文件 275
5.4.2 尝试重新启动数据库 277
5.4.3 检查数据文件 277
5.4.4 MOUNT数据库,检查系统参数 277
5.4.5 检查参数文件 278
5.4.6 再次检查alert文件 278
5.4.7 修正PFILE 280
5.4.8 启动数据库 280
5.5 RAC环境参数文件诊断案例 280
5.5.1 数据库资源异常 280
5.5.2 问题的发现 281
5.5.3 参数文件问题的解决 282
5.6 RAC环境参数文件案例两则 283
5.6.1 修改参数引起的挂起 283
5.6.2 参数叠加带来的冗余 283
第6章 控制文件与数据库初始化 285
6.1 控制文件的内容 285
6.2 Oracle 12c中控制文件的变化 288
6.3 SCN的说明 290
6.3.1 SCN的定义 290
6.3.2 SCN的获取方式 292
6.3.3 SCN的进一步说明 293
6.4 检查点(Checkpoint) 296
6.4.1 检查点(Checkpoint)的工作原理 297
6.4.2 全量检查点与增量检查点 298
6.4.3 LOG_CHECKPOINT_TO_ALERT参数 305
6.4.4 控制文件与数据文件头信息 306
6.4.5 数据库的启动验证 308
6.4.6 使用备份的控制文件 313
6.4.7 FAST_START_MTTR_TARGET 315
6.4.8 关于检查点执行的案例 317
6.4.9 Oracle 10g自动检查点调整 319
6.4.10 检查点信息及恢复起点 321
6.4.11 正常关闭数据库的状况 322
6.4.12 数据库异常关闭的情况 323
6.4.13 数据库并行恢复案例一则 327
6.4.14 判断一个死事务的恢复进度 330
6.5 数据库的初始化 331
6.5.1 bootstrap$及数据库初始化过程 331
6.5.2 bootstrap$的定位 334
6.5.3 Oracle数据库中的Cache对象 335
6.5.4 Oracle数据库的引导 336
6.5.5 数据库引导的分解 338
6.5.6 boptstra[的重要性 341
6.5.7 BBED工具的简要介绍 342
6.5.8 坏块的处理与恢复 345
6.5.9 使用BBED模拟和修复坏块 347
6.5.10 使用RMAN进行坏块修复 349
第7章 控制文件与启动校验 351
7.1 启动校验的两种情况 351
7.2 MISSING文件的产生 356
7.3 遭遇ORA-00600 25013/25015错误 359
7.4 来龙去脉——表空间创建 360
7.5 Drop Tablespace Internal 366
7.6 ORA-600 4348错误的成因 376
7.7 一致性损坏的显示错误 385
7.8 实际的处理过程 388
7.9 字典检查何时发生 389
第8章 数据字典 391
8.1 数据字典概述 391
8.2 内部RDBMS(X$)表 392
8.3 数据字典表 394
8.4 Oracle 12c的数据字典维护信息 399
8.5 数据字典表的特殊维护 400
8.6 静态数据字典视图 404
8.6.1 静态数据字典视图的分类 404
8.6.2 静态数据字典视图的内部实现 406
8.6.3 同义词 407
8.6.4 常用数据字典视图举例 408
8.7 动态性能视图 412
8.7.1 GV$和V$视图 412
8.7.2 GV_$、V_$视图和V$、GV$同义词 413
8.7.3 进一步的说明 417
8.7.4 动态性能视图与数据库启动 418
8.8 最后的验证 419
8.8.1 V$PARAMETER的结构 419
8.8.2 视图还是同义词 419
8.8.3 Oracle如何通过同义词定位对象 420
8.9 同义词优化案例一则 423
8.10 数据字典与统计信息缺失案例一则 426
8.11 DBA的数据字典敏感度 429
8.11.1 临时表空间组案例一则 429
8.11.2 从数据字典中获得更多知识 432