MySQLのデータベースエンジンルーム廃止要約問題

背景:同社は、DBサーバの大規模な数を含む廃止部屋を、必要に応じて、あなたはスムーズな移行を必要とし、期限前に事業の廃止で作業を完了するために機器を返します。

2ヶ月以上続いた、経験している機器は、廃止の資源評価、資源の用途の廃止、DBの展開の廃止、合併の調整DB、DBのデータ移行の廃止、などの棚や還付のプロセスオフDB交換機の廃止の廃止をコーミングビジネス関係のDBの廃止をコーマ最後にグループDBに関与することが完了した後に廃止されています。遭遇した多くの問題の廃止時には、合計する、私が手助けをしたいです。

まず、問題の廃止が発生しました

1は、4.1,5.5の非常に古いバージョンがあり

2、システムによって引き起こされたキーワードの互換性の問題を使用して、テーブルのフィールド

時々、高レイテンシスレーブ(行形式)で得られた図3に示すように、主キーテーブル

4、データベーステーブルのMYISAMがたくさんあります

5. 1T以上の大量のデータのいくつかの例を

6、耐久性のあるアイテムは責任者を見つけることができない、荒廃します

7、名前のないサービスまたはプロキシは、事業の廃止は、どのようにスムーズなハンドオーバーを行う、IPを変更する必要があります

8、少ないリソースの廃止について

2ヶ月以上続いた、経験している機器は、廃止の資源評価、資源の用途の廃止、DBの展開の廃止、合併の調整DB、DBのデータ移行の廃止、などの棚や還付のプロセスオフDB交換機の廃止の廃止をコーミングビジネス関係のDBの廃止をコーマ最後にグループDBに関与することが完了した後に廃止されています。各事業のみを明確に整理し、クリーンアップと統合インスタンスの廃止のためではないだろう時には、機器の唯一の12セットは、すべてのインスタンスの移行を完了するために、失敗0を廃止を達成します。出会いの問題の数の廃止時には、合計する、私が手助けをしたいです。

第二に、問題解決の方法論

1、システム思考

問題のグローバルな視点から利益を表示するには、問題解決には、ちょうど、ある時点で問題を凝視していない、と解決策を考えるために、より高い次元に立つ必要があります。

2、資源の統合

3、Win-Winの考え方

廃止は、同僚とのコラボレーション、マルチWin-Winの考え方からスタートし、運用・保守、研究開発、資源、品質や他のものに、私たちの目標は、トラフィックの移行と切り替えを滑らかにするために、我々は物事をやっている必要があるということです。実際には、本質的には、より自然なWin-Winの解決策を見つけるために、考えるようにビューのお互いのポイントに立ってみることです。

第三に、ソリューション

1、バージョンの問題への解決策

DBを使用すると、互換性の問題のほとんどを解決することができ、データの移行は、3つのステップに分割され、すべてのMySQL 5.7バージョンに移行します

、唯一のビジネスデータではなく、データのMySQLデータベースを移行

B、移行権限

C、同期からのショット

プログラムを使用して小規模ビジネスの変化に伴う4.1の非互換性の問題、同期、の場合:

バイナリログが直接新しいDBに新たに生成されたデータの同期を解決するために、複数の反復は、DB間の最小ギャップは直接古いDBは、DBによって新しいツールにバイナリログ同期の少量を追加し、ポートフォワーディングを有効に停止していることを確認します新しいDB、1分のダウンタイムに新しい要求を転送します。ビジネス口コミをスムーズに新しいサービスDBにしましょう。

図2に示すように、キーワードのシステムを使用して、テーブルフィールドの溶液

ビジネスシステムは、SQL失敗につながる、MySQLの5.7人為的にSQL構文エラーにキーワードテーブルを使用し、2つの解決策があります

、テーブルフィールド、互換性のMySQL 5.7を修正する(このソリューションは、コードの量を変更するためのサービス側の必要性が発生します)

B、すべての操作は、フィールド上にあるプラス抗引用符(我々が採用している。このプログラムの小規模ビジネスへの影響は、この方法です)

図3は、テーブルおよび主キーテーブルMYISAMため問題はありません

主キーのないテーブルの場合と管理を容易にするために、問題のMyISAMテーブルの多くが含まれている、例えば全ての種類の廃止、および廃止プロセスに変革を完了します。短期的な痛み限り痛み。

主キーソリューションません

新しいインスタンスのプライマリキー(既存のフィールド)を高めるために統一し、ビジネスコミュニケーション、

MYISAMソリューション

すべての変更のInnoDBにテーブルMYISAMの新しいインスタンスで統一し、ビジネスコミュニケーション、

4は、長時間の無視の問題のための項目は、唯一の仕事の並べ替えは確かに非常に複雑で、対応するパケットキャプチャの担当者によって決定することができます。

図5に示すように、例えば、データ・ソリューションの大量

実行され、アップグレードするための設計のではなく、物理的なバックアップを介しているので、複数のスレッドを使用することがmydumperバックアップ、インポート時であるので、MySQLはすべての関連表を削除します。また、インポートされたレコードがBINLOGしていないとき、新しいマスタDB(後のホスト上の主、唯一の輸入をしない)から輸入されている、またはメインのインポートは、ファイルをコピーすることによってマシンから直接行われ、完了した後。

6、サービスまたはプロキシには名前がなく、スムーズな移行ソリューションを達成するために

スイッチをすれば、古いDB名前のないサービスとプロキシ前に、ビジネス側が長引くプロジェクトの荒廃に、各サーバの設定を変更する必要があり、最初の開発者のほとんどは、基本的に残したり、ジョブの転送、抜けがしやすい変更する必要があり、どのように達成するためにスムーズな移行が問題を考慮することが重要である、我々は採用しているポート転送方法を使用することで、ポート転送が完了した後、トラフィックが簡単にビジネスの設定を変更するために行くことができます。いくつかの一般的な方法がありますポート転送を使用します。

iptablesのを使用して、フォワーディング

利点は、停止mysqlは、あなたが本当にスムーズに移行することはできませんです。欠点は、NATをロードされているカーネルモジュールをコンパイルする必要がある場合は、セキュリティ上の理由から、同社のマシンはLinuxのNATモジュールは、古いシステム、ロードされていないということです

sshのポート転送を使用して、B、

利点は、非常に便利な、完了するために改革を必要としないコマンドです。欠点は短いサービス中断の原因は、MySQLを停止する必要があることです。

ポートフォワーディングhaproxyを使用して、C、

欠点は、追加の展開と構成のhaproxyの必要性、また、あなたが短いサービスの中断を引き起こし、MySQLを終了する必要があります。

D、使用してポートフォワーディングLVS

欠点は、追加のインストールおよび構成のLVSの必要性であります

総合的に考慮した後、我々はsshプログラムを通じてポート転送を選択しました。例:

SSH -f -N -g -L3306:newDBip:3306ルートの@ localip

注意:SSHコマンド-Nパラメータをサポートしていないシステムの部分がありますが、-Nパラメータを削除します。また、マシンはそうでない状況が権限の問題が原因アクセス障害をもたらすでしょう、古いDBにライセンス供与する必要があることに注意すべきです。

いくつかの解決策の廃止のための7、リソース

部屋の廃止は、置換率1に記載のリソースリソースの廃止に側確かではない場合:1個の置換、及びDBのデータ量は、一般的に大きいです。取ることができます私たちのプログラムは、データをクリーンアップクリーンアップすることです、例の合併がマージされます。

第四に、廃止の問題は、DBを考えます

経験の廃止後は、いつも、本当にとても痛い「決して愛して再び」感のようなものです。痛みを避けるために、唯一の直接DB接続本サービスに起因する問題を回避するためのアーキテクチャから上がります。それはそうでnetagent /サービス名/ L5とを使用することができます。後者のDBアクセスでは、そのような要求アクセス規格がデータベースに組み込まれる必要があります。



著者:スナップショットシームレス
リンクします。https://www.jianshu.com/p/5e55d29dbd57
出典:ジェーン・ブック
著者によって予約ジェーン帳の著作権は、いかなる形で再現され、承認を得るために、作者に連絡して、ソースを明記してください。

おすすめ

転載: www.cnblogs.com/zping/p/11022463.html