码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 11g 数据库迁移

时间:2017-08-01 21:50:29      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:oracel

由于服务器更换,或者硬盘损坏等问题,在有些场景下,我们需要对数据库进行迁移。

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

除了控制文件的路径是正常的,其他的文件路径都需要修改,将原来的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
数据库装载完毕。
数据库已经打开。



本文出自 “Trying” 博客,请务必保留此出处http://tryingstuff.blog.51cto.com/4603492/1952754

Oracle 11g 数据库迁移

标签:oracel

原文地址:http://tryingstuff.blog.51cto.com/4603492/1952754

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!