如何移动数据文件?

上一篇 / 下一篇  2008-06-19 00:49:52 / 不允许评论 / 个人分类:《Oracle数据库精讲与疑难解析》

Task(任务)

把数据文件PRODUCT2E:\ORACLE102\DATDAT\WM\移动到E:\ORACLE102\SECOND\

 

Cause(原理)  

ORACLE中,允许移动数据文件,允许把一个数据文件从一个物理位置移动到另外一个物理位置。移动数据文件包括两个部分,其一是把数据文件物理上从一个位置移动到另外一个位置,其二是修改数据文件在控制文件中的信息,以反映数据文件的新位置。

 

Action(方法)    

u      方法一:数据库打开(OPEN)的情况下,执行下面的步骤:

Step01查询数据文件的当前位置。

SQL> select file_name,tablespace_name from DBA_DATA_FILES;

FILE_NAME                                                       TABLESPACE_NAME

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

E:\ORACLE102\DATDAT\WM\USERS01.DBF                       USERS

E:\ORACLE102\DATDAT\WM\SYSAUX01.DBF                      SYSAUX

E:\ORACLE102\DATDAT\WM\UNDOTBS01.DBF                     UNDOTBS1

E:\ORACLE102\DATDAT\WM\SYSTEM01.DBF                      SYSTEM

E:\ORACLE102\DATDAT\WM\PRODUCT1                          PRODUCT

E:\ORACLE102\DATDAT\WM\BBC1.ORA                          TBSK2

E:\ORACLE102\DATDAT\WM\BBC2.ORA                          TBSK2

E:\ORACLE102\DATDAT\WM\PRODUCT2                          PRODUCT

8 rows selected

数据文件PRODUCT2的当前位置是E:\ORACLE102\DATDAT\WM\,数据文件PRODUCT2属于表空间PRODUCT

Step02使数据文件PRODUCT2所属的表空间PRODUCT离线(offline

SQL> ALTER TABLESPACE PRODUCT OFFLINENORMAL;

Tablespace altered

Step03使用操作系统命令把数据文件PRODUCT2E:\ORACLE102\DATDAT\WM\移动到

E:\ORACLE102\SECOND

Step04修改数据文件PRODUCT2在控制文件中的信息。

SQL> ALTER TABLESPACE PRODUCT

 2 RENAME DATAFILE 'E:\ORACLE102\DATDAT\WM\PRODUCT2'

 3 TO 'E:\ORACLE102\SECOND\PRODUCT2';

Tablespace altered

修改控制文件,把数据文件PRODUCT2的位置改成E:\ORACLE102\SECOND

Step05使表空间PRODUCT重新在线(ONLINE)。

SQL> ALTER TABLESPACE PRODUCT ONLINE;

Tablespace altered

Step06再次查询数据文件的信息。

SQL> select file_name,tablespace_name from DBA_DATA_FILES;

FILE_NAME                                                TABLESPACE_NAME

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

......

E:\ORACLE102\SECOND\PRODUCT2                          PRODUCT

......

从输出可以看出,数据文件PRODUCT2的位置已经从E:\ORACLE102\DATDAT\WM\改成

E:\ORACLE102\SECOND

Step07立即备份数据库。

〖小贴士(Tip)〗

当数据库的物理结构发生变化时,一定要备份数据库。

 

u      方法二:在数据库关闭的情况,执行下面的步骤。

Step01把数据库启动到MOUNT状态。

SQL> startup mount

ORACLE instance started.

 

Total System Global Area 289406976 bytes

Fixed Size                 1248600 bytes

Variable Size            150995624 bytes

Database Buffers         134217728 bytes

Redo Buffers               2945024 bytes

Database mounted.

SQL>

Step02查询数据文件的当前位置。

SQL> select name from v$datafile;

NAME

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

E:\ORACLE102\DATDAT\WM\SYSTEM01.DBF

E:\ORACLE102\DATDAT\WM\UNDOTBS01.DBF

E:\ORACLE102\DATDAT\WM\SYSAUX01.DBF

E:\ORACLE102\DATDAT\WM\USERS01.DBF

E:\ORACLE102\DATDAT\WM\PRODUCT1

E:\ORACLE102\DATDAT\WM\BBC1.ORA

E:\ORACLE102\DATDAT\WM\BBC2.ORA

E:\ORACLE102\DATDAT\WM\PRODUCT2

8 rows selected.

Step03使用操作系统命令把数据文件PRODUCT2E:\ORACLE102\DATDAT\WM\移动到

E:\ORACLE102\SECOND

Step04修改控制文件。

SQL> ALTER DATABASE

 2 RENAME FILE 'E:\ORACLE102\DATDAT\WM\PRODUCT2'

 3 TO ' E:\ ORACLE102\SECOND\PRODUCT2 ';

Database altered.

修改控制文件,把数据文件PRODUCT2的位置从E:\ORACLE102\DATDAT\WM\改变成

E:\ORACLE102\SECOND

Step05查询字典视图,看看数据文件的修改是否正确。

SQL> select name from v$datafile;

NAME

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

E:\ORACLE102\DATDAT\WM\SYSTEM01.DBF

E:\ORACLE102\DATDAT\WM\UNDOTBS01.DBF

E:\ORACLE102\DATDAT\WM\SYSAUX01.DBF

E:\ORACLE102\DATDAT\WM\USERS01.DBF

E:\ORACLE102\DATDAT\WM\PRODUCT1

E:\ORACLE102\DATDAT\WM\BBC1.ORA

E:\ORACLE102\DATDAT\WM\BBC2.ORA

E:\ORACLE102\SECOND\PRODUCT2

8 rows selected.

从输出可以看出,数据文件PRODUCT2的位置已经被改变成E:\ORACLE102\SECOND

Step06打开数据库。

SQL> alter database open;

Database altered.

Step07立即备份数据库。

〖小贴士(Tip)〗

数据库的物理结构发生变化的时,一定要备份数据库。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-16  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 7202
  • 日志数: 48
  • 文件数: 1
  • 建立时间: 2008-04-10
  • 更新时间: 2008-10-08

RSS订阅

Open Toolbar