Oracle 11g 数据库迁移行业动态

首页 行业动态 Oracle 11g 数据库迁移

Oracle 11g 数据库迁移

2017-08-11 16:44:59


详情:

由于服务器更换,或者硬盘损坏等问题,在有些场景下,我们需要对数据库进行迁移。Oracle 数据库有多种备份方式,如果可以停机,建议最好使用冷备的方式,直接迁移数据文件,这样效率会比较高。
由于两台主机都是Windows server,为了方便直接使用复制文件的方式,由于特殊原因,迁移前的数据目录和迁移后的数据目录是不一致的。直接迁移数据后,启动会报如下错误:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1071333376 bytes
Fixed Size                  1334380 bytes
Variable Size           301990804 bytes
Database Buffers          754974720 bytes
Redo Buffers             13033472 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSTEM01.DBF'

查看文件路径:
SQL> select name from v$controlfile;

NAME
---------------------------------------------------------
F:\APP\ADMINISTRATOR\ORADATA\AGRISK\CONTROL01.CTL
F:\APP\ADMINISTRATOR\ORADATA\AGRISK\CONTROL02.CTL
F:\APP\ADMINISTRATOR\ORADATA\AGRISK\CONTROL03.CTL

SQL> select name from v$datafile;

NAME
---------------------------------------------------------
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSTEM01.DBF
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSAUX01.DBF
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\UNDOTBS01.DBF
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\USERS01.DBF
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK.DBF

SQL> select name from v$tempfile;

NAME
---------------------------------------------------------
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\TEMP01.DBF
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK_TEMP.DBF

SQL> select member from v$logfile;

MEMBER
---------------------------------------------------------
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO03.LOG
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO02.LOG
D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO01.LOG

停止数据库:
SQL> shutdown immediate;

将原主机上oradata目录下实例的文件全部拷贝到迁移后的主机对应目录。然后在新的主机上以mount方式启动数据库实例:
SQL> startup mount;

除了控制文件的路径是正常的,其他的文件路径都需要修改,将原来的错误路径D盘改为F盘:
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSTEM01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSTEM01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSAUX01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSAUX01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\UNDOTBS01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\UNDOTBS01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\USERS01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\USERS01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK.DBF';
数据库已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\TEMP01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\TEMP01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK_TEMP.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK_TEMP.DBF';
数据库已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO01.LOG' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO01.LOG';
数据库已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO02.LOG' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO02.LOG';
数据库已更改。
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO03.LOG' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO03.LOG';
数据库已更改。

确认修改成功后,启动数据库:
SQL> alter database open;
数据库已更改。

重启数据库:

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1071333376 bytes
Fixed Size                  1334380 bytes
Variable Size           301990804 bytes
Database Buffers          754974720 bytes
Redo Buffers             13033472 bytes
数据库装载完毕。
数据库已经打开。

查看监听端口。如果没有配置netca网络监听端口,需要使用系统自带的Net Cofiguration Assistant进行配置。


相关 教程

12c OCM升级培训

12c OCM升级培训

11g OCM于2019年12月31日退役,12c OCM成为目前最新、最高版本的Oracle DBA认证。含金量无出其右。}

11g OCP培训

11g OCP培训

11g OCP培训}

OCJP认证培训

OCJP认证培训

OCJP认证培训}

网上报名 免费试学+报名即可领取免费资料

收缩

QQ在线客服

  • 刘老师
  • 在线咨询
  • 麦老师
  • 在线咨询
  • 黄老师
  • 在线咨询
在线免费试课
获取免费课程视频资料