WEB开发网
开发学院数据库Oracle Oracle数据库备份与恢复(4):RMAN(备份与恢复管理器... 阅读

Oracle数据库备份与恢复(4):RMAN(备份与恢复管理器)

 2008-11-05 11:48:37 来源:WEB开发网   
核心提示: 4.4.3 非归档模式下的 BACKUP 备份与恢复 恢复目录: 打开目标数据库:例程启动,数据库加载,Oracle数据库备份与恢复(4):RMAN(备份与恢复管理器)(4),mount 不能 open因为目标数据库不在归档模式下,所以当进行备份/恢复操作的时候数据库无法打开,文 件名 是:'E:

  4.4.3  非归档模式下的  BACKUP  备份与恢复

   恢复目录:   打开目标数据库:例程启动,数据库加载,mount  不能 open因为目标数据库不在归档模式下,所以当进行备份/恢复操作的时候数据库无法打开。目标数据库只能在  MOUNT 状态不能 Open,所以属于脱机备份。

   非归档模式不备份 redo日志,只有完全备份和 readonly/offline表空间和数据文件 备份是有意义的,所以非归档模式最好不用 RMAN进行备份,备份语法与归档模式相 同,所以这里只做简单介绍。

   4.4.3.1  全库备份

   例:  使用默认的设置脱机全备份的语句

   RMAN> shutdown immediate;RMAN> startup mount;RMAN> backup database;RMAN> startup;

   例:不使用默认的设置执行脱机备份操作  ,在备份命令中指定备份选项

   RMAN> shutdown immediate;

   RMAN> startup mount;

   RMAN> run { allocate channel c1 type disk format '/xxx/ming_%U';

   allocate channel c2 type disk format '/xxx/ming_%U';

   backup full tag full_db_backup format "/backups/db_t%t_s%s_p%p" (database);

   backup current controlfile;

   release channel c1 ;

   release channel c2 ;}

   在这个例子中,我们分配了两个通道,备份位置是在/xxx.默认情况下,如果备份数据文件 1 (SYSTEM  表空间),控制文件和参数文件也会备份。 可以通过下面的命令显示恢复目录中记载的备份集信息: RMAN> list backupset of database;

   4.4.3.2  全库备份的恢复

   $ rman target /

   RMAN> startup mount

   RMAN> restore database;

   RMAN> recover database;

   RMAN> alter database open resetlogs;

   4.4.3.3  表空间备份

   只有 readonly/offline表空间的备份才有意义。

   RMAN> run {

   2> allocate channel dev1 type disk;

   3> backup

   4> tag tbs_users_read_only

   5> format "/oracle/backups/tbs_users_t%t_s%s"

   6> (tablespace users);

   7> }

   使用下列命令来显示恢复目录中该表的备份信息:RMAN> list backupset of tablespace users;

   4.4.3.4  表空间备份的恢复

   RMAN> RUN{

   sql "alter tablespace xx offline immediate;"

   restore tablespace xx;

   recover tablespace xx;

   sql "alter tablespace xx online;" }

   4.4.3.5  备份控制文件

   RMAN> run {

   2> allocate channel dev1 type "SBT_TAPE";

   3> backup

   4> format "cf_t%t_s%s_p%p"

   5> tag cf_monday_night

   6> (current controlfile);

   7> release channel dev1;8> }

   注:数据库完全备份将自动备份控制文件。(或者备份时加 include current controlfile)

  4.4.4  归档模式下的BACKUP备份与完全恢复

   要用  RMAN  进行联机备份操作,数据库就必须位于  ARCHIVELOG  模式。恢复 目录必须打开,目标数据库例程必须启动,数据库加载或者打开。

   这部分只介绍完全恢复,不完全恢复见下一节。

   4.4.4.1  整库备份与恢复备份命令:

   只备份数据文件  (如果 configure controlfile autobackup  on;  将自动包括控件文件,SPFILE):RMAN> backup database;同时备份归档日志,然后将备份后的归档日志删除RMAN> backup database plus archivelog delete input;明确指定同时备份控件文件:

   RMAN> run{

   allocate channel c1 type disk;

   sql 'alter system archive log current';

   backup full database include current controlfile tag 'dbfull'

   format '/u06/oracle/rmanback/full_%u_%s_%p';

   sql 'alter system archive log current';

   release channel c1;}

   可以用 RMAN的 plus archvielog 选项简化数据库备份:

   RMAN> run {

   2> backup database

   3> format '/xxfull%d_%T_%s'

   4> plus archivelog

   5> format '/xx/arch_%d_%T_%s'

   6> delete all input;

   7> }

   完全恢复:目标数据库必须是 mount状态$ rman target / RMAN> startup mount RMAN> restore database;RMAN> recover database;RMAN> alter database open;

   4.4.4.2  表空间的备份与恢复

   备份命令:RMAN> backup tablespace users ;

   例:RMAN> RUN{

   allocate channel c1 type disk;

   backup tablespace users tag 'ts_users' format '/oracle/rmanback/ts_%u_%s_%p' ;

   release channel c1;

   }

   恢复:如果我们只丢失了特定的表空间的数据文件,那么我们可以选择只恢复这个表空间,而 不是恢复整个数据库。表空间恢复可以在不关闭数据库的情况下进行,只需要将需要恢复的 表空间 offline.

   RMAN> RUN{

   sql "alter tablespace xx offlineimmediate;"

   restore tablespace xx;

   recover tablespace xx;

   sql "alter tablespace xx online;"

   }

   恢复到一个不同的位置:

   RMAN> RUN{

   sql "alter tablespace xx offline immediate;"

   SET NEWNAME for datafile 1 to '/xx';

   restore tablespace xx;

   switch datafile 1;

   recover tablespace xx;

   sql "alter tablespace tbs1 online;"

   }

   4.4.4.3  数据文件的备份与恢复

   备份命令:

   RMAN> backup datafile 3;

   RMAN> backup datafile 'D:\ORAC LE\ORADATA\TEST\TEST.DB';

   恢复命令:数 据文件 恢复与表 空间恢 复类 似 .假设数 据文件 号 为  5  的文件丢 失 ,文 件名 是:'E:\ORACLE\ORADATA\USERS.DBF',  那么我们恢复的时候可以指定文件号,也可以指定文件名。

   RMAN> run {

   2> allocate channel dev1 type disk;

   3> sql "alter tablespace users offline immediate";

   4> restore datafile 4;   ——或者  restore 'E:\ORACLE\ORADATA\USERS.DBF'

   5> recover datafile 4;

   6> sql "alter tablespace users online";

   7> release channel dev1;

   8> }

   恢复到一个不同的位置:

   $ rman target /

   RMAN> startup mount

   RMAN> RUN{

   sql "alter tablespace users offline immediate";

   SET NEWNAME for datafile 9 to '/xx/user01.dbf';

   restore datafile 9;

   switch datafile all;

   recover datafile 9;

   sql "alter tablespace users online";

   }

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle 数据库 备份

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接