レッドウッドコンテナデータベースの展開を実現するために数分| [セコイア]データベースSequoiaDBセコイアテック

常にトラフィック負荷、コンテナが増加すると、仮想化は、オンラインアプリケーションのさまざまな種類の能力を持っている必要がありますなっています。分散型データベースではなく、コンテナの迅速な展開、運用、保守効率を向上させるために非常に良いパスを強化します。

 

私たちは、あなたがより速くSequoiaDBクラスタを始めるのに役立つドッカー道の展開最適化を再度、この記事では、ドッカーベースの迅速な展開SequoiaDB分散クラスタをご紹介します。

 

1.クラスタ構成


次のように我々は、マルチノード、高可用性SequoiaDBクラスタで6隻を配備します。

(本稿では、SequoiaDBのv3.2.3バージョンなど)


クラスタコーディネータノード、ディレクトリノード、3つのデータセットを含み、各データセットは、データノードとノード・インスタンスのMySQLの3つのコピーを有しています。

 

2.環境

​​​​​​​

OS :  Ubuntu 18Docker Version : 18.09.7Docker Compose Version: 1.25.3Database Version : SequoiaDB 3.2.3MySql Client: Sequoiasql-mysqlCluster Deployment : 1 coordinator, 1 catalog, 3 data nodes, and 1 MySQL instance

 

2.1ドッカーインストール

 

2.1.1ドッカー

ドッカーが異なるプラットフォーム上にインストールするために、ユーザは、ドッカーインストレーションガイドを参照してくださいすることができます。

 sudo apt-get install -y docker.io

 

2.1.2ドッカー、コン

ドッカーツールを構成し、YAMLファイルの展開(すなわち:ドッカ-compose.yaml)で定義されたアプリケーションドッカ複数の容器を定義するために使用されます。

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composesudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

 

 

2.1.3 MySQLクライアント

(まだインストールされていない場合)MySQLクライアントをインストールします

sudo apt install mysql-client-core-5.7

 

3. SequoiaDB分散クラスタの展開


定義されたSequoiaDBクラスタ構成「sequoiadb_containers /ドッキングウィンドウ-compose.yaml」、利用者は、必要なパッケージをダウンロードするには、2つのオプションがあります。

 

オプション1:クローニングレポアドレス 

(終了テキストパッケージを取得するために行ってきました[オリジナルを読むためにクリック])

 

オプション2:手動でダウンロード(同じディレクトリ構造を維持)

(終了テキストパッケージを取得するために行ってきました[オリジナルを読むためにクリック])

 

 

3.1クラスタの展開SequoiaDB

 

コマンドアップドッキングウィンドウ - コン:

    - あなたがローカルで見つからない場合は、画像dockerhubをダウンロードして行くことができます

    - 必要なコンテナを作成します。

    - スタートコンテナ

    - クラスタとMySQLインスタンス初期化SequoiaDB

 

1)クラスタの展開

cd sequoiadb_containers  (或者到docker-compose的目录。yaml文件下载)sudo docker-compose up -d

 

状態2)クラスタをチェック

$ sudo docker-compose ps                Name                         Command               State           Ports                  --------------------------------------------------------------------------------------------         sequoiadb_containers_catalog_1   sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_coord_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_data1_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_data2_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_data3_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_mysql_1     sh -c chmod +x /startup.sh ...   Up      0.0.0.0:3310->3310/tcp

 

3)待機展開クラスタがコーディネータ・ノードとMySQLに接続され、ユーザは、以下のようにクラスタの状態を確認することができます。

# 检查 coordinator 日志         $ sudo docker-compose logs coord         ...         ...         coord_1    | ************ Deploy SequoiaDB ************************         coord_1    | Create catalog: catalog:11800         coord_1    | Create coord:   coord:11810         coord_1    | Create data:    data1:11820         coord_1    | Create data:    data2:11820         coord_1    | Create data:    data3:11820         coord_1    | Create data:    data1:11830         coord_1    | Create data:    data2:11830         coord_1    | Create data:    data3:11830         coord_1    | Create data:    data1:11840         coord_1    | Create data:    data2:11840         coord_1    | Create data:    data3:11840         coord_1    | SDB Cluster successfully created.
         # 检查mysql日志         $ sudo docker-compose logs mysql         ...         ...         mysql_1    | >>> Waiting for COORD node to come up at (coord:11810)...         mysql_1    | >>> Waiting for COORD node to come up at (coord:11810)...         mysql_1    | >>> Waiting for COORD node to come up at (coord:11810)...         mysql_1    | Successfully reached COORD node at (coord:11810)         mysql_1    | COMMAND: /init.sh --port=3310 --coord=coord:11810         mysql_1    | Creating SequoiaSQL instance: MySQLInstance         mysql_1    | Modify configuration file and restart the instance: MySQLInstance         mysql_1    | Restarting instance: MySQLInstance         mysql_1    | Opening remote access to user root         mysql_1    | Restarting instance: MySQLInstance         mysql_1    | Instance MySQLInstance is created on port 3310, default user is root         mysql_1    | Init command returned: 0

 

MySQLの3.2接続を確認してください

$ mysql -h 127.0.0.1 -P 3310 -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.         Your MySQL connection id is 4         Server version: 5.7.25 Source distribution
         Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
         Oracle is a registered trademark of Oracle Corporation and/or its         affiliates. Other names may be trademarks of their respective         owners.
         Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
         mysql>

 

SequoiaDBの設定を確認します。

mysql> show variables like 'sequoiadb%';         +---------------------------------------+-------------+         | Variable_name                         | Value       |         +---------------------------------------+-------------+         | sequoiadb_bulk_insert_size            | 2000        |         | sequoiadb_conn_addr                   | coord:11810 |         | sequoiadb_debug_log                   | OFF         |         | sequoiadb_execute_only_in_mysql       | OFF         |         | sequoiadb_optimizer_select_count      | ON          |         | sequoiadb_password                    |             |         | sequoiadb_replica_size                | 1           |         | sequoiadb_selector_pushdown_threshold | 30          |         | sequoiadb_use_autocommit              | ON          |         | sequoiadb_use_bulk_insert             | ON          |         | sequoiadb_use_partition               | ON          |         | sequoiadb_user                        |             |         +---------------------------------------+-------------+         12 rows in set (0.01 sec)

         mysql> show storage engines;         +--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+         | Engine             | Support | Comment                                                                          | Transactions | XA   | Savepoints |         +--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+         | SequoiaDB          | DEFAULT | SequoiaDB storage engine(Community). Plugin: eebcb4f, Driver: 3.2.3, BuildTime:  | YES          | NO   | NO         |         | MRG_MYISAM         | YES     | Collection of identical MyISAM tables                                            | NO           | NO   | NO         |         | PERFORMANCE_SCHEMA | YES     | Performance Schema                                                               | NO           | NO   | NO         |         | BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)                   | NO           | NO   | NO         |         | MyISAM             | YES     | MyISAM storage engine                                                            | NO           | NO   | NO         |         | CSV                | YES     | CSV storage engine                                                               | NO           | NO   | NO         |         | ARCHIVE            | YES     | Archive storage engine                                                           | NO           | NO   | NO         |         | InnoDB             | YES     | Supports transactions, row-level locking, and foreign keys                       | YES          | YES  | YES        |         | FEDERATED          | NO      | Federated MySQL storage engine                                                   | NULL         | NULL | NULL       |         | MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                        | NO           | NO   | NO         |         +--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+         10 rows in set (0.00 sec)

 

3.3試験
       

ユーザーがコマンドを使用してMySQLデータベースとテーブルを作成することができます。

mysql> create database sample;         Query OK, 1 row affected (0.01 sec)
         mysql> use sample;         Database changed         mysql>  create table t1 (c1 int);         Query OK, 0 rows affected (0.47 sec)
         mysql> show table status;         +------+-----------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------+----------+----------------+---------+         | Name | Engine    | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation   | Checksum | Create_options | Comment |         +------+-----------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------+----------+----------------+---------+         | t1   | SequoiaDB |      10 | Fixed      |    0 |              0 |           0 |   8796093022208 |       131072 |         0 |           NULL | NULL        | NULL        | NULL       | utf8mb4_bin |     NULL |                |         |         +------+-----------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------+----------+----------------+---------+         1 row in set (0.03 sec)

 

4.クラスタ管理


       

4.1停止/開始クラスタ

 

アップコマンドを使用してSequoiaDBクラスタを作成した後、そのようにそれは起動を停止することができます。

注意:            

「停止」コマンドは、コンテナを削除しません、あなたはどのようなデータを失うことはありません。             

 

4.1.1停止命令

$ sudo docker-compose stop         Stopping sequoiadb_containers_mysql_1   ... done         Stopping sequoiadb_containers_coord_1   ... done         Stopping sequoiadb_containers_data2_1   ... done         Stopping sequoiadb_containers_data1_1   ... done         Stopping sequoiadb_containers_catalog_1 ... done         Stopping sequoiadb_containers_data3_1   ... done

         $ sudo docker-compose ps                    Name                         Command                State     Ports         ------------------------------------------------------------------------------         sequoiadb_containers_catalog_1   sh -c chmod +x /startup.sh ...   Exit 137                 sequoiadb_containers_coord_1     sh -c chmod +x /startup.sh ...   Exit 137                 sequoiadb_containers_data1_1     sh -c chmod +x /startup.sh ...   Exit 137                 sequoiadb_containers_data2_1     sh -c chmod +x /startup.sh ...   Exit 137                 sequoiadb_containers_data3_1     sh -c chmod +x /startup.sh ...   Exit 137                 sequoiadb_containers_mysql_1     sh -c chmod +x /startup.sh ...   Exit 137

 

4.1.2 startコマンド     

$ sudo docker-compose start         Starting catalog ... done         Starting data1   ... done         Starting data2   ... done         Starting data3   ... done         Starting coord   ... done         Starting mysql   ... done

         $ sudo docker-compose ps                    Name                         Command               State           Ports                  --------------------------------------------------------------------------------------------         sequoiadb_containers_catalog_1   sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_coord_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_data1_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_data2_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_data3_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_mysql_1     sh -c chmod +x /startup.sh ...   Up      0.0.0.0:3310->3310/tcp
         # Verity mysql client is up         $ sudo docker-compose logs mysql         Attaching to sequoiadb_containers_mysql_1         mysql_1    | Starting service sequoiasql-mysql ...         mysql_1    | ok. (PID: 38)         ...         mysql_1    | MySql instance is started

 

4.2アップ/ダウンクラスター
       

4.2.1ダウンコマンド

コンテナSequoiaDBクラスタの展開を停止し、削除するコマンドダウン。

注意:            

コンテナが破損したときに復元/ロールバックすることはできませんので、コマンドの実行ダウン、注意する必要があります。

$ sudo docker-compose down         Stopping sequoiadb_containers_mysql_1   ... done         Stopping sequoiadb_containers_coord_1   ... done         Stopping sequoiadb_containers_data2_1   ... done         Stopping sequoiadb_containers_data1_1   ... done         Stopping sequoiadb_containers_catalog_1 ... done         Stopping sequoiadb_containers_data3_1   ... done         Removing sequoiadb_containers_mysql_1   ... done         Removing sequoiadb_containers_coord_1   ... done         Removing sequoiadb_containers_data2_1   ... done         Removing sequoiadb_containers_data1_1   ... done         Removing sequoiadb_containers_catalog_1 ... done         Removing sequoiadb_containers_data3_1   ... done         Removing network sequoiadb_containers_sequoiadb_net
         $ sudo docker-compose ps         Name   Command   State   Ports         ------------------------------

 

4.2.2アップコマンド

 

コマンドアップサービス(コンテナ・ネットワーク)を作成して開始しますsequoiadbのcluserが定義されています。

$ sudo docker-compose up -d          Creating network "sequoiadb_containers_sequoiadb_net" with the default driver         Creating sequoiadb_containers_data2_1   ... done         Creating sequoiadb_containers_data3_1   ... done         Creating sequoiadb_containers_catalog_1 ... done         Creating sequoiadb_containers_data1_1   ... done         Creating sequoiadb_containers_coord_1   ... done         Creating sequoiadb_containers_mysql_1   ... done
         $ sudo docker-compose ps                    Name                         Command               State           Ports                  --------------------------------------------------------------------------------------------         sequoiadb_containers_catalog_1   sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_coord_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_data1_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_data2_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_data3_1     sh -c chmod +x /startup.sh ...   Up                                     sequoiadb_containers_mysql_1     sh -c chmod +x /startup.sh ...   Up      0.0.0.0:3310->3310/tcp
         # 验证MySQL连接         $ mysql -h 127.0.0.1  -P 3310 -u root         Welcome to the MySQL monitor.  Commands end with ; or \g.         Your MySQL connection id is 2         Server version: 5.7.25 Source distribution
         Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
         Oracle is a registered trademark of Oracle Corporation and/or its         affiliates. Other names may be trademarks of their respective         owners.
         Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
         mysql> show storage engines;         +--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+         | Engine             | Support | Comment                                                                          | Transactions | XA   | Savepoints |         +--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+         | SequoiaDB          | DEFAULT | SequoiaDB storage engine(Community). Plugin: eebcb4f, Driver: 3.2.3, BuildTime:  | YES          | NO   | NO         |         | MRG_MYISAM         | YES     | Collection of identical MyISAM tables                                            | NO           | NO   | NO         |         | PERFORMANCE_SCHEMA | YES     | Performance Schema                                                               | NO           | NO   | NO         |         | BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)                   | NO           | NO   | NO         |         | MyISAM             | YES     | MyISAM storage engine                                                            | NO           | NO   | NO         |         | CSV                | YES     | CSV storage engine                                                               | NO           | NO   | NO         |         | ARCHIVE            | YES     | Archive storage engine                                                           | NO           | NO   | NO         |         | InnoDB             | YES     | Supports transactions, row-level locking, and foreign keys                       | YES          | YES  | YES        |         | FEDERATED          | NO      | Federated MySQL storage engine                                                   | NULL         | NULL | NULL       |         | MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                        | NO           | NO   | NO         |         +--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+

 

あなたはそれの手を持っているかどうかはわからないのですか?

SequoiaDBのフォローアップは、あなたがすぐに分散データベースを始めるのに役立つ技術的なチュートリアルのシリーズを起動し続け、および分散データベースの原則をより良く理解するだろう、私たちは、ご期待します!

 

おすすめ

転載: www.cnblogs.com/sequoiadbsql/p/12425853.html