老是出现错误1562怎么办?help me!
我最近写的程序每当更新,插入的数据量过大时就会报错:1562。
01562, 00000, "failed to extend rollback segment number %s"
// *Cause: Failure occurred when trying to extend rollback segment
// *Action: This is normally followed by another error message that caused
// the failure. You may take the rollback segment offline to perform
// maintainence. Use the alter rollback segment offline command
// to take the rollback segment offline.
我查看过解释,应该是说回滚段空间不够了,我现在更新,插入的数据量大概有500万条左右,我现在分配的回滚段是1000M,这样还不够吗?那么要分配多大的回滚段才够用呢?还是在写程序时我应该注意些其他的什么问题呢?
问题点数:100、回复次数:13Top
1 楼liyijin(斯夫)回复于 2002-03-28 15:32:27 得分 0
一次事务的提交的数据量太大,为此事务指定一个大回滚段
如果可能最好是分多次提交就可以了,这样就是每个回滚段都很小都没有什么问题Top
2 楼liyijin(斯夫)回复于 2002-03-28 15:33:00 得分 0
一个事务只可以用一个回滚段Top
3 楼jornk(咸鱼)回复于 2002-03-28 15:44:10 得分 0
1.减小你的事务,
2.为你的事务指定一个大一点的回滚段Top
4 楼danyh(但凡)回复于 2002-03-28 16:05:27 得分 0
可是实际情况是必须要同时一次性提交,不能分成多次.
而且1000M也不算小了吧.Top
5 楼fangss()回复于 2002-03-28 17:45:42 得分 0
你的数据量太大了呀,再设置大点吧,大方点~~~Top
6 楼xzou(亡狼补齿)回复于 2002-03-28 18:09:02 得分 0
create public rollback segment rb01 storage(initial 1000m next 10m);
先不要把rb01online
你在插入前需要先使用
alter rollback segment rb01 online;
set transaction use rollback segment rb01;
...........................insert ...........
commit;
alter rollback segment rb01 offline;
这样不行吗?Top
7 楼danyh(但凡)回复于 2002-03-28 20:10:28 得分 0
这样也许可以,但是可能当时会有其他进程在使用回滚段,因此这样作又不行了。Top
8 楼KingSunSha(弱水三千)回复于 2002-03-28 20:45:35 得分 0
小狼说的应该是最好的办法了,为大的事务临时指定回滚段。
总觉得这么大的任务的时候不应该和别的任务同时执行Top
9 楼offsider(烤鸡翅膀,我最爱吃)回复于 2002-03-28 22:45:15 得分 0
怎么可能必须同时insert 500万条呢?
想个办法控制一下,每10万条commit一下,就不会有这个问题了。Top
10 楼xzou(亡狼补齿)回复于 2002-03-29 09:37:30 得分 0
to danyh:
就是让你先做你个大的回滚段,先让他处于offline状态,然后当你使用大事务时再将其online,然后指定你的事务使用该回滚段,这样已经是最好的方法了。但是online时也不能保证别人不用,但至少保证尽可能少的事务使用此回滚段。
难道你的方法保证不会有其他进程在使用回滚段?那请说出来Top
11 楼danyh(但凡)回复于 2002-03-29 14:00:05 得分 0
我明白你们的意思了,现在我又分配了1000M的回滚段,我再测试看看效果如何吧。而且我发现一个问题,就是数据库刚启动的时候就已经有480M的回滚段被占用了,这是为什么?而且回滚段的释放很慢,每次都要强制释放才行。
ps:to xzou,哈哈,我可不知道什么不许其他进程使用某个回滚段的方法。Top
12 楼mycode(不写代码)回复于 2002-03-30 18:33:08 得分 0
还是不要一次提交太多的事务,将一个大的事务分割成多个小的事务来处理。Top
13 楼dan_dan()回复于 2002-04-02 19:34:50 得分 100
2G的回滚段空间对于500万的数据量是不够的,还是加点吧!Top




