Chinaunix首页 | 论坛 | 博客
  • 博客访问: 426846
  • 博文数量: 72
  • 博客积分: 2120
  • 博客等级: 大尉
  • 技术积分: 789
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-02 11:21
个人简介

简单

文章分类

全部博文(72)

文章存档

2019年(4)

2018年(2)

2017年(2)

2014年(1)

2011年(6)

2010年(7)

2009年(50)

我的朋友

分类: Oracle

2010-01-11 10:25:12

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

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

chinaunix网友2010-01-16 01:42:00

不错。学习了

chinaunix网友2010-01-16 01:41:58

不错。学习了