2015-08-11 1 views
1

Данные были удалены из производственной базы данных с помощью команды TRUNCATE случайно, и я не знаю, как ее восстановить. Я читал о auto_snapshot [1] и, к счастью, этот параметр включен. У нас есть куча снимков (перечисленных ниже) в папке snapshots, и мы не знаем, какие из них мы должны использовать для восстановления данных.Какой снимок следует использовать для восстановления данных после случайного усечения?

[email protected]:/raid0/cassandra/data/raw_data_keyspace/raw_buy_hits-d5e2fc5005f411e5bc39c93f22adf770/snapshots# du 
44  ./1439296902349-raw_buy_hits 
44  ./1439296723590-raw_buy_hits 
48  ./1439296608175-raw_buy_hits 
171964 ./1439296089074-raw_buy_hits 
171032 ./1439203561681 
44  ./1439296856042-raw_buy_hits 
44  ./1439296234966-raw_buy_hits 
343224 . 

Я не упоминал об этой проблеме, когда читал документы Кассандры.

Какую из снимков мы должны использовать? Должен ли он быть одним из них или мы должны использовать их все, чтобы восстановить все данные, которые мы потеряли?

+0

http://docs.datastax.com/en/archived/cassandra/2.0/cassandra/operations/ops_backup_snapshot_restore_t.html –

+0

https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsBackupSnapshotRestore .html –

ответ

0

Вам нужно будет использовать последний моментальный снимок (или самый последний снимок перед усечением, если после усечения были дополнительные снимки).

Cassandra использует жесткие ссылки при создании снимков, поэтому размеры этих снимков настолько разные. Получите размер для каждого отдельного моментального снимка, который вы должны запускать отдельно для команд du для каждого из них, таким образом вы можете видеть, какой размер был во время моментального снимка.

Таким образом, вместо того, чтобы полагаться на du только список каталогов в по дате (ls -ltr), выберите снимок, который вы хотите восстановить, а затем использовать команду du, чтобы проверить это размер вы ожидаете.