如何将Oracle数据库数据文件迁移到其它目录

如何将Oracle数据库数据文件迁移到其它目录,第1张

Oracle更改数据文件位置

方法一:offline表空间

1、offline表空间:alter tablespace tablespace_name offline;

2、复制数据文件到新的目录;

3、rename修改表空间,并修改控制文件;

4、online表空间;

1、offline表空间zerone

SQL>select name from v$datafile

NAME

--------------------------------------------------------------------------------

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZERONE01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\RMANTS.DBF

已选择7行。

SQL>alter tablespace zerone offline

表空间已更改。

2、复制数据文件到新的目录

复制数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZERONE01.DBF到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ZERONE01.DBF。

3、rename修改表空间数据文件为新的位置,并修改控制文件

SQL>alter tablespace zerone rename datafile 'c:\oracle\product\10.2.0\oradata\zerone01.dbf' to 'c:\oracle\product\10.2.0\oradata\orcl\zerone01.dbf'

表空间已更改。

4、online表空间

SQL>alter tablespace zerone online

表空间已更改。

SQL>select name from v$datafile

NAME

--------------------------------------------------------------------------------

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ZERONE01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\RMANTS.DBF

已选择7行。

SQL>select file_name,tablespace_name from dba_data_files where tablespace_name='ZERONE'

FILE_NAME TABLESPACE_NAME

------------------------------------------------------------------------------------------------

ZERONE C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ZERONE01.DBF

方法二:SQL修改数据文件位置

1、关闭数据库

2、复制数据文件到新的位置;

3、启动数据库到mount状态;

4、通过SQL修改数据文件位置;

5、打开数据库;

1、关闭数据库

SQL>select name from v$datafile

NAME

--------------------------------------------------------------------------------

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ZERONE01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\RMANTS.DBF

已选择7行。

SQL>shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

2、复制数据文件到新的位置;

将数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ZERONE01.DBF复制到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZERONE01.DBF。

3、启动数据库到mount状态;

SQL>startup mount

ORACLE 例程已经启动。

Total System Global Area 167772160 bytes

Fixed Size 1247900 bytes

Variable Size 96470372 bytes

Database Buffers 67108864 bytes

Redo Buffers 2945024 bytes

数据库装载完毕。

4、通过SQL修改数据文件位置;

SQL>alter database rename file 'c:\oracle\product\10.2.0\oradata\orcl\zerone01.dbf' to 'c:\oracle\product\10.2.0\oradata\zerone01.dbf'

数据库已更改。

5、打开数据库;

SQL>alter database open

数据库已更改。

SQL>select name from v$datafile

NAME

--------------------------------------------------------------------------------

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZERONE01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\RMANTS.DBF

已选择7行。

SQL>select file_name,tablespace_name from dba_data_files where tablespace_name='ZERONE'

FILE_NAME TABLESPACE_NAME

-------------------------------------------------------------------------------------------------

ZERONE C:\ORACLE\PRODUCT\10.2.0\ORADATA\ZERONE01.DBF

1、创建pfile

create pfile from spfile

2、关闭数据库

shutdown immediate

3、移动文件,并且准备一个文件列表(控制文件、数据文件、联机日志文件)。

4、记事本修改pfile内容,将控制文件位置改为新文件位置。

5、使用修改后的pfile启动到mount状态

startup mount pfile='xxxx'

6、逐个修改数据文件位置

alter database rename file 'D:\oracle\product\10.2.0\oradata\orcl\system01.dbf' to 'e:\xxx\system01.dbf'

...

注:临时表空间的文件可以不用管,回头删了重新创建即可。

7、打开数据库。

alter database open

8、根据新的pfile重新创建spfile

create spfile from pfile='xxxx'

9、完毕。

如果你熟悉Oracle的架构,那么答案是在A SHutDown Instance COPY所有的密码文件,pfile。spfile,建立一样的instanse用的目录, 所有数据文件,redo文件,控制文件到B机器上,用ORADIM建立服务(假设是Windows) 启动 完成如果你不熟悉ORACLE的架构1 在B机器上按你A机器上一样的名字,地方 方法 建立一个instance 2 AB两台机器的instance全部关闭3 A机器上的所有数据文件,redo文件,控制文件COPY到B机器 覆盖4 启动B数据库 OK 完成


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11699643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存