我們通過快照爲Cassandra生產環境設置了備份/恢復過程。快照文件,模式和令牌環信息被複制到S3。在開發人員或測試羣集(單節點羣集)上還原Cassandra快照(來自3節點羣集)
生產羣集是3節點集羣的3
對於開發和測試一個複製因子,我想從生產快照恢復到分離簇。爲了節省資金和保持維護的方便,最好只從一個生產節點恢復快照。由於我們在3節點集羣中使用複製因子3,因此每個快照應該包含所有行。一致性對於我們的用例也不重要。
是否有可能(以及如何)只恢復一個快照?
我們通過快照爲Cassandra生產環境設置了備份/恢復過程。快照文件,模式和令牌環信息被複制到S3。在開發人員或測試羣集(單節點羣集)上還原Cassandra快照(來自3節點羣集)
生產羣集是3節點集羣的3
對於開發和測試一個複製因子,我想從生產快照恢復到分離簇。爲了節省資金和保持維護的方便,最好只從一個生產節點恢復快照。由於我們在3節點集羣中使用複製因子3,因此每個快照應該包含所有行。一致性對於我們的用例也不重要。
是否有可能(以及如何)只恢復一個快照?
所有的數據都應該存在於所有3個節點上,因此將任何1節點的sstables複製到測試集羣應該足夠了。如果擔心一致性,確保最近進行的修復可能是一個好主意。
首先在測試集羣上創建相同的模式。然後,您可以簡單地使用nodetool snapshot -t cloneme
拍攝快照。完成後,將所創建的文件夾(cloneme)中的所有sstable複製到測試羣集上的等效表文件夾中。然後運行nodetool refresh
。
如果你有不同的拓撲結構(更多的節點,不同的RF),但由於你的「每個節點都擁有所有的數據」是非常簡單的,所以它變得複雜得多。
值得一提的是,OpsCenter具有自動執行copying of a backup to other clusters的功能。
嗨克里斯。謝謝你快速的回覆。有用。其實很簡單。 – Henrik
你有看看http://stackoverflow.com/questions/25465904/how-can-i-restore-cassandra-snapshots? –