说明:
由于系统采用ID取模分表法进行Oracle数据存储,某日发现Oracle数据库中缺少对应的几张业务数据表,遂进行相关问题查询,简单记录一下排查思路;
- 由于我们代码中实现思路是判断如果没有对应的表会自动创建,所以首先需要查询一下缺失数据库表的创建时间
SELECT * FROM dba_objects where OBJECT_NAME LIKE ‘LOG_5%’ AND owner = ‘Geoff’;
- 通过查询Oracle执行SQL历史记录,数据库表的删除时间段
select * from v$sqlarea b
where b.FIRST_LOAD_TIME between ‘2022-05-31/21:30:00’ and’2022-05-31/23:30:00’`
order by b.FIRST_LOAD_TIME;
where b.FIRST_LOAD_TIME between ‘2022-05-31/21:30:00’ and’2022-05-31/23:30:00’`
order by b.FIRST_LOAD_TIME;
- 通过上述SQL还是无法查询具体表的删除时间,故查询当前用户的数据库回收站
SELECT * FROM recyclebin_temp WHERE TYPE = ‘TABLE’ ORDER BY droptime DESC;
- 通过回收站查询到相应的已删除数据库表,并将数据库已删除表恢复至删除前,包含表中数据
flashback TABLE LOG_505 to before drop RENAME to LOG_505_temp ;
- 因为数据恢复时,系统已新建数据库表并产生数据,所以需要将新老数据都恢复到数据库表中
–查询当前数据库表中的最大ID
SELECT ID FROM WORK_DUTY_LOG_505_temp ORDER BY ID DESC;
–修改序列步长至最大ID
ALTER sequence SEQ_WORK_DUTY_LOG_505 INCREMENT BY 3538;
SELECT SEQ_WORK_DUTY_LOG_505.nextval FROM dual;
–恢复序列步长为默认值1
ALTER sequence SEQ_WORK_DUTY_LOG_505 INCREMENT BY 1;
SELECT ID FROM WORK_DUTY_LOG_505_temp ORDER BY ID DESC;
–修改序列步长至最大ID
ALTER sequence SEQ_WORK_DUTY_LOG_505 INCREMENT BY 3538;
SELECT SEQ_WORK_DUTY_LOG_505.nextval FROM dual;
–恢复序列步长为默认值1
ALTER sequence SEQ_WORK_DUTY_LOG_505 INCREMENT BY 1;
–创建触发器,并将表中数据手动插入到从回收站恢复的临时表中
CREATE OR REPLACE TRIGGER T_WORK_DUTY_LOG_505 BEFORE INSERT ON WORK_DUTY_LOG_505_temp REFERENCING OLD AS “OLD” NEW AS “NEW” FOR EACH ROW
begin
select SEQ_WORK_DUTY_LOG_505.Nextval into:new.ID from dual; –base_login_user_id序列名称 –ID给ID装上序列
end;
–删除触发器
DROP TRIGGER T_WORK_DUTY_LOG_505;
–将临时表中整合完成的数据恢复至原数据库表中
INSERT INTO WORK_DUTY_LOG_505 SELECT * FROM WORK_DUTY_LOG_505_temp
–查询确认
SELECT * FROM WORK_DUTY_LOG_505 ORDER BY ID DESC;
写在最后:
通过后续排查,发现可能是因为代码中判断相关代码查询结果有误,导致相关表被误删除,暂时通过注释下方删除表结构代码避免问题复发,相关原因后续继续排查
总结
到此这篇关于Oracle数据库丢失表排查思路的文章就介绍到这了,更多相关Oracle丢失表排查内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
沟通购买:QQ咨询 淘宝咨询 微信咨询 淘宝店铺
版权申明及联系服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
沟通购买:QQ咨询 淘宝咨询 微信咨询 淘宝店铺
本站部分文章参考或来源于网络,如有侵权请联系站长。本站提供相关远程技术服务,有需要可联系QQ
数据库远程运维 » 数据恢复之:Oracle数据库丢失表排查思路实战记录
