當前位置:首頁 » 存儲配置 » 資料庫歸檔存儲

資料庫歸檔存儲

發布時間: 2022-06-12 07:24:22

資料庫數據歸檔,有什麼好辦法

pt-archiver原理解析
作為MySQL DBA,可以說應該沒有不知道pt-archiver了,作為pt-toolkit套件中的重要成員,往往能夠輕松幫助DBA解決數據歸檔的問題。例如線上一個流水表,業務僅僅只需要存放最近3個月的流水數據,三個月前的數據做歸檔即可,那麼pt-archiver就可以輕松幫你完成這件事情,甚至你可以配置成自動任務,無需人工干預。

作為DBA,我們應該知其然更應該知其所以然,這樣我們也能夠放心地使用pt工具。相信很多DBA都研究過pt-online-schema-change的原理,那麼今天我們深入刨一刨pt-archiver的工作原理。
一、原理觀察
土人有土辦法,我們直接開啟general log來觀察pt-archiver是如何完成歸檔的。
命令
pt-archiver --source h=127.0.0.1,u=xucl,p=xuclxucl,P=3306,D=xucl,t=t1 --dest h=127.0.0.1,P=3306,u=xucl,p=xuclxucl,D=xucl_archive,t=t1 --progress 5000 \
--statistics --charset=utf8mb4 --limit=10000 --txn-size 1000 --sleep 30
常用選項
--analyze
指定工具完成數據歸檔後對表執行'ANALYZE TABLE'操作。指定方法如'--analyze=ds',s代表源端表,d代表目標端表,也可以單獨指定。
--ask-pass
命令行提示密碼輸入,保護密碼安全,前提需安裝模塊perl-TermReadKey。
--buffer
指定緩沖區數據刷新到選項'--file'指定的文件並且在提交時刷新。
只有當事務提交時禁用自動刷新到'--file'指定的文件和刷新文件到磁碟,這意味著文件是被操作系統塊進行刷新,因此在事務進行提交之前有一些數據隱式刷新到磁碟。默認是每一行操作後進行文件刷新到磁碟。
--bulk-delete
指定單個語句刪除chunk的方式來批量刪除行,會隱式執行選項'--commit-each'。
使用單個DELETE語句刪除每個chunk對應的錶行,通常的做法是通過主鍵進行逐行的刪除,批量刪除在速度上會有很大的提升,但如果有復雜的'WHERE'條件就可能會更慢。
--[no]bulk-delete-limit
默認值:yes
指定添加選項'--bulk-delete'和'--limit'到進行歸檔的語句中。
--bulk-insert
使用LOAD DATA LOCAL INFILE的方法,通過批量插入chunk的方式來插入行(隱式指定選項'--bulk-delete'和'--commit-each')
而不是通過逐行單獨插入的方式進行,它比單行執行INSERT語句插入的速度要快。通過隱式創建臨時表來存儲需要批量插入的行(chunk),而不是直接進行批量插入操作,當臨時表中完成每個chunk之後再進行統一數據載入。為了保證數據的安全性,該選項會強制使用選項'--bulk-delete',這樣能夠有效保證刪除是在插入完全成功之後進行的。
--channel
指定當主從復制環境是多源復制時需要進行歸檔哪個主庫的數據,適用於多源復制中多個主庫對應一個從庫的情形。
--charset,-A
指定連接字元集。
--[no]check-charset
默認值:yes
指定檢查確保資料庫連接時字元集和表字元集相同。
--[no]check-columns
默認值:yes
指定檢查確保選項'--source'指定的源端表和'--dest'指定的目標表具有相同的欄位。
不檢查欄位在表的排序和欄位類型,只檢查欄位是否在源端表和目標表當中都存在,如果有不相同的欄位差異,則工具報錯退出。如果需要禁用該檢查,則指定'--no-check-columns'。
--check-slave-lag
指定主從復制延遲大於選項'--max-lag'指定的值之後暫停歸檔操作。默認情況下,工具會檢查所有的從庫,但該選項只作用於指定的從庫(通過DSN連接方式)。
--check-interval
默認值:1s
如果同時指定了選項'--check-slave-lag',則該選項指定的時間為工具發現主從復制延遲時暫停的時間。每進行操作100行時進行一次檢查。
--columns,-c
指定需要歸檔的表欄位,如有多個則用','(逗號)隔開。
--commit-each
指定按每次獲取和歸檔的行數進行提交,該選項會禁用選項'--txn-size'。
在每次獲取表數據並進行歸檔之後,在獲取下一次數據和選項'--sleep'指定的休眠時間之前,進行事務提交和刷新選項'--file'指定的文件,通過選項'--limit'控制事務的大小。
--host,-h
指定連接的資料庫IP地址。
--port,-P
指定連接的資料庫Port埠。
--user,-u
指定連接的資料庫用戶。
--password,-p
指定連接的資料庫用戶密碼。
--socket,-S
指定使用SOCKET文件連接。
--databases,-d
指定連接的資料庫
--source
指定需要進行歸檔操作的表,該選項是必須指定的選項,使用DSN方式表示。
--dest
指定要歸檔到的目標端表,使用DSN方式表示。
如果該選項沒有指定的話,則默認與選項'--source'指定源端表為相同表。

--where
指定通過WHERE條件語句指定需要歸檔的數據,該選項是必須指定的選項。不需要加上'WHERE'關鍵字,如果確實不需要WHERE條件進行限制,則指定'--where 1=1'。
--file
指定表數據需要歸檔到的文件。使用類似MySQL DATE_FORMAT()格式化命名方式。
文件內容與MySQL中SELECT INTO OUTFILE語句使用相同的格式,文件命名選項如下所示:
%Y:年,4位數(Year, numeric, four digits)
%m:月,2位數(Month, numeric (01..12))
%d:日,2位數(Day of the month, numeric (01..31))
%H:小時(Hour (00..23))
%i:分鍾(Minutes, numeric (00..59))
%s:秒(Seconds (00..59))
%D:資料庫名(Database name)
%t:表名(Table name)
例如:--file '/var/log/archive/%Y-%m-%d-%D.%t'
--output-format
指定選項'--file'文件內容輸出的格式。
默認不指定該選項是以製表符進行欄位的分隔符,如果指定該選項,則使用','(逗號)作為欄位分隔符,使用'"'(雙引號)將欄位括起。用法示例:'--output-format=mp'。
--for-update
指定為每次歸檔執行的SELECT語句添加FOR UPDATE子句。--share-lock
指定為每次歸檔執行的SELECT語句添加LOCK IN SHARE MODE子句。
--header
指定在文件中第一行寫入欄位名稱作為標題。
--ignore
指定為INSERT語句添加IGNORE選項。
--limit
默認值:1
指定每條語句獲取表和歸檔表的行數。
--local
指定不將OPTIMIZE和ANALYZE語句寫入binlog。
--max-lag
默認值:1s
指定允許主從復制延遲時長的最大值,單位秒。如果在每次獲取行數據之後主從延遲超過指定的值,則歸檔操作將暫停執行,暫停休眠時間為選項'--check-interval'指定的值。待休眠時間結束之後再次檢查主從延遲時長,檢查方法是通過從庫查詢的'Seconds_Behind_Master'值來確定。如果主從復制延遲一直大於該參數指定值或者從庫停止復制,則操作將一直等待直到從庫重新啟動並且延遲小於該參數指定值。
--no-delete
指定不刪除已被歸檔的表數據。
--optimize
指定工具完成數據歸檔後對表執行'OPTIMIZE TABLE'操作。指定方法如'--analyze=ds',s代表源端表,d代表目標端表,也可以單獨指定。
--primary-key-only
指定只歸檔主鍵欄位,是選項'--columns=主鍵'的簡寫。
如果工具歸檔的操作是進行DELETE清除時最有效,因為只需讀取主鍵一個欄位而無需讀取行所有欄位。
--progress
指定每多少行列印進度信息,列印當前時間,已用時間以及多少行進行歸檔。
--purge
指定執行的清除操作而不是歸檔操作。允許忽略選項'--dest'和'--file'進行操作,如果只是清除操作可以結合選項'--primary-key-only'會更高效。
--quiet,-q
指定工具靜默執行,不輸出任何的執行信息。
--replace
指定寫入選項'--dest'指定目標端表時改寫INSERT語句為REPLACE語句。
--retries
默認值:1
指定歸檔操作遇到死鎖或超時的重試次數。當重試次數超過該選項指定的值時,工具將報錯退出。
--run-time
指定工具歸檔操作在退出之前需要運行的時間。允許的時間後綴名為s=秒,m=分,h=小時,d=天,如果沒指定,默認為s。
--[no]safe-auto-increment
默認值:yes
指定不使用自增列(AUTO_INCREMENT)最大值對應的行進行歸檔。
該選項在進行歸檔清除時會額外添加一條WHERE子句以防止工具刪除單列升序欄位具有的具有AUTO_INCREMENT屬性最大值的數據行,為了在資料庫重啟之後還能使用到AUTO_INCREMENT對應的值,但這會引起無法歸檔或清除欄位對應最大值的行。
--set-vars
默認:
wait_timeout=10000
innodb_lock_wait_timeout=1
lock_wait_timeout=60
工具歸檔時指定參數值,如有多個用','(逗號)分隔。如'--set-vars=wait_timeout=5000'。
--skip-foreign-key-checks
指定使用語句SET FOREIGN_KEY_CHECKS = 0禁用外鍵檢查。
--sleep
指定工具在通過SELECT語句獲取歸檔數據需要休眠的時間,默認值是不進行休眠。在休眠之前事務並不會提交,並且選項'--file'指定的文件不會被刷新。如果指定選項'--commit-each',則在休眠之前會進行事務提交和文件刷新。
--statistics
指定工具收集並列印操作的時間統計信息。
統計信息示例如下:
'
Started at 2008-07-18T07:18:53, ended at 2008-07-18T07:18:53
Source: D=db,t=table
SELECT 4
INSERT 4
DELETE 4
Action Count Time Pct
commit 10 0.1079 88.27
select 5 0.0047 3.87
deleting 4 0.0028 2.29
inserting 4 0.0028 2.28
other 0 0.0040 3.29
--txn-size
默認:1
指定每個事務處理的行數。如果是0則禁用事務功能。
--version
顯示工具的版本並退出。
--[no]version-check
默認值:yes
檢查Percona Toolkit、MySQL和其他程序的最新版本。
--why-quit
指定工具列印當非因完成歸檔行數退出的原因。
在執行一個自動歸檔任務時該選項與選項'--run-time'一起使用非常方便,這樣可以確定歸檔任務是否在指定的時間內完成。如果同時指定了選項'--statistics',則會列印所有退出的原因。
二、原理解析
根據general log的輸出,我們整理出時序表格如下
三、其他說明
咋一看這個過程貌似也沒有什麼問題,但是,假如在原表掃描出數據,插入到新表的過程中,舊數據發生了變化怎麼辦?
帶著這個疑問,我們進行了源碼的跟蹤,我們在pt-archiver的6839行打上了斷點
然後我分別在幾個session窗口做了如下動作
最後pt-archiver輸出如下:
# A software update is available:
TIME ELAPSED COUNT
2020-04-08T09:13:21 0 0
2020-04-08T09:13:21 0 1
Started at 2020-04-08T09:13:21, ended at 2020-04-08T09:13:51
Source: A=utf8mb4,D=xucl,P=3306,h=127.0.0.1,p=...,t=t1,u=xucl
Dest: A=utf8mb4,D=xucl_archive,P=3306,h=127.0.0.1,p=...,t=t1,u=xucl
SELECT 1
INSERT 1
DELETE 1
Action Count Time Pct
sleep 1 30.0002 99.89
inserting 1 0.0213 0.07
commit 2 0.0080 0.03
select 2 0.0017 0.01
deleting 1 0.0005 0.00
other 0 0.0008 0.00
很明顯,id=3這條記錄並沒有進行歸檔(我們這里是改了條件列,實際生產中可能是更改了其他列,造成歸檔數據不準確)
那麼如何來解決這種情況的發生呢?
顯然,資料庫在資料庫中可以通過加排它鎖來防止其他程序修改對應的數據,pt-archiver其實早就已經幫我們考慮到了這樣的情況,pt-archiver提供了兩種選擇
--for-update:Adds the FOR UPDATE modifier to SELECT statements
--share-lock:Adds the LOCK IN SHARE MODE modifier to SELECT statements
四、總結
pt-archiver作為歸檔工具無疑是MySQL DBA日常運維的大利器之一,在使用過程中在知道如何使用的基礎上也能夠知曉其原理
歸檔過程中最好能對歸檔記錄進行加鎖操作,以免造成歸檔數據不準確
在主從環境中,歸檔過程最好控制速度,以免造成主從延遲
盡量控制好chunk的大小,不要過大,造成大事務

② ORACLE資料庫歸檔是什麼含義

把資料庫信息的改變保存起來,讓以後資料庫崩潰時恢復的時候使用。

③ 數據歸檔的數據倉庫存檔解決方案

Informatica Data Archive 是一種高度可擴展的高性能數據存檔軟體。 它可幫助 IT 組織經濟有效地管理各種企業業務應用程序中的數據增長,以提高其性能並降低 IT 成本。 藉助 Informatica Data Archive,IT 團隊可以安全地存檔應用程序數據,提供對存檔數據的無縫訪問,並按需向業務部門提供存檔數據 。 存檔非活動數據以提高應用程序性能 安全地淘汰遺留應用程序以降低 IT 成本 藉助全面實施的保留和處置政策確保合規性和對數據存檔的輕松訪問 Informatica Data Archive 主要功能之深入分析數據增長 分析應用程序之間的表空間、架構和模塊的數據增長率 有助於確定有效的存檔策略及更好地管理數據增長 Informatica Data Archive 主要功能之可靠的數據存檔支持 將非活動數據移到其他資料庫實例,或置於不可修改且高度壓縮的安全文件中,以供日後檢索 存檔完整的業務條目,包括事務數據、主數據、參考數據和元數據。 Informatica Data Archive 主要功能之非結構化數據存檔支持 將文檔、附件、圖像和音頻文件存檔 將電信交換的詳細呼叫記錄 (CDR) 存檔,並將其轉化為可輕松搜索的結構化存檔格式 Informatica Data Archive 主要功能之無縫訪問數據存檔 可從現有應用程序界面訪問資料庫實例中存檔的數據,以及恢復完整的存檔、選定業務實體或存檔快照 訪問存檔數據時與原應用程序具有類似的外觀和體驗,或從標準的報告和商業智能工具,訪問存檔數據 Informatica Data Archive 主要功能之所有數據存檔的內在合規性 保證所有數據存檔的事務完整性和參考完整性 控制、跟蹤存檔過程和對存檔數據的所有訪問、保留、清除和保留活動 Informatica Data Archive 主要功能之全套應用程序加速器 提供預建的加速器,其中含有針對 Oracle E-Business Suite、PeopleSoft、Siebel、SAP 等業務應用程序的自定義業務規則和資料庫存檔策略 使用簡單的圖形用戶界面來顯示、編輯和擴展存檔模板(加速器),也可用來構建新的數據存檔模型和業務規則以對自定義應用程序進行存檔 Informatica Data Archive 主要功能之廣泛的連接性和擴展性 可連接到眾多資料庫、大型機和業務應用程序,包括Oracle、IBM DB2、MS SQL Server、Teradata、VSAM、Adabas 和 JD Edwards 輕松地與電子郵件和文件存檔解決方案或企業內容管理解決方案相集成 使用Informatica Data Archive,可以存檔到另一個數據倉庫實例,或存檔到能極大節省存儲空間的高度壓縮文件格式。隨著數據變舊和訪問需求隨時間變化,Informatica Data Archive自動將數據從一種存檔格式轉成另一種格式,並從一個位置遷移到另一個位置,啟動多個經濟高效的存儲層。
Informatica Data Archive只允許存檔事務數據和明細數據,這些數據是增長最快的。在維護數據完整性以及指向可能仍然存儲在生產系統中的維表和聚合表的鏈接時執行此操作。最後 ,有些較舊的維記錄也可能需要存檔。Informatica Data Archive非常清楚應存檔哪些類型的表來支持最優的存檔策略。
Informatica Data Archive提供一個簡單易用的圖形用戶界面,不需大量的配置、編寫腳本或編製程序就可以輕松定義存檔工作。利用提供多種存檔格式和輔助功能選項的數據倉庫存檔解決方案,IT組織可以在存檔大小、性能、應用程序可存取性以及成本之間確定一個適當的平衡點。 您的公司可能已經有用於電子郵件和文件的存檔解決方案。此外,您的 IT 組織可能也有自己的企業內容管理 (ECM) 解決方案標准來管理您的非結構化數據。為了支持合規性需求並確保留存數據的不變和單實例存儲,可以使用需要專屬連接的存檔 平台,如內容定址存儲 (CAS)。
為 了 讓 您 的 組 織 快 速 而 精 確 地 響 應 審 計 請 求 以 及 經 濟 高 效 地 長 期 留 存數據,Informatica Data Archive 允許您集中管理和發現所有類型(結構數據和非結構數據)的存檔數據。這通過與現有存檔、內容管理和存儲解決方案(包括EMC Documentum、Symantec Enterprise Vault 和 Discovery Accelerator、CommVault Simpana 和 eDiscovery)集成來完成,以促進所有類型存檔數據的集中管理和電子搜索。
Informatica Data Archive 使組織能夠處理大型跨國企業通常擁有的海量數據。通過提供全面而強大的技術來輕松、安全地存檔非活動數據,然後在需要時很容易訪問數據,Informatica Data Archive 提供了全面的存檔解決方案,可提供最優化、經濟高效的數據倉庫基礎設施。 Informatica Data Archive 使組織能夠處理大型跨國企業通常擁有的海量數據。通過提供全面而強大的技術來輕松、安全地存檔非活動數據,然後在需要時很容易訪問 數據,Informatica Data Archive 提供了全面的存檔解決方案,可提供最優化、經濟高效的數據倉庫基礎設施。
當您的 IT 組織實施一個完整、可擴展和靈活的存檔解決方案時,可以通過以下方面
來降低數據倉庫及其他應用程序的總擁有成本:
· 降低存儲、伺服器、軟體和維護成本
· 改善數據倉庫性能
· 提高數據倉庫可用性
· 支持遵守內部、行業及政府法令和法規
同時,Informatica 和您的 IT 組織可以結合數據的業務價值與最適合和經濟高效的 IT
基礎設施來管理它。

④ 資料庫中的歸檔是什麼意思

這里就涉及到重做日誌得問題了,在歸檔模式下,當日誌文件進行切換得時候,進程LGWR會將日誌寫入磁碟,作為日誌文件為以後的資料庫恢復准備,在非歸檔模式下就不行,當日誌文件進行切換得時候會覆蓋原來的日誌文件,對於非歸檔模式一般只能進行完全恢復!不過建議應該把DB設為歸檔模式

⑤ 如何實現大數據量資料庫的歷史數據歸檔

使用工具pt-archiver
原理解析
作為MySQL DBA,可以說應該沒有不知道pt-archiver了,作為pt-toolkit套件中的重要成員,往往能夠輕松幫助DBA解決數據歸檔的問題。例如線上一個流水表,業務僅僅只需要存放最近3個月的流水數據,三個月前的數據做歸檔即可,那麼pt-archiver就可以輕松幫你完成這件事情,甚至你可以配置成自動任務,無需人工干預。

作為DBA,我們應該知其然更應該知其所以然,這樣我們也能夠放心地使用pt工具。相信很多DBA都研究過pt-online-schema-change的原理,那麼今天我們深入刨一刨pt-archiver的工作原理。
一、原理觀察
土人有土辦法,我們直接開啟general log來觀察pt-archiver是如何完成歸檔的。
命令
pt-archiver --source h=127.0.0.1,u=xucl,p=xuclxucl,P=3306,D=xucl,t=t1 --dest h=127.0.0.1,P=3306,u=xucl,p=xuclxucl,D=xucl_archive,t=t1 --progress 5000 \
--statistics --charset=utf8mb4 --limit=10000 --txn-size 1000 --sleep 30
常用選項
--analyze
指定工具完成數據歸檔後對表執行'ANALYZE TABLE'操作。指定方法如'--analyze=ds',s代表源端表,d代表目標端表,也可以單獨指定。
--ask-pass
命令行提示密碼輸入,保護密碼安全,前提需安裝模塊perl-TermReadKey。
--buffer
指定緩沖區數據刷新到選項'--file'指定的文件並且在提交時刷新。
只有當事務提交時禁用自動刷新到'--file'指定的文件和刷新文件到磁碟,這意味著文件是被操作系統塊進行刷新,因此在事務進行提交之前有一些數據隱式刷新到磁碟。默認是每一行操作後進行文件刷新到磁碟。
--bulk-delete
指定單個語句刪除chunk的方式來批量刪除行,會隱式執行選項'--commit-each'。
使用單個DELETE語句刪除每個chunk對應的錶行,通常的做法是通過主鍵進行逐行的刪除,批量刪除在速度上會有很大的提升,但如果有復雜的'WHERE'條件就可能會更慢。
--[no]bulk-delete-limit
默認值:yes
指定添加選項'--bulk-delete'和'--limit'到進行歸檔的語句中。
--bulk-insert
使用LOAD DATA LOCAL INFILE的方法,通過批量插入chunk的方式來插入行(隱式指定選項'--bulk-delete'和'--commit-each')
而不是通過逐行單獨插入的方式進行,它比單行執行INSERT語句插入的速度要快。通過隱式創建臨時表來存儲需要批量插入的行(chunk),而不是直接進行批量插入操作,當臨時表中完成每個chunk之後再進行統一數據載入。為了保證數據的安全性,該選項會強制使用選項'--bulk-delete',這樣能夠有效保證刪除是在插入完全成功之後進行的。
--channel
指定當主從復制環境是多源復制時需要進行歸檔哪個主庫的數據,適用於多源復制中多個主庫對應一個從庫的情形。
--charset,-A
指定連接字元集。
--[no]check-charset
默認值:yes
指定檢查確保資料庫連接時字元集和表字元集相同。
--[no]check-columns
默認值:yes
指定檢查確保選項'--source'指定的源端表和'--dest'指定的目標表具有相同的欄位。
不檢查欄位在表的排序和欄位類型,只檢查欄位是否在源端表和目標表當中都存在,如果有不相同的欄位差異,則工具報錯退出。如果需要禁用該檢查,則指定'--no-check-columns'。
--check-slave-lag
指定主從復制延遲大於選項'--max-lag'指定的值之後暫停歸檔操作。默認情況下,工具會檢查所有的從庫,但該選項只作用於指定的從庫(通過DSN連接方式)。
--check-interval
默認值:1s
如果同時指定了選項'--check-slave-lag',則該選項指定的時間為工具發現主從復制延遲時暫停的時間。每進行操作100行時進行一次檢查。
--columns,-c
指定需要歸檔的表欄位,如有多個則用','(逗號)隔開。
--commit-each
指定按每次獲取和歸檔的行數進行提交,該選項會禁用選項'--txn-size'。
在每次獲取表數據並進行歸檔之後,在獲取下一次數據和選項'--sleep'指定的休眠時間之前,進行事務提交和刷新選項'--file'指定的文件,通過選項'--limit'控制事務的大小。
--host,-h
指定連接的資料庫IP地址。
--port,-P
指定連接的資料庫Port埠。
--user,-u
指定連接的資料庫用戶。
--password,-p
指定連接的資料庫用戶密碼。
--socket,-S
指定使用SOCKET文件連接。
--databases,-d
指定連接的資料庫
--source
指定需要進行歸檔操作的表,該選項是必須指定的選項,使用DSN方式表示。
--dest
指定要歸檔到的目標端表,使用DSN方式表示。
如果該選項沒有指定的話,則默認與選項'--source'指定源端表為相同表。

--where
指定通過WHERE條件語句指定需要歸檔的數據,該選項是必須指定的選項。不需要加上'WHERE'關鍵字,如果確實不需要WHERE條件進行限制,則指定'--where 1=1'。
--file
指定表數據需要歸檔到的文件。使用類似MySQL DATE_FORMAT()格式化命名方式。
文件內容與MySQL中SELECT INTO OUTFILE語句使用相同的格式,文件命名選項如下所示:
%Y:年,4位數(Year, numeric, four digits)
%m:月,2位數(Month, numeric (01..12))
%d:日,2位數(Day of the month, numeric (01..31))
%H:小時(Hour (00..23))
%i:分鍾(Minutes, numeric (00..59))
%s:秒(Seconds (00..59))
%D:資料庫名(Database name)
%t:表名(Table name)
二、原理解析
根據general log的輸出,我們整理出時序表格如下
三、其他說明
咋一看這個過程貌似也沒有什麼問題,但是,假如在原表掃描出數據,插入到新表的過程中,舊數據發生了變化怎麼辦?
帶著這個疑問,我們進行了源碼的跟蹤,我們在pt-archiver的6839行打上了斷點
然後我分別在幾個session窗口做了如下動作
最後pt-archiver輸出如下:
# A software update is available:
TIME ELAPSED COUNT
2020-04-08T09:13:21 0 0
2020-04-08T09:13:21 0 1
Started at 2020-04-08T09:13:21, ended at 2020-04-08T09:13:51
Source: A=utf8mb4,D=xucl,P=3306,h=127.0.0.1,p=...,t=t1,u=xucl
Dest: A=utf8mb4,D=xucl_archive,P=3306,h=127.0.0.1,p=...,t=t1,u=xucl
SELECT 1
INSERT 1
DELETE 1
Action Count Time Pct
sleep 1 30.0002 99.89
inserting 1 0.0213 0.07
commit 2 0.0080 0.03
select 2 0.0017 0.01
deleting 1 0.0005 0.00
other 0 0.0008 0.00
很明顯,id=3這條記錄並沒有進行歸檔(我們這里是改了條件列,實際生產中可能是更改了其他列,造成歸檔數據不準確)
那麼如何來解決這種情況的發生呢?
顯然,資料庫在資料庫中可以通過加排它鎖來防止其他程序修改對應的數據,pt-archiver其實早就已經幫我們考慮到了這樣的情況,pt-archiver提供了兩種選擇
--for-update:Adds the FOR UPDATE modifier to SELECT statements
--share-lock:Adds the LOCK IN SHARE MODE modifier to SELECT statements
四、總結
pt-archiver作為歸檔工具無疑是MySQL DBA日常運維的大利器之一,在使用過程中在知道如何使用的基礎上也能夠知曉其原理
歸檔過程中最好能對歸檔記錄進行加鎖操作,以免造成歸檔數據不準確
在主從環境中,歸檔過程最好控制速度,以免造成主從延遲
盡量控制好chunk的大小,不要過大,造成大事務

⑥ oracle資料庫歸檔的必要性以及如何進行歸檔

對於重要的生產業務建議開啟歸檔模式,通過對在線日誌的歸檔,可以在數據丟失時進行數據恢復、部分操作也只有在歸檔模式下才能實施、分析日誌內容等。
對於非歸檔資料庫開啟歸檔功能操作如下:
1)SQL> conn / as sysdba (以DBA身份連接資料庫)

2)SQL> shutdown immediate; (立即關閉資料庫)

3)SQL> startup mount (啟動實例並載入資料庫,但不打開)

4)SQL> alter database archivelog; (更改資料庫為歸檔模式)

5)SQL> alter database open; (打開資料庫)

6)SQL> alter system archive log start; (啟用自動歸檔)

7)SQL> exit (退出)

⑦ 資料庫歸檔是什麼意思

將不再經常使用的數據移到一個單獨的存儲設備來進行長期保存的過程。數據存檔由舊的數據組成,但它是以後參考所必需且很重要的數據,其數據必須遵從規則來保存。數據存檔具有索引和搜索功能,這樣文件可以很容易地找到。

可以利用數據存檔,以物理方式自動將數據倉庫中具有較低業務價值的數據遷移到更適合、更經濟高效的存儲層。有許多標准可用來確定業務價值較低的數據:如數據訪問和性能需求、數據的使用年限、數據屬於哪個地區或部門,以及分區用途。

當訪問率低的數據發展為消耗數據倉庫的最大一份,最合理的處理方式是以物理和邏輯方式從核心生產數據倉庫中分離此數據。



(7)資料庫歸檔存儲擴展閱讀

歸檔的目的是長時間存放有組織的數據集,確保其將來能夠被精細地檢索。改進的磁帶是這種應用最理想的方式。

備份是短時間存儲那些頻繁更換或更新的數據的副本。這相當於一批廉價的離線介質上的數據副本。通過這種方式,可以把數據與那些基於磁碟的數據中斷事件隔離開,以免同時遭到損壞,這樣,如果原始數據或存儲平台損壞的話,數據就可以恢復到任何磁碟陣列。

在磁碟到磁碟復制解決方案中,復制只能發生在兩個完全相同的設備中。此外,復制過程還可以中斷,這樣你就可以檢查在主數據存儲和鏡像倉庫之間的增量或差異。不過,這樣它可能會導致在磁碟到磁碟的復制過程中產生很多不易察覺的錯誤。

⑧ oracle資料庫歸檔是什麼意思,有什麼用

oracle歸檔是oracle管理中的一款軟體,是記錄任何對資料庫操作的日誌文件,歸檔日誌

oracle使用循環日誌方式 ,當日誌文件被循環使用的時候,日誌內容就被覆蓋了。

當打開日誌歸檔時,可以將日誌內容被覆蓋前存儲到歸檔目錄中。

配合備份策略,可以將資料庫恢復到任一時間點。

⑨ 提供一些大規模資料庫歸檔的解決方案

數據立方雲計算一體機是大數據處理平台,採用英特爾E5家族系列CPU及英特爾伺服器組件,具有超高性價比、超高處理性能、超高可靠性等特性,提供千億紀錄級別的海量數據實時入庫、實時檢索等功能。
數據立方雲計算一體機是一種處理海量數據的高效分布式軟硬體集合的雲處理平台,該平台可以從TB乃至PB級的數據中挖掘出有用的信息,並對這些海量信息進行快捷、高效的處理。平台支持100GBps以上量級的數據流實時索引,秒級響應客戶請求,秒級完成數據處理、查詢和分析工作。平台可以對入口數據進行實時索引,對數據進行分析、清理、分割,並將其存儲在雲存儲系統上,不僅在入庫和檢索時具有非常高的性能優勢,還可以支持數據深度挖掘和商業智能分析等業務。

⑩ 用戶歸檔文件存放在什麼位置的

WINCC的歸檔數據在建立之後就存儲在.mdf文件中,同時也會生成一個.ldf文件,保存在SQL Server資料庫中。
主資料庫文件保存在項目文件夾的根目錄下;變數記錄的快速歸檔文件保存在項目路徑的ArchiveManager文件夾下的TagLoggingFast文件夾中;變數記錄的慢速歸檔文件保存在項目路徑的ArchiveManager文件夾下的TagLoggingSlow文件夾中;報警記錄保存在項目路徑的ArchiveManager文件夾下的AlarmLogging文件夾中。

熱點內容
新名圖配置怎麼樣 發布:2024-05-19 09:31:30 瀏覽:94
php獲取子節點 發布:2024-05-19 09:21:18 瀏覽:160
php生成html 發布:2024-05-19 09:20:24 瀏覽:795
keil編譯步驟 發布:2024-05-19 08:58:12 瀏覽:702
ipad有哪些好用的c語言編譯器 發布:2024-05-19 08:41:56 瀏覽:767
征途手游版腳本 發布:2024-05-19 08:38:11 瀏覽:165
安卓咪咕音樂怎麼錄制視頻 發布:2024-05-19 07:56:06 瀏覽:838
如何搞出超大聲的聽聲辨位安卓版 發布:2024-05-19 07:46:21 瀏覽:927
linux安全模式 發布:2024-05-19 07:27:25 瀏覽:176
為什麼安卓手機安裝不了cpk 發布:2024-05-19 07:22:21 瀏覽:313