国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

解決一個程序問題需要多少步——確定我們沒有在摸魚

這篇具有很好參考價值的文章主要介紹了解決一個程序問題需要多少步——確定我們沒有在摸魚。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

3 天前,運(yùn)行的社區(qū)系統(tǒng)報告,很多老的歷史照片都無法作為附件加載 —— 小鯊魚,快來解決問題。

很多人都問題,為什么程序員每天不是在調(diào) Bug 就是在調(diào) Bug 的路上。

其實呀,計算機(jī)是一個邏輯性非常強(qiáng)的東西,每一步都應(yīng)該是原因的,所以我們要通過邏輯性找到不同的原因。

解決一個程序問題需要多少步——確定我們沒有在摸魚,數(shù)據(jù)庫

這個和把大象關(guān)進(jìn)籠子里有幾步差不多。

調(diào)試的方法其實就是針對問題去找到原因,為什么會出現(xiàn)這個問題。

對 Web 系統(tǒng)來說,無非就是程序和數(shù)據(jù),首先需要確定數(shù)據(jù)丟了沒有,如果數(shù)據(jù)丟了,怎么調(diào)試都沒有用,因此先恢復(fù)數(shù)據(jù),保障系統(tǒng)運(yùn)行永遠(yuǎn)是第一位的。

Step 1 有沒有快速的解決方案

為什么會出現(xiàn)這個問題,不是好好的嗎?原來是因為更換了域名,同時更換了云存儲的存儲路徑。

現(xiàn)在問題就是主題中的內(nèi)容都沒有丟,但是當(dāng)主題重新生成 HTML 后,只要主題中有附件的部分,全部都沒有正確生成 HTML。

快點檢查存儲在云端的附件有沒有被刪掉。找到一個老的主題已經(jīng)生成的 HTML,然后檢查丟失的圖片對比的服務(wù)器地址。

云存儲的附件都還在,沒有被丟掉,如果直接把絕對 URL 拷貝過來,問題就解決了。

趕緊的,有備份嗎?

有備份,趕快恢復(fù)一次。

Step 2 數(shù)據(jù)恢復(fù)

恢復(fù)備份后無法解決問題。

備份恢復(fù)了,問題依舊。怎么辦?

有多少主題被影響到?

往前面找 3 個月,1 個月,2 個星期的隨機(jī)帖子,貌似各種情況都有,但是大量丟的都在 幾個星期之前的,幾乎都無法顯示。

那應(yīng)該是在生成 HTML 的短 Hash 代碼轉(zhuǎn)碼回去的時候出現(xiàn)問題了。

這個數(shù)量已經(jīng)非常大了,沒有辦法通過手工恢復(fù)的方式完成了。

這里有個判斷,如果只影響到幾個主題,通常我們都可以手工恢復(fù)的,如果影響的主題超過幾十個,這個時候是沒有辦法手工恢復(fù),只能找到原因讓程序去做了。

Step 3 調(diào)試存儲桶路徑

因為我們知道存儲桶路徑換了,是不是因為存儲桶的名字問題呢?

把服務(wù)器上存儲桶的名字重新改回來,問題依舊。

現(xiàn)在這個和存儲桶的路徑應(yīng)該沒有太大的關(guān)系。

Step 4 調(diào)試 Hash 算法

是不是因為在 Base 62 Hash 算法的時候因為 SHA1 的不同而導(dǎo)致了算法沒有被正常解碼?

讀了下程序,貌似問題也不在這里。

這個 Base62 算法,程序中沒有加摘要擾亂計算。

Step 5 查詢數(shù)據(jù)庫的數(shù)據(jù)

現(xiàn)在我們得從數(shù)據(jù)庫查看了,因為沒有辦法確定到底是程序還是數(shù)據(jù)的問題。

貌似在備份前 3 天的數(shù)據(jù)是好的,我們應(yīng)該要把數(shù)據(jù)庫的數(shù)據(jù)恢復(fù)下看看。

服務(wù)器現(xiàn)在在運(yùn)行的,好在新加的主題沒有問題,那就讓服務(wù)器運(yùn)行著吧。

我們把服務(wù)器上的數(shù)據(jù) Dump 下來,導(dǎo)入到我們本地的 PGSQL 數(shù)據(jù)庫中吧。

這個導(dǎo)入過程可能要一天也可能是幾個小時,因為導(dǎo)入數(shù)據(jù)比較容易出錯。

Step 6 如何進(jìn)入服務(wù)器 Docker 容器內(nèi)查詢

數(shù)據(jù)本地拿到了,Hash 前的和 Hash 后的數(shù)據(jù)都在呀,那問題在哪呢?

到 Docker 容器內(nèi)去查詢下現(xiàn)有的服務(wù)器數(shù)據(jù)吧。

這個時候,你就可能需要時間去了解下如何進(jìn)入 Docker,如何在 Docker 連接數(shù)據(jù)庫后運(yùn)行 SQL。

因為這個庫是在容器內(nèi)的,你是沒有辦法通過其他數(shù)據(jù)庫工具直接連接到數(shù)據(jù)庫上運(yùn)行 SQL 的,通常生成服務(wù)器也不允許你這么做。

查詢的結(jié)果,發(fā)現(xiàn)是本地有的記錄,服務(wù)器上沒有。

大概率知道數(shù)據(jù)庫映射出了問題。

Step 7 把本地的備份數(shù)據(jù)恢復(fù) 1 條

把本地備份的 1 條數(shù)據(jù)恢復(fù)到服務(wù)器上,然后刷下效果,看是不是就是因為數(shù)據(jù)丟了?

太棒了,恢復(fù)的這條數(shù)據(jù)被顯示出來了,主題正常了。

原來就是丟數(shù)據(jù)了,備份不應(yīng)該是備份全部的嗎?看來應(yīng)該是恢復(fù)哪里或者某個表出問題了。

Step 8 獲得具體有多少數(shù)據(jù)被影響

因為我們知道那個表現(xiàn)在有問題了, Select Count(*) 唄。

發(fā)現(xiàn)一共了 4000 多條記錄被影響。

趕緊把本地的這些記錄組織成 SQL 到服務(wù)器上運(yùn)行吧,都是 Insert 應(yīng)該問題大。哪怕是重復(fù)數(shù)據(jù),因為有 Key,重復(fù)數(shù)據(jù)會被忽略掉。

導(dǎo)入后問題解決了。

Step 9 解決問題后 2 天同樣的問題又出現(xiàn)了

先查 Count,后來發(fā)現(xiàn) Count 數(shù)據(jù)被刪掉了 2000 多。

這肯定是有自動運(yùn)行進(jìn)程對數(shù)據(jù)進(jìn)行清理了。

上網(wǎng)考古下,發(fā)現(xiàn)貌似有一個無用附件清理進(jìn)程會對程序認(rèn)為無用的附件進(jìn)行清理。

先不管了,把這 2000 多條數(shù)據(jù)恢復(fù)再說。

Step 10 關(guān)閉清理進(jìn)程

先關(guān)閉清理進(jìn)程,然后看為什么這個程序會把我們實際是需要的數(shù)據(jù)給清理掉?

讀代碼,在清理之前,程序會判斷那些數(shù)據(jù)是需要清理的,這里有一個 Join 的 SQL 查詢。

這里 Join 了另外一個表。

Step 11 對比 JOIN 表數(shù)據(jù)量

馬上對比另外表的數(shù)據(jù)量。

這里了明顯又丟了好幾千條記錄。

原來在主題和附件的關(guān)系映射表中的數(shù)據(jù)丟了部分,導(dǎo)致整個附件表的有用數(shù)據(jù)被當(dāng)做無效數(shù)據(jù)清理掉了。

Step 12 數(shù)據(jù)恢復(fù)

把 JOIN 的映射表數(shù)據(jù)進(jìn)行恢復(fù)。

然后等待重構(gòu)運(yùn)行結(jié)果,保持清理進(jìn)程開啟,2 天后查看結(jié)果。

同時增加服務(wù)器備份數(shù)量,從保留 30 天的備份,到現(xiàn)在增加到保留 300 天。

Step 13 問題總結(jié)和記錄

把整個過程總結(jié)下來,花個 10 多分鐘記錄下問題。

上面是針對一個問題進(jìn)行調(diào)試的小過程,如果你對系統(tǒng)比較熟悉的話,很快就會定位到映射部分。如果對系統(tǒng)不熟悉的話,上面的步驟就是一個幾乎完整的 Debug 流程。

在上面的流程中到處都是坑,這就是為什么有些人看起來只需要幾個小時或者幾分鐘就解決問題了,你卻用了幾天的時候,甚至幾天都沒有進(jìn)展。

相信我,不是因為你不夠優(yōu)秀,僅僅是因為你對已有的這套系統(tǒng)的設(shè)計,數(shù)據(jù),邏輯不熟悉而已,這沒什么大不了的,時間問題。

解決一個程序問題需要多少步——確定我們沒有在摸魚 - 程序人生 - iSharkFly文章來源地址http://www.zghlxwxcb.cn/news/detail-700990.html

到了這里,關(guān)于解決一個程序問題需要多少步——確定我們沒有在摸魚的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • NextCloud 全新安裝后不能出現(xiàn)登錄頁面,可以打開登錄界面并在確定密碼沒有錯誤的情況下卻無法登錄問題的解決

    NextCloud 全新安裝后不能出現(xiàn)登錄頁面,可以打開登錄界面并在確定密碼沒有錯誤的情況下卻無法登錄問題的解決

    ?主要問題:全新安裝的nextcloud時,會出現(xiàn)過一會,安裝頁面出現(xiàn)錯誤;靜等到一切安裝完成,輸入地址,卻出現(xiàn)404錯誤的問題;還有在進(jìn)入登錄頁面后,在確定密碼沒有錯誤的情況下,無法通過web頁面登錄;登錄次數(shù)過多后,因防暴力試錯破解機(jī)制,導(dǎo)致延遲登錄。本文將解

    2024年02月05日
    瀏覽(27)
  • 做一個網(wǎng)站需要多少個技術(shù)人員?

    做一個網(wǎng)站需要多少個技術(shù)人員?

    作為互聯(lián)網(wǎng)從業(yè)者,這么多年來經(jīng)常會碰到一個靈魂拷問,那就是“為什么一個網(wǎng)站需要那么多技術(shù)人員?”,尤其是提問者如果再追問一下“聽說幾個相關(guān)專業(yè)的學(xué)生一個課程的作業(yè)就是開發(fā)一個網(wǎng)站或者app,那為什么現(xiàn)在主流的網(wǎng)站或者app背后的公司,動輒就有上萬人的

    2024年02月01日
    瀏覽(19)
  • 2023年依照市場行情定制開發(fā)一個手機(jī)App軟件需要多少錢?

    app開發(fā)費(fèi)用多少錢?這是我們得到的第一個問題,但是沒有標(biāo)準(zhǔn)答案。 它取決于(實際上,取決于許多因素),您可以得到所要付出的代價。 在本指南中,我們將充實影響app開發(fā)成本的因素,包括按階段和app類型劃分的成本,開發(fā)人員的位置以及發(fā)布后的服務(wù)。另外,我們

    2024年02月09日
    瀏覽(27)
  • 你的設(shè)備遇到問題,需要重啟;我們只收集某些錯誤信息,然后為你重新啟動。

    你的設(shè)備遇到問題,需要重啟;我們只收集某些錯誤信息,然后為你重新啟動。

    VMware安裝centos和打開其他虛擬機(jī)時電腦藍(lán)屏報錯: 你的設(shè)備遇到問題,需要重啟;我們只收集某些錯誤信息,然后為你重新啟動。 我的解決辦法:開啟Windows的虛擬機(jī)平臺 打開控制面板,點擊“程序”,點擊“啟用或關(guān)閉windows功能”,勾選“虛擬機(jī)平臺”

    2024年02月11日
    瀏覽(32)
  • 【安裝軟件】 win10安裝iTunes報錯:“此Windows Installer軟件包有一個問題。完成此安裝需要......”的解決方式

    打開控制面板,程序,卸載程序,卸載與Apple相關(guān)的,按發(fā)布者排序,將有 Apple lnc ,的全部卸載, 清理注冊表信息,此過程需要自己一步一步操作,過程需很長。具體方式步驟如下: 打開注冊表,按win+r,輸入 regedit 打開注冊表編輯器, 按Ctrl+F ,輸入 Apple software update 進(jìn)行搜

    2024年02月12日
    瀏覽(43)
  • 微信小程序當(dāng)在一個頁面有多個input輸入框,自動彈鍵盤,需要點擊input框2次才能聚焦的問題

    微信小程序當(dāng)在一個頁面有多個input輸入框,自動彈鍵盤,需要點擊input框2次才能聚焦。 解決辦法,在點擊input框時,調(diào)用bindtap事件,關(guān)閉鍵盤、設(shè)置焦點。代碼示例如下: 方法僅供參考!

    2024年02月11日
    瀏覽(34)
  • 提示程序需要Windows 7 Service Pack 1或更高版本問題如何解決?

    提示程序需要Windows 7 Service Pack 1或更高版本問題如何解決?

    提示這個,不要慌,這個屬于電腦的一個組件沒有安裝或者出現(xiàn)問題,導(dǎo)致的 這個跟軟件都是沒關(guān)系的,純屬是電腦系統(tǒng)的原因 ? 右鍵桌面“我的電腦”圖標(biāo),選擇“屬性” ?在這里,你可以看到,正常這里會顯示相關(guān)的“Service Pack 1”信息 但是確沒有,說明,更加確信是

    2024年02月05日
    瀏覽(18)
  • Windows 更新 升級 8007003錯誤 800tb109錯誤 文件沒有正確簽名 很難確定你的電腦能否運(yùn)行win10【解決方法】

    Windows 更新 升級 8007003錯誤 800tb109錯誤 文件沒有正確簽名 很難確定你的電腦能否運(yùn)行win10【解決方法】

    在看了網(wǎng)上一大堆的的方案,什么刪注冊表(WindowsSelfHost),刪更新文件(SoftwareDistribution),刪軟件包簽名(catroot、catroot2)都沒用的,歡迎你來對地方了??! 【先講講自己的經(jīng)歷,只是吐槽下自己曲折并提供一點點經(jīng)驗,避免大家走彎路,不想看的請直奔解決方案】 一年

    2024年02月10日
    瀏覽(29)
  • 做一個小程序要多少錢?

    做一個小程序要多少錢?

    ?微信小程序相信大家都已經(jīng)不會陌生,我們的日常生活中也會經(jīng)常使用到微信小程序,從我們出門逛街買奶茶,坐公交刷地鐵,偷懶不出門買菜,都會熟練的打開微信小程序~ 那么問題來了,做一個小程序到底要多少錢? ? 一般分為兩種情況 第一:模板開發(fā)(適合中小型

    2024年02月09日
    瀏覽(13)
  • 我們的第一個 Qt 窗口程序

    我們的第一個 Qt 窗口程序

    Qt 入門實戰(zhàn)教程(目錄) Windows Qt 5.12.10下載與安裝 本文介紹用Qt自帶的集成開發(fā)工具Qt Creator創(chuàng)建Qt默認(rèn)的窗口程序。 本文不需要你另外安裝Visual Studio 2022這樣的集成開發(fā)環(huán)境,也不需要你再在Visual Studio 2022中安裝Qt VS Tools這樣的插件。 目的就是為了能夠讓你可以更快的把Q

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包