前面我们了解了mha管理一组主从,然而在实际生产环境中不同的应用会使用不同的数据库,因此会有多组主从复制,我们可以使用一个mha manager 来管理多组主从复制数据库。我们只需要创建一个全局配置文件,你可以将这几组中相同的配置信息写到全局配置文件中,如用户名、密码等,而其他的配置信息单独写到每个app*.cnf中。
官网介绍:
https://code.google.com/p/mysql-master-ha/wiki/Configuration
下面我们就来介绍下:
mha架构:
如上:我们使用一个mha manager节点来管理3组主从复制,我这面只配置两组,每组具体的配置请参考前面的博文,在此只介绍重点。
10.10.10.59 mha manager
APP1:
10.10.10.56 master
10.10.10.57 slave1
10.10.10.58 slave2
10.10.10.60 vip
APP2:
10.10.10.61 master
10.10.10.62 slave1
10.10.10.63 slave2
10.10.10.64 vip
1.创建全局配置文件masterha_default.cnf
mkdir -p /etc/mha cp /usr/local/src/mha4mysql-manager-0.56/samples/conf/masterha_default.cnf /etc/mha/ ln -s /etc/mha/masterha_default.cnf /etc/masterha_default.cnf #将相同的配置信息写到全局配置文件中 [root@rd-mysql-test4 mha]# cat masterha_default.cnf [server default] master_binlog_dir=/data/mysql password=123456 ping_interval=1 remote_workdir=/tmp repl_password=123456 repl_user=rep report_script=/usr/local/bin/send_report ssh_port=22 ssh_user=root user=mha注意:masterha_default.cnf一定要在/etc下,否则检查过程中会找不到这个文件,为将所有的mha相关配置文件放在一起方便管理,我做了软连接。
2.创建每个应用对应的配置文件app*.conf
app1.conf
[root@rd-mysql-test4 mha]# cat /etc/mha/app1.cnf [server default] manager_log=/var/log/masterha/app1/manager.log manager_workdir=/var/log/masterha/app1 master_ip_failover_script=/usr/local/bin/master_ip_failover_app1 master_ip_online_change_script=/usr/local/bin/master_ip_online_change_app1 [server1] hostname=10.10.10.56 port=3306 [server2] candidate_master=1 check_repl_delay=0 hostname=10.10.10.57 port=3306 [server3] hostname=10.10.10.58 port=3306app2.conf
[root@rd-mysql-test4 mha]# cat /etc/mha/app2.cnf [server default] manager_log=/var/log/masterha/app2/manager.log manager_workdir=/var/log/masterha/app2 master_ip_failover_script=/usr/local/bin/master_ip_failover_app2 master_ip_online_change_script=/usr/local/bin/master_ip_online_change_app2 [server1] hostname=10.10.10.61 port=3306 [server2] candidate_master=1 check_repl_delay=0 hostname=10.10.10.62 port=3306 [server3] hostname=10.10.10.63 port=3306注意:每个应用的master_ip_failover_script和master_ip_online_change_script对应的脚本不一样,因为我们在迁移过程中使用vip来达到高可用的目的,master_ip_failover在自动failover过程中使vip会自动漂移,而master_ip_online_change在在线迁移过程中使vip漂移。因此在多个主从复制组我们使用多个不同的脚本来管理不同的ip。
3.检查ssh配置
masterha_check_ssh --conf=/etc/mha/app1.cnf
masterha_check_ssh --conf=/etc/mha/app2.cnf
注:(1)全局配置文件在检测过程中会自动检查,如果找不到全局配置文件,就会读取指定的应用配置文件。
(2)每个主从复制组都需要和mha manager节点配置ssh无密码登录,但组与组之前不要配置。
4.检查replication配置
masterha_check_repl --conf=/etc/mha/app1.cnf
masterha_check_repl --conf=/etc/mha/app2.cnf
5.启动监控
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover /var/log/masterha/app1/manager.log 2>&1 &
nohup masterha_manager --conf=/etc/mha/app2.cnf --remove_dead_master_conf --ignore_last_failover /var/log/masterha/app1/manager.log 2>&1 &

酸性属性には、原子性、一貫性、分離、耐久性が含まれ、データベース設計の基礎です。 1.原子性は、トランザクションが完全に成功するか、完全に失敗することを保証します。 2.一貫性により、データベースがトランザクションの前後に一貫性を保証します。 3.分離により、トランザクションが互いに干渉しないようにします。 4.永続性により、トランザクションの提出後にデータが永久に保存されることが保証されます。

MySQLは、データベース管理システム(DBMS)であるだけでなく、プログラミング言語にも密接に関連しています。 1)DBMSとして、MySQLはデータを保存、整理、取得するために使用され、インデックスを最適化するとクエリのパフォーマンスが向上する可能性があります。 2)SQLとPythonに埋め込まれたプログラミング言語とSQLalchemyなどのORMツールを使用すると、操作を簡素化できます。 3)パフォーマンスの最適化には、インデックス、クエリ、キャッシュ、ライブラリ、テーブル分割、およびトランザクション管理が含まれます。

MySQLはSQLコマンドを使用してデータを管理します。 1.基本コマンドには、select、挿入、更新、削除が含まれます。 2。高度な使用には、参加、サブクエリ、および集計関数が含まれます。 3.一般的なエラーには、構文、ロジック、パフォーマンスの問題が含まれます。 4。最適化のヒントには、インデックスの使用、Select*の回避、制限の使用が含まれます。

MySQLは、データの保存と管理に適した効率的なリレーショナルデータベース管理システムです。その利点には、高性能クエリ、柔軟なトランザクション処理、豊富なデータ型が含まれます。実際のアプリケーションでは、MySQLはeコマースプラットフォーム、ソーシャルネットワーク、コンテンツ管理システムでよく使用されますが、パフォーマンスの最適化、データセキュリティ、スケーラビリティに注意を払う必要があります。

SQLとMySQLの関係は、標準言語と特定の実装との関係です。 1.SQLは、リレーショナルデータベースの管理と操作に使用される標準言語であり、データの追加、削除、変更、クエリを可能にします。 2.MYSQLは、SQLを運用言語として使用し、効率的なデータストレージと管理を提供する特定のデータベース管理システムです。

INNODBは、レドログと非論的なものを使用して、データの一貫性と信頼性を確保しています。 1.レドログは、クラッシュの回復とトランザクションの持続性を確保するために、データページの変更を記録します。 2.Undologsは、元のデータ値を記録し、トランザクションロールバックとMVCCをサポートします。

説明コマンドのキーメトリックには、タイプ、キー、行、および追加が含まれます。 1)タイプは、クエリのアクセスタイプを反映しています。値が高いほど、constなどの効率が高くなります。 2)キーは使用されているインデックスを表示し、nullはインデックスがないことを示します。 3)行はスキャンされた行の数を推定し、クエリのパフォーマンスに影響します。 4)追加の情報を最適化する必要があるというFilesortプロンプトを使用するなど、追加情報を提供します。

Temporaryを使用すると、MySQLクエリに一時テーブルを作成する必要があることが示されています。これは、異なる列、またはインデックスされていない列を使用して順番に一般的に見られます。インデックスの発生を回避し、クエリを書き直し、クエリのパフォーマンスを改善できます。具体的には、expliect出力に使用を使用する場合、MySQLがクエリを処理するために一時テーブルを作成する必要があることを意味します。これは通常、次の場合に発生します。1)個別またはグループビーを使用する場合の重複排除またはグループ化。 2)Orderbyに非インデックス列が含まれているときに並べ替えます。 3)複雑なサブクエリを使用するか、操作に参加します。最適化方法には以下が含まれます。1)OrderbyとGroupB


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
