Rman简明备忘录

原创 2005年03月01日 08:14:00

Author:NinGoo

Version:0.1
修改日期:2005-03-01
Mail:NinGoo#itpub.net

 

测试环境

Oracle Version: 9.2.0.1.0

OS Version:Windows 2000 Server

 

RMAN备份的信息可以保存在专门的catalog数据库中,也可以保存在目标DB的控制文件中。

初始化参数control_file_record_keep_time指定了控制文件保存RMAN备份信息的天数,默认是7

 

1.     使用Catalog数据库
建议catalog放在单独的instance,假设名为rcvcat
a.添加tablespace
  create tablespace rman datafile ‘rman01.dbf’ size 20M;
b.
创建用户
  create users rman identified by rman default tablespace rman;
c.
授权
  grant RECOVERY_CATALOG_OWNER to rman;
  grant connect,resource to rman;

C:/>
rman catalog rman/rman@rcvcat                   ---连接到catalog所在的server
RMAN>create catalog;                                         ---创建Catalog
RMAN>exit
C:/>rman catalog rman/rman@rcvcat target /           ---
连接目标数据库
RMA
N>register database;                                     ---注册目标数据库
RMAN>upgrade catalog;                                       ---升级catalog
RMAN>drop catalog;                                            ---删除catalog

2.     不使用Catalog
C:/>rman nocatalog
Recovery Manager: Release 9.2.0.1.0 – Production
Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.
RMAN>connect target /
connected to target database: OraDB (DBID=3038703659)
using target database controlfile instead of recovery catalog

3.     RMAN配置
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/product/9.2.0/dbs/snapcf_Technet.f'; # default

4.     RMAN基本命令
列出数据库的schema
RMAN>report schema;
列出废弃的备份
RMAN>report obsolete;
检查备份
RMAN> crosscheck backup;
删除过期失效的备份信息
RMAN>delete expired backup;
备份表空间
RMAN>backup tablespace system;
拷贝数据文件
RMAN>copy datafile 1 to ‘d:/oracle/oraback/datafile1.dbf’;
列出备份和拷贝
RMAN>list backup;
RMAN>list copy;

验证备份能否还原
RMAN>restore database validate;

5.     备份脚本
热全备
---backup.bat
for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do  set dt=%%i%%j%%k
rman nocatalog target sys/pass @d:/backup_full.rcv
>D:/oracle/oraback/backup_Full_%dt%.log
---
backup_full.rcv
# script:bakup_full.rcv
# desc:backup all database datafile in archive with rman
# connect database
#connect rcvcat rman/rman@back;
#connect target sys/pass ;
# start backup database
run{
allocate channel c1 type disk;
backup full tag 'Full'
filesperset 5 format 'D:/oracle/oraback/%d_Full_%T_%u_%p_%c' database include current controlfile;
sql 'alter system archive log current';
backup archivelog all filesperset 5 format 'D:/oracle/oraback/%d_Log_%T_%u_%p_%c';
sql 'alter system archive log current';
release channel c1;
}
# end
0
级备份
---backup0.bat

for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do  set dt=%%i%%j%%k
rman nocatalog target sys/pass @d:/backup_lvl_0.rcv >D:/oracle/oraback/backup_Level0_%dt%.log
---backup_lvl_0.rcv
# script:bakup_lvl_0.rcv
# desc:backup database with incremental level 0 datafile in archive with rman
# connect database
#connect rcvcat rman/rman@back; 
#connect target sys/pass ;
# start backup database
run{
allocate channel c1 type disk;
backup
incremental level 0 tag 'Level_0' maxsetsize=500M format 'D:/oracle/oraback/%d_Level0_%T_%u_%p_%c' database include current controlfile;
sql 'alter system archive log current';
backup archivelog all filesperset 5 format 'D:/oracle/oraback/%d_Log_%T_%u_%p_%c';
sql 'alter system archive log current';
release channel c1;
}
# end

1
级备份
---backup1.bat

for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do  set dt=%%i%%j%%k
rman nocatalog target sys/pass @d:/backup_lvl_0.rcv >D:/oracle/oraback/backup_Level0_%dt%.log
---backup_lvl_1.rcv
# script:bakup_lvl_1.rcv
# desc:backup database with incremental level 0 datafile in archive with rman
# connect database
#connect rcvcat rman/rman@back; 
#connect target sys/pass ;
# start backup database
run{
allocate channel c1 type disk;
#backup incremental level 1
cumulative tag 'Level_1' …
backup incremental level 1 tag 'Level_1' format 'D:/oracle/oraback/%d_Level1_%T_%u_%p_%c' database include current controlfile;
sql 'alter system archive log current';
backup archivelog all filesperset 5 format 'D:/oracle/oraback/%d_Log_%T_%u_%p_%c';
sql 'alter system archive log current';
release channel c1;
}
# end
注:
%c 备份片的拷贝数
%d
数据库名称
%D
位于该月中的第几天 (DD)
%M
位于该年中的第几月 (MM)
%F
一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为该数据库的DBIDYYYYMMDD为日期,QQ是一个1-256的序列
%n
数据库名称,向右填补到最大八个字符
%u
一个八个字符的名称代表备份集与创建时间
%p
该备份集中的备份片号,从1开始到创建的文件数
%U
一个唯一的文件名,代表%u_%p_%c
%s
备份集的号
%t
备份集时间戳
%T
年月日格式(YYYYMMDD)

6.     还原与恢复
完全恢复
C:/>rman nocatalog
RMAN>connect target /
RMAN>run {
        allocate channel c1 type disk;
        alter database mount;
        restore database;
        recover database;
        alter database open;
        release channel c1;
       }
不完全恢复
C:/>rman nocatalog
RMAN>connect target /
RMAN>run {
        allocate channel c1 type disk;
        set until time ‘2005-01-24 15:20:00’;
        #set until sequence 120 thread 1;
        alter database mount;
        restore database;
        recover database;
        alter database resetlogs
        release channel c1;
       }
恢复控制文件
可以使用如下方法,在RMAN中恢复备份片的控制文件
restore controlfile from backuppiecefile;
如果是9i的自动备份,可以采用如下的方法
restore controlfile from autobackup;
但是,如果控制文件全部丢失,需要指定DBID,如SET DBID=?
自动备份控制文件的默认格式是%F,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII就是DBID

特殊恢复
如果catalog和控制文件中的备份信息丢失,可以通过dbms_backup_restore包来直接从备份集恢复
restore
控制文件
declare
 devtype varchar2(100)
 done boolean;
 recid number;
 stamp number;
 fullname varchar2(100);
begin
 devtype:=dbms_backup_restore.deviceallocate
(type=>'',ident=>'t1');
 dbms_backup_restore
.restoresetdatafile;
 dbms_backup_restore.
restorecontrolfileto(' d:/oracle/o

Radata/TEST/control01.ctl');
 dbms_backup_restore.
restorebackuppiece(' D:/oracle/oraback/C-3965546666-20050228-00',DONE=>done);
 sys.dbms_backup_restore.deviceDeallocate;
End;

/
restore 0
级备份文件
declare
 devtype varchar2(100)
 done boolean;
 recid number;
 stamp number;
 fullname varchar2(100);
begin
 devtype:=dbms_backup_restore.deviceallocate
(type=>'',ident=>'t1');
 
sys.dbms_backup_restore.restoreSetDatafile;
 sys.dbms_backup_restore.
restoreDatafileTo(dfnumber=>01,toname=>'d:/oracle/o

Radata/TEST/SYSTEM01.DBF');
 sys.dbms_backup_restore.
restoreDatafileTo(dfnumber=>02,toname=>' d:/oracle/o

Radata/TEST/UNDOTBS01.DBF');
 

     sys.dbms_backup_restore.
restoreBackupPiece(done=>done,handle=>' D:/oracle/oraback/TEST_LEVEL0_20050228_46GDTAV8_1_1 ', params=>null);
    sys.dbms_backup_restore.
restoreBackupPiece(done=>done,handle=>' D:/oracle/oraback/TEST_LEVEL0_20050228_47GDTB28_1_1 ', params=>null);
    sys.dbms_backup_restore.deviceDeallocate;
END;
/
restore 1级备份文件
declare
 devtype varchar2(100)
 done boolean;
 recid number;
 stamp number;
 fullname varchar2(100);
begin

devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');

sys.dbms_backup_restore.applySetDatafile;
sys.dbms_backup_restore.applyDatafileTo(dfnumber=>02,toname=>' d:/oracle/o

Radata/TEST/SYSTEM01.DBF');

sys.dbms_backup_restore.applyDatafileTo(dfnumber=>02,toname=>' d:/oracle/o

Radata/TEST/UNDOTBS01.DBF');

sys.dbms_backup_restore.applyBackupPiece(done=>done,handle=>' D:/oracle/oraback/ TEST_LEVEL1_20050301_4AGE6UDI_1_1 ', params=>null);
     sys.dbms_backup_restore.deviceDeallocate;

END;
/

restore 归档日志
declare
 devtype varchar2(100)
 done boolean;
 recid number;
 stamp number;
 fullname varchar2(100);
begin

devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');

sys.dbms_backup_restore.restoreSetArchivedLog;
 sys.dbms_backup_restore.restoreArchivedLogRange;
 sys.dbms_backup_restore.
restoreBackupPiece(done=>done,handle=>' D:/oracle/oraback/TEST_LOG_20050228_48GDTB5K_1_1', params=>null);
 sys.dbms_backup_restore.deviceDeallocate;

    End;
    /

 

NinGoo收集整理,转载请注明出处http://blog.csdn.net/NinGoo

 

RMAN简明使用手册

来源:http://www.cnblogs.com/lijunjie/archive/2010/09/27/1836517.html 背景信息 使用手册基于ORACLE 10.2 资...
  • xingfuniunan
  • xingfuniunan
  • 2013年08月19日 10:27
  • 298

RMAN简明使用手册(转载)

最小使用环境 ■ target database :备份的目标数据库 ■ RMAN client: RMAN的客户端。它主要是负责解释备份和恢复命令,连接服务器会话执行相关命令,并在控制文...
  • xuansiyu
  • xuansiyu
  • 2014年01月20日 15:11
  • 287

android开发备忘录

程序描述:实现备忘录的设置和提醒,当运行软件时,在主界面可以设定备忘录内容,单击"设置闹钟"按钮设置提醒的时间。每设置一个备忘录,会在按钮下方记录所设定的备忘录,方便用户查看。当设定备忘录的时间到时,...
  • tan313
  • tan313
  • 2015年04月24日 21:45
  • 3828

备忘录实现 源码

首先创建保存备忘录信息的表: DbHelper.java [java] view plaincopy在CODE上查看代码片派生到我的代码片 package com.cjq.androi...
  • syf6568362
  • syf6568362
  • 2015年12月30日 16:15
  • 1544

web开发的功能备忘录

总体设计 Web项目开发中,我们可以根据不同的功能,将整个系统的功能进行划分。系统功能总体来说可以划分为两个模块:系统的必备功能和逻辑业务功能。    下面主要是分析一下系统的必...
  • u012979009
  • u012979009
  • 2016年02月26日 11:40
  • 719

jQuery实现web备忘录-3

存储在Localstorage; 但是功能太少,比如定时无法实现 store.js比较灵活,用它. 确定js代码能和html代码正常交互 注意form表单里面的submit才有效果 prevent...
  • qq_33936481
  • qq_33936481
  • 2017年04月13日 23:05
  • 597

算法备忘录——查找

数据一旦被有规律得组织起来,从中查找出所需元素的效率将会大大提高。 查找算法准确的说,应该是数据的组织方法与查找方法的结合。没有组织规律的数据,我们只能用直观的暴力方法,一个一个拿出来对比,从而筛选出...
  • zhou_chenz
  • zhou_chenz
  • 2016年08月21日 22:41
  • 1574

一款好用的备忘录制作实现

自己用的安卓手机,平时老是忘记某些事情,于是在网上找了几款备忘录软件,可是没有自己满意的。于是乎,开始自己做个吧。 先展示下成品:小石备忘录 app下载地址:http://zhushou.360....
  • jiaozhurun
  • jiaozhurun
  • 2016年01月19日 17:54
  • 9895

eclipse备忘录

【1】修改Project Explorer中字体的大小: 1)在eclipse\plugins\org.eclipse.ui.themes_1.1.200.v20160815-0536\css文...
  • A__17
  • A__17
  • 2017年04月19日 11:46
  • 308

简明Python教程笔记一 python3.x

《简明python教程》此教程用的是python 2.x与 python 3.x有些差异。 python有高效率的高层数据结构,面向对象。语法简洁,是门解释型脚本语言,适合应用程序的快速开发。 pyt...
  • Binbin_IT
  • Binbin_IT
  • 2017年10月24日 16:44
  • 187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Rman简明备忘录
举报原因:
原因补充:

(最多只允许输入30个字)