資料庫持續集成回滾
⑴ 什麼是持續集成
From:王海鵬持續集成不是一項軟體開發實踐,而是多項軟體開發實踐的集合。團隊在嘗試引入這些開發實踐時,不可避免要遇到一個問題:?如果不能很好地理解為什麼,持續集成可能會進入誤區,不能帶來期望的效果。 數據集成。數據是所有IT 系統的核心,所有的架構都建立在數據的基礎之上,其目的都是為了更好地處理數據。由於數據如此重要,所以我們派專人來負責管理和維護,這就是 DBA。不幸的是,DBA 與程序員似乎來自於不同的文化,他們講的不是同一種語言。結果常常導致程序員基於自己對資料庫的假設來開發程序,到了項目的後期才與真實資料庫進行集成。這種假設會帶來很大的集成和部署風險,影響代碼的品質,可能引起大量的返工。 對於針對已有數據集的開發,持續集成強調盡可能早地與實際數據集成,例如可以通過資料庫復制,在一個幾乎與生產環境一樣的開發環境中進行開發。此外,DBA 可以與開發團隊密切配合,雙方分享觀點與經驗,使資料庫的組織方式也能夠根據新的業務需求與時俱進。關於這一主題,請參考Scott W.Ambler 的《資料庫重構》。 如果項目要開發一個全新的應用,還沒有數據集存在,怎麼辦?辦法很簡單:一、盡早得到真實的數據集。二、隨著開發團隊對問題域的理解不斷加深,應用功能的不斷實現,讓數據的組織方式也不斷優化。 靜態代碼檢查。不同的人寫的代碼,其品質差異比較大。相同的人在不同時間寫的代碼,其品質也可以有相當的差異。為此,人們設計了代碼評審活動,來提高代碼品質。極限編程則通過結對編程的實踐,將代碼復查工作擴展到開發的每一分鍾。這樣做代價不菲。當然,根據克勞斯比的觀點,以這樣的代價換取高品質的產品,總的來說還是值得的。但是人們總是在想,如果能夠降低檢查的成本,又能夠獲得檢查的好處,豈不美哉? 編碼標准就是一個典型的例子。相信每一個嚴肅的開發機構都不會不提編碼標准,但是檢查代碼是否符合編碼標准卻是一件耗時耗力的事情,這導致了在許多項目中,編碼標准有名無實。自動化的代碼檢查工具承擔了這項繁復的工作。像CheckStyle 這樣的工具,能夠自動檢查代碼是否符合編碼標准。項目以能夠承受的代價,滿足了編碼標准。程序員也在這種檢查中不斷提高,養成良好的編碼習慣。 靜態代碼檢查還能做更多的事。出於種種原因,我們希望代碼能夠做到"低耦合,高內聚"。像PMD 這樣的代碼依賴關系檢查工具能幫助我們發現不正當的依賴關系。重復的代碼是品質的大敵,PMD 還能找出重復的代碼。人們在使用某種編程語言時,會有一些容易犯的錯誤,像FindBugs 這樣的工具能夠幫助我們找出這些錯誤。 靜態代碼檢查不是要完全替代評審活動,但它能夠讓我們從繁復的低創造性活動中解放出來,專注於創造性的思維和活動。工具的歸工具,人的歸人。 自動化測試。利用現有的技術,我們可以用能夠承擔的成本,將許多的測試自動化。這些自動化測試包括單元測試、集成測試、系統測試、驗收測試、壓力測試等。而通過持續集成來持續進行自動化測試,將帶來許多好處。 自動化測試減輕了開發團隊的壓力,讓大家對系統有信心,使工作的氣氛變得更輕松。有了自動化測試的保護,開發者也敢於不斷對系統進行改進,添加新的特徵和改進代碼品質。當系統有機會越來越好時,我們才可能創造出了不起的軟體。 自動化測試降低了測試和修改的成本。錯誤越早發現,更正它的成本就越低。自動化測試加速了開發/測試循環,從而使修正錯誤的成本降低。容易測試的系統就容易增強和維護,難測試的系統就難增強和維護,不可測試的系統基本上可以排除在我們的考慮之外。測試成本低的系統才是開發維護成本低的系統。 自動化測試報告了系統的真實進度。哪些需求已實現?現有的架構和實現是否能滿足性能需求?自動化的驗收測試和壓力測試會告訴我們准確的答案。在許多情況下,我們都有理由讓需求可測試,讓測試能夠自動執行。 自動化部署。系統能否部署到目標生產環境?是否需要進行一些數據遷移和應用升級?配置文件是否正確?理解這些問題的最好方式就是將部署過程自動化。通過向近似於生產環境的目標環境持續部署,確保部署過程沒有問題。在自動化部署成功後,再對部署好的系統執行驗收測試和壓力測試。持續部署可以盡早發現部署過程中的問題,降低系統上線時的風險。 提高項目可見性。項目的進度如何?哪些需求已實現?哪些代碼已測試?代碼的品質如何?持續集成及時呈現各種分析報告,讓開發團隊和管理層了解項目的真實狀況,從而制定正確的決策。"不識廬山真面目,只緣身在此山中"的感覺一去不復返。一般來說,最成功的人擁有最好的信息。 ?因為持續集成將改善軟體的質量,降低風險,使軟體開發變得更有效率,讓大家能夠"愉快工作,幸福生活",而不是"加班工作,維持生活"。這不是唯一的標准答案,每個團隊都可以思考討論,得到屬於自己的答案。關於持續集成的更多內容,請參考《持續集成》一書。
⑵ 如何解決資料庫的實時熱備份,以及災難接管和回退
如果是oracle,rman,exp,expdb工具都可以實現熱備份。不過你後面提到了災難接管,也許你內備份的意思容是2資料庫同步。那麼在10g版本後可以使用stream或者data gird實現。回退好像麻煩點,開了歸檔的可以用歸檔文件恢復(全庫恢復到某時間點),單表恢復10g以上可以用新特性閃回。不過我接觸的很多都是每天用EXP備份截止當天的每一個單表全部數據。恢復的時候直接回復某天的單個全表數據
⑶ 回滾和回退的區別
回退功來能是指回到升級Windows10之前的自電腦系統,Win7或Win8.1。 很多用戶在升級到Win10系統後,由於各種原因或電腦不穩定、不喜歡該系統而選擇恢復到原來的Win7、Win8.1系統,而最直接的方法就是格式化重裝。
⑷ 華為Mate9 EMUI10不解鎖回滾降級刷機工具和回退降級方法
你說的是從單輪九降到安卓八,按說是降到安卓九,這樣的吧網路經驗裡面有這么一篇搜一下。
⑸ 資料庫能回退到過去的某個時間點嗎
1。Restore 某個指定的時間點之前的backup
2。如果archivelog不在硬碟,也要Restore
3。恢復到某個指定的時間點
⑹ 請問db2資料庫怎樣能回退到指定日期的數據
select current date -1 day from sysibm.sysmmy1
這種日期類型是:
2014-01-18
values to_date('20140101','yyyy-mm-dd')
2014-01-01 00:00:00.0
是timestamp格式,所以格式不一樣
你可以修改一下你版的語句:
select * from a where to_char(date1,'yyyy-mm-dd') <>(current date -1 day);
試試可不可以。權
⑺ 如何進行版本回退或只是修改已提交的commit
當你已經提交了不想提交的代碼,或者提交到gerrit伺服器後被打回重新提交怎麼辦?這是我們就需要git reset這顆「後悔葯「了。 進入要回退的git倉,比如/packages/apps/DemoApp/ ,運行 git log 即可看到已經提交的commit,author等信息,如下
view sourceprint?
01.commit
02.Author: xiong_it<[email protected]>
03.Date: Tue Mar 17 09:49:38 2015 +0800
04.
05.modified by put a hdmi-in patch
06.
07.Change-Id:
08.
09.commit
10.Author: aaa <[email protected]>
11.Date: Thu Nov 6 11:14:06 2014 +0800
12.
13.PD#99387(99384): fix kernel panic ring suspend by open wifi
14.
15.Change-Id:
view sourceprint?
1.
從上面可以看出我是最後一個提交的人,我現在想回退到上一個版本,怎麼做呢?
view sourceprint?
1.
view sourceprint?
1.git reset 回車,OK,搞定!後面這串是上一個版本的commit,注意:不是Change-Id!
commit回退
當我們提交了一條注釋後,發現注釋寫的不夠詳細,想要修改怎麼辦?
這是git commit --amend能幫到你的忙!進入想要修改最後一次commit的git倉,執行git commit --amend會彈出vi編輯讓你修改最後一次commit,不會使用vi的可移步:Linux/Ubuntu下vim使用技巧精簡版。最後別忘記提交,不然,修改的commit是無效的。好吧,其實,我犯過這樣的錯誤--忘記重新提交。。。
⑻ pgsql 我剛不小心執行了update 語句,請問有什麼辦法回退到原來的值
你知道原來的值嗎?update t_so_so_member set receiver_mobile=原值
不知道就看看以前的備份有沒有?如果也沒有就無法了。
⑼ svn回退代碼,怎麼回滾至原來版本
不知你現在用的是抄什麼版本?是WINDOWSMEDIAPLAYER11吧,你是不是把更新補丁刪除了?如果刪除了更新程序補丁當然滾不回去了。你只有把它刪除後重新下載WINDOWSMEDIAPLAYER舊版本9或10就可以了。如不刪除,即使下載了也安裝不上。