123
返回列表 发新帖
楼主: lcl_yqj

Oracle8.0.5中dbms_repair包问题

[复制链接]
论坛徽章:
0
21#
 楼主| 发表于 2005-1-5 15:05 | 只看该作者
最初由 yangtingkun 发布
[B]查询一下rowid或者这个值:
select object_id, data_object_id from user_objects where object_name = 'TPIMAGE' [/B]

刚才我是在internal用户下select的,然后没有选出数据
现在我在发生问题的那个用户
select object_id,data_object_id from user_objects where object_name='TPIMAGE';
OBJECT_ID       DATA_OBJECT_ID
-------------------       -------------------------------
           2003                             2003

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
22#
发表于 2005-1-5 15:21 | 只看该作者
最初由 lcl_yqj 发布
[B]
刚才我是在internal用户下select的,然后没有选出数据
现在我在发生问题的那个用户
select object_id,data_object_id from user_objects where object_name='TPIMAGE';
OBJECT_ID       DATA_OBJECT_ID
-------------------       -------------------------------
           2003                             2003 [/B]




你都知道是这个表的问题了,还找它干吗?

把表里好的块的数据倒出来吧:
找个可用的索引

create table good_table
        as
        select * from bad_table where rowid not in
        ( select /*+ index(bad_table, any_index) */  rowid   
        from bad_table where substr( rowid, 1, 8 ) = 157735)

使用道具 举报

回复
论坛徽章:
0
23#
 楼主| 发表于 2005-1-5 15:29 | 只看该作者
最初由 abcd 发布
[B]



你都知道是这个表的问题了,还找它干吗?

把表里好的块的数据倒出来吧:
找个可用的索引

create table good_table
        as
        select * from bad_table where rowid not in
        ( select /*+ index(bad_table, any_index) */  rowid   
        from bad_table where substr( rowid, 1, 8 ) = 157735) [/B]

我是知道这个表,但是这个表中有long raw数据类型,用你说的这种方法根本不可能把数据插入到好的表里面,如果是9I就可以用to_lob函数,但是8.0.5我就不知道用什么来把那些二进制数据倒出来了?

使用道具 举报

回复
论坛徽章:
226
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2013-01-12 23:45:222013年新春福章
日期:2013-02-25 14:51:24问答徽章
日期:2013-10-17 18:06:40优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
24#
发表于 2005-1-5 15:30 | 只看该作者
try this

select /*+ ROWID(TPIMAGE) */ * from TPIMAGE
where rowid >= 'AAAAfTAAJAAAmgoAAA'
or rowid < 'AAAAfTAAJAAAmgnAAA';

使用道具 举报

回复
论坛徽章:
0
25#
 楼主| 发表于 2005-1-6 08:32 | 只看该作者
最初由 yangtingkun 发布
[B]try this

select /*+ ROWID(TPIMAGE) */ * from TPIMAGE
where rowid >= 'AAAAfTAAJAAAmgoAAA'
or rowid < 'AAAAfTAAJAAAmgnAAA'; [/B]

AAAAfTAAJAAAmgnAAA和AAAAfTAAJAAAmgoAAA是根据什么来的啊?

使用道具 举报

回复
论坛徽章:
226
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2013-01-12 23:45:222013年新春福章
日期:2013-02-25 14:51:24问答徽章
日期:2013-10-17 18:06:40优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
26#
发表于 2005-1-6 09:17 | 只看该作者
根据你给出的object_date_id和出错的文件号及BLOCK号。

具体ROWID含义可以参考:http://blog.itpub.net/post/468/11046

使用道具 举报

回复
论坛徽章:
0
27#
 楼主| 发表于 2005-1-6 12:14 | 只看该作者
谢谢,受益非浅啊!
不过我是用这种方法把坏块之外的数据导出来的
1、先关闭数据库
2、修改init<sid>.ini文件,增加
event=" 10231 trace name context forever,level 10"
3、启动数据库 startup restrict;
4、用plsqldevelop导出tpimage表里的所有数据
5、shutdown immediate;
6、在ini文件里删掉event=" 10231 trace name context forever,level 10"
7、startup;
8、删除tpimage然后重建
9、导入数据

使用道具 举报

回复
论坛徽章:
226
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2013-01-12 23:45:222013年新春福章
日期:2013-02-25 14:51:24问答徽章
日期:2013-10-17 18:06:40优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
28#
发表于 2005-1-6 12:19 | 只看该作者
最初由 lcl_yqj 发布
[B]谢谢,受益非浅啊!
不过我是用这种方法把坏块之外的数据导出来的
1、先关闭数据库
2、修改init<sid>.ini文件,增加
event=" 10231 trace name context forever,level 10"
3、启动数据库 startup restrict;
4、用plsqldevelop导出tpimage表里的所有数据
5、shutdown immediate;
6、在ini文件里删掉event=" 10231 trace name context forever,level 10"
7、startup;
8、删除tpimage然后重建
9、导入数据 [/B]


你可以对比一下两种方法是否得到相同的记录

使用道具 举报

回复
论坛徽章:
0
29#
 楼主| 发表于 2005-1-6 14:17 | 只看该作者
好的,我研究比较一下,不过真的要感谢你让我知道了好多oracle的东西!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表