数据库为什么会损坏呢?

数据库为什么会损坏呢?,第1张

数据库损坏常见的原因有以下几种:

1、事务日志问题。比如事务日志文件丢失;事务日志文件在 *** 作过程中被误删;事务日志文件被损坏以及事务日志文件过大,导致硬盘的空间不足等;

2、意外掉电或异常强制关机,造成数据文件损坏,主要数据库正在被读写过程中异常关机;

3、数据库的表被破坏或索引等被破坏,或者数据库的其他对象被破坏或丢失等;

4、删除了数据文件,或者更改了它的名字;

5、硬盘损坏,造成数据和日志文件读写错误:

(1)感染病毒或者其他人为因素破坏;

(2)其他文件读写、存储等原因

1、索引列有函数处理或隐式转换,不走索引

2、索引列倾斜,个别值查询时,走索引代价比走全表扫描高,所以不走索引

3、索引列没有限制 not null,索引不存储空值,如果不限制索引列是not null,oracle会认为索引列有可能存在空值,所以不会按照索引计算)

可能由病毒引起。

在文件描述符关掉以后,继续使用这个文件描述符访问

打开文件,获取文件描述符fd(其实是一个整形)

关闭文件

打开sqlite文件,获取文件描述符(碰巧也是)fd

另一个线程继续使用fd,写文件

sqlite文件被损坏

在事务进行过程中,进行数据库备份或恢复

在数据库事务过程中,数据库文件既包括老的内容,也包括新的内容。如果此时拷贝这个文件,数据库可能会被损坏。 备份数据库最好使用sqlite的api。

删除日志文件

日志文件中包括rollback需要的信息。删除以后,无法正确回滚,有可能会导致数据库损坏。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6668229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存