Chinaunix首页 | 论坛 | 博客
  • 博客访问: 325938
  • 博文数量: 61
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 435
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-08 16:04
文章分类

全部博文(61)

文章存档

2010年(61)

分类: Oracle

2010-01-19 11:11:58

熟悉操作

  前面已经知道了如何进入RMAN,相信大家定会觉着RMAN操作简单,事实也确实如此。一方面千万不要被这种名头响亮的专业工具吓倒,认为专业的都是复杂的,另外一方面也万不要因为操作简单而小视其功能的强大,简单往往意味着灵活,灵活对于那些有心人则意味着主动权尽在掌握之中。

  首先需要强调,如果是在Oracle数据库OPEN状态执行备份(严格地讲是属于OPEN READ WRITE状态),则必须是置于归档模式,否则在执行备份操作时有可能碰到ORA-19602错误。

    提示:数据库是否处于归档模式,以及如何打开归档模式请参考第五部分相关章节。

8.2.1 启动、关闭数据库

  在RMAN中执行关闭和启动数据库的命令与SQL*P lus 环境中相同。当然,在执行之前,你需要先连接到目标数据库,如:

    C:\Documents and Settings\junsansi> RMAN TARGET /

    Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 17 21:13:59 2009

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    connected to target database: JSSBOOK (DBID=1415261003)

  先关闭数据库:

    RMAN>  SHUTDOWN IMMEDIATE

    using target database control file instead of recovery catalog

    database closed

    database dismounted

    Oracle instance shut down

  再启动数据库:

    RMAN>  STARTUP

    connected to target database (not started)

    Oracle instance started

    database mounted

    database opened

    Total System Global Area   314572800 bytes

    Fixed Size   1248720 bytes

    Variable Size   67109424 bytes

    Database Buffers   239075328 bytes

    Redo Buffers   7139328 bytes

    RMAN>

  同样,你也可以执行STARTUP MOUNT,然后再利用ALTER DATABASE OPEN命令打开数据库,以及执行SHUTDOWN NORMAL、SHUTDOWN ABORT操作等。总之启动和关闭的命令跟SQL*Plus 环境下相比就仨词:完全一模一样。

8.2.2 执行操作系统命令

  RMAN 支持通过执行 HOST 命令暂时退出RMAN的命令提示符,进入到操作系统的命令环境,如:

    RMAN>  HOST ;

    Microsoft Windows XP [版本 5.1.2600]

    (C) 版权所有 1985-2001 Microsoft Corp.

    C:\Documents and Settings\junsansi>exit

    host command complete

    RMAN>

  执行完系统命令后可以再通过执行 EXIT 命令退出到 RMAN 命令提示符下。

8.2.3 执行语句

  在RMAN中执行 SQL 语句稍嫌复杂。在RMAN的命令提示符后输入SQL命令,然后在一对单引号(双引号亦可)中输入要执行的SQL语句,例如:

    RMAN> SQL  ' ALTER SYSTEM ARCHIVE LOG ALL ' ;

  需要注意的一点是,RMAN中的 SQL 命令不能执行SELECT语句,或者说可以执行,但看不到结果。

  其实我们完全可以通过更取巧的方式来实现更强大的SQL操作,比如利用8.2.2节介绍的内容,如下所示:

    RMAN>  HOST ;

    Microsoft Windows XP [版本 5.1.2600]

    (C) 版权所有 1985-2001 Microsoft Corp.

    C:\Documents and Settings\junsansi> SQLPLUS /NOLOG

    SQL*Plus: Release 10.2.0.1.0 - Production on Tue Mar 17 21:15:44 2009

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    SQL>  CONN / AS SYSDBA

    Connected.

    SQL>  ALTER SESSION SET NLS_DATE_FORMAT = ' yyyy-mm-dd hh24:mi:ss ' ;

    Session altered.

    SQL>  SELECT SYSDATE FROM DUAL;

    SYSDATE

    -------------------

    2009-03-17 21:16:08

    SQL> exit

    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

    C:\Documents and Settings\junsansi> EXIT

    host command complete

    RMAN>

  萝卜青菜各有所爱,大家是爱萝卜还是爱青菜啊,爱萝卜的请选第一种,爱青菜的请选第二种。我爱吃肉,我要找第三种出来~

8.2.4 RMAN 备份类型

  通过RMAN有两种不同类型的备份方式:创建镜像复制和创建备份集。

  • 镜像复制(Image Copies)。镜像复制实际上就是创建数据文件、控制文件或归档文件的备份文件,与用户通过操作系统命令创建的备份一样(甚至连执行的命令都相同,RMAN镜像复制使用 COPY 命令, W indows 下复制文件也用 COPY 命令,Linux/U NIX 下则是用cp命令),只不过RMAN是利用目标数据库中的服务进程来完成文件复制,而用户则是用操作系统命令。这种方式本质仍是复制数据库中的物理文件,包括数据文件、控制文件等,复制出的文件与原始文件一模一样,所以镜像复制的方式体现不出RMAN的优势,也并非我们讨论的重点,大家了解一下即可(啥?想知道镜像复制咋用?问村长去~)。
  • 备份集(Backup Sets)。备份集是RMAN创建的具有特定格式的逻辑备份对象,备份集在逻辑上由一个或多个备份片段(Backup Piece)组成,每个备份片段在物理上对应一个操作系统文件,一个备份片段中可能包含多个数据文件、控制文件或归档文件,括弧之一。通过RMAN创建备份集的优势在于,备份时只读取数据库中已经使用的数据块,因此不管是从备份效率,或是节省存储空间的角度,创建备份集的方式都更有优势,本章所执行的演示均是基于创建备份集的方式进行的。

8.2.5 RMAN 命令执行方式

  在进入演练之前,大家还有必要了解运行RMAN命令的方式,就目前已知的情况来说,共有以下3种运行方式:

(1)单个执行。

  没啥说的,之前的示例都是这种方式:

    RMAN> BACKUP DATABASE;

(2)批处理,如下所示:

    RMAN>RUN{

    ......

    }

  批处理方式实质是将原来单个执行的命令组合到一起,并放在 RUN {} 之间,这种方式最大的好处是所有在 RUN 中的命令被视为一个作业,如果作业中任何一条命令执行失败,则整个命令停止执行,即失败命令后的其他命令都不会再被执行。这种方式是最常使用的方式,特别是对于后台脚本化执行。

  不过,并不是所有的RMAN命令都能被放到RUN块中执行,一些控制RMAN环境变量,或操作 CATALOG 的操作都不能在RUN块中执行,如CONFIGURE、LIST、REPORT等。但是你仍然可以将这些命令放在RUN之前、之后或多个RUN块之间(随你放哪,只要不放到RUN块里就行)。

(3)运行脚本,又能细分为以下几种方式:

  • 用命令行方式调用操作系统中保存的脚本:
    F:\oracle\script> RMAN  TARGET / @backup_db.rman

  或者:

    F:\oracle\script> RMAN  TARGET / cmdfile=backup_db.rman
  • 在RMAN中执行操作系统中保存的脚本文件:
    RMAN> @backup_db.rman
  • 运行存储在 CATALOG 中的脚本(需要首先为 RMAN 创建恢复目录):
    RMAN> RUN { EXECUTE SCRIPT backup_whole_db };

  看看,够灵活吧。

阅读(837) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~