Oracle数据库精讲与疑难解析(第2版)

赵振平编著

ISBN978-7-121-20021-2

2013年4月出版

定价:148.00元

1100页

16开

编辑推荐

耗时3年,作者曾为本书辞职在家专心写作

754个实务,件件源自实际工作的经验与教训,配有实务速查目录

分享经验,现在作者管理数据库时,就通过复制本书内容来搞定问题

为初学者去除Oracle的神秘面纱,少走弯路

为专业人士提供速查手册,遇到故障不求人

内容提要

本书是一本毫无保留的Oracle学习宝典。通过作者历时3年的写作,本书介绍了Oracle的安装及卸载、数据库的启动/关闭、表空间和数据文件的管理、Oracle网络管理、口令文件管理、内存管理、进程管理、用户管理、数据的导入/导出、备份与恢复、模式对象的管理,以及应用程序开发等相关知识。本书旨在向读者解答使用Oracle中遇到的疑难问题,并展示管理Oracle的大量技巧。

本书第2版对Oracle进行更深入的介绍,新增RAC(集群)、HugePage、同步I/O、异步I/O、直接I/O、内存文件系统、自动存储管理(ASM)等内容。每个内容几乎都是Oracle的高级专题,它们从不同的角度去切入Oracle的性能,都值得读者慢慢品味!此外,RAC的系统介绍,使读者更容易理解和构建自己的Oracle集群!

目录

第1篇  创建属于自己的Oracle数据库

第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 11g 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篇  网络管理

第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 identifier)    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篇  系统管理

第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  临时数据文件(Temporary Datafiles)   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篇  移动数据库

第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文件管理

第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高级专题

第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篇  数据库备份/恢复

第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程序设计

第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篇  内存探索

第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 11g的内存管理        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探索

第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.4.2  异步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管理

第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

作者简介

赵振平

生于20世纪末中国西南的一个边陲小镇。21世纪初,那是一个IT业动荡的日子,多少网站林立,又有多少网站倒闭;多少英雄冲锋,又有多少豪杰流泪。华尔街金融巨子们疯狂涌入IT业,克林顿总统先生的“信息高速公路”政策,为我们描绘了IT业的宏伟蓝图,不知天有多高、地有多厚的我们,被卷入了全球IT业的激流中。但是,在激流中有过倒下,在激流中有过彷徨.....在彷徨中思考未来。于是公元2001年,我正式主攻数据库和数据仓库。开始的岁月,Sybase、Oracle与SQL Server三座大山压得我无法喘息,从不低头的我们仍然要继续前行的路。N年以后,我们越过了Sybase、Oracle、SQL Server、MySQL、DB2这几座大山。但是,中国至今在数据库领域还没有太多的话语权,路还很远,很长......还需要更多的人与我们一起努力!!

前言

亲爱的朋友,在使用Oracle时,你肯定会遇到许多诸如下面的问题。

 安装Oracle时,不能启动安装界面……

 安装Oracle时,安装界面显示乱码……

  Oracle 8i不能在奔腾4(P4)机器上安装……

 不能完全卸载Oracle数据库……

 数据库突然掉电……

 一个数据文件损坏……

 一个表中的数据被意外删除……

 连接数据库时,提示:监听器不存在(TNS-12541 TNS: no listener)……

 连接数据库时,提示:无法解析服务名(TNS-03505 Failed to resolve name)......

 连接数据库时,提示“TNS-12535 TNS: operation timed out……”

 数据库无法启动……

 数据库无法关闭……

 使用数据库时,报告错误“ORA-00104: deadlock detected; all public servers blocked waiting forresources……”

 对表空间进行操作时,提示:表空间不存在(表空间确实存在)……

 创建表时,报告错误“ORA-01950: no privileges on tablespace 'USERS'……”

 创建表时,报告错误“ORA-01536: space quota exceeded for tablespace 'TBST'……”

 往表中插入数据时,提示“ORA-01653: unable to extend table REP.PHONE_RESUME by 32 intablespace TBS_PRO……”

 不能往表空间中添加数据文件……

 不能杀掉一个进程……

 如何提高Oracle的最大会话数……

 为什么数据库高速缓冲区(Database Buffer Cache)的大小总是显示为0……

 表被锁住,如何解锁……

 为什么我不能成为超级用户……

 遇到snapshot too old错误……

 导出数据时,报告错误“EXP-00091: Exporting questionable statistics……”

 如何把Access的数据导入Oracle中……

 如何把Excel的数据导入到Oracle中……

 导入数据时,报告错误“IMP-00020: long column too large for column buffer size (7) ……”

 为什么数据总是被导到SYSTEM表空间……

 修改初始化参数时,报告错误“ORA-32001: write to SPFILE requested but no SPFILE specified atstartup…...”

 修改初始化参数时,报告错误“ORA-02095: specified initialization parameter cannot be modified……”

 使用数据库连接时,报告错误“ORA-02019: connection description for remote database not found……”

 执行命令ARCHIVE LOG LIST时,报告权限不足……

 无法归档(ARCHIVELOG)数据库……

 普通用户登录数据库时,报告错误“ORA-00257: archiver error. Connect internal only, until freed……”

 在SELECT中使用函数时,报告错误“ORA-14551:cannot perform a DML operation inside a query……”

  ORA-00937: not a single-group groupfunction……

 查询数据时,报告错误“ORA-02032: clustered tables cannot be used before the cluster indexis built……”

 访问序列时,报告错误“ORA-08002: sequence string.CURRVAL is not yet defined in thissession……”

 执行存储过程,报告错误“ORA-01031: insufficient privileges……”

……......……......……......……......……......……......……......……......

遇到上面的问题,怎么办?Oracle博大精深,出现的问题亦千奇百怪,本书正是为了解决你使用Oracle中遇到的各种疑难问题而编写的,它能助你破除重重障碍,成功到达Oracle的彼岸。特别注意的是,本书不是只为了讲解基本概念而写,而是重在疑难解惑,与读者分享工作经验。

写本书的体会

我在2000年参加工作,2001年正式成为DBA(数据库管理员),一直从事Oracle数据库的管理工作,从Oracle 7到Oracle 8i,从Oracle 8i到Oracle 9i、Oracle 10g,直到当前的Oracle 11g,7年多的光阴,我依然奋斗在DBA这个行列。在以往的日子里,每当遇到许多疑难问题时,我总是重复经历(看英文文档—研究—解决问题)的过程。问题解决以后,我总是把解决的过程记录在一个文本文件中。正是这一次次的经历,为我积累了丰富的经验,也为我成就今天这本书打下了坚实的基础。正所谓“宝剑锋从磨砺出,梅花香自苦寒来”。积累的这个“文本文件”,现在也成了我的“宝贝”,所以,我会经常把它备份到好多地方,以防丢失!

2005年7月,电子工业出版社的胡辛征老师正在筹划一本有关Oracle疑难解析方面的书,我也很乐意与大家一起分享我的经验,于是我和胡老师不谋而合。

于是,我开始蜷伏在北京上地的某个角落,从日出东方到夕阳西下,经历了不知多少个日日夜夜。看过漫天尘土的春季,浸泡在炎热的夏季,看着秋天的落叶,不知不觉中走过了冬季。漫漫长路,历时三载,2008年元旦,本书初稿终于尘埃落定。

本书重在疑难解析,帮助读者解决使用Oracle中遇到的疑难问题。这本书中的疑难问题都是缘于我的亲身经历。

出于严谨性的考虑,本书中的例子我都在机器上重新进行了模拟试验,因此,这本书耗费了我大量的时间和精力。

由于这本书中例子很多、很常见,所以,虽然这本书是我自己写的,但是我自己也经常在使用这本书的电子版,当我遇到问题的时候,我只需要在本书的电子版中输入错误提示信息(或者关键字)进行搜索,马上就能找到答案,并且,只需把本书中给出的步骤(脚本/命令)复制出来,稍微修改一下,马上就能运行,真的很方便、很快捷!所以,我相信这是一本Oracle疑难解析方面的好书。因为这本书对我有用,所以管用!

学习Oracle其实并没有那么难,做任何事情都要讲究途径和努力。学习Oracle要先把它的体系结构、概念机制搞清楚,在了解、熟悉了这些之后,接下来的工作就是要建立一个测试环境并不断去实践,这是尤为关键的。因为做Oracle的DBA,其水平高低不在于你对它的名词概念掌握了多少,也不在于你是否有Oracle官方的OCP认证,而是在于你的实际排查、解决故障问题的能力——这是衡量一个数据库管理员水平高低的唯一标准。对于那些已经熟悉了Oracle的名词概念和体系结构的人,如果想要更进一步地提升自己的水平,那么本书正是提供了这样一种途径,让你掌握更多的解决Oracle问题的方法。水平再高的Oracle DBA也不敢说自己能解决Oracle出现的所有问题,Oracle机制复杂,版本也不断更新,总会有我们没有遇到过的问题出现,这就需要我们不断地积累经验、整理总结。我是一个对技术有些偏执的人,每当碰到一个技术问题时,我都会反复实验,钻研得很深很细,谓之触类旁通并非过誉,这本书总结了我多年以来在Oracle领域解决疑难问题的经验。

本书的结构

本书共34章,超过1000页,每章的第一节(或者更小的节)介绍一些基本概念,让初学者对Oracle的基本概念有个清晰的了解(介绍Oracle的体系结构,不是本书的重点)。然后下面一节将手把手教会读者如何(HOW TO)操纵数据库(大部分是基于命令行的)。如果在操纵数据库的时候遇到疑难问题,在最后一节(或者更小的节)将会告诉你为什么会出现这样的问题,并一步一步地教会读者如何解决这样的问题,只要严格按照书中给出的步骤,就一定能解决你遇到的问题(FAQ)。

本书快速目录

第1章  认识Oracle的世界——Oracle的体系结构

本章介绍主要Oracle的一些基本概念。

第2章  迈出第1步——Oracle的安装/卸载  含43个实务

本章介绍如何安装/卸载Oracle,并帮助读者解决安装/卸载过程中遇到的疑难问题。

第3章  有米之炊——数据库的创建与删除  含14个实务

本章介绍如何创建和删除数据库,并解决安装过程中遇到的疑难问题。

第4章  Oracle网络管理并不难  含31个实务

本章介绍Oracle网络的基本配置,并解析Oracle网络中遇到的各种疑难问题。

第5章  系统管家婆——SQL*Plus的使用  含28个实务

SQL*Plus是Oracle的管理工具,本章主要介绍SQL*Plus使用的各种技巧。

第6章  有始有终——数据库的启动与关闭  含44个实务

本章引导读者如何启动和关闭数据库,并解答启动数据库和关闭数据库中遇到的疑难问题。

第7章  理清两个模式问题——专有/共享服务器模式  含16个实务

本章介绍Oracle的两种模式——共享服务器(SharedServer)模式和专有服务器(DedicatedServer)模式,教会读者如何配置这两种模式,并解答配置这两种模式时遇到的疑难问题。

第8章  掌握两个管理问题——表空间和数据文件的管理  含76个实务

本章介绍表空间/数据文件的基本概念,并解析表空间/数据文件使用中遇到的疑难问题。

第9章  进程管理  含14个实务

本章介绍进程的基本概念,并解析与进程有关的疑难问题。

第10章  内存管理  含27个实务

本章介绍Oracle内存的组成及内存使用中遇到的疑难问题。

第11章  用户管理  含38个实务

本章介绍用户和权限,并解析用户管理及权限管理中遇到的各种疑难问题。

第12章  数据导出  含39个实务

本章介绍Oracle数据的导出,详细介绍Oracle导出的各种方法(如使用Oracle的导出工具、使用第三方的导出工具)。本章介绍的导出方法并不仅仅局限于Oracle提供的导出方法。本章不仅介绍导出的各种技巧,还向读者展示导出过程中遇到的各种疑难问题,并给出应对之策。

第13章  数据导入  含26个实务

如何把文本数据导入Oracle;如何把Excel的数据导入Oracle;如何把Access的数据导入Oracle。本章介绍数据的各种导入方法,并解析导入过程中遇到的各种疑难问题。本书并不局限于Oracle提供的导入工具。

第14章  重中之重——控制文件的管理  含8个实务

本章介绍控制文件的管理,并介绍管理控制文件时遇到的各种疑难问题。

第15章  成为数据库的最高统治者——口令文件(Password File)管理  含14个实务

口令文件是Oracle安全体系的一部分,本章介绍控制文件的使用及控制文件管理时遇到的疑难问题。

第16章  联机日志文件管理  含19个实务

本章介绍联机日志文件管理技巧及联机日志文件使用中遇到的各种疑难问题。

第17章  参数文件(PFILE/SPFILE)管理  含9个实务

数据库启动时会用到参数文件,本章介绍如何使用参数文件启动数据库,并解析参数文件使用中遇到的各种疑难问题。

第18章  全球应用——分布式数据库疑难攻略  含12个实务

本章介绍如何使用分布式数据库,以及使用分布式数据库的技巧及解惑。

第19章  并不陌生的问题——裸设备  含6个实务

本章详细介绍裸设备的基本概念,以及裸设备的使用技巧。

第20章  备份/恢复之基石——归档(Archivelog)管理  含25个实务

本章主要讨论归档的管理技巧,以及归档设置中的各种疑难问题。

第21章  必行之举——数据库备份  含38个实务

本章通过实战演习,介绍数据库的各种备份方法。

第22章  失而复得——数据库恢复  含32个实务

本章通过实战演习,介绍数据库故障的各种恢复技巧。

第23章  数据库通用语言——SQL语句  含26个实务

本章介绍SQL语句的使用技巧及疑难问题。

第24章  模式对象(Schema Object)的管理  含110个实务

本章介绍各种数据库对象的管理及管理数据库对象中会遇到的各种问题。

第25章  PL/SQL应用程序开发  含70个实务

本章主要介绍程序开发过程中遇到的与数据库相关的各种疑难问题。

第26章  勿忘历史——Oracle内存管理的变迁

本章主要讲述从Oracle 8到Oracle 11g内存管理的变化。

第27章  SGA之家——共享内存段

本章主要讲述共享内存段和SGA的关系。

第28章  内存管理效率的提升——HugePage  含3个实务

本章主要讲述HugePage对Oracle内存的影响。

第29章  内存管理方式的巨变——内存文件系统

本章着重介绍Oracle 11g和内存文件系统的关系。

第30章  永恒的主题——I/O(同步I/O、异步I/O、直接I/O)

本章从操作系统的角度诠释各种I/O,以及它们对性能的影响。

第31章  理论奠基——RAC简介

本章用通俗易懂的语言介绍RAC,使你对RAC的架构有一个清晰的了解。

第32章  RAC的意义——负载均衡和失败转移

本章展示负载均衡和失败转移的场景。

第33章  存储的主打曲——自动存储管理(ASM)  含4个实务

本章着重介绍Oracle的存储管理——ASM。

第34章  练兵场——RAC管理  含1个实务

本章内容贴近生产环境,着重介绍RAC管理的各种实战。

本书的实务速查目录电子版的下载地址是http://space.itpub.net/?13804621或www.broadview.com.cn。查询电子版实务目录,再翻阅本书内容,真正做到遇到问题速查解决。

本书的使用

本书的学习流程如下图所示。

本书的符号说明

〖Environment(环境)〗:对数据库环境和操作系统环境进行简要描述。

〖Symptom(现象)〗:对问题产生时的现象进行描述。

〖Cause(原因)〗:解释问题产生的原因。

〖Action(方法)〗:描述问题的解决方法和步骤。

2013年3月

Oracle数据库精讲与疑难解析(第2版)相关推荐

  1. 【云和恩墨大讲堂】Oracle RAC精讲之心跳机制

    世界上最遥远的距离,不是生与死,而是我们是集群的两个节点,你却听不到我的心跳. 自从云和恩墨大讲堂推出Oracle12.2体系架构图的系列课程,受到广大技术朋友们的关注和支持.本周是系列第四讲,主题: ...

  2. mysql中10049是什么错误_【学习笔记】Oracle数据库10049用于分析SQL解析笔记案例

    [学习笔记]Oracle数据库10049用于分析SQL解析笔记案例 时间:2016-11-05 13:54   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Oracle研究 ...

  3. oracle数据库内核,深入内核:Oracle数据库里SELECT操作Hang解析

    崔华,网名 dbsnake Oracle ACE Director,ACOUG 核心专家 编辑手记:感谢崔华授权我们独家转载其精品文章,也欢迎大家向"Oracle"社区投稿. 我们 ...

  4. ORACLE数据库tnsnames.ora配置文件详细解析

    字段含义如下: ADDRESS_LIST      表示该客户机要经由多种协议与一台或多台服务器连接.在该样式文件中就表示该客户机要用TCP/IP协议来和服务器相连. PROTOCOL 指明要连接使用 ...

  5. ORACLE数据库之ORA-02290检查校验问题解析

    问题描述 首先是在开发需求迭代时,发现数据库某个非空字段需要修改成非必填类型.然后就一顿操作猛如虎(就是数据库直接把必输选项的对号取消了),测试环境一顿测试没问题,好了到了预生产环境,一开始就一片片报 ...

  6. 修改数据无法提交_MySQL数据库精讲:一文讲解MySQL事务隔离!

    欢迎关注专栏<Java架构筑基>--专注于Java技术的研究与分享! Java架构筑基​zhuanlan.zhihu.com Java架构筑基--专注于Java技术的研究与分享! 后续文章 ...

  7. oracle数据库Sys密码策略,Oracle数据库加固之密码策略解析

    我们都知道密码策略加固的参数一般包括密码长度.复杂度检测.最大最小使用时间.过期警报时间.最大登录失败次数以及锁定时间等设置. Oracle默认提供了一个密码策略的sql执行文件utlpwdmg.sq ...

  8. oracle数据库dblink创建语句_oracle创建DBLINK_完全版

    Toad创建DBLINKsop 1.创建服务: 点击"测试",出现如下测试窗口后点击更改登录,用户名和密码数据目标主机用户名.密码; 出现如下窗口后,点击"关闭" ...

  9. 学习Oracle数据库入门到精通教程资料合集

    任何大型信息系统,都需要有数据库管理系统作为支撑.其中,Oracle以其卓越的性能获得了广泛的应用.本合集汇总了学习Oracle数据库从入门到精通的30份教程资料. 资料名称 下载地址 超详细Orac ...

最新文章

  1. 使用(xy) + ((x^y)1) 求平均数
  2. word如何书写数学公式
  3. 9.3 Trains and Evaluates the MNIST network using a feed dictionary
  4. BLE安全机制从入门到放弃
  5. mysql在线开启并行复制_mysql 5.7开启并行复制
  6. Serv-U服务器的管理3
  7. 2019年第十届蓝桥杯国赛B组试题G-排列数-next_permutation枚举,模拟
  8. 特斯拉最安全的车_特斯拉现在是最受欢迎的租车选择
  9. 苹果Mac修改图标“偷梁换柱”的一种简单方法
  10. ORACLE EXPLAIN PLAN的总结 (优化SQL语句)
  11. python实现编辑距离以及回溯路径
  12. freemarker 使用简单笔记
  13. mysql 查看锁表_MySQL的四种事务隔离级别
  14. LEACH算法无线传感器网络路由协议
  15. Could not read JSON: Cannot construct instance of `java.util.ArrayList$SubList`
  16. 颈椎前路caspar撑开器_Mobi-C人工颈椎间盘在颈前路手术的临床应用
  17. 学习Python的第七天
  18. 微软亚洲研究院2017年笔试编程题
  19. golang 开源项目
  20. @ResponseBody对象有空属性报错

热门文章

  1. 2018年北大软微考研复试面试问题精选
  2. python怎么使用证书_Python使用系统SSL证书?
  3. t3服务器补丁文件夹在哪,FM2017全补丁存放路径汇总 补丁放在哪个文件夹-游侠网...
  4. flutter中好用的Widget-CupertinoPicker
  5. w500 安装 gentoo相关优化
  6. 【简单3d网络游戏制作】——基于Unity
  7. python爬山算法
  8. GANerated Hands for Real-Time 3D Hand Tracking from Monocular RGB
  9. bitset的使用示例
  10. bitset的使用方法