ssdbクラスター+ keepalivedビルド実際の戦闘-5。バックアップと復元

ssdbクラスター+ keepalivedビルド実際の戦闘-5。バックアップと復元

環境

オペレーティングシステム:CentOS Linuxリリース7.6.1810(コア)
ssdb:1.9.7
keepalived:keepalived-2.0.16
IP:
マスター:10.11.100.87
スレーブ:10.11.100.88

vip:10.11.100.89

バックアップと復元

参照:SSDBデータのバックアップ(エクスポート/インポート)
ssdb公式は2つのバックアップソリューションを提供します:エクスポートとssdb-dump

バックアップのエクスポート

エクスポートバックアップでは、組み込みのssdb-cliツールを使用してssdbサーバーに接続し、バックアップ作業を実行します。エクスポートするコンテンツは、キー間隔に従ってフィルタリングできます。

1.データを作成する

[root@localhost ssdb]# ./ssdb-cli -h 10.11.100.87 -p 8888
ssdb (cli) - ssdb command line tool.
Copyright (c) 2012-2016 ssdb.io

'h' or 'help' for help, 'q' to quit.

ssdb-server 1.9.7

ssdb 10.11.100.87:8888> set a 1
ok
(0.001 sec)
ssdb 10.11.100.87:8888> set b 2
ok
(0.001 sec)
ssdb 10.11.100.87:8888> set c 3
ok
(0.002 sec)
ssdb 10.11.100.87:8888> q
bye.

2.バックアップを実行します

バックアップスクリプトを直接実行する

ssdb 10.11.100.87:8888> export backup.ssdb
100%
done.

生成されたファイルを表示します。

[root@localhost ssdb]# ls
api          deps        ssdb_cli      ssdb.conf    ssdb-server      var_slave
backup.ssdb  log.txt     ssdb-cli      ssdb-dump    ssdb_slave.conf
_cpy_        ssdb-bench  ssdb-cli.cpy  ssdb-repair  var
[root@localhost ssdb]# cat backup.ssdb 
set	a	1
set	b	2
set	c	3

元のエクスポートステートメントは、setステートメントを使用してデータを保存することです。

さらに、キー間隔でデータベースをエクスポートする必要がある場合は、-iオプションを使用する必要があります。

ssdb 127.0.0.1:8888> export -i backup.ssdb
input KV range[start, end]:
  start(inclusive, default none): a
	end(inclusive, default none): z
input HASH range:
  start(inclusive, default none):
	end(inclusive, default none):
input ZSET range:
  start(inclusive, default none):
	end(inclusive, default none):
input QUEUE range:
  start(inclusive, default none):
	end(inclusive, default none):

コマンドexport -i backup.ssdbは、間隔[a、z]でKV、すべてのHASH、ZSET、QUEUEをエクスポートします

3.データ変更

データを変更し、aを削除し、dを追加します。

[root@localhost ssdb]# ./ssdb-cli -h 10.11.100.87 -p 8888
ssdb (cli) - ssdb command line tool.
Copyright (c) 2012-2016 ssdb.io

'h' or 'help' for help, 'q' to quit.

ssdb-server 1.9.7

ssdb 10.11.100.87:8888> get a
1
(0.001 sec)
ssdb 10.11.100.87:8888> del a
ok
(0.002 sec)
ssdb 10.11.100.87:8888> set d 4
ok
(0.001 sec)

4.インポート

バックアップスクリプトをデータベースにインポートします。

ssdb 10.11.100.87:8888> import backup.ssdb
33%
66%
100%
done.

5.検証

確認ステータス:

ssdb 10.11.100.87:8888> get a
1
(0.001 sec)
ssdb 10.11.100.87:8888> get d
4
(0.001 sec)

以前に削除されたaは復元されましたが、バックアップの後に追加されたdはまだ存在しています。
この種類のexport-importコマンドは、バックアップ中にのみデータをsetステートメントに変換することを説明します。これは、リカバリ中にsetステートメントを実行することと同じです。この場合、新しく追加されたデータはバックアップ後に削除されません。
バックアップ時の状態を完全に復元したい場合は、データベースを完全に空にする必要があります。

ssdb-dumpバックアップ

インストールが完了した後、ssdbデータベースは独自のssdb-dumpコマンドを持ち、ツールディレクトリに保存されます。使用方法:

./tools/ssdb-dump ip port output_folder

オプション:

  • ip-ssdbサーバーによって監視されるIPアドレス
  • port-ssdbサーバーが待機するポート番号
  • バックアップデータが作成されるoutput_folder-localディレクトリ

例:

./tools/ssdb-dump 127.0.0.1 8888 ./output_folder

ssdb-dumpがこのディレクトリを作成するため、ディレクトリoutput_folderは存在してはなりません。エクスポート後、このディレクトリには2つのサブディレクトリがあり、データディレクトリにはデータが含まれ、空のメタディレクトリがあります。

1.データを作成する

また、初期データを生成します。

[root@localhost ssdb]# ./ssdb-cli -h 10.11.100.87 -p 8888
ssdb (cli) - ssdb command line tool.
Copyright (c) 2012-2016 ssdb.io

'h' or 'help' for help, 'q' to quit.

ssdb-server 1.9.7

ssdb 10.11.100.87:8888> set a 1
ok
(0.001 sec)
ssdb 10.11.100.87:8888> set b 2
ok
(0.001 sec)
ssdb 10.11.100.87:8888> set c 3
ok
(0.001 sec)

2.バックアップを実行します

エクスポート:

[root@localhost ssdb]# ./ssdb-dump 10.11.100.87 8888 ./backup.ssdb
ssdb-dump - SSDB backup command
Copyright (c) 2012-2015 ssdb.io

recv begin...
received 1 entry(s)
received 3 entry(s)
recv end

total dumped 3 entry(s)
                               Compactions
Level  Files Size(MB) Time(sec) Read(MB) Write(MB)
--------------------------------------------------

compacting data...
                               Compactions
Level  Files Size(MB) Time(sec) Read(MB) Write(MB)
--------------------------------------------------
  2        1        0         0        0         0

backup has been made to folder: ./backup.ssdb

backup.ssdbフォルダーが生成され、データディレクトリにはデータが含まれ、メタディレクトリは空のディレクトリです。

[root@localhost ssdb]# cd backup.ssdb/
[root@localhost backup.ssdb]# ls
data  meta
[root@localhost backup.ssdb]# ls data/
000004.log  000005.ldb  CURRENT  LOCK  LOG  MANIFEST-000002
[root@localhost backup.ssdb]# ls meta/

3.データ変更

データを変更し、aを削除し、dを追加します。

ssdb 10.11.100.87:8888> del a
ok
(0.001 sec)
ssdb 10.11.100.87:8888> set d 4
ok
(0.001 sec)

4.インポート

work_dirを置き換えて、サービスを再起動します。

[root@localhost ssdb]# ./ssdb-server ssdb.conf -s stop
ssdb-server 1.9.7
Copyright (c) 2012-2015 ssdb.io

[root@localhost ssdb]# mv var var.bak
[root@localhost ssdb]# mv backup.ssdb var

[root@localhost ssdb]# ./ssdb-server -d ssdb.conf 
ssdb-server 1.9.7
Copyright (c) 2012-2015 ssdb.io

5.検証

ssdb 10.11.100.87:8888> get a
1
(0.002 sec)
ssdb 10.11.100.87:8888> get d
not_found
(0.002 sec)

バックアップ状態に完全に復元

元の記事を136件公開 58のように 360,000以上を訪問

おすすめ

転載: blog.csdn.net/sunbocong/article/details/94435280