备份目标库
run{
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/%F';
ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/backup/orabk0_%d_%T_%s';
BACKUP DATABASE;
RELEASE CHANNEL C1;
}
连接到RMAN,set dbid=原库,先恢复spfile
请注意:
1、从备份中恢复spfile,必须在rman命令行startup nomount,然后restore spfile from ...
2、恢复时可能报错,是oracle的BUG,需export ORACLE_SID=xxx export ORA_RMAN_SGA_TARGET=350
create pfile from spfile修改各路径、内存大小(DBNAME不改),然后用pfile启动数据库到nomount
恢复出控制文件,restore controlfile from ...,然后mount数据库
恢复数据库
备份片新位置注册到控制文件:
catalog backuppiece '/backup/db_0iq51uq2_1_1','/home/barcode/db_0iq51uq2_1_1';
run{
ALLOCATE CHANNEL C1 DEVICE TYPE DISK;
set newname for datafile 1 to '/oracle/oracletest/oradata/system01.dbf';
set newname for datafile 2 to '/oracle/oracletest/oradata/sysaux01.dbf';
set newname for datafile 3 to '/oracle/oracletest/oradata/undotbs01.dbf';
set newname for datafile 4 to '/oracle/oracletest/oradata/users01.dbf';
set newname for datafile 5 to '/oracle/oracletest/oradata/hoau_tbs01.dbf';
set newname for datafile 6 to '/oracle/oracletest/oradata/TRAINING.dbf';
set newname for datafile 7 to '/oracle/oracletest/oradata/training_tnt_tbs01.dbf';
set newname for datafile 8 to '/oracle/oracletest/oradata/HOAUTBL01.dbf';
set newname for datafile 9 to '/oracle/oracletest/oradata/users02.dbf';
set newname for datafile 10 to '/oracle/oracletest/oradata/drtbs1.dbf';
set newname for datafile 11 to '/oracle/oracletest/oradata/drtbs2.dbf';
restore database;
switch datafile all;
RELEASE CHANNEL C1;
}
--switch datafile all新路径注册到控制文件
恢复到时间点
run
{
set until time "to_date('2015-04-23 06:00:00','yyyy-mm-dd hh24:mi:ss')";
recover database;
alter database open resetlogs;
}
启动时会自动创建redo文件和临时表空间,建议启动前先在控制文件中定义好目录
如启动失败:1、创建redo目录 2、清除current日志组alter database clear logfile group 3;
注册到监听:
alter system set local_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=10.39.251.181)(PORT=1521))';
默认会将数据库的名字注册到监听中作为服务名,也可以在数据库中service_name中定义服务名