Chinaunix首页 | 论坛 | 博客
  • 博客访问: 234655
  • 博文数量: 57
  • 博客积分: 1149
  • 博客等级: 少尉
  • 技术积分: 584
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-29 11:35
文章分类

全部博文(57)

文章存档

2016年(1)

2014年(1)

2013年(2)

2012年(27)

2011年(26)

分类: Oracle

2012-02-16 14:14:55

备份方案与流程

目前有test1 , test2 ,CN_test  是用户建立的表

 

           1. 建立一个catalog表空间,和即将要备份和恢复的数据不能为一个表空间

SQL> create tablespace recover1 datafile '/db/oracle/oradata/recover1' size 1024M;

2.建立一个rman2用户

 

 

 

授权:

 

 

3.登录创建目录

备份的时候自动备份控制文件:

Configure controlfile autobackup on;

4.注册目标数据库

 

 

5.分配通道,设置备份路径:

 

打开控制文件自动备份,并储存到/control目录下:

 rman>configure controlfile autobackup on;

 rman>configure controlfile autobakcup format for device type disk to '/control/%F';

 

6.开始备份:backup database plus archivelog;

    增量0级备份:backup incremental level 0 database;

    增量1级差异备份:backup incremental level 1 database;

    增量1级累计备份:backup incremental level 1 cumulative database;

 

常见的备份策略(差异备份):

星期

差异增量

累积增量

星期天

0级

0级

星期一

2级

2级

星期二

2级

2级

星期三

1级

1级

星期四

2级

2级

星期五

2级

2级

星期六

2级

2级

星期天

0级

0级

 

 

 

 

还原步骤

1.因为有可能需要按时间点做还原,所以需要设置oracle用户的环境变量

NLS_DATE_FORMAT='mm/dd/yyyy hh24:mi:ss';

export NLS_DATE_FORMAT

 

2.使用rman登录 

 rman target=rman2/rman2@test

 

3.将数据库变更为挂载状态

 startup mount;

 强制更改:startup force mount;

 

4.以下为按照时间点不完全恢复

run{

set until time "to_date('2011/06/28 14:00:30','yyyy/mm/dd hh24:mi:ss')";   

restore database;

recover database;   

}                                                       <--- 基于时间点的不完全恢复

5.完成后重新挂载

 alter database open resetlogs;

 

 

 

其他:

1.按时间点还原时候出现:

until time or recovery window is before resetlogs time  错误

需要将原型重置到恢复时间节点之前的resetlogs

 

list incarnation of database "test";

reset database to incarnation 数字 ;

 

源文档 <http://space.itpub.net/90618/viewspace-690291>

 

 

 

 

 

 

 

恢复误删除数据:

1.做全备份,归档当前日志:

2.备份一个pfile

 

 

3.备份当前数据库

关闭数据库

SQL> shut immediate

数据库文件夹改名备份,并创建一个原库名文件夹

 

$mkdir test

 

4.启动数据库到nomount

 

5.恢复controlfile

 

 

run {

allocate channel t1 type disk;

restore controlfile from 'c-2053343983-20110630-01';

release channel t1;

}

 

 

 

6.启动数据库mount,恢复归档日志:

SQL> startup mount;

RMAN> list backup of archivelog all;


找到最近2两天的seq,进行恢复

run {

allocate channel t1 type disk;

set archivelog destination to '/db/oracle/flash_recovery_area/TEST/archivelog';

restore archivelog sequence 6 thread 1;

release channel t1;

}

 

 

7.恢复数据库

run {

allocate channel t1 type disk;

set until scn 916578;                          

restore database;

recover database;

release channel t1;

}

 

 

 alter database open resetlogs;

 

scn用最后一个日志的next scn

 

 

 

 

 

 

exp按照用户导出

exp software/software  rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 owner=software file=/oraexp/exp_software_201107.dmp log=/oraexp/exp_software_201107.log

Imp按用户导入

imp software/software fromuser=software touser=software rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=exp_software_201107.dmp

 

 

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