日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例

發(fā)布時間:2023/12/10 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

《MysqL教程MysqL 復(fù)制詳解及簡單實例》要點:

本文介紹了MysqL教程MysqL 復(fù)制詳解及簡單實例,希望對您有用。如果有疑問,可以聯(lián)系我們。

MysqL 復(fù)制詳解及簡單實例

主從復(fù)制技術(shù)在MysqL中被廣泛使用,主要用于同步一臺服務(wù)器上的數(shù)據(jù)至多臺從服務(wù)器,可以用于實現(xiàn)負載均衡,高可用和故障切換,以及提供備份等等.MysqL支持多種不同的復(fù)制技術(shù),諸如單向,半同步異步復(fù)制等以及不同級別的復(fù)制,諸如數(shù)據(jù)庫級別,表級,跨庫同步等等.本文簡要描述了一個基本的主從復(fù)制并給出示例.

1、復(fù)制的基本原理(步驟)

a、在主庫上把數(shù)據(jù)更改記錄的二進制日志(binary log)

b、從庫上的I/O線程連接到主庫并請求發(fā)送其二進制日志文件(主庫上的binlog dump線程將二進制日志內(nèi)容發(fā)送到從庫)

c、從庫上的I/O線程讀取主服務(wù)發(fā)送的二進制內(nèi)容并將其拷貝到中繼日志

d、從庫上的sql線程讀取中繼日志并執(zhí)行日志中包含的更新

# 本文的演示基于同一服務(wù)器上的多實例環(huán)境,其中3406端口用作主庫,而3506用作從庫.

# 關(guān)于多實例的部署可參考:

# MysqL多實例配置(一) http://blog.csdn.net/leshami/article/details/40339167

# MysqL多實例配置(二) http://blog.csdn.net/leshami/article/details/40339295

# 3406與3506為都為新裝且含缺省庫等,所以本文演示中未涉及先遷移主庫數(shù)據(jù)到備庫步驟

a、主庫上的配置文件

# more my3406.cnf

[MysqLd]

socket = /tmp/MysqL3406.sock

port = 3406

pid-file = /data/inst3406/data3406/my3406.pid

user = MysqL

log-error=/data/inst3406/data3406/inst3406.err

datadir=/data/inst3406/data3406

basedir=/app/soft/MysqL5

#### for master items ####

server-id=3406

log_bin=/data/inst3406/log/bin/inst3406bin

innodb_flush_log_at_trx_commit=1

sync_binlog=1

b、從庫上的配置文件

# more my3506.cnf

[MysqLd]

socket = /tmp/MysqL3506.sock # Author : Leshami

port = 3506 # Blog : http://blog.csdn.net/leshami

pid-file = /data/inst3506/data3506/my3506.pid

user = MysqL

log-error=/data/inst3506/data3506/inst3506.err

datadir=/data/inst3506/data3506

basedir=/app/soft/MysqL5

#### for slave items ####

server-id=3506

relay_log=/data/inst3506/log/relay/relay-bin

read_only=1

3、創(chuàng)建復(fù)制賬號

#啟動端口為3406的實例并添加賬戶

[MysqL@app ~]$ MysqLd_safe --defaults-file=/data/inst3406/data3406/my3406.cnf &

[MysqL@app ~]$ MysqL -P3406 #登陸到3406

master@localhost[(none)]> show variables like 'server_id';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| server_id | 3406 |

+---------------+-------+

#創(chuàng)建用于復(fù)制的賬戶

master@localhost[(none)]> grant replication slave,replication client on *.*

-> to repl@'192.168.1.177' identified by 'repl';

#初始化主庫日志文件,生成環(huán)境慎用reset

master@localhost[(none)]> reset master;

Query OK,0 rows affected (0.01 sec)

#查看主庫的狀態(tài),日志初始化至000001,master@localhost[(none)]> show master status,Position為120

+--------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+--------------------+----------+--------------+------------------+-------------------+

| inst3406bin.000001 | 120 | | | |

+--------------------+----------+--------------+------------------+-------------------+

4、配置主從同步

#啟動端口為3506的實例

[MysqL@app ~]$ MysqLd_safe --defaults-file=/data/inst3506/data3506/my3506.cnf &

[MysqL@app ~]$ msyql -P3506

slave@localhost[(none)]> show variables like 'server_id';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| server_id | 3506 |

+---------------+-------+

1 row in set (0.00 sec)

#為從庫添加指向主庫的相關(guān)配置信息,該命令會生成及修改備庫上的master.info及relay-log.info文件

slave@localhost[(none)]> CHANGE MASTER TO MASTER_HOST='192.168.1.177',-> MASTER_USER='repl',-> MASTER_PASSWORD='repl',-> MASTER_PORT=3406,-> MASTER_LOG_FILE='inst3406bin.000001',-> MASTER_LOG_POS=0;

Query OK,0 rows affected,2 warnings (0.04 sec)

#出現(xiàn)了2個warnings,查看一下

slave@localhost[(none)]> show warnings \G

*************************** 1. row ***************************

Level: Note

Code: 1759

Message: Sending passwords in plain text without SSL/TLS is extremely insecure.

*************************** 2. row ***************************

Level: Note

Code: 1760

Message: Storing MysqL user name or password information in the master.info repository is not secure and is therefore not recommended.

Please see the MysqL Manual for more about this issue and possible alternatives.

2 rows in set (0.00 sec)

#此時查看從庫的狀態(tài)信息

slave@localhost[(none)]> show slave status \G

*************************** 1. row ***************************

Slave_IO_State:

Master_Host: 192.168.1.177

Master_User: repl

Master_Port: 3406

Connect_Retry: 60

Master_Log_File: inst3406bin.000001

Read_Master_Log_Pos: 4

Relay_Log_File: relay-bin.000001

Relay_Log_Pos: 4

Relay_Master_Log_File: inst3406bin.000001

Slave_IO_Running: No #IO線程沒有運行

Slave_sql_Running: No #sql線程沒有運行

......................

Master_Info_File: /data/inst3506/data3506/master.info

slave@localhost[(none)]> start slave; #啟動slave

Query OK,0 rows affected (0.01 sec)

#含義如下

START SLAVE with no thread_type options starts both of the slave threads. The I/O thread reads

events from the master server and stores them in the relay log. The sql thread reads events from the

relay log and executes them.

#再次查看slave的狀態(tài)

robin@localhost[(none)]> show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.177

Master_User: repl

Master_Port: 3406

Connect_Retry: 60

Master_Log_File: inst3406bin.000001

Read_Master_Log_Pos: 120

Relay_Log_File: relay-bin.000002

Relay_Log_Pos: 285

Relay_Master_Log_File: inst3406bin.000001

Slave_IO_Running: Yes #IO線程處于運行狀態(tài)

Slave_sql_Running: Yes #sql線程處于運行狀態(tài)

..............

Exec_Master_Log_Pos: 120

Relay_Log_Space: 452

............

Master_Server_Id: 3406

Master_UUID: 32f53a0a-63ef-11e4-93d9-8c89a5d108ae

Master_Info_File: /data/inst3506/data3506/master.info

sql_Delay: 0

sql_Remaining_Delay: NULL

Slave_sql_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it #重要的提示信息

#可以看到從庫上的2個線程,一個是用于I/O線程,用于連接到主庫請求主庫發(fā)送binlog,一個是用于執(zhí)行sql的sql線程.

slave@localhost[(none)]> show processlist\G

*************************** 1. row ***************************

Id: 4

User: system user

Host:

db: NULL

Command: Connect

Time: 510993

State: Waiting for master to send event

Info: NULL

*************************** 2. row ***************************

Id: 5

User: system user

Host:

db: NULL

Command: Connect

Time: 333943

State: Slave has read all relay log; waiting for the slave I/O thread to update it

Info: NULL

5、驗證同步情況

#下面在主庫上執(zhí)行一些操作以檢查從庫的同步情況

master@localhost[(none)]> show variables like 'server_id';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| server_id | 3406 |

+---------------+-------+

1 row in set (0.00 sec)

#主庫上Binlog Dump線程用于發(fā)送binlog日志文件到從庫,如下查詢

master@localhost[(none)]> show processlist\G

*************************** 1. row ***************************

Id: 12

User: repl

Host: 192.168.1.177:57440

db: NULL

Command: Binlog Dump

Time: 511342

State: Master has sent all binlog to slave; waiting for binlog to be updated

Info: NULL

#主庫創(chuàng)建數(shù)據(jù)庫及表

master@localhost[(none)]> create database tempdb;

Query OK,1 row affected (0.01 sec)

master@localhost[(none)]> use tempdb

Database changed

master@localhost[tempdb]> create table tb_engines as select * from information_schema.engines;

Query OK,9 rows affected (0.02 sec)

Records: 9 Duplicates: 0 Warnings: 0

#下面是在從庫上檢查的結(jié)果

slave@localhost[(none)]> select count(*) from tempdb.tb_engines;

+----------+

| count(*) |

+----------+

| 9 |

+----------+

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

總結(jié)

如果覺得編程之家網(wǎng)站內(nèi)容還不錯,歡迎將編程之家網(wǎng)站推薦給程序員好友。

本圖文內(nèi)容來源于網(wǎng)友網(wǎng)絡(luò)收集整理提供,作為學(xué)習(xí)參考使用,版權(quán)屬于原作者。

如您喜歡交流學(xué)習(xí)經(jīng)驗,點擊鏈接加入交流1群:1065694478(已滿)交流2群:163560250

總結(jié)

以上是生活随笔為你收集整理的mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。