eygle.com   eygle.com
eygle.com  
 

« 如何启动或关闭数据库的归档(ARCHIVELOG)模式 | Blog首页 | Dataguard配置Step by Step »

Oracle HowTo:在非归档模式下如何更改数据文件位置

作者:eygle |【转载时请以超链接形式标明文章和作者信息及本声明
链接:
站内相关文章|Related Articles
如果数据库处于非归档模式下,可以通过如下步骤更改文件路径:
1.关闭数据库
2.系统级进行文件复制
3.启动数据库到mount状态
3.通过SQL修改数据文件位置
4.打开数据库

以下是实际操作的步骤示范:

1.数据库处于非归档模式
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Enabled
Archive destination            /opt/oracle/oradata/conner/archive
Oldest online log sequence     150
Current log sequence           153

2.需要移动test.dbf文件
SQL> select name from v$datafile;

NAME
------------------------------------------------------------
/opt/oracle/oradata/conner/system01.dbf
/opt/oracle/oradata/conner/undotbs01.dbf
/opt/oracle/oradata/conner/users01.dbf
/opt/oracle/test.dbf

3.关闭数据库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

4.复制文件到新的位置
SQL> ! cp /opt/oracle/test.dbf /opt/oracle/oradata/conner/test.dbf 

5.启动数据库到mount状态
SQL> startup mount;
ORACLE instance started.

Total System Global Area  101782828 bytes
Fixed Size                   451884 bytes
Variable Size              37748736 bytes
Database Buffers           62914560 bytes
Redo Buffers                 667648 bytes
Database mounted.
SQL> select name from v$datafile;

NAME
-----------------------------------------------------------
/opt/oracle/oradata/conner/system01.dbf
/opt/oracle/oradata/conner/undotbs01.dbf
/opt/oracle/oradata/conner/users01.dbf
/opt/oracle/test.dbf

6.修改文件位置
SQL> alter database rename file '/opt/oracle/test.dbf' to '/opt/oracle/oradata/conner/test.dbf';

Database altered.

SQL> alter database open;

Database altered.


SQL> select name from v$datafile;

NAME
----------------------------------------------------------------
/opt/oracle/oradata/conner/system01.dbf
/opt/oracle/oradata/conner/undotbs01.dbf
/opt/oracle/oradata/conner/users01.dbf
/opt/oracle/oradata/conner/test.dbf

SQL> 


历史上的今天...
      >> 2006-10-15文章:
------
这篇 【Oracle HowTo:在非归档模式下如何更改数据文件位置】来自 www.eygle.com | CSDN技术网摘| del.icio.us|365Key

By eygle on 2004-10-15 16:04 | Comments (4) | Posted to HowTo | Edit |Pageviews:

相关文章 随机文章
How to simulate block corruption with BBED?
如何使用DBMS_LOB从文件中加载CLOB数据
进京两周年记-Eygle在北京的生活之七
《深度解析Oracle》之《从等待分析开始》
关于数据文件头信息记录
搜索本站:

留言 (4)

我的一点看法.
不论是否在归档模式,都可以通过离线表空间实现数据文件的位置改变:
1.alter tablespace xxx offline;
2.!cp /opt/oracle/test.dbf /opt/oracle/oradata/conner/test.dbf
3.alter tablespace xxx rename datafile '/opt/oracle/test.dbf' to '/opt/oracle/oradata/conner/test.dbf';
4.alter tablespace xxx online;

Posted by: wf at November 12, 2005 6:30 PM

是的,有多种方法可以达到同样的目的,最好的方法其实是设置表空间只读,然后移动,在在线系统中,可以减少对于运行系统的影响.

Posted by: eygle at November 12, 2005 8:38 PM

eygle,您好!非常感谢您办了这么好的一个网站,我在您的网站跟您学到了很多实用的知识.
您说,只读表空间可以移动其数据文件,可是我尝试并没有成功,为什么呢?

SQL> create tablespace test
2 datafile 'c:\oracle\test.dbf' size 10m autoextend
3 next 512k maxsize 20m;
next 512k maxsize 20m
*
ERROR 位于第 3 行:
ORA-02491: AUTOEXTEND 子句中缺少要求的关键字 ON 或 OFF


SQL> l3
3* next 512k maxsize 20m
SQL> c /next/on next
3* on next 512k maxsize 20m
SQL> run
1 create tablespace test
2 datafile 'c:\oracle\test.dbf' size 10m autoextend
3* on next 512k maxsize 20m

表空间已创建。

SQL> alter tablespace test read only;

表空间已更改。

--在这里复制数据文件到了其他位置.

SQL> alter tablespace test
2 rename datafile 'c:\oracle\test.dbf' to 'c:\oracle\oradata\heer\test.dbf';
alter tablespace test
*
ERROR 位于第 1 行:
ORA-01525: 重命名数据文件时出错
ORA-01121: 无法重命名数据库文件 11 - 文件在使用中或在恢复中
ORA-01110: 数据文件 11: 'C:\ORACLE\TEST.DBF'


SQL> l
1 alter tablespace test
2* rename datafile 'c:\oracle\test.dbf' to 'c:\oracle\oradata\heer\test.dbf'
SQL> run
1 alter tablespace test
2* rename datafile 'c:\oracle\test.dbf' to 'c:\oracle\oradata\heer\test.dbf'
alter tablespace test
*
ERROR 位于第 1 行:
ORA-01525: 重命名数据文件时出错
ORA-01121: 无法重命名数据库文件 11 - 文件在使用中或在恢复中
ORA-01110: 数据文件 11: 'C:\ORACLE\TEST.DBF'


SQL> alter tablespace test read write;

表空间已更改。

SQL>

Posted by: wf at November 12, 2005 10:35 PM

offline都是不可避免的,我补充了一篇Blog:

http://www.eygle.com/archives/2005/11/oracle_howto_move_datafile_readonly.html

Posted by: eygle at November 12, 2005 10:37 PM

发表留言:



Remember Me?
(输入验证码后方可评论,谢谢支持)



CopyRight © 2004 eygle.com, All rights reserved.