2015-04-29 58 views
0

我想測試S3的備份/恢復功能。 我做了什麼:在亞馬遜卡桑德拉DSE,從S3超時恢復

  1. 安裝DSE +的OpsCenter
  2. 計劃所有keyspaces的每小時備份(60 MB總大小)。早上有10個備份。
  3. 終止實例並創建新實例
  4. 嘗試獲取我的數據。沒有運氣。 OpsCenter中無法連接到我的S3存儲 enter image description here

需要現在> 10分鐘......

我該怎麼辦錯了嗎?

UPD:

終於得到了迴應: enter image description here

+0

貌似OpsCenter中的問題。當我嘗試從空籃子恢復備份時,它立即報告沒有備份... – Sergey

+0

您的IAM策略是否授予opscenter用戶足夠的權利? [Here](http://stackoverflow.com/questions/29131437/iam-policy-for-opscenter-backup-to-s3-user)是我正在使用的策略,但我還沒有嘗試過還原。 – LHWizard

+0

是的,我使用該策略進行備份並無法恢復。我已在OpsCenter中啓用調試。 OpsCenter在5-7分鐘內從S3獲得響應(請參閱opscenterd.log),但OpsCenter UI較早發生錯誤,並且不會處理延遲響應。 – Sergey

回答

1

我認爲,這可能是OPSC-5915(對不起,沒有公共的bug跟蹤系統),它被固定在即將到來的5.2.0版本。

總結是,API調用仍將按預期工作,但UI不會正確地將目標信息推送到API端點。

您可以確認這是您遇到正是如此錯誤:

1) goto /etc/opscenter/clusters/<cluster_name>.conf (or similar location depending on if you've done a tarball install/etc) 
2) Find the destination ID that matches your bucket, it'll look something like b699738d9bd8409c82e664b543f24030 
3) Confirm the clustername in your opsc URLs, it'll look something like localhost:8888/my_cluster 
4) Manually hit the API to retrieve your backup list 
curl localhost:8888/<clustername>/backups?amount=6\&last_seen=\&list_all=1\&destination=<destination ID> 
It'll look like this 
curl localhost:8888/dse/backups?amount=6\&last_seen=\&list_all=1\&destination=b699738d9bd8409c82e664b543f24030 
5) You should get back a json, confirm that your backup is listed 
{"opscenter_adhoc_2014-12-17-20-22-57-UTC": {"keyspaces": {"OpsCenter":... 

如果你看到JSON備份,然後OPSC看到你的備份,這確實是OPSC-5915,所以這是至少證實。

如果這是你的情況,我們可以通過手動點擊恢復API來解決它(這肯定會涉及更多一點)。

http://docs.datastax.com/en/opscenter/5.1/api/docs/backups.html#backups

它會看起來有點像這樣:

BACKUP='opscenter_4a269167-96c1-40c7-84b7-b070c6bcd0cd_2012-06-07-18-00-00-UTC' 
    curl -X POST 
     http://192.168.1.1:8888/Test_Cluster/backups/restore/$BACKUP 
     -d '{ 
      "destination": "fe85800f3f4043a88fbe76fc45b22b19", 
      "keyspaces": { 
      "Keyspace1": { 
       "column-families: ["users", "dates"], 
       "truncate": true 
      }, 
      "OpsCenter": { 
       "truncate": false 
      } 
      }, 
     }' 
+0

謝謝,我們決定做同樣的事情,然後回到API。 – Sergey