ORACLE 数据库RMAN备份恢复

时间:2022-04-13 04:48:10

机器A: 
select instance_name from v$instance; 
select name from v$database; 
select name from v$datafile; 
查询日志模式: 
archive log list; 
shutdown immediate; 
startup mount; 
把日志改为归档模式: 
alter database archivelog; 
alter database open; 
alter system archive log current; 
select name from v$archived_log; 
打开控制文件跟踪: 
alter database backup controlfile to trace; 
查看跟踪文件位置: 
show parameter user_dump_dest 
cmd: 
set oracle_sid=orcl 
rman target sys/abc 
host "md c:\back"; 
run 

backup database; 
format 'c:\back\%d_%s_%T_full.bak'; 

select file#,name from v$datafile; 
传送以下文件到机器B: 
c:\back 
d:\oracle\product\10.2.0\admin\orcl 
CREATE CONTROLFILE SET DATABASE "ORCL" RESETLOGS ARCHIVELOG 
MAXLOGFILES 16 
MAXLOGMEMBERS 3 
MAXDATAFILES 100 
MAXINSTANCES 8 
MAXLOGHISTORY 292 
LOGFILE 
GROUP 1 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG' SIZE 50M, 
GROUP 2 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG' SIZE 50M, 
GROUP 3 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG' SIZE 50M 
-- STANDBY LOGFILE 
DATAFILE 
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF', 
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF', 
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF', 
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF', 
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\XM' 
CHARACTER SET ZHS16GBK 

机器B: 
创建要恢复oracle的目录 
e:\oracle\product\10.2.0\oradata\orcl 
e:\oracle\product\10.2.0\admin 
e:\oracle\product\10.2.0\falsh_recovery_area 
把收到的文件夹orcl放到e:\oracle\product\10.2.0\admin 
拷贝 
e:\oracle\product\10.2.0\admin\orcl\pfile中的参数文件到自己真实数据库db_1\database文件夹中,并改名为initorcl.ora 
打开initorcl.ora 
把里面的路径改为真实oracle数据库的位置 
d:\替换为e:\ 
cmd1: 
set oracle_sid=orcl 
oracle orcl 
等到提示ctrl+c 
cmd2: 
set oracle_sid=orcl 
sqlplus / as sysdba 
startup nomount; 
cmd3: 
set oracle_sid=orcl 
rman target sys/abc 
restore controlfile from 'C:\back\ORCL_2_20090414_FULL.BAK'; 
cmd2: 
alter database mount; 
cmd3: 
run{ 
set newname for datafile 1 to 'E:\oracle\product\10.2.0\oradata\orcl\SYSTEM01.DBF'; 
set newname for datafile 2 to 'E:\oracle\product\10.2.0\oradata\orcl\UNDOTBS01.DBF'; 
set newname for datafile 3 to 'E:\oracle\product\10.2.0\oradata\orcl\SYSAUX01.DBF'; 
set newname for datafile 4 to 'E:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF'; 
set newname for datafile 5 to 'E:\oracle\product\10.2.0\oradata\orcl\XM'; 
restore database; 
switch datafile all; 

cmd2: 
select name from v$database; 
shutdown immediate; 
startup mount; 
alter database backup controlfile to trace; 
找到跟踪文件: 
重做控制文件:把里面的路径改为正确路径: 
d:\改为 e:\ 
shutdown immediate; 
startup nomount; 
执行生成控制文件的语句;执行钱必须先删除.ctl的文件 
alter database open resetlogs; 
select name from v$database; 
select member from v$logfile;