免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1171 | 回复: 0

将ORACLE数据库数据文件迁移到其他目录 [复制链接]

论坛徽章:
0
发表于 2011-12-23 03:13 |显示全部楼层

将ORACLE数据库数据文件迁移到其他目录

一、系统环境:

操作系统:winXP

数据库版本: 9.2.0.1.0

数据库SIDtest

数据库为非归档模式

 

二、迁移过程

 

原数据库数据文件位置:C:\oracle\oradata\test

目标数据库数据文件位置:D:\Software\oradata\test

 

原来数据文件位置

      'C:\ORACLE\ORADATA\TEST\SYSTEM01.DBF',
      'C:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF',
      'C:\ORACLE\ORADATA\TEST\CWMLITE01.DBF',
      'C:\ORACLE\ORADATA\TEST\DRSYS01.DBF',
      'C:\ORACLE\ORADATA\TEST\EXAMPLE01.DBF',
      'C:\ORACLE\ORADATA\TEST\INDX01.DBF',
      'C:\ORACLE\ORADATA\TEST\ODM01.DBF',
      'C:\ORACLE\ORADATA\TEST\TOOLS01.DBF',
      'C:\ORACLE\ORADATA\TEST\USERS01.DBF',
      'C:\ORACLE\ORADATA\TEST\XDB01.DBF'

 

因为需要移动所有的数据文件,所以采用alter database方法

1、  首先shutdown数据库

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

   

2、  使用系统命令复制粘贴到指定目录

copy C:\oracle\oradata\test\* D:\Software\oradata\test\*

 

3、  启动数据库到mount状态,更改数据文件的位置

SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area  135338868 bytes

Fixed Size                   453492 bytes

Variable Size             109051904 bytes

Database Buffers           25165824 bytes

Redo Buffers                 667648 bytes

数据库装载完毕。

SQL>

 

alter database rename file 'C:\ORACLE\ORADATA\TEST\SYSTEM01.DBF',

                        'C:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF',

                        'C:\ORACLE\ORADATA\TEST\CWMLITE01.DBF',

                        'C:\ORACLE\ORADATA\TEST\DRSYS01.DBF',

                        'C:\ORACLE\ORADATA\TEST\EXAMPLE01.DBF',

                        'C:\ORACLE\ORADATA\TEST\INDX01.DBF',

                        'C:\ORACLE\ORADATA\TEST\ODM01.DBF',

                        'C:\ORACLE\ORADATA\TEST\TOOLS01.DBF',

                        'C:\ORACLE\ORADATA\TEST\USERS01.DBF',

                        'C:\ORACLE\ORADATA\TEST\XDB01.DBF' to

                        'D:\Software\oradata\test\SYSTEM01.DBF',

                        'D:\Software\oradata\test\UNDOTBS01.DBF',

                        'D:\Software\oradata\test\CWMLITE01.DBF',

                        'D:\Software\oradata\test\DRSYS01.DBF',

                        'D:\Software\oradata\test\EXAMPLE01.DBF',

                        'D:\Software\oradata\test\INDX01.DBF',

                        'D:\Software\oradata\test\ODM01.DBF',

                        'D:\Software\oradata\test\TOOLS01.DBF',

                        'D:\Software\oradata\test\USERS01.DBF',

                        'D:\Software\oradata\test\XDB01.DBF'

  

然后打开数据库

    SQL> alter database open;

数据库已更改。

 

SQL> select name from v$datafile;

 

NAME

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

 

D:\SOFTWARE\ORADATA\TEST\SYSTEM01.DBF

D:\SOFTWARE\ORADATA\TEST\UNDOTBS01.DBF

D:\SOFTWARE\ORADATA\TEST\CWMLITE01.DBF

D:\SOFTWARE\ORADATA\TEST\DRSYS01.DBF

D:\SOFTWARE\ORADATA\TEST\EXAMPLE01.DBF

D:\SOFTWARE\ORADATA\TEST\INDX01.DBF

D:\SOFTWARE\ORADATA\TEST\ODM01.DBF

D:\SOFTWARE\ORADATA\TEST\TOOLS01.DBF

D:\SOFTWARE\ORADATA\TEST\USERS01.DBF

D:\SOFTWARE\ORADATA\TEST\XDB01.DBF

 

已选择10行。

 

4、  更改联机日志文件

 

关闭数据库:shutdown immediate

alter          alter  database rename file 'C:\ORACLE\ORADATA\TEST\REDO01.LOG',

                                  'C:\ORACLE\ORADATA\TEST\REDO02.LOG',

                                  'C:\ORACLE\ORADATA\TEST\REDO03.LOG' to

                                  'D:\Software\oradata\test\REDO01.LOG',

                                  'D:\Software\oradata\test\REDO02.LOG',

                                  'D:\Software\oradata\test\REDO03.LOG'

 

   数据库已更改。

 

5、  修改inittest.ora里面的控制文件路径,inittest.ora文件是用create pfile from spfile创建的,目录在%ORACLE_HOME%\database下:

l         先关闭数据库:shutdown immediate

l         copy 控制文件到新目录中

l         启动到nomount状态,因为这时候没有打开控制文件,不会造成控制文件不一致情况:startup nomount

l         创建pfilecreate pfile from spfile

l         修改文件里面的控制文件信息

control_files='D:\Software\oradata\test\CONTROL01.CTL','D:\Software\oradata\test \CONTROL02.CTL',' D:\Software\oradata\test \CONTROL03.CTL'

l         修改后使用create spfile from pfile使修改后的文件生效

alter database mount看看能否打开控制文件

alter database open;打开数据库

 

6、  临时文件的移动

由于控制文件不记录临时文件的信息,所以不能使用alter database rename file命令完成,只能删除掉原来的再建立一个

     SQL> create temporary tablespace temp02 tempfile 'd:\software\oradata\test\temp0

                2.dbf' size 40M autoextend on extent management local uniform size 1M

 

     SQL> alter database default temporary tablespace temp02;

     SQL> drop tablespace temp including contents and datafiles;

   表空间已丢弃。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP