Oracle更换表空间 blob字段带来的问题

php中文网
发布: 2016-06-07 17:22:33
原创
1369人浏览过

因为,blob字段是存放二进制大数据的字段,最长可存放4GB。因此它的存放方式也与其它字段不一样。blob在存储时,只是在有里存储一

场景如下:

原有表数据全部存放在users表空间下,现在要将其更换表空间,到ntbs表空间下。

移动的时候,含有blob,clob,long类型的表会更换失败,这是为什么?

因为,blob字段是存放二进制大数据的字段,最长可存放4GB。因此它的存放方式也与其它字段不一样。blob在存储时,只是在有里存储一个数据指针,而真正的数据是与表的存储分离,,放在另一块地址空间中的。当然这块地址空间可能和表在一个表空间内也可以是两个独立的表空间。但毕竟是两个不同存储空间。

所以上面的场景中,blob字段的真实数据是存放在users表空间的,而使用的用户是没有操作users表空间权限的,只有操作ntbs表空间的权限。

1、解决方法:

给该用户分配users表空间的权限,但这样就达不到更换表空间的作用了,因为blob字段的数据仍然放在users表空间。

美间AI
美间AI

美间AI:让设计更简单

美间AI 45
查看详情 美间AI

所以可以这样,执行:alter table tname move tablespace ntbs blob (col_name) store as(tablesapce ntbs);

这样就将含有blob的表tname中的字段col_name的数据更换到表空间ntbs上了。

2、如果是不同机器间更换,如从A机器users表空间导出的dmp文件,导入到B机器的ntbs表空间

那么这时可以先在B机器的ntbs表空间上把含有blob字段的表建立出来,建立后,实际上含有blob的字段的真实数据就存放在ntbs表空间上了,之后再执行imp,就可以成功了。

clob,long类型也是一样的道理。

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号