三月初开始执笔,落笔时已在七月末,近半载的笔耕,十余个章节,一百五十多个日日夜夜,多年来实际应用中的经验和心得,最后,尽数化到这数十万文字的字里行间。
多数技术书籍在初始几章往往都是介绍基础知识,从命名、来由到基础概念,几乎都采用大篇幅介绍,就我看来这种方式在当前情况下极不适宜,原因有二。
首先,多数有兴趣的爱好者在研究某种技术之初,往往都是想先看看其大致的使用方法,而概念介绍多数都是枯燥无趣的,很少有人能在毫不了解这项技术的情况下,有毅力坚持研读相关概念。这就造成几种后果:有些人跳过初始几章直接从实际应用开始,等了解之后再翻回来看前面的介绍;更有可能的是,有些人耐着性子看完前面的内容就弄得一头雾水,要么再看一遍,要么不管不顾继续往后看;而有些人则直接就放弃了。
其次,目前技术发展日新月异,从业人员水平参差不齐,有些工作在分配给技术人员时,该技术人员可能对此项工作一无所知,在这种情况下让其去看基础概念恐怕费时费力,保不齐书还没翻几篇,饭碗已不保,毕竟多数老板都是只看结果,忽略过程。
有鉴于此,我希望能够在最开始的几章中少讲一些枯燥的概念,多做一些实际的操作,让大家先能上手干活,把饭碗保住。同时,在经过一些操作之后,无论是对其认识或是兴趣应该都大大增加,这个时候再转回头来看看一些基本的概念,理解起来可以更加事半功倍。
本书作为一本创作之初就定位于技术应用的实践参考书,虽然前前后后串联了Oracle数据库中十余个常用特性和工具,不但在章节的设计上完全遵循这一理念。在涉及特性和工具应用的每一个章节,均有相关实例演示如何应用,所有示例的最终目的,就是希望阅读本书的朋友,能够将双手解放出来,自信灵活地使用书中介绍的各项特性和工具。全书共分如下5个部分。
第一部分 初始化环境
本部分共分三章,详细介绍了从Oracle数据库安装,到初次使用的每一个步骤。考虑到很多朋友的个人电脑都是Windows系统,而大多数Oracle数据库都是运行在Linux/UNIX(对于产品数据库来说,UNIX平台更加常见)平台上,Windows平台中的安装和使用相对简单一些,而Linux平台则要复杂得多,因此本书在介绍数据库安装时,分别描述了Windows平台和Linux平台下的安装。
纵览全书,第一部分是全书图片最多的章节,具体到数据库软件安装和创建数据库部分,几乎每一个步骤都有图片和选项的相关描述,可谓手把手教你安装,手把手教你使用。如果说考过OCP认证,却不会安装Oracle数据库软件,我认为这有可能,但是在看完本部分内容后仍不会安装Oracle,这,绝对不可能!
第二部分 加载数据
本部分只设置了两章,分别阐述了实现数据加载的两个比较常见的工具:SQL*Loader和外部表。考虑到命令行工具参数众多,调用方式灵活,一一列举又难以体现主次和重点,因此在介绍这两个工具时,三思特别设计了提问的方式,为大家演示这两个工具的具体功能,以及各种不同环境、不同数据加载需求下的应用,同时考虑到大多数Oracle数据库的处理规模,特别对大数据量加载下的优化进行了详细描述。
在认真阅读完本章之后,即使遇到相当苟刻的需求,或者大数据量的加载任务,我相信你都可以轻松搞定(只要学会使用SQL*Loader或外部表实现)。
第三部分 保护数据
作为一名数据库工程师,日常工作的首要目标就是确保数据的安全,因此第三部分的5个章节,分别从备份恢复、创建备库构建高可用环境,以及使用闪回特性快速恢复误操作三个方面详细描述了Oracle提供的保护数据的三个重要特性。
本部分内容占全书1/3的篇幅,内容多,信息量大,读者朋友需要多理解、多实践。
第四部分 传输数据
本部分共设置了4个章节,从最原始的逻辑导入/导出、10g版本新引入的数据泵特性,到使用RMAN快速复制数据库,以及使用传输表空间特性复制数据几个方面详细描述,融会贯通之后,能够处理大多数环境的数据迁移需求。
第五部分 基础补充
提到“基础”这样的词汇,人们的第一印象总是枯燥的、单调的、乏味的,对于Oracle文档的基础部分,也确实存在这样的问题。一方面由于阅读大段的文字描述,并不能迅速带来成就感,毕竟这不像实践某个特性——通过实际执行一些或复杂或简单的操作,用户可以马上看到结果,感受到这一过程带给自己的喜悦;此外,就我多年来的从业经历和学习体会来看,我觉着另一方面是由于自身所处学习阶段的认识问题。比如很多初接触Oracle数据库的朋友一开始就问如何做优化,应该说,出发点很好,决心也很大,但是如果连Oracle数据库中数据块的存储机制都不了解就妄谈优化,那结果恐怕只能靠运气。
在本书的最后一部分内容中,三思按照自己的理解,用最简洁的词,尽可能直白地形容、阐述Oracle数据库的两个组成部分:数据库和实例;对于Oracle中各类文件、SGA、PGA及Oracle运行过程中的相关进程等内容均有详细描述。其中,在介绍内存参数时,对于传说中对性能调优有神奇功能的初始化参数也进行了专门的描述。希望这部分内容能够对Oracle的初学者,或者是对基本部分认识始终处于混沌状态的朋友有所帮助。
《论语·雍也》中有句名言:知之者不如好之者,好之者不如乐之者。孔子两千多年前的这句话,实际上道出了学习的三种境界,其中“知之”属于学习的最低境界,相当于我们经常讲的“要我学”的阶段,“好之”则进入到了“我要学”的中级阶段,“乐之”则达到了最高境界,即“我爱学”的阶段。
我一直都认为,兴趣是最大的驱动力,希望大家都以“我爱学”为出发点来学习Oracle。
Oracle数据库的知识体系庞大,并且其本身也在不断改进和更新,再加上三思本人水平有限,本书所描述的内容难免会有疏漏和错误,如果读者朋友在阅读过程中发现问题或对描述方式有异议,请主动进行自我批评。嘿嘿,只是开个玩笑!
三思学理出身,文笔有限,更主要的是在本书撰写过程中并不追求词藻的华丽,而是尽可能地以通俗易懂为主,虽然成文前后审阅多遍,仍然保不齐存在错误,如果有书友在阅读本书的过程中发现问题,或者希望就某方面话题与我交流看法,我随时敞开大门笑迎八方来客,我的联系方式是http://space.itpub.net/7607759/viewspace-606595(怎么样,你猜出来了吗)。我的个人网站
http://www.5ienet.com(我爱我佳)将随时更新本书勘误,并提供其他与Oracle相关资料的下载和服务,欢迎大家经常来看看。
致谢
似乎大家都中了奥斯卡模式的荼毒,几乎所有涉及发表感言的环节,总是离不了感谢这个感谢那个。像我这样的大俗人更是跳不出这样的逻辑,确实在本书撰写过程中,得到了相当多朋友的支持、鼓励和实实在在的帮助,这里三思也想借此机会表达一下我对他们的谢意。
首先要感谢我所在的技术团队,正是由于他们出色的工作,有效保障系统的稳定运行,才使得我能够集中精力并抽出更多的时间来进行本书的写作;我要感谢杨廷琨(yangtingkun)和盖国强(eygle)两位老师在本书成文过程中对我的帮助和指导,这两位都是Oracle数据库领域的大师级人物,技艺精湛、经验丰富并且论断严谨,他们以专业的视角,为本书的编写提供了很多宝贵的建议,并且帮我审阅了书中部分章节;我要感谢学习和使用Oracle的过程中认识的一些好友,以及众多“三思笔记”系列文章的支持者,在本书撰写过程中他们向我提出了很多建议(虽然最终很多建议我都没有采纳,嘿嘿),人数众多不一一列举,在此一并感谢。
最后,我要感谢我的爱人,作为职业编辑,她为本书的编撰提供了很多专业意见,帮助我将某些段落中冗长的句子进行更合理的断行,如果读者朋友在阅读本书过程中感觉文字流畅,段落划分合理,那都是她的功劳;不仅如此,这几个月的时间里,我的大部分业余时间都花在本书的撰写上,照顾未满周岁的女儿等繁重的事务都要由她承担,就像歌里唱的那样,军功章里,有我的一半,也有她的一半。
本书定稿之时,距我家宝贝闺女周岁已不满月余,在这里我想提前祝福我的宝贝健康成长,幸福快乐,谨以此书算作一份给她的特殊的纪念吧。