1. mycatとは エンタープライズアプリケーション開発のための完全にオープンソースの大規模データベースクラスター トランザクション、ACIDをサポートし、MySQLを置き換えることができる拡張データベース 高価なOracleクラスタに代わるMySQLクラスタとして見ることができるエンタープライズクラスのデータベース メモリキャッシュ技術、NoSQL技術、HDFSビッグデータを統合した新しいSQL Server 従来のデータベースと新しい分散データウェアハウスを組み合わせた、エンタープライズレベルの新世代データベース製品 新しいデータベースミドルウェア製品 上記は公式声明です。実際、それはデータベース接続プールです。 MySQL プロキシも接続プールですが、その効率は非常に低いです。 2. Mycatのインストール 1. ダウンロードアドレスmycat 翻訳元: 2. mycatをインストールする # tar zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/ 3. mycatを設定する 1. server.xmlを構成する # vim /usr/local/mycat/conf/server.xml //次のコンテンツを追加します<user name="user"> //mycat ユーザー名<property name="password">user</property> //mycat パスワード<property name="schemas">mytest</property> //mycat 仮想データベース名<property name="readOnly">true</property> //読み取り専用</user> <ユーザー名="tankzhang"> <property name="password">管理者</property> <property name="schemas">mytest</property> </ユーザー> デフォルトの仮想データベース名は TESTDB であることに注意してください。schema.xml で testdb が設定されていない場合は、schema.xml で testdb を仮想データベース名に変更する必要があります。ここで定義されたユーザー名とパスワード、および仮想データベース名は、実際には MySQL に存在しません。 2. schema.xmlを構成する # 猫スキーマ.xml <?xml バージョン="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:スキーマ xmlns:mycat="http://io.mycat/"> <schema name="mytest" checkSQLschema="false" sqlMaxLimit="100" dataNode="my1" />//仮想データベース名 mytest を定義します <dataNode name="my1" dataHost="test1" database="test" /> //実際のデータベース名はtestです <dataHost name="test1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" > <heartbeat>ユーザーを選択()</heartbeat> <writeHost host="hostM1" url="192.168.5.213:3306" user="tank" password="123456" > //実際のデータベース接続方法 <readHost host="hostS1" url="192.168.5.214:3306" user="tank" password="123456" /> //上記と同じ</writeHost> </データホスト> </mycat:スキーマ> mycat の設定パラメータは非常に多くあります。 balance="1" と writeType="0" に注目 a. バランス属性の負荷分散タイプ。現在 4 つの値があります。 1. balance="0" の場合、読み取り/書き込み分離メカニズムは有効にならず、すべての読み取り操作は現在利用可能な writeHost に送信されます。 2. balance="1" の場合、すべての readHost とスタンバイ writeHost が、select ステートメントの負荷分散に参加します。簡単に言うと、デュアル マスターおよびデュアル スレーブ モード (M1 -> S1、M2-> S2、M1 と M2 は相互にマスターとスレーブ) では、通常の状況では、M2、S1、および S2 がすべて、select ステートメントの負荷分散に参加します。 3. balance="2" の場合、すべての読み取り操作は writeHost と readhost にランダムに分散されます。 4. balance="3" の場合、すべての読み取り要求は writerHost に対応する readhost にランダムに分散されて実行され、writerHost は読み取り負荷を負いません。balance=3 は 1.4 以降のバージョンでのみ使用可能であり、1.3 では使用できません。 b. writeType属性 負荷分散タイプ。現在、次の 3 つの値があります。 1. writeType="0" の場合、すべての書き込み操作は最初に構成された writeHost に送信されます。最初の writeHost が失敗した場合は、まだ動作している 2 番目の writeHost に切り替えられます。 writeHost の場合、再起動後は切り替えられたホストが優先され、切り替え内容は構成ファイル dnindex.properties に記録されます。 2. writeType="1" の場合、すべての書き込み操作は構成された writeHost にランダムに送信されます。 3. writeType="2"、実装されていません。 具体的なパラメータ: http://mycat.io/document/Mycat_V1.6.0.pdf 3. マスタースレーブサーバーを構成します。ここでは説明しません。これについてはブログ投稿があります。 4. 実際のユーザーを追加する '123456' で識別される tank@"192.168.%" に test.* のすべての権限を付与します。 権限をフラッシュする マシン 213 および 214 にユーザーを追加します。 5. 実際のユーザー接続をテストして、schema.xml で設定された実際のユーザーが実際のデータベースに接続できることを確認します。ファイアウォールに注意してください。 4番目に、mycatを起動します 1. 共通パラメータ 2. mycatを起動して表示する # ./mycat 開始 Mycat サーバーを起動しています... # netstat -tpnl |grep 8066 tcp 0 0 :::8066 :::* LISTEN 31728/java # ./mycat ステータス Mycat サーバーが実行中です (31726)。 5. 読み取りと書き込みの分離をテストする # mysql -u tankzhang -p -P 8066 -h 127.0.0.1 // 127.0.0.1 を必ず含めてください パスワードを入力してください: MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは1です サーバーバージョン: 5.6.29-mycat-1.6-RELEASE-20161028204710 MyCat サーバー (OpenClundDB) Copyright (c) 2000, 2016, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> データベースを表示します。 +----------+ | データベース | +----------+ | mytest | //仮想データベース+----------+ セット内の 1 行 (0.00 秒) mysql> mytest を使用します。 テーブル名と列名の補完のためのテーブル情報の読み取り -Aでこの機能をオフにすると起動が速くなります。 mysql> `user`が存在しない場合はテーブルを作成します( -> `id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'ID', -> `name` varchar(20) NOT NULL DEFAULT '' COMMENT 'Name', -> `create_time` int(10) NOT NULL DEFAULT '0' COMMENT '作成時刻', -> 主キー (`id`) -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; クエリは正常、影響を受けた行は 0 行 (0.08 秒) データベースが変更されました mysql> テーブルを表示します。 +----------------+ | テスト中のテーブル | +----------------+ | ユーザー | +----------------+ セット内の1行(0.01秒) mysql> `user` (`id` 、`name`) に VALUES ('1'、'tank') を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> select * from user; //スレーブデータベースのユーザーテーブル内の名前を変更すると、スレーブデータベースから読み取られていることがわかります +----+-----------+-------------+ | ID | 名前 | 作成時刻 | +----+-----------+-------------+ | 1 | タンクチャン | 0 | +----+-----------+-------------+ セット内の1行(0.01秒) VI. 要約 mycat は、mysql テーブルのパーティショニング、シャーディングなどをサポートしていますが、推奨されません。 Mycat は多くのクラスターをサポートしていないため、mha で使用できると便利です。 以下もご興味があるかもしれません:
|
>>: jQuery でダイナミックなパーティクル効果を実現
この物語は、今日の予期せぬ発見から始まります。同社には複数のウェブサイトがある。友達リンクにはお互い...
目次1. プロジェクトフォルダ構造1. アセットフォルダ2. 図書館3. ローカル設定(ローカル) ...
1. 単一列インデックスどの列にインデックスを作成するかを選択することは、パフォーマンス最適化プロ...
vuexとはvuex: vue.js専用に開発された状態管理ツールで、すべてのコンポーネントの状態を...
OpenShift 3.9 の最新バージョンを体験する最も早い方法。準備 [root@host ~]...
今日、プロジェクトのホームページにアクセスするために Tomcat を設定していたところ、404 エ...
カーネル 2.6 の時代には、アクセス制御セキュリティ ポリシーのメカニズムを提供するために新しいセ...
はじめに: すべてのデータを 1 つのテーブルに保存することのデメリット表の構成構造は複雑で不明瞭で...
目次1. フロントエンドのリーディングプロセス: 2. プラグインの使用と初期化2.1 vue-ad...
Vue ファースト スクリーン パフォーマンス最適化コンポーネントVue ファースト スクリーン パ...
W3C 標準化プロセスは 7 つの異なるステップに分かれています。 W3C 標準化プロセスは 7 つ...
この記事は、参考のためにMySQL 8.0.19のインストールと設定のグラフィックチュートリアルを記...
目次2. カンマ演算子3. JavaScript Null 結合演算子 (??) 4. JavaSc...
Nginx の動的および静的分離の概要Nginx は静的処理能力が強力ですが、動的処理能力が不十分で...
目次1. Nginxロケーションの基本設定1.1 Nginx 設定ファイル1.2 Pythonスクリ...