前言:
近期做了一个Rman的垮平台恢复,数据库从Windows server 2008平台 恢复到 Linux Red hat 5.4平台,数据量大约在1.4T左右,恢复时间大约为20小时。
下面的文章是我的恢复步骤,这个实验做完后其实并不是太成功,虽然最后成功OPEN数据库,但是日志内还是会有一些ORA-600的报错,现在我也正在排除这些报错,我写这篇文章的目的是希望给那些第一次做垮平台恢复的朋友开拓一些思路,有一个方向,至于那些比较细微的问题还需要各位根据自己所掌握的知识慢慢处理,祝大家好运。
摘要:
数据库版本:11.0.2.0.1
操作系统:Windoors(源OS) for Linux(目标OS)
恢复工具:Rman
数据量:1.4T
前期准备:
1:做恢复之前,首先我们要查看数据库自带的试图,来判断一下两平台如果传输备份数据是否需要转换字符,我是从Windoors(64bit)恢复到Linux(64bit),很显然它们都属于little字节,所以不需要转换。
SQL> select * from v$transportable_platform order by platform_id;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ----------------------------------- --------------
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
3 HP-UX (64-bit) Big
4 HP-UX IA (64-bit) Big
5 HP Tru64 UNIX Little
6 AIX-Based Systems (64-bit) Big
7 Microsoft Windows IA (32-bit) Little
8 Microsoft Windows IA (64-bit) Little
9 IBM zSeries Based Linux Big
10 Linux IA (32-bit) Little
11 Linux IA (64-bit) Little
12 Microsoft Windows x86 64-bit Little
13 Linux x86 64-bit Little
15 HP Open VMS Little
16 Apple Mac OS Big
17 Solaris Operating System (x86) Little
18 IBM Power Based Linux Big
19 HP IA Open VMS Little
20 Solaris Operating System (x86-64) Little
21 Apple Mac OS (x86-64) Little
2:我在做恢复的前一晚做了一个rman0级备份(OPEN状态下),备份包括(所有的数据文件,控制文件,参数文件,归档日志),以下是备份脚本。
run
{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
allocate channel c5 device type disk;
backup incremental level=0 database format 'e:\rmanbackup\data_%T_%s_%p';
backup archivelog all format 'e:\rmanbackup\log_%T_%s_%p' delete all input;
backup current controlfile format 'e:\rmanbackup\ctl_%T_%s_%p';
backup spfile format 'e:\rmanbackup\spfile_%T_%s_%p';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
3:将备份级拷贝到目标服务器(Linux)
4:在目标服务器(Linux)只安装数据库软件(11.0.2.0.1)
恢复开始