暂无图片
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
打赏 0
你是小白兔么?

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

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

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

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

我明白了,谢谢专家

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

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

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

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

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

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

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

收到,谢谢专家!

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

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

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

收发,谢谢专家

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle 怎么去掉varchar2字段类型小数点后面无用的0?
回答 3
updatetablesetcolatochar(tonumber(cola));
oracle启库
回答 1
查看是不是bin目录下的oracle文件权限问题。参考知识库搜索ORA01078:failureinprocessingsystemparameterswhensrvctlstartinstance:
复合索引与单一索引
回答 2
我个人感觉,有些关键的信息要具体化。比如日常用这个SQL,where条件后筛出的记录大概是多少条,如果只筛出1000条,和筛出10万条,采取的策略就应该不一样。
求金额转大写的PL/SQL function
回答 2
代码中包含了边界异常情况和错误处理。CREATEORREPLACEFUNCTIONamounttochinese(numamountINNUMBER)RETURNVARCHAR2ISvchinesen
Oracle BBED明明查出了BLOCK号,为何会提示OUT OF RANGE
回答 3
已采纳
数据块号不正确:可能是由于您输入的数据块号不正确,导致查询结果不存在。请确保您输入的数据块号是正确的。数据块不在当前数据文件中:可能是由于您查询的数据块不在当前数据文件中,导致查询结果不存在。请确保您
Oracle.EntityFrameworkCore 访问oracle,如何查询另个schema的表? 测试使用sql没问题,但用ef core就会提示表或视图不存在
回答 1
在要查询的表前面加上schema.,或者建立同义词,当然两种方式的前提是你程序的数据库用户要有这个表的查询权限
Oracle RAC 10.2.0.4 经常hung死
回答 9
上传附件:201911012.rar
大家都在用什么工具监控oracle?
回答 9
我这边有一套针对oracle的监控软件。
Oracle 统计一天每小时数据增长量的sql
回答 2
已采纳
建立一个作业,每隔一个小时把表空间大小的数据存入一张表,之后查这张表就行了。另外如果只是查最近几天的,oracle有一张表有记录selectb.name,a.TABLESPACESIZE,a.TABL
LOB字段的RETENTION属性为空
回答 3
lob字段这样查不到
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~