oracle 到 linux,windows下的Oracle迁移到Linux平台下

环境:

源库为win平台下的11.2.0.1

目标库为redhat6.10下的11.2.0.4

步骤:

先在目标服务器创建好系统,安装好数据库软件,然后在源库这边做个全备,创建个pfile文件,传送到目标服务器上

先编辑Pfile,因为我目标环境和源环境的硬件设置差不多,就没改pfile的,生产环境根据实际情况做调整

3aec0e3adcdd544b8b33e9f52e3ba016.png

ef142ce691179968d53b9924cc7e7cf2.png

然后进去sql下,根据修改后的pfile启动到nomout

--alter session set nls_language=american;

SYS@orcl>startup nomount pfile='/xie/INITorcl.ORA';

启动好后再去rman里恢复控制文件

RMAN>restore controlfile from '/xie/C-1534390551-20190426-01';

恢复完成后启动到Mount

RMAN>sql 'alter database mount';

因为源库环境有记录着备份,目标环境没有,就做个检查

RMAN>crosscheck backup;

RMAN>delete expired backup;

然后把拷贝来的备份注册到rman里

RMAN>catalog start with '/xie/';

然后恢复:

RMAN>run{

RMAN>set newname for database to '/u01/app/oracle/oradata/orcl/dbf_%U';

RMAN>restore database;

RMAN>}

switch来将新的路径写到控制文件

RMAN>switch database to copy;

然后recover

RMAN>recover database;

开启数据库,使用resetlogs upgrade参数来重建redo文件

SQL> alter database open resetlogs upgrade;

顺便生成一下spfile

SQL> create spfile from pfile='/xie/INITorcl.ORA';

temp数据文件因为不被RMAN所保护,需要检查tempfile:

SQL> col name for a50;

SQL> select  a.ts# "TAB_NUM" ,t.name "TAB_NAME" ,a.name "TAB_DIR" from  gv_$tempfile a,v$tablespace t where t.ts#=a.ts#

SQL> create temporary tablespace temp1 tempfile '/u01/app/oracle/oradata/orcl/temp001.dbf' size 1024M;

SQL> alter database default temporary tablespace temp1;

SQL> drop tablespace 查出来的无效的 including contents;

SQL> select * from dba_temp_files;

重新编译下:

SQL> @?/rdbms/admin/utlrp.sql;

更新下数据字典

SQL> @?/rdbms/admin/catupgrd.sql

然后启动

完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值