网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  一个完整的oracle rman备份恢复参考示例     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:53次  录入:管理员--2008-05-29  
 

【赛迪网-it技术报道】完整的oracle rman备份恢复参考示例:

 

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/arch/arch_1_3.arc

ora-00280: change 51054 for thread 1 is in sequence #3

specify log: {=suggested | filename | auto | cancel}

log applied.

ora-00279: change 51058 generated at 06/11/2000 11:38:44 needed for thread 1

ora-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_4.arc

ora-00280: change 51058 for thread 1 is in sequence #4

ora-00278: log file '/export/home/oracle/admin/test/arch/arch_1_3.arc' no longer

needed for this recovery

specify log: {=suggested | filename | auto | cancel}

log applied.

ora-00279: change 51074 generated at 06/11/2000 11:40:20 needed for thread 1

ora-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_5.arc

ora-00280: change 51074 for thread 1 is in sequence #5

ora-00278: log file '/export/home/oracle/admin/test/arch/arch_1_4.arc' no longer

needed for this recovery

specify log: {=suggested | filename | auto | cancel}

cancel

media recovery cancelled.

svrmgr> alter database open resetlogs;

statement processed.

恢复完成。

svrmgr> select table_name from user_tables;

table_name

------------------------------

bonus

dept

emp

salgrade

test

test_zmy

zmy

zmy_dept

zmy_emp

9 rows selected.

可以检查看到,所有的都恢复了,包括全备份后的事务。(只要有归档日志,都可以恢复)。

3、恢复后rman数据库的同步

$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> reset database;

rman-03022: compiling command: reset

rman-03023: executing command: reset

rman-08006: database registered in recovery catalog

rman-03023: executing command: full resync

rman-08029: snapshot controlfile name set to default value: ?/dbs/snapcf_@.f

rman-08002: starting full resync of recovery catalog

rman-08004: full resync complete

 
 
上一篇: 讲解sql与oracle外键约束中的级联删除    下一篇: 在oracle中添加用户 赋权 修改密码 解锁
  相关文档
Oracle数据库中如何改善表空间的管理 04-11
怎样解决cpu高度消耗(100%)的数据库问题 (1) 11-23
全面解析oracle数据库中管理实例的方法 (1) 04-24
实例讲解oracle数据库自带的几个触发器 04-01
数据库维护 01-15
解析:学习oracle架构应当掌握哪些知识 (1) 11-20
解析:怎样屏蔽oracle中的英文提示信息 11-19
Oracle与Access表之间的导入和导出 04-23
轻松掌握oralce数据库常用预定义的例外 04-03
unix系统环境下设置自动开关数据库的方法 08-18
修改默认的oracle xml database监听端口 05-12
oracle数据库中使用dbms_profiler进行调优 05-07
oracle数据库等待事件说明及处理方法 (1) 04-16
在Oracle实例间移动SQL调整工具集简介 04-11
巧用外部表访问警告日志文件或跟踪文件 05-15
将Oracle的数据倒入EXCEL中的方法 04-23
实例讲解如何重复利用这个外部表的表结构 05-07
oracle数据库重做日志文件丢失后的恢复 02-03
Oracle数据库手工扩大表空间三步走 04-11
oracle的三种备份方式具有不同的恢复特性 06-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息