首页 > 数据库 > Oracle > Avamar 备份恢复 Oracle
---------------------------------------------------------------------------------------------------------------------------
源端创建pfile
#create pfile='/home/oracle/pfile_20230601.ora' from spfile;
---------------------------------------------------------------------------------------------------------------------------
目标端创建对应的目录
mkdir -p /u01/app/oracle/admin/AMSDB/adump
mkdir -p /u01/app/oracle/oradata/AMSDB/
mkdir -p /u01/app/oracle/fast_recovery_area
---------------------------------------------------------------------------------------------------------------------------
目标端修改参数启动到nomount状态
export ORACLE_SID=AMSDB1
create spfile from pfile='/home/oracle/pfile_20230601.ora';
startup nomount
---------------------------------------------------------------------------------------------------------------------------
目标端编辑avamar参数文件
cat my-avtar-flages.txt
#NAME?
#NAME?
--logfile=/usr/local/avamar/etc/avtar.log
--vardir=/usr/local/avamar/var/clientlogs
#NAME?
#NAME?
--path=/zhfa_cim/zhrptdb
#NAME?
#NAME?
#NAME?
avamar平台上可以找到对应的备份集和数据库id--在备份集的控制文件后缀中
rman target /
set dbid=99242286;
set controlfile autobackup format for device type sbt to 'CONTROLFILE.AMSDB.%F';
run{
allocate channel c1 type sbt PARMS="SBT_LIBRARY=/usr/local/avamar/lib/libobk_avamar64.so" FORMAT '%d_%U'trace 2;
send '"--prefix=11g/AMSDB/" "--flagfile=/home/oracle/my-avtar-flages.txt" "--sysdir=/usr/local/avamar/etc" "--bindir=/usr/local/avamar/bin" "--vardir=/usr/local/avamar/var/clientlogs" "--logfile=/usr/local/avamar/var/clientlogs/restore.log"';
restore controlfile from autobackup MAXSEQ=0 until time ="TO_DATE('20230531','YYYYMMDD')";
release channel c1;
}
alter database mount;
---------------------------------------------------------------------------------------------------------------------------
set pages 2000 line 2000
select 'set newname for datafile ' || a.FILE# || ' to "' || a.NAME || '";'
from v$datafile a
union all
select 'set newname for tempfile ' || a.FILE# || ' to "' || a.NAME || '";'
from v$tempfile a
union all
SELECT 'SQL "ALTER DATABASE RENAME FILE ''''' || a.MEMBER || ''''' to ''''' ||
a.MEMBER || ''''' ";'
FROM v$logfile a;
---------------------------------------------------------------------------------------------------------------------------
run{
allocate channel c1 type sbt PARMS="SBT_LIBRARY=/usr/local/avamar/lib/libobk_avamar64.so" FORMAT '%d_%U'trace 2;
send '"--prefix=11g/AMSDB/" "--flagfile=/home/oracle/my-avtar-flages.txt" "--sysdir=/usr/local/avamar/etc" "--bindir=/usr/local/avamar/bin" "--vardir=/usr/local/avamar/var/clientlogs" "--logfile=/usr/local/avamar/var/clientlogs/restore.log"';
set newname for datafile 1 to "/u01/app/oracle/oradata/AMSDB/system.256.dbf";
set newname for datafile 2 to "/u01/app/oracle/oradata/AMSDB/sysaux.257.dbf";
set newname for datafile 3 to "/u01/app/oracle/oradata/AMSDB/undotbs1.258.dbf";
set newname for datafile 4 to "/u01/app/oracle/oradata/AMSDB/users.259.dbf";
set newname for datafile 5 to "/u01/app/oracle/oradata/AMSDB/undotbs2.267.dbf";
set newname for datafile 6 to "/u01/app/oracle/oradata/AMSDB/ts_alm_work.276.dbf";
set newname for datafile 7 to "/u01/app/oracle/oradata/AMSDB/ts_alm_work_info.277.dbf";
set newname for datafile 8 to "/u01/app/oracle/oradata/AMSDB/ts_alm_ignored.278.dbf";
set newname for datafile 9 to "/u01/app/oracle/oradata/AMSDB/ts_alm_invalid.279.dbf";
set newname for datafile 10 to "/u01/app/oracle/oradata/AMSDB/ts_alm_setting.280.dbf";
set newname for datafile 11 to "/u01/app/oracle/oradata/AMSDB/ts_alm_log.281.dbf";
set newname for tempfile 1 to "/u01/app/oracle/oradata/AMSDB/temp.266.dbf";
SQL "ALTER DATABASE RENAME FILE ''+AMSDATA/amsdb/onlinelog/group_2.264.1052959409'' to ''/u01/app/oracle/oradata/AMSDB/group_2.264.log'' ";
SQL "ALTER DATABASE RENAME FILE ''+AMSDATA/amsdb/onlinelog/group_2.265.1052959409'' to ''/u01/app/oracle/oradata/AMSDB/group_2.265.log'' ";
SQL "ALTER DATABASE RENAME FILE ''+AMSDATA/amsdb/onlinelog/group_1.262.1052959409'' to ''/u01/app/oracle/oradata/AMSDB/group_1.262.log'' ";
SQL "ALTER DATABASE RENAME FILE ''+AMSDATA/amsdb/onlinelog/group_1.263.1052959409'' to ''/u01/app/oracle/oradata/AMSDB/group_1.263.log'' ";
SQL "ALTER DATABASE RENAME FILE ''+AMSDATA/amsdb/onlinelog/group_3.268.1052959459'' to ''/u01/app/oracle/oradata/AMSDB/group_3.268.log'' ";
SQL "ALTER DATABASE RENAME FILE ''+AMSDATA/amsdb/onlinelog/group_3.269.1052959459'' to ''/u01/app/oracle/oradata/AMSDB/group_3.269.log'' ";
SQL "ALTER DATABASE RENAME FILE ''+AMSDATA/amsdb/onlinelog/group_4.270.1052959461'' to ''/u01/app/oracle/oradata/AMSDB/group_4.270.log'' ";
SQL "ALTER DATABASE RENAME FILE ''+AMSDATA/amsdb/onlinelog/group_4.271.1052959461'' to ''/u01/app/oracle/oradata/AMSDB/group_4.271.log'' ";
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;
recover database;
release channel c1;
}
根据报错提示,找对应的归档日志文件。
archived log file name=/u01/app/oracle/product/11.2/dbhome_1/dbs/arch2_3150_1052959408.dbf thread=2 sequence=3150
unable to find archived log
archived log thread=1 sequence=3450
released channel: c1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 06/01/2023 10:31:57
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 3450 and starting SCN of 72292228095
catalog start with '/home/oracle/rec_20230601';
#NAME?
再次recover
unable to find archived log
archived log thread=2 sequence=3153
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 06/01/2023 10:58:58
RMAN-06054: media recovery requesting unknown archived log for thread 2 with sequence 3153 and starting SCN of 72292403969
根据日志提示,系统再次被推进,
接下来恢复redo,一个一个尝试即可,或者计算
(dd if=/home/oracle/rec_20230601/group_3.268.1052959459 skip=1 bs=512 count=1|od -x)第6位16进制转换为10进制。
recover database using BACKUP CONTROLFILE until cancel;
recover database using BACKUP CONTROLFILE until cancel;
recover database using BACKUP CONTROLFILE until cancel;
recover database using BACKUP CONTROLFILE until cancel;
提示:
Log applied.
Media recovery complete.
完全一致性恢复成功
源端创建测试表,数据还在redo中。非必要不操作,不动生产。
create table rec_20230601(id int,name varchar2(50));
insert into rec_20230601 (id,name) values (2,'2023-6-1');
commit;
exit
su - grid
export ORACLE_SID=+ASM1
asmcmd
cp group_1.262.1052959409 /tmp/rec_20230601/
cp group_1.263.1052959409 /tmp/rec_20230601/
cp group_2.264.1052959409 /tmp/rec_20230601/
cp group_2.265.1052959409 /tmp/rec_20230601/
cp group_3.268.1052959459 /tmp/rec_20230601/
cp group_3.269.1052959459 /tmp/rec_20230601/
cp group_4.270.1052959461 /tmp/rec_20230601/
cp group_4.271.1052959461 /tmp/rec_20230601/
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70031606/viewspace-3021942/ ,如需转载,请注明出处,否则将追究法律责任。