将windows下的oracle备份集恢复到Linux下。
参考资料:https://blog.csdn.net/dsc1245/article/details/53508571
在windows下创建好数据库,名称orcl,打开归档。
用rman备份控制文件和数据文件,生成以下两个备份集:
O1_MF_S_1038784869_HBC9Q5M1_.BKP
O1_MF_NNNDF_TAG20200426T232106_HBC9Q2JR_.BKP
RMAN> backup database;
SQL> create pfile='c:\initorcl.ora' from spfile;
在linux系统下,拷贝上面的两个备份集文件和pfile文件(initorcl.ora)到rman目录下(随意有权限的目录):
以oracle用户创建以下目录:
mkdir $ORACLE_BASE/oradata/orcl
mkdir -p $ORACLE_BASE/admin/orcl/adump
mkdir $ORACLE_BASE/fast_recovery_area/orcl
修改pfile文件中的参数,如目录,内存参数等;pfile文件也可以用现有数据库生成一个pfile文件,修改其中的数据库名和目录和内存相关参数据即可。
以下命令注意包含的路径改为自己的,
export ORACLE_SID=orcl
rman target /
RMAN> startup nomount pfile='/u01/app/11.2.0/oracle/dbs/initorcl.ora';
RMAN> restore controlfile from '/home/oracle/Desktop/rman/O1_MF_S_1038784869_HBC9Q5M1_.BKP';
RMAN> alter database mount
RMAN> crosscheck backup;
RMAN> delete expired backup;
RMAN>run {
set newname for database to '/home/oracle/Desktop/rman/O1_MF_NNNDF_TAG20200426T232106_HBC9Q2JR_.BKP';
restore database;
}
switch database to copy;
SQL> alter database open resetlogs upgrade;
如果失败,去掉upgrade,下一条:
SQL> alter database open resetlogs;
SQL> create spfile from pfile;
SQL> CREATE TEMPORARY TABLESPACE temp2 TEMPFILE '/oradata/orcl/TEMP2.DBF' SIZE 200m AUTOEXTEND ON;
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;
SQL> drop tablespace temp;
SQL> shutdown immediate
SQL> startup
到/etc/oratab文件中新增相关配置。