Мне нужно взять пространство ключей с сервера в качестве дампа и восстановить этот дамп в моей локальной кассандре, я знаю, что нужно делать в mysql, но как это сделать в nosql? Я узнаю на сайте, что nodetool, моментальный снимок и формат файла csv могут достичь этого, но я не смог его получить?
как взять пространство ключей как свалку в кассандре?
Ответ 1
Вы можете сделать это с помощью "nodetool". Для хорошей справочной документации смотрите здесь: http://www.datastax.com/docs/1.1/backup_restore
Примерно вам необходимо выполнить следующие шаги:
- возьмите "снимок" в пространстве
nodetool snapshot <keyspace-name>
используя:nodetool snapshot <keyspace-name>
. Это выполняется на сервере, где вы хотите принять, генерирует "моментальный снимок". Он будет делать это, сохраняя "моментальный снимок" для каждой таблицы в пространстве ключей. - скопируйте "снимки" на локальный сервер. Сделайте это для каждой таблицы ключей:
<cassandra-dir>/data/<keyspace-name>/<table-name>/snapshots/
(найдите "последний" сделанный снимок - когда вы берете снимок, он сообщает вам имя "/" ID "сделанного моментального снимка). - на вашем локальном сервере перед размещением моментальных снимков сервера выполните следующие действия: остановите cassandra, удалите содержимое этого "пространства ключей" (снова для каждой таблицы ключей:
<cassandra-dir>/data/<keyspace>/<table-name>/
), а затем поместить "серверные" снимки в каждую соответствующую таблицу "keyapce" (непосредственно в<cassandra-dir>/data/<keyspace>/<table-name>/
а не в каталоге "моментальный снимок"), - перезапустите локальный сервер, и у вас должны быть данные с сервера на локальном сервере.
НТН.
Ответ 2
Для этого снимок.
Команда для взятия snapshot-
<-path to cassandra bin folder> nodetool -h <-server host name/ IP> -p <-server port> snapshot
Это создаст каталог SNAPSHOT в папке VAR, и этот каталог содержит моментальный снимок
текущей базы данных сервера, которую вы можете использовать в качестве дампа для вашего локального сервера.