首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微信 SQLite 数据库修复实践

作者:guoling 1、前言 众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏,将会丢失用户多年的聊天记录。...而我们监控到现网的损坏率是0.02%,也就是每 1w 个用户就有 2 个会遇到数据库损坏。考虑到微信这么庞大的用户基数,这个损坏率就很严重了。更严重的是我们用的官方修复算法,修复成功率只有 30%。...损坏率高,修复率低,这两个问题都需要我们着手解决。...SQLite 使用 B+树 存储一个表,整个 SQLite 数据库就是这些 B+树 组成的森林。...这就是官方修复算法成功率这么低的原因,太依赖 master 表了。

9K53
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    微信 SQLite 数据库修复实践

    本文来自:微信移动客户端开发团队公众号(WeMobileDev) 1、前言 众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏...而我们监控到现网的损坏率是0.02%,也就是每 1w 个用户就有 2 个会遇到数据库损坏。考虑到微信这么庞大的用户基数,这个损坏率就很严重了。更严重的是我们用的官方修复算法,修复成功率只有 30%。...损坏率高,修复率低,这两个问题都需要我们着手解决。...3、SQLite 修复逻辑优化 3.1、master 表 首先我们来看 SQLite 的架构。SQLite 使用 B+树 存储一个表,整个 SQLite 数据库就是这些 B+树 组成的森林。...这就是官方修复算法成功率这么低的原因,太依赖 master 表了。

    1.8K40

    DNA损伤修复基因数据库

    DNA损伤与修复是生命活动中的重要现象,据统计,每个体细胞每天会受到至少六万次的DNA损伤,正是由于DNA损伤修复机制的存在,才能够随时纠正和修复这些损伤,保证生命活动的正常进行。...如果DNA损伤没有被正确修复,可能发生以下3种情况 细胞衰老,加速细胞衰老进程 细胞凋亡,DNA损伤过度无法修复时,会启动凋亡程序来清除损伤的细胞 细胞癌变,DNA损伤部分修复的情况下,细胞会出现各种基因组变异...NER 全称为nucleotide excision repair, 称之为核苷酸切除修复,识别异常的DNA双螺旋结构,针对连续多个碱基的受损进行修复。 3....双链断裂修复 DNA双链的断裂会引起基因组的序列的丢失和重排,是最严重的的DNA损伤,主要通过同源重组修复HR和非同源末端链接修复NHEJ两种方式来修复此类损伤。...给出了对应的基因名称,类别,染色体位置等详细信息,如果关注DNA损伤修复与肿瘤突变的关联,这个数据库值得参考。

    1.7K20

    sqlserver数据库置疑修复语句_sql2008数据库可疑解决方法

    SQL数据库修复的三大核心技术: 1、磁盘阵列分析重组技术; 2、数据库恢复与修复技术; 3、SCSI盘物理故障开盘技术。 至今已经成功恢复数百台服务器的SQL数据库,用户覆盖全国。...导致SQL数据库丢失的原因: 1、各种原因:误删除、误格式化、断电等造成的MS SQL SERVER数据库文件破坏。...3、SQL SERVER数据库遇到其他任何意外而丢失数据,比如文件头丢失、物理设备不能激活、部分数据库文件被覆盖等现象。...一旦SQL数据库出现故障,请您注意以下几点: 1、一般情况下,在确认数据库故障后,最好立即关闭电源,避免操作系统等生成的临时文件对数据库文件进行覆盖,因为通常数据库文件都较大,被覆盖的可能性极大。...3、千万不要相信别的数据恢复公司所谓“数据库文件不能修复”,有很多客户在我们这里数据库恢复成功,因为SQL数据库、RAID磁盘阵列这些高端数据恢复是我们最擅长的领域。

    98620

    mysql数据库置疑_SQL数据库置疑 823 824 错误修复 无法附加处理

    SQL数据库为什么会置疑? 这个原因有很多,例如阵列崩溃导致数据库文件页面损坏,病毒破坏,分区损坏。断电 非法关机等因素 怎样防止数据库置疑?...数据库立即改成完整模式,MDF放在A磁盘分区,LDF放在B磁盘分区,勤做备份和事务日志备份,如果数据库置疑你自己无法解决 完全可以通过老备份跟事务日志自己恢复数据。...‘false’ Go dbcc rebuild_log(‘数据库名字’,’D:\dataJIJIA\数据库名字.ldf’) 这样就数据库就OK了,下面在检测数据库有没有损坏 执行DBCC CHECKDB...(‘数据库名字’)如果出现红色的故障 立即修复之,修复不了 就找专业人士了。...这些错误可以通过老备份的页面还原,也可以重新生成校验值,或者直接去除掉页面指针 再次修复即可。

    1.7K20

    关于Mysql数据库的停止服务修复修复成功后的导入问题

    第六步 ---- 数据库莫名出现报错:服务器启动失败  今天我在用数据库的时候发现了一个很烦的问题,就是我的mysql数据库停止服务了。  ...后来我查看了很多书籍,以及官方的修改方案,同时页参考了很多大神的修复操作,我得出了一下的结论: 报错解决方案  第一步 我先首先进入我们存放mysql的文件夹中,进入后我们再进入data中,然后把里面的所有东西全部删除...第三步 重新注册我们数据库服务 mysqld -install 第四步 初始化我们重新注册的数据库 mysqld --initialize 这时,我们可以打开我们的mysql数据库的文件夹,可以看到data...第七步 我是用正常的登录的方式登录我们的mysql数据库:  这时,我们的数据库就可以正常启动了!...第八步 我们可以在进入mysql后修改自己好记的密码 然后,我们退出重新,这时输入密码时,我们输入新的密码就可以进入mysql数据库了!

    1.8K20

    数据库置疑修复_sqlserver错误日志在哪里

    本文内容在SQL2000下测试通过 情况1:数据库在使用过程中,因停电、软硬件故障等原因,导致数据库出现 “置疑” 情况2:数据库文件并没有使用,日志文件(.LDF)损坏或者丢失 解决方法: 1、新建一个数据库...2、停止SQL服务,将要使用的数据库文件,替换掉刚才新建的数据库文件 3、开启SQL服务,输入下面的代码:(执行前,请先修改 数据库名、路径)。...' --更新sysdatabases表,将status的值设置为32768 ,条件是name='数据库名' DBCC REBUILD_LOG ('数据库名', 'Z:\data\数据库新日志名.LDF'...'数据库名','single user','true' --设置数据库为单用户模式 go DBCC CHECKDB(数据库名) --检查数据库错误 DBCC CheckDB(数据库名,REPAIR_ALLOW_DATA_LOSS...) --修复数据库错误 一致性错误 DBCC CheckDB(数据库名) --检查数据库 go sp_dboption '数据库名','single user','false' --还原数据库为多用户模式

    1.5K10

    微信移动端数据库组件WCDB系列(二) — 数据库修复三板斧

    之前一篇文章《微信 SQLite 数据库修复实践》介绍了微信对SQLite数据库修复以及降低损坏率的实践, 这次再深入介绍一下微信数据库修复的具体方案和发展历程。...SQLCipher加密数据库,对应的恢复逻辑还需要加上 解密逻辑。...微信的数据库中,有部分数据是临时或者可从服务端拉取的,这部分数据可以选择不修复,有些数据是不可恢复或者 恢复成本高的,就需要修复了。...我们的组件 WCDB - WeChat Database,微信的移动数据库组件,包含上面几种修复方案, 以及加密、连接池并发、ORM、性能优化等特性,将在近日开源,欢迎关注。...更多信息请看往期文章: 《微信移动端数据库组件WCDB系列(一)-iOS基础篇》 《微信 SQLite 数据库修复实践》 ---- 如果您觉得我们的内容还不错,就请转发到朋友圈,和小伙伴一起分享吧~

    1.5K40

    sql2005数据库置疑的解决方法_sql数据库置疑修复工具

    B.停掉数据库服务器。 C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据 库数据文件test_data.mdf。...D.启动数据库服务器。此时会看到数据库test的状态为”置疑”。这时候不能对此数据库进行任何*作。 E.设置数据库允许直接*作系统表。...master go sp_configure ‘allow updates’,1 go reconfigure with override go F.设置test为紧急修复模式...Server\MSSQL\Data\test.mdf’,’c:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf’ SQL code如何修复...用于发布的标记事务没有被日志读取程序读走 下面是修复的步骤和收缩日志的步骤: 1.在命令提示符下运行以下命令启动 SQL Server: SQLSERVER -f -m

    1.3K50

    微信移动端数据库组件 WCDB 系列:数据库修复三板斧(二)

    之前一篇文章《微信 SQLite 数据库修复实践》介绍了微信对SQLite数据库修复以及降低损坏率的实践, 这次再深入介绍一下微信数据库修复的具体方案和发展历程。...SQLCipher加密数据库,对应的恢复逻辑还需要加上 解密逻辑。...微信的数据库中,有部分数据是临时或者可从服务端拉取的,这部分数据可以选择不修复,有些数据是不可恢复或者 恢复成本高的,就需要修复了。...我们的组件 WCDB - WeChat Database,微信的移动数据库组件,包含上面几种修复方案, 以及加密、连接池并发、ORM、性能优化等特性,将在近日开源,欢迎关注。...本文来源于:WeMobileDev 微信公众号 相关推荐 微信移动端数据库组件WCDB系列:iOS基础篇(一) 微信移动端数据库组件WCDB系列:WINQ原理篇(三) 微信移动端数据库组件WCDB系列

    4.1K01

    如何修复WordPress中的“建立数据库连接时出错”?

    如何修复WordPress中的“建立数据库连接时出错”?   ...当访问您的网站时,看到信息提示“建立数据库连接错误”,这意味着您的服务器无法连接到数据库。...在虚拟主机面板上检查数据库   您可能不小心从虚拟主机面板中删除了数据库。在这种情况下,除了重新创建数据库并重新启动WordPress外,没有任何办法。...总结   以上是修复WordPress中的“建立数据库连接时出错”的方法,一般情况下,我们在安装WordPress的时候,有可能这出现这个错误,直接使用第三种方法来尝试修改,基本可解决问题。...0/5 (0 Reviews) 晓得博客,版权所有丨如未注明,均为原创 晓得博客 » 如何修复WordPress中的“建立数据库连接时出错”?

    5.2K20

    服务器崩溃导致数据库损坏的修复方法

    ,根据坏道列表使用winhex定位到目标镜像文件分析发现,ext3文件系统的一些关键源数据信息有的已经被坏道所破坏,只能等待6号盘镜像完毕后,通过同一条带进行xor以及根据文件系统上下文关系的方式手动修复被损坏的文件系统...数据库恢复流程 1.拷贝数据库文件到原数据库服务器,路径为/home/oracle/tmp/syntong.作为备份。...2.备份原数据库环境,包括ORACLE_HOME下product文件夹下的相关文件。配置监听,使用原机中的splplus连接到数据库。尝试启动数据库到nomount状态。...尝试启动数据库到mount状态,进行状态查询没有问题。启动数据库到open状态。...10.对数据库进行各种常规检查,没有任何错误。 11.进行emp备份。全库备份完成,没有报错。将应用程序连接到数据库,进行应用层面的数据验证。

    2.6K40
    领券