《Oracle数据库问题解决方案和故障排除手册》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)塔里克·法鲁克,迈克·阿尔特,保罗·波尔图哥等著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121331343
  • 页数:396 页
图书介绍:本指南提供了全面、实用和最新的建议,以保证在复杂的生产环境中,能可靠且高效地运行Oracle数据库。七位主要的Oracle 专家对Oracle 12c、11g 和其他最近版本的Oracle 数据库汇集了一系列经过验证的解决方案、实践的例子以及循序渐进的技巧。每一个解决方案都是精心设计的,以帮助有经验的Oracle DBAs 和DMAs 尽可能快地理解和修复严重的问题。本书不仅涵盖了LOB 段、UNDO 表空间、高GC 缓冲区等待事件、糟糕的查询响应时间、闩锁争用、索引、XA 分布式事务、RMAN 备份/ 恢复等内容,还深入地讲解了DDL 优化、VLDB 调优、数据库取证、自适应游标共享、数据泵、数据迁移、SSD、索引等内容,并介绍了如何解决Oracle RAC 问题。

第1章LOB段性能的诊断与调优 1

1.1 LOB数据类型的介绍 1

1.1.1解决LOB问题:一个真实的案例 2

1.1.2另一个真实案例:HW分析 4

1.1.3 BASICFILE LOB:更完美的解决方案 7

1.2 BASICFILE与SECUREFILE LOB 7

1.2.1 LOB新旧类型的差异 8

1.2.2迁移BASICFILE LOB到SECUREFILE LOB 10

1.3 PCTFREE对LOB的影响 12

1.4解决糟糕的INSERT性能 15

1.5总结 15

第2章 处理undo表空间损坏 16

2.1 undo管理概述 16

2.1.1 UNDO RETENTION的重要性 16

2.1.2优化UNDO RETENTION 17

2.2 DTP、XA和回滚段 18

2.3 undo表空间损坏的恢复 20

2.3.1预防、检测和修复损坏 20

2.3.2处理内存损坏 21

2.3.3处理逻辑损坏 24

2.3.4解决介质损坏 24

2.4总结 27

第3章 处理全局缓存缓冲区忙等待事件 28

3.1缓冲区忙等待事件概述 28

3.2使用ORAchk工具 29

3.2.1安装ORAchk 29

3.2.2 ORAchk执行结果:示例输出 30

3.3查找GC缓冲区忙等待事件 32

3.3.1用ADDM查找事件的信息 33

3.3.2用AWR查找等待事件的信息 33

3.3.3用ASH查找等待事件的信息 35

3.4查找GC缓冲区忙等待事件的原因 36

3.4.1使用ASH视图查找等待会话 36

3.4.2快速查找性能瓶颈 38

3.5解决GC缓冲区忙等待 40

3.6总结 41

第4章 自适应游标共享 42

4.1 ACS工作算法 42

4.1.1绑定敏感与范围谓词 43

4.1.2绑定敏感与等式谓词和直方图 45

4.1.3绑定敏感与分区键 46

4.2 ACS的使用 48

4.2.1监控ACS的绑定感知 51

4.2.2 BUCKET ID和COUNT的关系 52

4.2.3标记游标为绑定感知 55

4.3游标绑定感知 61

4.4一个真实案例 64

4.5总结 69

第5章 使用SPM稳定查询响应时间 70

5.1入门指南 70

5.2创建SQL计划基线 73

5.2.1自动捕获计划 73

5.2.2从游标缓存加载计划 76

5.3伪造基线 77

5.4 Oracle优化器和SPM的交互 81

5.4.1当CBO计划与SQL计划基线匹配时 82

5.4.2当CBO计划与SQL计划基线不匹配时 84

5.4.3当SQL计划基线不可复制时 89

5.5 SQL计划基线的复制性 93

5.5.1重命名索引 93

5.5.2修改索引类型 95

5.5.3向索引中添加尾列 96

5.5.4反向索引 97

5.6 NLS_ SORT与SQL计划基线的复制性 98

5.7 ALL ROWS与FIRST ROWS 100

5.8自适应游标共享与SPM 104

5.8.1 Oracle 11.2.0.3.0中的ACS和SPM 105

5.8.2 Oracle 12.1.0.1.0中的ACS和SPM 109

5.9总结 112

第6章DDL优化技巧和技术 114

6.1 DDL优化的概念 114

6.2 DDL优化的机制 117

6.2.1表基数估算 117

6.2.2虚拟列中的C DDL列 119

6.2.3列组扩展中的C DDL列 120

6.2.4 C DDL的默认值发生变化时 122

6.2.5 C DDL列和索引 124

6.2.6空列的DDL优化 126

6.3总结 130

第7章 管理、优化、调整大型数据库 131

7.1大型数据库概述 131

7.2优化基本配置 132

7.2.1数据库仓库模板 132

7.2.2优化数据块大小 133

7.2.3大文件表空间 134

7.2.4调整SGA和PGA 135

7.2.5临时表空间组 135

7.2.6数据分区 136

7.2.7本地分区索引和全局分区索引 136

7.2.8数据压缩 137

7.2.9表压缩 137

7.2.10热图和自动数据优化 137

7.2.11高级索引分区压缩 138

7.3大型数据库性能调整的原则 139

7.3.1真实的案例 139

7.3.2控制索引对数据加载的影响 140

7.3.3资源利用率的最大化 141

7.4收集统计信息 142

7.4.1增量统计信息摘要 142

7.4.2并发收集统计信息 144

7.4.3设置ESTIMATE PERCENT的值 145

7.5备份与恢复的最佳实践 145

7.5.1 Exadata解决方案 146

7.5.2利用Data Guard环境 147

7.6总结 147

第8章RMAN备份恢复最佳实践 148

8.1完美的备份恢复计划 148

8.2概述 149

8.3数据库备份策略的技巧 149

8.3.1完全备份和增量备份 150

8.3.2压缩备份 150

8.3.3增量备份 151

8.3.4快速增量备份 151

8.3.5 Oracle闪回技术之回退 152

8.3.6基于磁盘的备份解决方案 153

8.3.7增量更新的镜像副本 153

8.4验证RMAN备份 159

8.5备份的优化与调整 160

8.6 RAC集群下的RMAN 162

8.7恢复目录 163

8.8恢复策略 164

8.9数据恢复顾问 165

8.10总结 166

第9章 使用AWR分析优化数据库(一) 167

9.1什么是AWR 167

9.2知道要查找什么 168

9.3报告头部信息 169

9.3.1负载状况 171

9.3.2实例效率 171

9.3.3共享池内存 172

9.3.4等待事件 172

9.3.5平均负载 175

9.3.6实例CPU 175

9.3.7内存统计数据 176

9.4 RAC特有的页面 176

9.4.1 RAC统计数据 177

9.4.2全局缓存负载统计数据 177

9.4.3全局缓存和队列服务 177

9.4.4集群互连 178

9.5时间模型统计 179

9.6操作系统统计数据 180

9.6.1前台等待事件 181

9.6.2后台等待事件 182

9.6.3等待事件直方图 183

9.6.4服务相关统计数据 184

9.7 SQL章节 185

9.7.1总运行时间 185

9.7.2总CPU时间 185

9.7.3总缓冲区获取 186

9.7.4总磁盘读 186

9.7.5总执行次数 186

9.7.6解析调用 186

9.7.7可共享内存 187

9.7.8版本数 187

9.7.9集群等待时间 187

9.8实例活动统计 188

9.8.1一致性读统计数据 191

9.8.2数据块读统计数据 191

9.8.3脏块统计 191

9.8.4队列统计 191

9.8.5执行计数 191

9.8.6空闲缓冲区统计 192

9.8.7全局缓存统计 192

9.8.8索引扫描统计数据 192

9.8.9叶子节点统计数据 193

9.8.10打开的游标 193

9.8.11解析统计数据 193

9.8.12物理读写统计数据 193

9.8.13递归统计数据 195

9.8.14重做相关的统计数据 195

9.8.15会话游标统计数据 196

9.8.16排序统计数据 196

9.8.17脏队列长度汇总 196

9.8.18表获取统计数据 197

9.8.19事务回滚 197

9.8.20撤销更改矢量统计 197

9.8.21用户统计数据 198

9.8.22工作区统计数据 198

9.8.23实例活动统计——绝对值 198

9.8.24实例活动统计——线程活动 199

9.9总结 199

第10章 使用AWR分析优化数据库(二) 200

10.1表空间I/O统计数据 200

10.2缓冲池 202

10.2.1缓冲池统计数据 203

10.2.2实例恢复统计数据 203

10.2.3缓冲池建议部分 204

10.3 PGA统计数据 204

10.3.1 PGA汇总 206

10.3.2 PGA总目标统计数据 206

10.3.3 PGA总目标直方图 206

10.3.4 PGA内存建议 208

10.4共享池统计数据 208

10.5其他建议 209

10.5.1 SGA目标建议 210

10.5.2流池建议 210

10.5.3 Java池建议 211

10.6缓冲区等待统计数据 211

10.7队列统计数据 212

10.8撤销段统计数据 214

10.9闩锁统计数据 215

10.9.1闩锁活动 216

10.9.2闩锁休眠分类 217

10.9.3闩锁和自旋数 217

10.9.4闩锁丢失源 218

10.9.5互斥锁休眠汇总 218

10.9.6父类和子类闩锁 218

10.10段访问区 218

10.11库缓存活动部分 220

10.12动态内存组件部分 223

10.13进程内存部分 224

10.13.1进程内存汇总 226

10.13.2 SGA内存汇总 226

10.13.3 SGA分类和差异 226

10.14流组件部分 226

10.15资源限制统计数据 228

10.16初始化参数的改变 228

10.17全局队列和其他RAC部分 229

10.17.1全局队列统计数据 233

10.17.2全局CR服务统计数据 233

10.17.3全局当前服务统计数据 233

10.17.4全局缓存传输统计数据 233

10.17.5全局缓存传输时间 233

10.17.6全局缓存传输 233

10.17.7全局缓存时间 234

10.17.8互连ping延迟统计数据 234

10.17.9客户端的互连吞吐量 234

10.17.10互联设备统计数据 234

10.18总结 234

第11章RAC的故障诊断 236

11.1 RAC的故障诊断和调优 236

11.1.1 ORAchk工具 237

11.1.2 TFA收集器 237

11.1.3自动诊断库 237

11.1.4告警和跟踪日志文件 237

11.2运转良好的RAC生态系统 239

11.2.1最高可用性架构 239

11.2.2优化和高效的RAC数据库 240

11.2.3基于OEM 12C的RAC故障诊断 241

11.2.4故障诊断的程序和命令 242

11.3总结 247

第12章 利用SQL顾问来分析和修复SQL问题 248

12.1 OEM 12c : SQL顾问首页 248

12.2 SQL调优顾问 249

12.2.1在OEM 12c中运行SQL调优顾问 250

12.2.2在SQLPlus中手动运行SQL调优顾问 253

12.3 SQL访问顾问 253

12.3.1在OEM 12c中运行SQL访问顾问 254

12.3.2在SQLPlus中手动运行SQL访问顾问 257

12.4 SQL修复顾问 258

12.5 SQL性能分析器 259

12.6总结 260

第13章 使用数据泵迁移数据和对象 261

13.1使用数据泵 261

13.1.1复制对象 262

13.1.2数据泵模式 263

13.2处理私有和公共对象 263

13.2.1保存和恢复数据库链接 264

13.2.2导出公共数据库链接和同义词 264

13.2.3验证导出的转储文件内容 265

13.3查找有效的INCLUDE和EXCLUDE值 265

13.4导出数据子集 267

13.5修改对象属性 269

13.5.1将分区表导入为非分区表 269

13.5.2将表分区导入为单独的表 269

13.5.3屏蔽数据 270

13.5.4重命名表或使用不同的表空间 270

13.5.5使用默认存储参数 270

13.5.6导入期间调整表空间大小 271

13.5.7合并多个表空间 271

13.6通过PL/SQL API使用Data Pump 273

13.7监控和修改资源 274

13.8提升性能 275

13.9升级数据库 276

13.10总结 277

第14章 数据库快速迁移数据的策略 278

14.1为什么要迁移 278

14.2确定最好的策略 279

14.2.1实时与准实时迁移 279

14.2.2接受只读 279

14.2.3可逆性 280

14.3考虑迁移什么数据 280

14.4数据迁移的方法 281

14.4.1事务性捕获迁移方法 281

14.4.2非事务性迁移方法 283

14.4.3其他迁移方法 295

14.5总结 301

第15章 临时文件I/O问题的诊断和恢复 302

15.1临时表空间概述 302

15.1.1只读数据库 303

15.1.2本地管理的临时表空间 303

15.1.3临时表空间组 303

15.1.4全局临时表 304

15.2解决TEMPFILE I/O等待 307

15.2.1过小的PGA 307

15.2.2不恰当的TEMPFILE扩展区大小 311

15.2.3不恰当地使用 GTT 312

15.3总结 312

第16章 处理闩锁和互斥锁争用 313

16.1闩锁和互斥锁架构概述 313

16.1.1什么是闩锁 314

16.1.2什么是互斥锁 315

16.1.3闩锁和互斥锁的内部结构 315

16.2检测闩锁和互斥锁争用 316

16.2.1识别独特的闩锁 317

16.2.2查找段和SQL语句 318

16.3闩锁和互斥锁场景 320

16.3.1库缓存互斥锁等待 320

16.3.2 library cache pin 322

16.3.3共享池闩锁 322

16.3.4缓存缓冲区链闩锁 323

16.3.5其他的闩锁场景 325

16.4棘手的闩锁争用 326

16.5总结 328

第17章 使用SSD解决I/O瓶颈 329

17.1磁盘技术:SSD与HDD 329

17.1.1固态闪存盘的崛起 330

17.1.2 SSD闪存的延迟 331

17.1.3 SSD的经济性 332

17.1.4 SLC、 MLC和TLC 333

17.1.5写性能与寿命 334

17.1.6垃圾回收和磨损均衡 334

17.1.7 SATA与PCIe SSD 336

17.1.8在Oracle数据库中使用SSD 336

17.2 Oracle数据库的闪存缓存 337

17.2.1空闲缓冲区等待 337

17.2.2配置和监控DBFC 339

17.2.3使用FLASH CACHE子句 340

17.2.4闪存缓存的性能统计数据 341

17.3比较SSD的部署选择 342

17.3.1索引读 343

17.3.2 OLTP上的读/写负载 344

17.3.3全表扫描性能 344

17.3.4 SSD本地缓存和全表扫描 345

17.3.5磁盘排序和散列操作 346

17.3.6重做日志的优化 349

17.4存储分层 349

17.5闪存和Exadata 353

17.6总结 357

第18章 为最佳性能设计和监控索引 359

18.1索引的类型 359

18.1.1 B树索引 359

18.1.2位图索引 362

18.1.3分区索引 364

18.1.4其他索引类型 366

18.2同一列上的多个索引 368

18.3索引的性能问题 369

18.3.1索引统计信息 369

18.3.2高集群因子的影响 372

18.3.3索引操作的注意事项 373

18.3.4隐藏非选择的索引 374

18.3.5 RAC数据库中的索引性能问题 375

18.4总结 377

第19章 使用SQLT提升查询性能 379

19.1安装SQLT 379

19.2使用XTRACT方法 380

19.3使用XECUTE方法 381

19.4其他SQLT方法 384

19.5一个真实的案例 385

19.6总结 386

第20章 处理XA分布式事务的问题 387

20.1修复常见的分布式事务问题 387

20.2修复幽灵分布式事务 388

20.2.1信息存在,但事务不在 389

20.2.2 ORA-1591没有对应的信息 389

20.2.3提交或回滚之后事务挂起 391

20.3监控分布式事务 393

20.4总结 395