ホームページ データベース mysql チュートリアル MySQL Replication常用SQL、应用、文件、流程、模式_MySQL

MySQL Replication常用SQL、应用、文件、流程、模式_MySQL

Jun 01, 2016 pm 01:30 PM
バイナリ

bitsCN.com

MySQL Replication常用SQL、应用、文件、流程、模式

 

无聊时写的,算科普吧,毕竟内置的Replication是MySQL的骄傲

 

㈠ SQL语句篇

 

   管理主库部分

 

    show master logs

    列出主库二进制日志

    

    show master status

    列出当前主库二进制日志状态

    

    show slave hosts

    列出连接到主库的备库信息

    

    show binlog events in 'log_name'

    列出二进制日志中的事件

    

    reset master

    置空二进制日志索引文件,并创建一个新的二进制日志

    

    purge master logs to 'log_name'

    purge master logs before 'date'

    删除主库的二进制日志

    建议删除流程:

    ① 目标日志确认如下:

       在主库:show master logs 

       在备库:show slave status[每个备库都执行,抓取延迟最大的备库]

    ② 备份

    ③ purge 

 

 

   管理备库部分

 

 

    change master to master_**

    告诉备库如何连接到主库并重放其二进制日志

    参数较多较杂,请自行参阅手册

    

    reset slave

    删除master.info、relay-log.info以及所有中继日志,并新建一个中继日志

    

    show slave status

    查看当前备库状态

    输出较多,下面捡几个重要的谈谈

    Slave_IO_State、Slave_IO_Running、Slave_SQL_Running:表示IO线程和SQL线程健康状况

    Master_Log_File:IO线程当前正在读取的主库的二进制日志的名称

    Read_Master_Log_Pos:当前主库的二进制日志中,IO线程已经读取的位置

    Relay_Log_File:SQL线程当前正在读取和执行的中继日志的名称

    Relay_Log_Pos:当前中继日志中,SQL线程已经读取和执行的位置

    Exec_Master_Log_Pos:同步到备库的二进制日志的位置

    

    能借助该输出来计算复制延迟:

    

    Read_Master_Log_Pos-Exec_Master_Log_Pos:表示SQL线程延迟,进而表示了主备是否同步

    顺道提一点,二进制日志坐标:Position,减去Read_Master_Log_Pos:表示IO线程延迟

    

    start slave

    启动备库SQL线程/IO线程

    

    stop slave 

    停止备库SQL线程/IO线程 

 

 

㈡ 应用篇

 

 

   数据分布

     →给地理上互相隔离的IDC分发数据

   热备份

     →复制是备份的技术补充,但不能代替备份

   读扩展

     →负载均衡

   报表分析

     →在不影响主库业务的情况下,月底的审计和报表分析可放到备库上做

   升级测试

     →用最新版本的mysql做备库

   故障转移

     →提升备库为主库,最小化宕机时间

     

 

 

㈢ 文件篇

 

 

   master.info

   记录备库连接主库所需要的信息,如:主机、用户名、密码、当前二进制日志坐标等

   同时,他也能告诉主库:"我需要某个日志的某个位置之后的内容,请发给我"

   

   relay-log.info

   记录当前备库正在复制的二进制日志和中继日志的坐标

   

   binlog index 

   记录主库磁盘上二进制日志文件

   

   relay log 

   存储IO线程从主库复制的二进制日志事件

   

   relay log index 

   作用同binlog index 

 

㈣ 流程篇

 

 

   ⑴ 主库记录二进制日志:按事务提交的顺序记录事件

   ⑵ 备库将主库的二进制日志复制到本地中继日志

   

      启动IO线程

      发起TCP/IP连接

      在主库启动binlog dump线程

      读取主库二进制日志

      IO线程记录到relay log和master.info

     

   ⑶ 备库读取并重放二进制日志事件

 

㈤ 模式篇

 

 

   复制模式可分:STATEMENT和ROW,通过binlog_format控制

   没有哪种模式能胜任任何场景,谓之:存在即是合理

   MySQL能在这两种模式动态却换(binlog_format='MIXED')

   缺省以STATEMENT运行,当无法正确复制时则以ROW运行

   

   下面列出他们各自的优缺点

   

   ROW模式

   

   优点

   

   几乎没有基于行的复制无法处理的场景

   更少的锁竞争,因为对强串行化的需求降低

   更低的CPU花费,因为没有必要在构造SQL上下文信息

   更好的保证了复制到备库的数据的品质

   更快的定位和解决数据不一致,如当找不到修改的行时,ROW模式会使整个复制过程停止而STATEMENT不会

   

   缺点

   

   无法确定执行了什么SQL

   黑盒子,很难定位出故障的地方

   占用更多的磁盘空间

   更多的网络带宽开销

   

   

   STATEMENT模式

   

   优点

   

   基于行的复制整个过程基本上就是执行SQL

   这很容易定位问题

   

   缺点

   

   无法正确复制,特别是当涉及到存储过程、触发器、函数等

   这会失去复制的意义

 

bitsCN.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

二進数の計算方法 二進数の計算方法 Jan 19, 2024 pm 04:38 PM

2 進数演算は 2 進数に基づいた演算方法であり、その基本演算には加算、減算、乗算、除算が含まれます。 2 進算術には、基本的な演算に加えて、論理演算、変位演算、その他の演算も含まれます。論理演算には AND、OR、NOT などの演算が含まれ、変位演算には左シフト演算と右シフト演算が含まれます。これらの操作には、対応するルールとオペランド要件があります。

C言語を使用して2進数を16進数に変換するにはどうすればよいですか? C言語を使用して2進数を16進数に変換するにはどうすればよいですか? Sep 01, 2023 pm 06:57 PM

2 進数は 1 と 0 で表されます。 16 ビットの 16 進数体系は、2 進表現から 16 進表現に変換するために、{0,1,2,3…..9,A(10),B(11),…F(15)} となります。文字列 ID は、最下位側から始まるニブルと呼ばれる 4 ビットのチャンクにグループ化されます。各ブロックは、対応する 16 進数に置き換えられます。 16 進数と 2 進数の表現を明確に理解するために例を見てみましょう。 001111100101101100011101 3 E 5 B&N

EDVAC の 2 つの主な改良点は何ですか? EDVAC の 2 つの主な改良点は何ですか? Mar 02, 2023 pm 02:58 PM

EDVAC には 2 つの大きな改良点があります。1 つはバイナリの使用、もう 1 つは保存されたプログラムの完成です。これは、あるプログラム命令から次のプログラム命令に自動的に進み、その操作は命令を通じて自動的に完了できます。 「命令」にはデータやプログラムが含まれており、それらはコードの形で機械の記憶装置に入力されます、つまり、データを格納する同じ記憶装置を使用して、演算を実行するための命令を格納するという新しい概念です。 - 保存されたプログラムと呼ばれます。

Golang でバイナリ ファイルを読み取るにはどうすればよいですか? Golang でバイナリ ファイルを読み取るにはどうすればよいですか? Mar 21, 2024 am 08:27 AM

Golang でバイナリ ファイルを読み取るにはどうすればよいですか?バイナリ ファイルは、コンピュータが認識して処理できるデータを含む、バイナリ形式で保存されたファイルです。 Golang では、いくつかのメソッドを使用してバイナリ ファイルを読み取り、必要なデータ形式に解析できます。 Golangでバイナリファイルを読み込む方法と具体的なコード例を紹介します。まず、OS パッケージの Open 関数を使用してバイナリ ファイルを開く必要があります。これにより、ファイル オブジェクトが返されます。それから私たちは作ることができます

コンピューター内でバイナリを使用する主な理由は何ですか? コンピューター内でバイナリを使用する主な理由は何ですか? Apr 04, 2019 pm 02:25 PM

コンピュータが 2 進法を使用する主な理由: 1. コンピュータは論理回路で構成されています。論理回路には通常、スイッチのオンとオフの 2 つの状態しかなく、これら 2 つの状態は「1」と「0」で表すことができます。 . 2 進法では 0 と 1 の 2 つの数値のみが使用されるため、送信時や処理時にエラーが発生しにくく、コンピュータの信頼性が高くなります。

Go 言語で 16 進数を 2 進数に変換する方法を簡単に学習します Go 言語で 16 進数を 2 進数に変換する方法を簡単に学習します Mar 15, 2024 pm 04:45 PM

タイトル: Go 言語で 16 進数を 2 進数に変換する方法を簡単に学習します。特定のコード例が必要です。コンピューター プログラミングでは、異なる基数間の変換操作がよく使用されます。その中でも、16 進数と 2 進数間の変換は比較的一般的です。 Go 言語では、いくつかの簡単なコード例を通じて 16 進数から 2 進数への変換を実現できます。一緒に学びましょう。まずは16進数と2進数の表現方法を見てみましょう。 16 進数は数値を表す方法で、0 ~ 9 と A ~ F を使用して 1 を表します。

2進数で負の数を表現する方法 2進数で負の数を表現する方法 Nov 23, 2023 pm 04:11 PM

コンピューターでは負の数は 2 の補数を使用して表現されます。つまり、負の数は正の数の 2 の補数によって表現されます。

Golang はバイナリ ファイルを扱えますか? Golang はバイナリ ファイルを扱えますか? Mar 20, 2024 pm 04:36 PM

Golang はバイナリ ファイルを扱えますか? Go 言語では、バイナリ ファイルの処理は非常に一般的で便利です。組み込みのパッケージとメソッドを使用することで、バイナリ ファイルの読み取り、書き込み、操作を簡単に行うことができます。この記事では、Go でバイナリ ファイルを処理する方法を説明し、具体的なコード例を示します。バイナリ ファイルの読み取り バイナリ ファイルを読み取るには、まずファイルを開いて、対応するファイル オブジェクトを作成する必要があります。次に、Read メソッドを使用してファイルからデータを読み取り、それをバイト単位で保存します。

See all articles