第1篇 创建属于自己的Oracle数据库 2
第1章 认识Oracle的世界——Oracle的体系结构 2
1.1 Oracle的发家史 2
1.2数据库 3
1.3数据库管理系统(DBMS) 3
1.4关系数据库的概念(RDBMS) 3
1.4.1关系数据库模型 4
1.4.2表 5
1.5 Oracle的总体框架结构 5
1.5.1 Oracle实例(Oracle Instance) 6
1.5.2 Oracle的存储结构 7
1.6数据字典(Data Dictionary) 8
1.6.1数据字典概述 8
1.6.2数据字典的结构 8
1.6.3数据字典的使用 8
第2章 迈出第1步——Oracle的安装/卸载 10
2.1 Oracle的安装 10
2.1.1 Oracle安装的几个概念 10
2.1.2 Oracle 11g R2 (11.2)的安装——Windows篇 12
2.1.3 Oracle 11 g RAC的安装——Linux篇 27
2.1.4 Oracle安装疑难解析 98
2.2 Oracle的卸载 123
2.2.1 Oracle完全卸载——Windows篇 123
2.2.2 Oracle完全卸载——UNIX篇 128
第3章 有米之炊——数据库的创建与删除 137
3.1创建数据库 137
3.1.1数据库创建概述 137
3.1.2 Solaris下用DBCA创建数据库 139
3.1.3 DIY—— Solaris下手工创建数据库 149
3.1.4数据库创建疑难解析 155
3.2删除数据库 164
3.2.1数据库删除概述 164
3.2.2数据库删除——手工篇 165
3.2.3数据库删除——DBCA篇 165
第2篇 网络管理 168
第4章Oracle网络管理并不难 168
4.1 Oracle网络体系结构 168
4.1.1 Oracle应用的几种网络结构 168
4.1.2 Oracle Net 170
4.1.3 OSI模型 170
4.1.4 Oracle Net的堆栈结构 171
4.1.5 Oracle监听器 172
4.1.6连接描述符(connect identifiier) 173
4.1.7网络服务名(Net Service Name) 174
4.1.8命名方法 176
4.1.9配置Oracle网络的工具 176
4.2 Oracle网络管理实务 176
4.2.1 Oracle网络服务器端配置 176
4.2.2 Oracle网络客户端配置 182
4.3 Oracle网络管理疑难解析 187
4.3.1 Oracle网络服务器端配置疑难解析 187
4.3.2 Oracle网络客户端配置疑难解析 194
4.3.3 Oracle网络与防火墙(Firewall) 215
第3篇 系统管理 222
第5章 系统管家婆——SQL*Plus的使用 222
5.1系统管理工具SQL*Plus 222
5.2 SQL缓冲区(SQL Buffer) 223
5.3 SQL*Plus的环境配置 223
5.3.1 SQL*Plus的环境变量 223
5.3.2 SQL*Plus站点配置文件(Site Profile) 223
5.3.3 SQL*Plus用户配置文件(User Profile) 223
5.4 SQL*Plus的启动 223
5.5 SQL*Plus专有命令介绍 225
5.5.1登录、注销命令 225
5.5.2编辑命令 225
5.5.3其他有用的SQL*Plus命令 227
5.6 SQL*Plus实务与疑难解析 228
第6章 有始有终——数据库的启动与关闭 247
6.1数据库启动 247
6.1.1数据库启动原理 247
6.1.2数据库启动实务 248
6.1.3数据库启动疑难解析 261
6.2数据库关闭 284
6.2.1数据库关闭原理 284
6.2.2数据库的关闭(SHUTDOWN)实务 284
6.2.3数据库关闭疑难解析 288
第7章 理清两个模式问题——专有/共享服务器模式 292
7.1理解专有服务器模式 292
7.2共享服务器模式原理 293
7.2.1共享服务器模式的架构 293
7.2.2监听器和调度进程的关系 293
7.2.3请求队列(Request Queue)/响应队列(Response Queue) 294
7.2.4调度进程(Dispatcher Processes, Dnnn) 294
7.2.5共享服务器进程(Shared Server Processes, Snnn) 294
7.3共享服务器模式实务 294
7.4共享服务器模式疑难解析 305
第8章 掌握两个管理问题——表空间和数据文件的管理 317
8.1数据库存储结构 317
8.1.1物理结构 317
8.1.2逻辑结构 320
8.2深刻理解表空间 327
8.2.1大文件表空间 327
8.2.2系统表空间 327
8.2.3辅助表空间 327
8.2.4回滚表空间(Undo Tablespace) 327
8.2.5临时表空间 330
8.2.6表空间中区的管理方式 331
8.2.7表空间中段的管理方式 332
8.2.8非标准块表空间 333
8.2.9表空间的离线(Offline)与在线(Online) 333
8.2.10只读表空间(Read-Only Tablespace) 333
8.3深刻理解数据文件 334
8.3.1数据文件的内容 334
8.3.2数据文件的尺寸(Size) 334
8.3.3离线数据文件 334
8.3.4临时数据文件(Tempora Datafiiles) 334
8.4表空间管理实务与疑难解析 335
8.4.1永久表空间管理 335
8.4.2临时表空间管理实务与疑难解析 366
8.4.3回滚表空间管理实务与疑难解析 373
8.5数据文件管理实务与疑难解析 379
8.5.1数据文件管理实务 379
8.5.2数据文件管理疑难解析 388
第9章 进程管理 390
9.1 Oracle进程简介 390
9.2用户进程 391
9.3 Oracle进程 391
9.3.1服务器进程 391
9.3.2后台进程 391
9.4进程综合管理实务与疑难解析 395
9.5会话管理实务与疑难解析 403
第10章 内存管理 408
10.1 Oracle内存结构简介 408
10.2系统全局区(SGA) 409
10.2.1 SGA简介 410
10.2.2 SGA组成 411
10.3程序全局区(PGA) 414
10.3.1私有SQL区 414
10.3.2 SQL工作区 415
10.3.3用户全局区 415
10.4软件代码区 415
10.5管理Oracle内存的方式 415
10.5.1 PGA自动管理 415
10.5.2 SGA自动管理 416
10.5.3自动内存管理 416
10.6内存管理实务与疑难解析 416
第11章 用户管理 439
11.1用户验证 440
11.1.1口令认证 440
11.1.2外部认证 440
11.1.3全局认证 441
11.2 Oracle的安全大门——权限(Privileges) 441
11.2.1系统权限 441
11.2.2对象权限 444
11.3使权限管理变得更加容易——角色(Role) 445
11.4限制用户的资源消耗——资源限制文件(Profile) 446
11.4.1资源限制的级别 447
11.4.2限制资源的参数 447
11.5用户与权限管理实务与疑难解析 448
11.5.1用户管理实务与疑难解析 448
11.5.2权限管理实务与疑难解析 453
11.5.3角色管理实务与疑难解析 457
11.5.4资源限制文件管理实务与疑难解析 463
第4篇 移动数据库 468
第12章 数据导出 468
12.1数据导出方法介绍 468
12.1.1 Oracle最新导出工具——Data Pump Export 468
12.1.2 Oracle原来的导出工具——Export 468
12.2数据导出实务 471
12.3数据导出疑难解析 489
第13章 数据导入 508
13.1数据导入方法介绍 508
13.1.1 Oracle最新导入工具——Data Pump Import 508
13.1.2 Oracle以前的导入方法——Import 508
13.2数据导入实务 510
13.3数据导入疑难解析 530
第5篇Oracle文件管理 544
第14章 重中之重——控制文件的管理 544
14.1控制文件的概念 544
14.2控制文件管理实务与疑难解析 545
第15章 成为数据库的最高统治者——口令文件(Password File)管理 555
15.1超级用户权限(SYSDBA、 SYSOPER)介绍 555
15.2口令文件的基本概念 556
15.3启用口令文件认证 557
15.4口令文件管理实务与疑难解析 558
第16章 联机日志文件管理 571
16.1联机日志文件的概念 571
16.1.1联机日志文件的内容 571
16.1.2联机日志文件的循环利用 572
16.2联机日志文件管理实务与疑难解析 572
第17章 参数文件(PFILE/SPFILE)管理 584
17.1参数文件的基本概念 584
17.2初始化参数文件 585
17.3服务器参数文件 585
17.4初始化参数的修改 585
17.5参数管理实务与疑难解析 586
第6篇Oracle高级专题 594
第18章 全球应用——分布式数据库疑难攻略 594
18.1分布式数据库系统的概念 594
18.1.1同构分布式数据库系统 595
18.1.2异构分布式数据库系统 595
18.1.3数据库链接(Database Link) 595
18.2分布式数据库管理实务与疑难解析 595
第19章 并不陌生的问题——裸设备 603
19.1裸设备的概念 603
19.2裸设备管理实务与疑难解析 604
第7篇 数据库备份/恢复 612
第20章 备份/恢复之基石——归档(Archivelog)管理 612
20.1归档的基本概念 612
20.1.1非归档模式 612
20.1.2归档模式 613
20.1.3归档路径 613
20.2归档管理实务与疑难解析 614
第21章 必行之举——数据库备份 636
21.1理解数据库备份 636
21.1.1数据库失败的种类 637
21.1.2备份和恢复的解决方案 637
21.1.3备份和恢复的物理结构 638
21.1.4备份的类型 638
21.1.5执行用户管理的备份 638
21.2恢复管理器(RMAN) 639
21.2.1通道 640
21.2.2备份集的维护 640
21.2.3 RMAN资料库 642
21.2 4 RMAN的使用 643
21.3数据库备份实务与疑难解析 643
21.4恢复目录管理实务与疑难解析 665
第22章 失而复得——数据库恢复 673
22.1数据库恢复 673
22.1.1实例恢复 673
22.1.2介质恢复 674
22.1.3用户错误(User Error)的恢复 675
22.2数据库闪回(Flashback Database) 676
22.3用户管理的恢复(User-managed Recovery) 676
22.4联机日志文件丢失的恢复 677
22.5控制文件损坏的恢复 689
22.6数据文件损坏的恢复 700
22.7表的恢复(用户错误的恢复) 711
第8篇Oracle程序设计 742
第23章 数据库通用语言——SQL语句 742
23.1结构化查询语言简介 742
23.2 SELECT语句 743
23.2.1理解SELECT语句 743
23.2.2 SELECT语句使用实务与疑难解析 744
23.3 INSERT语句 754
23.3.1理解INSERT语句 754
23.3.2 INSERT语句使用实务与疑难解析 755
23.4 UPDATE语句 761
23.4.1理解UPDATE语句 761
23.4.2 UPDATE语句使用实务与疑难解析 761
23.5 DELETE语句 763
23.5.1理解DELETE语句 763
23.5.2 DELETE语句的使用 763
23.6 SQL语句中,集合函数使用实务与疑难解析 766
第24章 模式对象(Schema Object)的管理 771
24.1模式(Schema)的概念 771
24.2模式对象管理 772
24.2.1表(Table) 772
24.2.2索引(Index) 790
24.2.3外部表(External Table) 795
24.2.4临时表(Temporary Table) 805
24.2.5分区表(Partition Table) 809
24.2.6聚簇(Cluster) 822
24.2.7索引组织表(Index-Organized Table, IOT) 825
24.2.8视图 831
24.2.9同义词 836
24.2.10序列 839
第25章PL/SQL应用程序开发 844
25.1 PL/SQL简述 844
25.1.1 PL/SQL块结构 844
25.1.2数据类型 845
25.1.3运算符 845
25.1.4 PL/SQL语句控制结构 846
25.2存储过程(Stored Procedure) 847
25.2.1存储过程的基本原理 847
25.2.2存储过程管理实务与疑难解析 847
25.3函数(Function) 863
25.3.1函数的基本原理 863
25.3.2函数的管理实务与疑难解析 863
25.4包 871
25.4.1包的基本原理 871
25.4.2包管理实务与疑难解析 871
25.5触发器 878
25.5.1触发器的基本原理 878
25.5.2触发器管理实务与疑难解析 879
25.6游标 899
25.6.1游标的基本原理 899
25.6.2游标管理实务与疑难解析 899
第9篇 内存探索 908
第 26章 勿忘历史——Oracle内存管理的变迁 908
26.1 Oracle内存变迁概述 908
26.2 Oracle 7的内存管理 908
26.3 Oracle 8/8i的内存管理 909
26.4 Oracle 9i的内存管理 909
26.5 Oracle 10g的内存管理 909
26.6 Oracle 11 g的内存管理 909
第27章 SGA之家——共享内存段 911
27.1共享内存段的基本概念 911
27.2共享内存段与内核参数 911
27.3数据库启动与共享内存段 911
27.4设置共享内存段 912
27.5共享内存段的管理工具 913
27.5.1 Oracle小工具——sysresv 914
27.5.2 Oracle调试工具——oradebug 914
27.5.3操作系统工具——ipcs (ipcrm) 915
27.6查看内核参数对共享内存段的限制 916
27.7共享内存段的空间使用情况 916
27.8共享内存段与进程 917
27.9删除共享内存段 917
第28章 内存管理效率的提升——HugePage 919
28.1 HugePage的原理 919
28.2 HugePage的配置 920
28.3 HugePage疑难解析 923
第29章 内存管理方式的巨变——内存文件系统 928
29.1内存文件系统 928
29.2第一阶段:传统模式(共享内存段) 929
29.3第二阶段:新型模式(内存文件系统) 929
29.4第三阶段:内存文件系统的设置 931
29.5第四阶段:从“新型模式”切换到“传统模式” 931
第10篇I/O探索 934
第30章 永恒的主题——I/O(同步I/O、异步I/O、直接I/O) 934
30.1磁盘的物理结构 934
30.1.1盘片(碟片,Platter) 934
30.1.2磁头(Head) 934
30.1.3磁道(Track) 934
30.1.4扇区(Sector) 934
30.2磁盘工作原理 935
30.2.1寻道时间(Seek Time) 935
30.2.2旋转延迟(Rotational Latency) 935
30.2.3传输时间(Transfer Time) 935
30.2.4访问时间(Access Time) 935
30.3衡量磁盘性能的两个指标 935
30.4 I/O介绍 935
30.4 1同步I/O 936
30.42异步I/O 936
30.4.3直接I/O 936
30.4.4 Oracle与I/O配置 936
30.4.5异步I/O的使用 936
30.4.6直接I/O的使用 938
30.5随机I/O和顺序I/O 939
30.5.1随机I/O的原理 939
30.5.2顺序I/O的原理 940
30.6 I/O大比拼 940
30.6.1随机I/O和顺序I/O的巨大反差 940
30.6.2同步I/O和异步I/O的对比 940
30.6.3直接I/O与内存的使用 941
第11篇RAC管理 944
第31章 理论奠基——RAC简介 944
31.1高可用性介绍 944
31.2 Oracle集群 945
31.3硬件架构 946
31.3.1服务器介绍 946
31.3.2共享存储介绍 946
31.3.3网络介绍 952
31.4软件架构 954
31.4.1软件分层 954
31.4.2 Oracle Clusterware软件 955
31.4.3 Oracle RAC软件 962
第32章RAC的意义——负载均衡和失败转移 963
32.1负载均衡 963
32.1.1负载均衡简介 963
32.1.2客户端负载均衡 964
32.1.3服务器端负载均衡 967
32.2失败转移 967
32.2.1失败转移简介 967
32.2.2失败转移实战 967
第33章 存储的主打曲——自动存储管理(ASM) 973
33.1 ASM基本概念 973
33.1.1 ASM实例(ASM Instance) 973
33.1.2 ASM磁盘组(ASM Disk Group) 973
33.1.3 ASM文件(ASM File) 974
33.1.4区(Extent) 974
33.1.5镜像和失败组(Mirroring and Failure Group) 975
33.2配置ASM实例 976
33.2.1创建ASM实例 976
33.2.2 ASM的初始化参数 978
33.2.3 ASM实例的连接 979
33.2.4 ASM的启动 979
33.2.5 ASM的关闭 980
33.2.6检查ASM实例的状态 981
33.3磁盘组的管理 981
33.3.1准备磁盘(以裸设备为例) 981
33.3.2确保ASM能够搜索到磁盘 984
33.3.3创建磁盘组 985
33.3.4磁盘组的加载/卸载 987
33.3.5在磁盘组上创建表空间 988
33.3.6往磁盘组中添加磁盘 989
33.3.7从磁盘组中删除磁盘 989
33.3.8删除磁盘组 989
33.3.9手工重平衡磁盘组中的文件 990
33.3.10磁盘和磁盘组的信息 990
33.4管理工具ASMCMD 991
33.5动态卷管理器(ADVM)和集群文件系统(ACFS) 992
33.5.1动态卷管理器(ADVM)的使用 993
33.5.2集群文件系统(ACFS)的使用 996
33.6 ASM管理疑难解析 997
第34章 练兵场——RAC管理 1003
34.1你必须清楚的一件情——命令运行环境 1003
34.2集群管理工具 1003
34.3集群的启动和关闭 1004
34.4 IP地址管理 1005
34.4.1 SCAN VIP的漂移 1005
34.4.2检查SCAN的配置 1005
34.4.3修改SCAN VIP和VIP 1005
34.4.4私有IP地址的修改 1008
34.4.5修改SCAN监听器的端口 1009
34.5实例的管理 1010
34.5.1实例的启动和关闭 1010
34.5.2数据库的启动和关闭 1011
34.5.3参数文件(PFILE、 SPFILE)管理 1011
34.5.4会话管理 1013
34.6物理结构管理 1013
34.6.1回滚表空间的管理 1013
34.6.2联机重做日志的管理 1014
34.6.3集群注册表(OCR)的管理 1015
34.6.4 Oracle本地注册表(OLR)的管理 1019
34.6.5表决盘(Voting Disk)的管理 1020
34.6.6集群注册表和表决盘管理实务 1022
34.7节点管理 1029
34.7.1节点失败那点事儿 1029
34.7.2数据库管理模式 1030
34.7.3删除节点 1031
34.7.4增加节点 1042