2010年(61)
分类: Oracle
2010-01-19 11:11:58
前面已经知道了如何进入RMAN,相信大家定会觉着RMAN操作简单,事实也确实如此。一方面千万不要被这种名头响亮的专业工具吓倒,认为专业的都是复杂的,另外一方面也万不要因为操作简单而小视其功能的强大,简单往往意味着灵活,灵活对于那些有心人则意味着主动权尽在掌握之中。
首先需要强调,如果是在Oracle数据库OPEN状态执行备份(严格地讲是属于OPEN READ WRITE状态),则必须是置于归档模式,否则在执行备份操作时有可能碰到ORA-19602错误。
在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 环境下相比就仨词:完全一模一样。
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 命令提示符下。
在RMAN中执行 SQL 语句稍嫌复杂。在RMAN的命令提示符后输入SQL命令,然后在一对单引号(双引号亦可)中输入要执行的SQL语句,例如:
需要注意的一点是,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>萝卜青菜各有所爱,大家是爱萝卜还是爱青菜啊,爱萝卜的请选第一种,爱青菜的请选第二种。我爱吃肉,我要找第三种出来~
通过RMAN有两种不同类型的备份方式:创建镜像复制和创建备份集。
在进入演练之前,大家还有必要了解运行RMAN命令的方式,就目前已知的情况来说,共有以下3种运行方式:
(1)单个执行。
没啥说的,之前的示例都是这种方式:
(2)批处理,如下所示:
RMAN>RUN{
......
}批处理方式实质是将原来单个执行的命令组合到一起,并放在 RUN {} 之间,这种方式最大的好处是所有在 RUN 中的命令被视为一个作业,如果作业中任何一条命令执行失败,则整个命令停止执行,即失败命令后的其他命令都不会再被执行。这种方式是最常使用的方式,特别是对于后台脚本化执行。
不过,并不是所有的RMAN命令都能被放到RUN块中执行,一些控制RMAN环境变量,或操作 CATALOG 的操作都不能在RUN块中执行,如CONFIGURE、LIST、REPORT等。但是你仍然可以将这些命令放在RUN之前、之后或多个RUN块之间(随你放哪,只要不放到RUN块里就行)。
(3)运行脚本,又能细分为以下几种方式:
或者:
看看,够灵活吧。