免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1547 | 回复: 2
打印 上一主题 下一主题

请教大家一个表空间移数据的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-28 11:07 |只看该作者 |倒序浏览
SQL> alter tablespace test_data1 offline;

Tablespace altered.

SQL> alter tablespace test_data1 rename datafile '/home/test/test/device1/DEFAULT/datafile/o1_mf_test_dat_2pq9dcm5_.dbf' to '/home/test/test/device/test_data1.dbf';
alter tablespace test_data1 rename datafile '/home/test/test/device1/DEFAULT/datafile/o1_mf_test_dat_2pq9dcm5_.dbf' to '/home/test/test/device/test_data1.dbf'
*
ERROR at line 1:
ORA-01525: error in renaming data files
ORA-01141: error renaming data file 3 - new file
'/home/test/test/device/test_data1.dbf' not found
ORA-01110: data file 3:
'/home/test/test/device1/DEFAULT/datafile/o1_mf_test_dat_2pq9dcm5_.dbf'
ORA-27037: unable to obtain file status
IBM AIX RISC System/6000 Error: 2: No such file or directory
Additional information: 3

然后我用oracle用户touch了/home/test/test/device/test_data1.dbf这个文件:
oracle@P690a:/home/oracle>touch /home/test/test/device/test_data1.dbf
oracle@P690a:/home/oracle>l /home/test/test/device/test_data1.dbf
-rw-r--r--   1 oracle   oracle            0 Nov 28 11:05 /home/test/test/device/test_data1.dbf


SQL> alter tablespace test_data1 rename datafile '/home/test/test/device1/DEFAULT/datafile/o1_mf_test_dat_2pq9dcm5_.dbf' to '/home/test/test/device/test_data1.dbf';

Tablespace altered.

SQL> alter tablespace test_data1 online;
alter tablespace test_data1 online
*
ERROR at line 1:
ORA-01115: IO error reading block from file 3 (block # 1)
ORA-01110: data file 3: '/home/test/test/device/test_data1.dbf'
ORA-27091: unable to queue I/O
ORA-27069: attempt to do I/O beyond the range of the file
Additional information: 1
Additional information: 1


请问大家我哪里出问题了,应该怎么解决.谢谢

论坛徽章:
0
2 [报告]
发表于 2006-11-28 11:19 |只看该作者
原来的数据文件是按照OMF方式来创建的,现在要重新命名或者更改数据文件的存放位置?

一般做法:

1. sqlplus / as sysdba
2. shutdown immediate
3. su - oracle
cp -p /home/test/test/device1/DEFAULT/datafile/o1_mf_test_dat_2pq9dcm5_.dbf  /home/test/test/device/test_data1.dbf
or
mv /home/test/test/device1/DEFAULT/datafile/o1_mf_test_dat_2pq9dcm5_.dbf  /home/test/test/device/test_data1.dbf
4. startup mount;
    alter database rename file '/home/test/test/device1/DEFAULT/datafile/o1_mf_test_dat_2pq9dcm5_.dbf' to '/home/test/test/device/test_data1.dbf';
    alter database open;

note:
使用alter tablespace rename datafile也可,一般步骤
1. alter tablespace xx offline normal;
2. su - oracle
    cp -p /home/test/test/device1/DEFAULT/datafile/o1_mf_test_dat_2pq9dcm5_.dbf  /home/test/test/device/test_data1.dbf
or
mv /home/test/test/device1/DEFAULT/datafile/o1_mf_test_dat_2pq9dcm5_.dbf  /home/test/test/device/test_data1.dbf
3. alter tablespace xxxx rename datafile ....
4. alter tablespace xxxx online;

oracle rename只是更新controlfile的相关信息,物理文件不会自动复制到新位置,所以要通过OS命令来复制或者移动文件。

论坛徽章:
0
3 [报告]
发表于 2006-11-28 11:22 |只看该作者
我看ORACLE的培训PPT里面讲的,原来只是把文件COPY过去,然后再修改他在数据库里面的定义而已.谢谢,我试试看.

在COPY之前一定要把tablespace offline了,否则之后做online的时候就会报错:
ORA-01113: file 3 needs media recovery

[ 本帖最后由 lickey-ji 于 2006-11-28 11:30 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP