第1篇 数据库运维篇
第1章 数据库安装配置
1.1 安装前的准备 1
1.2 安装数据库软件 5
1.2.1 方法1:OUI安装 6
1.2.2 方法2:静默安装 8
1.2.3 方法3:克隆安装 11
1.2.4 诊断案例:克隆安装后无法登录的问题 13
1.3 创建/删除数据库 16
1.3.1 方法1:DBCA图形建库 16
1.3.2 方法2:手工建库 18
1.3.3 方法3:DBCA静默建库 22
1.3.4 方法4:OMF建库 22
1.3.5 诊断案例:create database语句在10g、11g中的不同 23
1.3.6 创建数据库后的补充工作 26
1.3.7 删除数据库的步骤 29
1.4 关于SYSDBA、SYSOPER、DBA的区别和联系 29
第2章 常用工具和问题分析
2.1 SQL*Plus使用及常见问题 34
2.1.1 SQL*Plus使用细则 34
2.1.2 SQL*Plus无法启动的常见原因 41
特殊问题:乱码导致的SQL*Plus无法启动的问题 43
特殊问题:使用strace诊断奇怪的SQL*Plus登录问题 44
2.2 解析exp/imp及常见问题 47
2.2.1 exp/imp使用场景及示例 47
2.2.2 exp/imp使用常见问题 50
诊断案例:生产系统exp无法使用的紧急诊断和修复 55
诊断案例:外部表的导入导出问题 57
诊断案例:IMP-00013 问题及解决方法 58
诊断案例:使用strace分析exp中buffer设置的奇怪问题 60
经验分享:你可能不了解的dump文件 63
2.3 解析Datapump及常见问题 66
2.3.1 Datapump使用场景及示例 66
2.3.3 只言片语分析Datapump的工作原理 68
诊断案例:impdp异常中断导致的问题 70
诊断案例:使用impdp选项不当导致的数据丢失 73
第3章 服务连接配置
3.1 监听配置与客户端配置简介 76
3.2 网络服务配置 78
3.2.1 网络配置细则与实践 78
诊断案例:Session跟踪失效的问题和原因 82
3.2.2 监听配置文件格式探究——一个空格的威力 84
3.2.3 RAC中的TAF的配置 88
3.2.4 RAC中的SCAN的配置 90
3.2.5 通过单例模式模拟RAC连接 93
3.3 监听器无法启动的几个原因 94
诊断案例:使用strace分析TNS-12543的案例 96
第4章 数据库启/停和宕机问题
4.1 数据库启停的问题分析 99
4.2 数据库无法启动案例 100
诊断案例:数据库参数设置不当导致无法启动的问题 100
诊断案例:服务器增加内存后无法重启数据库的问题及解决方案 102
诊断案例:数据库shutdown之后无法启动的问题 103
诊断案例:RAC节点无法启动的ORA-29702问题及分析 105
诊断案例:连续出现的RAC节点问题 108
4.3 数据库无法登录问题分析 110
4.4 数据库无法登录案例 111
诊断案例:归档空间不足导致的数据库无法登录问题 111
诊断案例:Session Leak导致的数据库无法登录问题 115
诊断案例:undo缺失导致的数据库无法登录问题 118
4.5 数据库宕机问题和原因分析 119
4.6 数据库宕机问题案例 119
诊断案例:一条SQL语句导致的数据库宕机问题及分析 119
诊断案例:存储导致的数据库宕机问题及分析 121
诊断案例:I/O问题导致的数据库突然宕机的问题及分析 124
诊断案例:数据库导致突然宕机的问题及解决 126
第5章 容灾与备份恢复
5.1 备份恢复应用及实践 132
5.1.1 归档模式下的四种完全恢复场景 132
5.1.2 RMAN中三个不完全恢复场景 137
实验1:使用句柄实现特定场景的无备份恢复 141
实验2:关于DUAL表的破坏性测试 145
5.2 闪回应用及实践 149
5.2.1 关于delete、drop、truncate异同和无备份恢复场景 149
5.2.2 使用闪回查询备份数据 152
5.2.3 使用Flashback Query巧妙抽取指定数据 154
实战案例:巧用Flashback Database实现灵活的数据回滚 155
实战案例:巧用Flashback Database实现灵活的数据切换 156
5.3 Data Guard搭建与应用 160
5.3.1 常见的Data Guard隐患 161
5.3.2 11g Data Guard搭建实践 163
5.3.3 论Oracle备库的设计方案 169
5.3.4 实用至上的 Snapshot Standby特性 171
实践案例:Data Guard备库中的几个数据文件问题 175
实践案例:Data Guard备库的数据文件的迁移实战 179
诊断案例:由Drop Datafile导致的Oracle Bug 182
诊断案例:一个Oracle bug的手工修复 185
诊断案例:11g备库无法开启ADG的原因分析 188
第6章 监控管理和故障处理
6.1 Zabbix、Orabbix简介 191
6.2 Zabbix Agent部署 191
6.3 Orabbix的部署 194
6.4 浅谈Zabbix和Grid Control的优劣 197
6.5 Orabbix定制监控Oracle的简单配置 198
实践案例:Orabbix结合Python发送图形报表 200
实践案例:Zabbix中配置Data Guard的监控 205
6.6 两条腿走路更稳当——硬件监控很有必要 207
6.7 运维平台的建设思考——元数据管理 209
6.8 监控盲点与诊断案例 210
监控盲点:由DUAL导致的一个潜在的监控问题 210
诊断案例:备库CPU使用异常优化 213
诊断案例:两条报警信息结合分析DG问题 216
诊断案例:监控反被监控误——一则Orabbix报警的分析 222
诊断案例:自定义监控项快速定位问题 224
诊断案例:CPU报警信息的分析 226