暂无图片
redo
我来答
分享
你是小白兔么?
2019-12-20
redo

删除数据的时候生成大量的归档日志,归档满了以后数据库没执行完删除任务,请问这种情况怎么处理?可以在删除数据的时候加什么参数不生成redo之类的吗?

我来答
添加附件
收藏
分享
问题补充
11条回答
默认
最新
zouxiang

不晓得这样可以解决问题不:
1).找个非业务时段。
2).创建另一个表B。
3).将所需保留的数据INSERT(NOLOGGING)到新表B中。
4).RENAME原始表A到A_BAK。
5).RENAME表B为业务表。

暂无图片 评论
暂无图片 有用 0
你是小白兔么?

谢谢专家

暂无图片 评论
暂无图片 有用 0
你是小白兔么?

请问专家,可不可以在没有业务的时候先设置成非归档模式,然后删除完了以后再恢复成归档模式?

暂无图片 评论
暂无图片 有用 0
Ruian

归档和非归档模式的切换是需要重启数据库的,你总不能频繁启停数据库吧。再说了,这么做有什么意义

暂无图片 评论
暂无图片 有用 0
你是小白兔么?

我明白了,谢谢专家

暂无图片 评论
暂无图片 有用 0
Ruian

你是用delete删除数据吧,delete会产生大量redo和归档,建议考虑用其他方式删除数据

暂无图片 评论
暂无图片 有用 0
你是小白兔么?

是用的delete,因为只是删除一部分数据,好像不能用truncate,我一次少删除一点吧

暂无图片 评论
暂无图片 有用 0
范计杰

看你要删除数据在表中的占比,可以创建新表,把需要保留的数据insert到新表,rename/drop旧表,当然INSERT到新表时可以加nologging减少REDO。

暂无图片 评论
暂无图片 有用 0
你是小白兔么?

收到,谢谢专家!

暂无图片 评论
暂无图片 有用 0
文成

也可以写个存储过程 根据rowid删除数据
当然感觉你这个库可能不是很重要,不然也不会存在归档满了的情况
所以 建议关闭归档,配置每天备份一次库的任务

暂无图片 评论
暂无图片 有用 0
你是小白兔么?

收发,谢谢专家

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏