ITPub博客

首页 > 数据库 > 数据库开发技术 > 远程数据库恢复

远程数据库恢复

原创 数据库开发技术 作者:imlihj2007 时间:2009-04-28 21:20:13 0 删除 编辑

--远程数据库恢复

--测试常用代码!
select * from v$datafile;
select name from v$datafile;
create tablespace test3 datafile 'D:APPADMINISTRATORORADATAORCLtest3' size 30m;
create user test3 identified by test3 default tablespace test3
grant dba to test3
create table test as select * from v$datafile where 1=2
insert into test select * from v$datafile
select * from test as timestamp '2009-4-27 19:17:00'
select sysdate from dual --'2009-4-27 19:17:00'
recover tablespace test2 until time '2009-4-27 20:12:29' auxiliary destination 'd:'
delete from test
select * from test
rman target sys/sys auxiliary sys/sys@auxi
run{
allocate auxiliary channel c1 device type disk;
recover tablespace test2 until time '2009-4-27 20:12:29' ;
}

--备份数据库
--原数据库
--rman catalog rman/rman target /
--backup database plus archivelog delete input
RMAN> run
2> {allocate channel d1 type disk maxpiecesize = 500m;
3> backup database plus archivelog delete input
4> format 'E:log_%d_%s_%p_%t';
5> release channel d1;
6> }

正在启动全部恢复目录的 resync
完成全部 resync
分配的通道: d1
通道 d1: SID=131 设备类型=DISK

启动 backup 于 2009-04-28 18:33:59
当前日志已存档
通道 d1: 正在启动归档日志备份集
通道 d1: 正在指定备份集内的归档日志
输入归档日志线程=1 序列=19 RECID=29 STAMP=685364050
输入归档日志线程=1 序列=20 RECID=31 STAMP=685364139
输入归档日志线程=1 序列=21 RECID=34 STAMP=685373634
输入归档日志线程=1 序列=22 RECID=36 STAMP=685375270
输入归档日志线程=1 序列=23 RECID=38 STAMP=685375448
输入归档日志线程=1 序列=24 RECID=40 STAMP=685377109
输入归档日志线程=1 序列=25 RECID=42 STAMP=685377225
输入归档日志线程=1 序列=26 RECID=44 STAMP=685379404
输入归档日志线程=1 序列=27 RECID=46 STAMP=685387210
输入归档日志线程=1 序列=28 RECID=48 STAMP=685389138
输入归档日志线程=1 序列=29 RECID=50 STAMP=685391640
通道 d1: 正在启动段 1 于 2009-04-28 18:34:11
通道 d1: 已完成段 1 于 2009-04-28 18:34:18
段句柄=E:LOG_ORCL_50_1_685391642 标记=TAG20090428T183401 注释=NONE
通道 d1: 备份集已完成, 经过时间:00:00:07
完成 backup 于 2009-04-28 18:34:18

启动 Control File and SPFILE Autobackup 于 2009-04-28 18:34:18
段 handle=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLAUTOBACKUP2009_04_28O1
_MF_S_685391660_4ZFPXMVT_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 2009-04-28 18:34:35
RMAN>


--文件拷贝和数据目录创建
(略)

--(不同机器)
--可龙数据库
--rman catalog rman/rman target /
--restore database

-----------使用恢复管理器文件物理恢复
C:Documents and SettingsAdministrator>rman catalog rman/rman@ora252 target /

恢复管理器: Release 11.1.0.6.0 - Production on 星期二 4月 28 19:19:18 2009

Copyright (c) 1982, 2007, Oracle. All rights reserved.

已连接到目标数据库: ORCL (DBID=1213082043, 未打开)
连接到恢复目录数据库

RMAN> restore database;

启动 restore 于 28-4月 -09
正在启动全部恢复目录的 resync
完成全部 resync
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=150 设备类型=DISK

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:APPADMINISTRATORORADATAORCLSYSTE
M01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:APPADMINISTRATORORADATAORCLSYSAU
X01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 D:APPADMINISTRATORORADATAORCLUNDOT
BS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:APPADMINISTRATORORADATAORCLUSERS
01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:APPADMINISTRATORORADATAORCLEXAMP
LE01.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 D:APPADMINISTRATORORADATAORCLTEST
通道 ORA_DISK_1: 将数据文件 00007 还原到 D:APPADMINISTRATORORADATAORCLTEST1

通道 ORA_DISK_1: 将数据文件 00008 还原到 D:APPADMINISTRATORORADATAORCLTEST2

通道 ORA_DISK_1: 将数据文件 00009 还原到 D:APPADMINISTRATORORADATAORCLTEST3

通道 ORA_DISK_1: 将数据文件 00010 还原到 D:APPADMINISTRATORORADATAORCLRMAT_
TS
通道 ORA_DISK_1: 正在读取备份片段 E:DB_ORCL_46_1_685388997
通道 ORA_DISK_1: 段句柄 = E:DB_ORCL_46_1_685388997 标记 = TAG20090428T174956
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 正在读取备份片段 E:DB_ORCL_46_2_685388997
通道 ORA_DISK_1: 段句柄 = E:DB_ORCL_46_2_685388997 标记 = TAG20090428T174956
通道 ORA_DISK_1: 已还原备份片段 2
通道 ORA_DISK_1: 正在读取备份片段 E:DB_ORCL_46_3_685388997
通道 ORA_DISK_1: 段句柄 = E:DB_ORCL_46_3_685388997 标记 = TAG20090428T174956
通道 ORA_DISK_1: 已还原备份片段 3
通道 ORA_DISK_1: 还原完成, 用时: 00:01:17
完成 restore 于 28-4月 -09

RMAN>

--下面的代码要在开始的时候启动
SQL> startup nomount;
ORACLE instance started.

Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 201327508 bytes
Database Buffers 327155712 bytes
Redo Buffers 5844992 bytes
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01507: database not mounted


SQL> alter database mount;

Database altered.

-----------使用plsql数据库的不完全恢复
SQL> recover database until cancel;
ORA-00279: change 1063367 generated at 04/28/2009 17:50:04 needed for thread 1
ORA-00289: suggestion :
D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2009_04_28O1_MF_1_28_4

ZFNGLG5_.ARC
ORA-00280: change 1063367 for thread 1 is in sequence #28


Specify log: {=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;

Database altered.

SQL>

--下面方法应该实用9 10 11数据库版本!
--#########################################################################
--记住:当一打开数据文件,控制文件的信息就会改变,
-- resetlogs打开数据库,很多信息都会改变!尤其是备份需要的信息


--这种办法虽然有点垃圾,但是勉强还是可以用的
--超级垃圾的rman复制!
--复制,控制文件(rman信息的保存)(用恢复目录应该不用拷贝控制文件)
-- 日志文件(数据库打开是应用,也可以不用不过数据可能会出现不一样)
-- rman备份文件,恢复是应用,归档日志也要拷贝过来
-- 可以直接打开数据库


--没有日志可以用不完全恢复的办法!
--有一种方法可以不用日志文件,关键是要有恢复数据库足够的日志信息
--两者结合起来可以做!但是有可能会有个别信息的丢失!


--信息一样¡¤
--rman target sys/sys@ora252 auxiliary / 这种方法就是妈的有问题
-- 失败的原因是控制文件被修改 !
--总结:数据库在打开前对数据库文件不做校验的!(校验在数据库打开和重建控制文件的时候)


--应用归档日志还原数据

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9879835/viewspace-1021422/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-05-25

  • 博文量
    109
  • 访问量
    1577023