1. 程式人生 > 其它 >備份還原資料庫

備份還原資料庫

我以前寫用於備份和群集管理。但是,我給出的備份還原示例並不適用於所有情況--例如,它可能不能在完全獨立的叢集上工作。或者部分恢復到一個表,而不是整個資料庫。

在這種情況下,您可以選擇使用。它有一個簡單明瞭的語法:

1 2 3 sudo sstableloader -d 172.35.1.2,172.35.1.3 -ts /etc/cassandra/conf/truststore.jks \ -ks /etc/cassandra/conf/node.jks -f /etc/cassandra/conf/cassandra.yaml \ ~/keyspacename/table-0edcc420c19011e7a8c37656dd492a94

如果您檢視您的Priam生成的備份,看起來您只需複製特定表的檔案(例如,通過AWS上的S3AWScp)並匯入它們。不過有個陷阱。為了節省空間,Priam正在使用

所以你必須先解壓它們,然後再使用Sstabeloader或其他任何東西。但怎麼做?嗯,Priam為此提供了一項服務--您可以通過將絕對路徑傳遞到壓縮檔案,並將絕對路徑傳遞到應該放置未壓縮檔案的位置,這樣就可以簡單地通過解壓縮程式傳輸原始檔案。為了解壓縮整個備份,我編寫了一個python指令碼。它假定有一定的結構,但您可以將其引數化,使其更加靈活。下面是程式碼(請原諒我的非慣用Python,我只將它用於簡單的指令碼編寫):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #! /usr/bin/env python # python script used to pass each backup file through the decompression facility of Priam (using Snappy) # so that it can be used with sstableloader for restore import os import requests rootdir = '/home/ec2-user/backup'
target = '/home/ec2-user/keyspace' for subdir, dirs, files in os.walk(rootdir): for file in files: fullpath = os.path.join(subdir, file) parent = os.path.join(fullpath, os.pardir) table = os.path.basename(os.path.abspath(parent)) targetdir = target + "/" + table + "/" if not os.path.exists(targetdir): os.makedirs(targetdir) url = + fullpath + '&out=' + target + "/" + table + "/" + file print(url) requests.get(url)

https://www.douban.com/note/810995454/

現在您已經解壓縮了備份檔案,您可以使用sstableloader恢復這些檔案。如果您有大量資料,可能需要一些時間,並且不應該在執行快照備份的同時執行還原,因為它可能會失敗(文件警告過)。

然後,如果你幸運的話,一切都會過去的。不幸的是,在某些情況下,它並不完美,因此,如果您刪除了一個列,那麼恢復一箇舊的stable就會失敗,因為它會嘗試插入缺失的列。這聽起來對實際生產系統來說是個大問題,有時,由於未知的原因(在流中失敗,據稱資料損壞),表可能只是無法恢復。在這些情況下,您可能需要使用然後將JSON轉換為CQL以插入它。當然,沒有工具可以這樣做,所以。它並不完美,也不支援使用者定義的型別、集合和對映。請注意,對於大型表來說,這可能不是一個很好的主意,而只是對於較小的表。

總之,有備份是非常重要的,但更重要的是能夠從備份中恢復。如果沒有還原過程,備份是無用的。簡單地擁有可用的工具(例如Priam)並不意味著您可以準備好執行還原過程。您應該對活動的暫存資料進行測試還原,以及在空的新形成的叢集上進行完全恢復,因為有不同的恢復方案。

https://m.douban.com/mip/note/810995454/

近年來,隨著資料保護和隱私保護的趨勢,以及GDPR和CCPA等資料保護法規的要求,一些組織正試圖對其個人資料進行重組,使其具有更高的保護水平。

我看到組織採取的一種方法是應用“個人資料儲存”模式(我稱之為“個人資料儲存”模式)。也就是說,從現有系統中提取所有個人資料,並將其儲存在一個地方,在那裡可以通過API(或在某些情況下直接通過資料庫)訪問。個人資料儲存有很好的保護,審計,有正確的審計跟蹤和異常檢測,並提供隱私保護功能。

將一個人的資料保護工作主要集中在一個地方而不是分散在幾十個系統上是有意義的。當然,將這麼多資料從遺留系統遷移到一個新模組,然後升級到仍然能夠在需要時請求和使用這些資料,這絕非易事。這就是為什麼在某些情況下,這種模式只適用於敏感資料--醫療、生物識別、信用卡等。

為了完整起見,還有一種叫做它意味著一種體系結構,使用者自己儲存自己的資料以便進行控制。雖然這在理論上是不錯的,但在實踐中很少有使用者有這樣的能力,儘管我很佩