随笔-31  评论-13  文章-1  trackbacks-0
  2011年12月29日


  这篇文章主要介绍RMAN的常用方法,其中包含了作者一些自己的经验,里面的实验也基本全在WIN 2K和ORACLE 8.1.6环境下测试成功(因为这个环境比较容易实现)。
  
  本文借鉴了网上一些高手的相关文章,希望大侠们不要见怪,此处一并谢过。
  
  因为篇幅有限,一些技术细节不能一一覆盖了,只希望能够帮助新手入门的作用,想真正熟练掌握RMAN,必须经过较长时间的实践磨练才可以,尤其需要在工程中获得宝贵的故障解决经验。
  
  1.什么是RMAN?
  RMAN可以用来备份和还原数据库文件、归档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。
  
  注意:RMAN不能用于备份初始化参数文件和口令文件。
  
  RMAN启动数据库上的Oracle服务器进程来进行备份或还原。备份、还原、恢复是由这些进程驱动的。
  
  RMAN可以由OEM的Backup Manager GUI来控制,但在本文章里不作重点讨论。
  
  2. Terminology 专业词汇解释
  2.1. Backup sets 备份集合
  
  备份集合有下面的特性:
  
  包括一个或多个数据文件或归档日志
  
  以oracle专有的格式保存
  
  有一个完全的所有的备份片集合构成
  
  构成一个完全备份或增量备份
  
  2.2. Backup pieces 备份片
  
  一个备份集由若干个备份片组成。每个备份片是一个单独的输出文件。一个备份片的大小是有限制的;如果没有大小的限制, 备份集就只由一个备份片构成。备份片的大小不能大于使用的文件系统所支持的文件长度的最大值。
  
  2.3. Image copies 镜像备份
  
  镜像备份是独立文件(数据文件、归档日志、控制文件)的备份。它很类似操作系统级的文件备份。它不是备份集或 备份片,也没有被压缩。
  
  2.4. Full backup sets 全备份集合
  
  全备份是一个或多个数据文件中使用过的数据块的的备份。没有使用过的数据块是不被备份的,也就是说,oracle 进行备份集合的压缩。
  
  2.5. Incremental backup sets 增量备份集合
  
  增量备份是指备份一个或多个数据文件的自从上一次同一级别的或更低级别的备份以来被修改过的数据块。 与完全备份相同,增量备份也进行压缩。
  
  2.6. File multiplexing
  
  不同的多个数据文件的数据块可以混合备份在一个备份集中。
  
  2.7. Recovery catalog resyncing 恢复目录同步
  
  使用恢复管理器执行backup、copy、restore或者switch命令时,恢复目录自动进行更新,但是有关日志与归档日志信息没有自动记入恢复目录。需要进行目录同步。使用resync catalog命令进行同步。
  
  RMAN>resync catalog;
  RMAN-03022:正在编译命令:resync
  RMAN-03023:正在执行命令:resync
  RMAN-08002:正在启动全部恢复目录的 resync
  RMAN-08004:完成全部 resync
  
  3. 恢复目录
  3.1.恢复目录的概念
  
  恢复目录是由RMAN使用、维护的用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。
  
  恢复目录可以存在于ORACLE数据库的计划中。
  
  虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库。
  
  恢复目录数据库不能使用恢复目录备份自身。
  
  3.2.建立恢复目录
  
  第一步,在目录数据库中创建恢复目录所用表空间:
  
  SQL> create tablespace rman_ts datafile 'd:\oracle\oradata\rman\rman_ts.dbf' size 20M;
  
  表空间已创建。
  
  第二步,在目录数据库中创建RMAN 用户并授权:
  
  SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;
  
  用户已创建。
  
  SQL> grant recovery_catalog_owner to rman ;
  
  授权成功。
  SQL> grant connect, resource to rman ;
  
  授权成功。
  
  第三步,在目录数据库中创建恢复目录
  
  C:\>rman catalog rman/rman
  
  恢复管理器:版本8.1.6.0.0 - Production
  
  RMAN-06008:连接到恢复目录数据库
  RMAN-06428:未安装恢复目录
  RMAN>create catalog tablespace rman_ts;
  RMAN-06431:恢复目录已创建
  
  注意:虽然使用RMAN不一定必需恢复目录,但是推荐使用。因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN在恢复数据库时使用这些信息。不使用恢复目录将会对备份恢复操作有限制。
  
  3.3.使用恢复目录的优势
  
  可以存储脚本;
  
  记载较长时间的备份恢复操作;
  
  4. 启动RMAN
  RMAN为交互式命令行处理界面,也可以从企业管理器中运行。
  
  为了使用下面的实例,先检查环境符合:
  
  the target database is called "his" and has the same TNS alias
  
  user rman has been granted "recovery_catalog_owner "privileges
  
  目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接
  
  the recovery catalog database is called "rman" and has the same TNS alias
  
  the schema containing the recovery catalog is "rman" (same password)
  
  在使用RMAN前,设置NLS_DATE_FORMAT 和NLS_LANG环境变量,很多RMAN LIST命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。
  
  下例是环境变量的示范:
  
  NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS
  
  为了保证RMAN使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要STARTED(unmount),否则RMAN会返回一个错误,目标数据库必须置于归档模式下。
  
  4.1.使用不带恢复目录的RMAN
  
  设置目标数据库的 ORACLE_SID ,执行:
  
  % rman nocatalog
  RMAN> connect target
  RMAN> connect target internal/@his
  
  4.2.使用带恢复目录的RMAN
  
  % rman rman_ts rman/rman@rman
  RMAN> connect target
  % rman rman_ts rman/rman@rman target internal/@his
  
  4.3.使用RMAN
  
  一旦连接到目标数据库,可以通过交互界面或者事先存储的脚本执行指定RMAN命令, 下面是一个使用RMAN交互界面的实例:
  
  RMAN> resync catalog;
  RMAN-03022:正在编译命令:resync
  RMAN-03023:正在执行命令:resync
  RMAN-08002:正在启动全部恢复目录的 resync
  RMAN-08004:完成全部 resync
  
  使用脚本的实例:
  
  RMAN> execute script alloc_1_disk;
  
  创建或者替代存储的脚本:
  
  RMAN> replace script alloc_1_disk {
  2> allocate channel d1 type disk;
  3> }
  
  5.注册或者注销目标数据库
  5.1.注册目标数据库
  
  数据库状态:
  
  恢复目录状态:打开
  
  目标数据库:加载或者打开
  
  目标数据库在第一次使用RMAN之前必须在恢复目录中注册:
  
  第一步,启动恢复管理器,并且连接目标数据库:
  
  C:\>rman target internal/oracle@his catalog rman/rman@rman
  
  恢复管理器:版本8.1.6.0.0 - Production
  
  RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
  RMAN-06008:连接到恢复目录数据库
  
  第二步,注册数据库:
  
  RMAN> register database;
  RMAN-03022:正在编译命令:register
  RMAN-03023:正在执行命令:register
  RMAN-08006:注册在恢复目录中的数据库
  RMAN-03023:正在执行命令:full resync
  RMAN-08002:正在启动全部恢复目录的resync
  RMAN-08004:完成全部resync
  
  5.2.注销目标数据库
  
  RMAN提供了一个注销工具,叫DBMS_RCVCAT工具包,请注意一旦注销了该目标数据库,就不可以使用恢复目录中含有的备份集来恢复数据库了。
  
  为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID。
  
  C:\>rman target internal/oracle@his catalog rman/rman@rman
  
  恢复管理器:版本8.1.6.0.0 - Production
  
  RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
  RMAN-06008:连接到恢复目录数据库
  
  其中DBID=3021445076,利用DBID=3021445076查询数据库键值码:
  
  连接到目标数据库,查询db表:
  
  SQL> select * from db;
  
  DB_KEY DB_ID CURR_DBINC_KEY
  ---------- ---------- --------------
  1 3021445076 2
  
  获得DB_KEY=1,这样,该目标数据库DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT工具包就可以注销数据库:

 

一、冷备份介绍:
   冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件、控制文件、联机REDO LOG文件,将其拷贝到另外的位置。此外冷备份也可以包含对参数文件和口令文件的备份,但是这两种备份是可以根据需要进行选择的。,冷备份实际也是一种物理备份,是一个备份数据库物理文件的过程。因为冷备份要备份除了重做日志以外的所有数据库文件,因此也被成为完全的数据库备份。它的优缺点如下所示:
1、优点:
        <1>只需拷贝文件即可,是非常快速的备份方法。
        <2>只需将文件再拷贝回去,就可以恢复到某一时间点上。
        <3>与数据库归档的模式相结合可以使数据库很好地恢复。
        <4>维护量较少,但安全性确相对较高。
2、缺点:
        <1>在进行数据库冷备份的过程中数据库必须处于关闭状态。
   <2>单独使用冷备份时,数据库只能完成基于某一时间点上的恢复。
        <3>若磁盘空间有限,冷备份只能将备份数据拷贝到磁带等其他外部存储上,速度会更慢。
        <4>冷备份不能按表或按用户恢复。
3、具体备份步骤如下:
        <1>以DBA用户或特权用户登录,查询动态性能视图v$datafile、v$controlfile可以分别列出数据库的数据文件以及控制文件。
SQL&gt; select name from v$datafile;
NAME -------------------------------------------------------------------------------- /u02/oradata/db01/system01.dbf /u02/oradata/db01/undotbs01.dbf /u02/oradata/db01/sysaux01.dbf /u02/oradata/db01/users01.dbf
SQL&gt; select name from v$controlfile;
NAME -------------------------------------------------------------------------------- /u02/oradata/db01/control01.ctl /u02/oradata/db01/control02.ctl /u02/oradata/db01/control03.ctl /u01/app/oracle/bak/control04.ctl
<2>以DBA用户或特权用户关闭数据库。
SQL&gt; conn /  as sysdba; Connected. SQL&gt; shutdown normal Database closed. Database dismounted. ORACLE instance shut down.
<3>复制数据文件,复制时应该将文件复制到单独的一个硬盘或者磁盘上。控制文件是相互镜像的,因此只需复制一个控制文件即可。
cp /u02/oradata/db01/*.dbf  /u01/app/oracle/bak
cp /u02/oradata/db01/*.ctl  /u01/app/oracle/bak
<4>启动例程打开数据库。
SQL&gt; conn / as sysdba; Connected to an idle instance. SQL&gt; startup ORACLE instance started.
Total System Global Area  285212672 bytes Fixed Size                  1218992 bytes Variable Size              83887696 bytes Database Buffers          197132288 bytes Redo Buffers                2973696 bytes Database mounted. Database opened. SQL&gt;
二、热备份:
   热备份是在数据库运行的情况下,采用archive log mode方式备份数据库的方法。热备份要求数据库处于archive log模式下操作,并需要大量的档案空间。一旦数据库处于archive loh
模式,就可以进行备份了,当执行备份时,只能在数据文件级或表空间进行。
1、优点:
          <1>可在表空间或数据文件级备份,备份时间短。
<2>可达到秒级恢复(恢复到某一时间点上)。
          <3>可对几乎所有数据库实体作恢复。
          <4>恢复是快速的,在大多数情况下在数据库仍工作时恢复。
<5>备份时数据库仍可用。
2、缺点:
         <1>因难以维护,所以要特别仔细小心,不允许“以失败而告终”。
         <2>若热备份不成功,所得结果不可用于时间点的恢复。
         <3>不能出错,否则后果严重。
3、设置初始归档模式:
设置归档模式数据库必须处在mount而非open状态下:
         <1>首先查看数据库是否处在archive log模式下:
         SQL&gt; archive log list;          Database log mode               No Archive Mode          Automatic archival                Disabled          Archive destination               USE_DB_RECOVERY_FILE_DEST          Oldest online log sequence    1          Current log sequence            2
         <2>在mount状态下启动数据库:
         SQL&gt; startup mount;          ORACLE instance started.
         Total System Global Area  285212672 bytes          Fixed Size                  1218992 bytes          Variable Size              83887696 bytes          Database Buffers          197132288 bytes          Redo Buffers                2973696 bytes          Database mounted.
         <3>设置数据库为归档模式:
        SQL&gt; alter database archivelog;
        Database altered.
        <4>打开数据库:
SQL&gt; alter database open;
Database altered.
<5>将数据库设置成自动归档,使用以下命令:
SQL&gt; alter system set log_archive_start=true scope=spfile;
System altered.
<6>确定数据库处于归档模式下,并且设置自动存档:
SQL&gt; archive log list; Database log mode              Archive Mode Automatic archival             Enabled Archive destination            USE_DB_RECOVERY_FILE_DEST Oldest online log sequence     1 Next log sequence to archive   2 Current log sequence           2
上面的Archive destination所定义的具体位置,可以查看$ORACLE_HOME/dbs/spfile<dbname>.ora文件中的db_recovery_file_dest参数的值。
 
4、联机备份:
      联机备份是热备份的一种备份方法,是指当表空间处于ONLINE状态时,备份表空间的所有数据文件和单个数据文件的过程。使用联机备份的优点是不影响用户在表空间上的所有访问操作,但联机备份的缺点可能生产更多的重做日志文件和归档日志文件。以下是联机备份的具体步骤:
       <1>以DBA用户或特权用户登录,确定表空间所包含的数据文件。通过查询数据字典DBA_DATA_FILES,可以得到数据文件和表空间的对应关系:
SQL&gt; select file_name from dba_data_files where tablespace_name='USERS';
FILE_NAME -------------------------------------------------------------------------------- /u02/oradata/db01/users01.dbf
<2>设置表空间为备份模式,在复制表空间的数据文件之前必须将表空间设置成为备份模式:
SQL&gt; alter tablespace users begin backup;
Tablespace altered.
<3>复制users数据文件到备份目录:
[oracle@server1 bak]$ cp /u02/oradata/db01/users01.dbf /bak
<4>复制后表空间就不需要设置成为备份模式了,因此可以将其返回正常模式:
SQL&gt;  alter tablespace users end backup;
Tablespace altered.
5、脱机备份:
      脱机备份也是热备份的一种方法,是指当表空间处于offline时,备份表空间的所有数据文件以及单个数据文件的过程。它的优点是会生产较少的重做日志文件,缺点是当用户正在进行脱机备份时所备份的表空间将不能访问,由于SYSTEM系统表空间和正在使用的UNDO表空间不能被脱机,因此脱机备份不适用于SYSTEM表空间和正在使用的UNDO表空间。
        <1>使用DBA用户或特权用户登录,确定表空间所包含的数据文件。这个和联机备份的第一步相同:
SQL&gt; select file_name from dba_data_files where tablespace_name='USERS';
FILE_NAME -------------------------------------------------------------------------------- /u02/oradata/db01/users01.dbf
<2>设置表空间为脱机状态,将表空间设置为脱机状态后用户将不能访问该表空间上的任何对象,因此也可以确保OFFLINE的表空间的数据文件不会发生改变。
SQL&gt; alter tablespace users offline;
Tablespace altered.
SQL&gt; select tablespace_name,online_status from dba_data_files;
TABLESPACE_NAME                ONLINE_ ------------------------------ ------- USERS                          OFFLINE SYSAUX                         ONLINE UNDOTBS1                       ONLINE SYSTEM                         SYSTEM
<3>复制users数据文件到备份目录:
[oracle@server1 bak]$ cp /u02/oradata/db01/users01.dbf /bak
<4>复制完后将表空间置于online状态:
SQL&gt; alter  tablespace users online;
Tablespace altered.
SQL&gt; select tablespace_name,online_status from dba_data_files;
TABLESPACE_NAME                ONLINE_ ------------------------------ ------- USERS                          ONLINE SYSAUX                         ONLINE UNDOTBS1                       ONLINE SYSTEM                         SYSTEM

 

posted @ 2011-12-29 16:39 Ronger 阅读(36) 评论(0) 编辑

1、Oracle公司推荐的官方准备途径

  一般来讲,Oracle的考试内容比较多,并且考题也很细,对动手能力要求很强。因此,为了有足够的把握,一定要提前充分准备,而且一定要注重动手实践。在Oracle官方网站上推荐的通过认证的途径如下,可以进行参考。

  Oracle大学:Oracle大学提供的教师引导及基于技术的训练(Instructor-led training and technology- based training)是准备OCP认证的最好方式,这些课程将为你打下需要通过OCP认证的知识基础。你可以查阅一下课程表来选择理想的准备方式,你当地的Oracle大学可以在这方面给你一些最好的建议。你可以访问Oracle的网站http://education.oracle.com/,获得更多的信息。

  自己准备:实战经验是加深你对Oracle考试内容理解的最好方式。Oracle建议你将理论学习拓展,在实际工作或是练习中使用新学到的技巧和知识来自学。

  考试内容检查表:使用考试内容检查表(Test Content Checklist)来确定你必须准备的所有题目。Oracle会不断地更新考试内容检查表,所以请访问Oracle网站 httP://www.oracle.com/education/certification下载最新的考试指南。

  其它考试工具:模拟考试题及自我测试软件可以帮助你更好地准备OCP认证考试。Oracle和自我测试软件公司(Self Test Software)联合出品了一些高质量的考试软件以帮助考生更好地准备OCP认证考试,这些软件可以通过 Oracle 网站 http://www.oracle.com/education/certification定购。

  事实上,绝大部分的大陆同学都是通过参加培训班来准备考试的,它们不仅辅导通过考试的知识,而且其他信息包括如何报名,考场上如何应考,都可以得到辅导。以上Oracle官方的介绍只是一般地对你进行一下有关备考的初级教育,事实上,正像我们前面说过的,作为一个庞大的数据库系统,要想掌握好Oracle(更不要说完全掌握了——我甚至怀疑是否有人真正完全掌握过Oracle),从任何角度而言都不是一件易事。除非你有足够的决心和耐心,准备将Oracle当作你的职业之路并致力于数据库技术的研究,你才有可能真正了解这个庞杂系统的精髓。以下的一些论述将有助于你对Oracle有一个初步的了解。

  2、Oracle数据库技术基本知识

  (1)Oracle数据库涵盖了数据库技术的方方面面。

  尽管关系型数据库从原理上来讲并不是很难,有一些数据库知识的人掌握这些原理并不会花很大的气力,而且,一般的关系型数据库软件,譬如 SQL Server,用起来并不复杂,但Oracle绝对与众不同。作为有史以来最成功的关系型数据库软件,Oracle的实现方式和管理维护手段非常丰富,它涉及到很多方面的细节技术。单从任何一个侧面来理解它,是难观其全貌的。要想真的精通它,没有两三年功夫是不行的。单是Oracle的技术文档,就足够淹没你的! 具体说来,Oracle技术包括以下几个主要方面:Oracle系统结构和原理、Oracle数据库的安装和配置、Oracle数据库的管理、Oracle的数据备份与恢复技术、Oracle的性能调整、Oracle的新产品特性(Java支持、应用服务器、时间空间系列、文本服务等)、Oracle的并行服务器技术、Oracle的数据仓库技术、Oracle的对象类型和对象一关系模型等技术……

  毫不夸张地说,以上任何一个部分单独拿出来都是很大的题目!

  (2)Oracle技术发展快,技术的关联性大。

  尽管Oracle只是一个数据库系统,但在实际应用中,你不可能只面对数据库本身。譬如,你在做Oracle数据库的网络管理,你将不可避免地遇到如何与网络通讯、防火墙的技术兼容的问题。同理,你在做其它方面的工作,也肯定有方方面面的技术关联问题需要解决。而且更要命的是,这些技术(包括Oracle本身)发展速度都非常快,这就使得跟上它们的发展成为一件十分费劲的事情。

  不过幸运的是,我们并不需要同时了解Oracle的所有方面,Oracle提供了很多应用方向,我们可以按照偏好,选择其中的一个方向,集中时间和精力,努力在这个方向做到有所成就还不是一件很难的事情。由于Oracle目前已是世界上最主要的数据库供应商和第二大软件公司,Oracle的数据库技术已经被广泛应用于各个领域,因而市场上对Oracle人才的需求量是相当之大,获得OCP认证不愁找不到工作。而以后我们可以在工作中学以致用,再努力地钻研Oracle数据库及相关技术。

  3、入门者如何起步?

  说了这么多,想必您可能已经有些心动,那么,面对Oracle这样一个庞然大物,你也许会觉得无从下手。为此,我们有一些建议:

  (1)找一本有关数据库原理的书,掌握关系数据库的基本原理——如果你没有学过这样的课程的话。

  (2)阅读参考书并结合上机操作,掌握SQL的一般原理及基本用法。

  (3)至少买一本Oracle入门级的参考书,并找到一台安装了Oracle的某个版本(Oracle7.3以上,最好是 Oracle 8)计算机,建立起上机学习环境。

  其中第三点尤其重要,因为没有实践经验,想通过Oracle认证只是痴人说梦。或者如果你的预算比较充分,你可以选择参加培训。在选择培训班的时候一定要选择Oracle授权的培训班,这样培训的质量才有保证,同时,在报名考试的时候还可以享受一定的折扣。

  与其他很多考试不同,OCP并没有真正意义上的参考书,你要做的就是在上机中不断熟悉Oracle的各种应用,书只是用来查阅和参考的。因为从根本上来讲,Oracle数据库是一门实践性很强的技术,而Oracle认证主要考的是动手能力。因此,没有实践经验,而只靠背学习资料是根本无法通过Oracle认证考试的。以下是市面上常见的一些书,在此列出,希望能对大家有一些帮助。

  初级的:《轻松掌握SQL结构化查询语言》,《轻松掌握Oracle数据库开发》,《Oracle开发指南》,《Oracle初学者指南》,《Oracle8 PL/SQL程序设计》。

  高级的;《Oracle服务器技术精粹》,《Oracle8/8i开发使用手册》,《Oracle8份与恢复手册》,《Oracle8性能优化与管理手册》。

很多IT专业人士都不相信Oracle DBA在除技术之外还有更高的含金量。通常情况下,Oracle DBA可以负责数据库设计、运行、备份以及恢复,同时还要密切关注整个项目开发的全过程。因此,一名成功的Oracle DBA既要具有过硬的技术水平,又要有出色的协调能力,同时,对于操作系统以及计算机理论的深入了解也是必须的。因此,DBA必须要具有计算机专业、通信专业、商务管理专业的学士或硕士学位。

  而OCP认证考试在Oracle管理领域内是衡量一个人专业技术水平掌握程度的一个很好的标准,但有了OCP证书并不等于你就学会了Oracle专业技术。很多获得OCP证书,接触IT行业只有数周的人并不能够完全理解Oracle管理的所有概念。

  其实Oracle认证证书只是让雇主了解到来应聘的人通过了Oracle数据库方面的技术考试。而实际上,Oracle认证也只是衡量一个应聘者的一个标准之一,其他的标准还有:

  1.出色的交际能力。Oracle DBA通常都要和IT行业的技术专家打交道,因此,他或她就必须能够为所有访问Oracle数据库的开发人员或程序员清晰明了的解释Oracle概念。有些时候,Oracle DBA也是一名管理人员,因此,也同样要求他在参与战略发展计划以及数据库设计上要有出色的交际能力。

  2.同类的专业学位。大多数成功的Oracle专业人士都要求由计算机或信息系统专业学士学位。对于更高的职位,比如Oracle DBA,很多雇主都要求由计算机专业硕士学位或MBA。

  3.一定的实践经验。这是有了OCP证书的新人们最担心的一件事情。很多有了OCP证书又没有工作经验的人都在抱怨没有OCP证书就不会有工作经验,没有工作经验就不会有工作。这是现在人才市场上一个很棘手的问题。

  4.丰富的数据库理论知识。除了要掌握OCP所要求的技术知识外,一名成功的Oracle专业人士还要有与数据库以及数据库设计相关的软件知识,包括数据库标准化理论以及采用统一建模语言(UML)的面向对象模型,当然还有其他的数据库设计方法相关知识,比如CORBA和J2EE。

  归根结底,OCP并不能完全衡量一个人的实际水平,而只是为非IT行业人士进入Oracle领域提供一个方法。

 

 一、定位

Oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form.有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭;管理则需要对Oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。

因为数据库管理的责任重大,很少公司愿意请一个刚刚接触Oracle的人去管理数据库。对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。

二、学习方法

我的方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记。

看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。

学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。

学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了。

很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?这就叫思维惰性。由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。

当然,初学的人很多时候是因为遇到问题时,无从下手,也不知道去哪里找资料,才会到论坛上提问题的。但我认为,在提问的时候,是不是可以问别人是如何分析这个问题?从哪里可以找到相关的资料?而不是这个问题的答案是什么?授人以鱼不如授人以渔。

遇到问题了。如果是概念上的问题,第一时间可以找tahiti.oracle.com,这里会给你最详细的解释。如果在运行的过程中出了什么错误。可以去metalink看看。如果是想知道事务的处理的经验之谈。可以去asktom.当然。这里只是相对而言。

三、Oracle的体系

Oracle的体系很庞大,要学习它,首先要了解Oracle的框架。在这里,简要的讲一下Oracle的架构,让初学者对Oracle有一个整体的认识。

1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成)

控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件。

数据文件:存储数据的文件。

重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件。

参数文件:定义Oracle例程的特性,例如它包含调整SGA中一些内存结构大小的参数。

归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

密码文件:认证哪些用户有权限启动和关闭Oracle例程。

2、逻辑结构(表空间、段、区、块)

表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。

段:是对象在数据库中占用的空间。

区:是为数据一次性预留的一个较大的存储空间。

块:ORACLE最基本的存储单位,在建立数据库的时候指定。

3、内存分配(SGA和PGA)

SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收。

4、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程)

数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件

日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件

系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复

进程监控:负责在一个Oracle 进程失败时清理资源

检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。

归档进程:在每次日志切换时把已满的日志组进行备份或归档

服务进程:用户进程服务。

用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。

5、Oracle例程:Oracle例程由SGA内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。

6、SCN(System ChangeNumber):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

四、深入学习

管理:可以考OCP证书,对Oracle先有一个系统的学习,然后看Oracle Concepts、Oracle online document,对oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:RMAN、RAS、STATSPACT、 DATAGUARD、TUNING、BACKUP&RECOVER等等。

开发:对于想做Oracle开发的,在了解完Oracle基本的体系结构之后,可以重点关注PL/SQL及Oracle的开发工具这一部分。 PL/SQL主要是包括怎么写SQL语句,怎么使用Oracle本身的函数,怎么写存储过程、存储函数、触发器等。 Oracle的开发工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer这些),学会如何熟练使用这些工具。 

 

 

 

http://oracle.chinaitlab.com/Special/Oracle_OCP/index.htm

 

 

posted @ 2011-12-29 16:37 Ronger 阅读(28) 评论(0) 编辑