完整的oraclerman备份恢复的例子

1、 建rman库作为repository
  $more createrman_db1.sh
  set echo on
  spool makedb1.log
  create database rman
  datafile '/export/home/oracle/oradata/rman_data/system.dbf' size 50m autoextend
  on next 640K
  logfile '/export/home/oracle/oradata/rman_data/redo0101.log' SIZE 10M,
  '/export/home/oracle/oradata/rman_data/redo0201.log' SIZE 10M
  maxdatafiles 30
  maxinstances 8
  maxlogfiles 64
  character set US7ASCII
  national character set US7ASCII
  ;
  disconnect
  spool off
  exit
  @/export/home/oracle/8.1.6/rdbms/admin/catalog.sql;
  REM ********** ALTER SYSTEM TABLESPACE *********
  ALTER TABLESPACE SYSTEM
  DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR
  EASE 50);
  ALTER TABLESPACE SYSTEM
  MINIMUM EXTENT 64K;
  REM ********** TABLESPACE FOR ROLLBACK **********
  CREATE TABLESPACE RBS DATAFILE '/export/home/oracle/oradata/rman_data/rbs.dbf' s
  ize 50m
  AUTOEXTEND ON NEXT 512K
  MINIMUM EXTENT 512K
  DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 10 MAXEXTENTS UNLIMITED PC
  TINCREASE 0 );
  REM ********** TABLESPACE FOR TEMPORARY **********
  CREATE TABLESPACE TEMP DATAFILE '/export/home/oracle/oradata/rman_data/temp.dbf'
  size 50m
  AUTOEXTEND ON NEXT 64K
  MINIMUM EXTENT 64K
  DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR
  EASE 0) TEMPORARY;
  REM **** Creating four rollback segments ****************
  CREATE PUBLIC ROLLBACK SEGMENT RBS_0 TABLESPACE RBS
  STORAGE ( OPTIMAL 64000K );
  ALTER ROLLBACK SEGMENT "RBS_0" ONLINE;
  REM **** SYS and SYSTEM users ****************
  alter user sys temporary tablespace TEMP;
  alter user system temporary tablespace TEMP;
  disconnect
  spool off
  exit
  $more createrman_db3.sh
  spool crdb3.log
  @/export/home/oracle/8.1.6/rdbms/admin/catproc.sql
  @/export/home/oracle/8.1.6/rdbms/admin/caths.sql
  @/export/home/oracle/8.1.6/rdbms/admin/otrcsvr.sql
  connect system/manager
  @/export/home/oracle/8.1.6/sqlplus/admin/pupbld.sql
  disconnect
  spool off
  exit
  2、建repository存放的表空间和rman用户
  $more createrman_db4.sh
  connect internal
  create tablespace rman_ts
  datafile '/export/home/oracle/oradata/rman_data/rman_ts.dbf'
  size 20M default storage (initial 100K next 100K pctincrease 0);
  create user rman_hainan identified by rman_hainan
  temporary tablespace TEMP
  default tablespace rman_ts quota unlimited on
  rman_ts;
  grant recovery_catalog_owner to rman_hainan;
  grant connect ,resource to rman_hainan;
  3、建catalog,注册目标数据库
  $more createrman_db5.sh
  rman catalog rman_hainan/rman_hainan@rman msglog=rman.log
  create catalog ;
  exit;
  rman target sys/oracle@db1
  connect catalog rman_hainan/rman_hainan@rman
  register database;
  exit;
  4、可以开始做备份了。
  5、做全备
  $more rmanshell
  . /export/home/oracle/.profile
  rman rcvcat rman_hainan/rman_hainan@rman target / cmdfile /export/home/oracle/ba
  ckup_level0.rcv log /export/home/oracle/backup.log
  $more backup_level0.rcv
  resync catalog;
  run {
  allocate channel t1 type disk;
  backup
  incremental level 0
  skip inaccessible
  tag hot_db_bk_level0
  filesperset 3
  format '/export/home/oracle/bk_%s_%p_%t.bk'
  (database);
  sql 'alter system archive log current';
  backup
  filesperset 10
  format '/export/home/oracle/a1_%s_%p_%t.ac'
  (archivelog all delete input);
  backup
  format '/export/home/oracle/df_t%t_s%s_p%p.ct'
  current controlfile ;
  }
  6、做增备
  $more rmanshell1
  rman rcvcat rman_hainan/rman_hainan@rman target / cmdfile backup_level1.rcv log
  backup.log
  $more backup_level1.rcv
  resync catalog;
  run {
  allocate channel t1 type disk;
  backup
  incremental level 1
  skip inaccessible
  tag hot_db_bk_level1
  filesperset 3
  format 'bk_%s_%p_%t.bk1'
  (database);
  sql 'alter system archive log current';
  backup
  filesperset 10
  format 'a1_%s_%p_%t.ac1'
  (archivelog all delete input);
  backup current controlfile;
  }
  1、 删除旧的全备
  $rman rcvcat rman_hainan/rman_hainan@rman target /
  Recovery Manager: Release 8.1.6.0.0 - Production
  RMAN-06005: connected to target database: TEST (DBID=1692992254)
  RMAN-06008: connected to recovery catalog database
  RMAN list backupset;
  RMAN-03022: compiling command: list
  List of Backup Sets
  Key Recid Stamp LV Set Stamp Set Count Completion Time
  ------- ---------- ---------- -- ---------- ---------- ----------------------
  38 145 399987408 0 399987406 153 11-JUN-00
  根据key来删除旧的备份。
  RMAN allocate channel for maintenance type disk;
  RMAN change backupset 169 delete; ----------THIS IS THE COMMAND TO REMOVE THE ENTRY & OS FILE
  做完后可以看到list backupset和操作系统的文件都没有了。
  2、 恢复
  (1) 将数据库启动到nomount状态:
  $svrmgrl
  Oracle Server Manager Release 3.1.6.0.0 - Production
  Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.
  Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
  With the Partitioning option
  JServer Release 8.1.6.0.0 - Production
  SVRMGR connect internal
  Connected.
  SVRMGR startup nomount;
  ORACLE instance started.
  Total System Global Area 339275684 bytes
  Fixed Size 94116 bytes
  Variable Size 318685184 bytes
  Database Buffers 16384000 bytes
  Redo Buffers 4112384 bytes
  SVRMGR exit
  Server Manager complete.
  (2) 恢复控制文件:
  $rman rcvcat rman_hainan/rman_hainan@rman target /
  Recovery Manager: Release 8.1.6.0.0 - Production
  RMAN-06006: connected to target database: test (not mounted)
  RMAN-06008: connected to recovery catalog database
  RMAN run {
  2 allocate channel d1 type disk;
  3 restore controlfile;
  4 release channel d1;
  5 }
  (3) 恢复数据文件
  RMAN run {
  2 allocate channel d1 type disk;
  3 sql "alter database mount";
  4 restore datafile 1;
  5 restore datafile 2;
  6 restore datafile 3;
  7 restore datafile 4;
  8 release channel d1;
  9 }
  (4) 恢复日志文件
  RMAN run {
  2 set archivelog destination to '/export/home/oracle/admin/test/arch';
  3 allocate channel d1 type disk;
  4 restore archivelog all;
  5 release channel d1;
  6 }
  会把所有的日志文件恢复。
  (5) 根据日志做recover
  $svrmgrl
  Oracle Server Manager Release 3.1.6.0.0 - Production
  Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.
  Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
  With the Partitioning option
  JServer Release 8.1.6.0.0 - Production
  SVRMGR connect internal
  Connected.
  SVRMGR recover database using backup controlfile until cancel;
  ORA-00279: change 51054 generated at 06/11/2000 11:38:37 needed for thread 1
  ORA-00289: suggestion : /export/home/oracle/admin/test

原文地址:https://www.cnblogs.com/axon/p/13707847.html