自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

面試官:如何添加新數(shù)據(jù)庫到MySQL主從復制環(huán)境?

數(shù)據(jù)庫 MySQL
今天,一名讀者反饋說:自己出去面試,被面試官一頓虐啊!為什么呢?因為這名讀者面試的是某大廠的研發(fā)工程師,偏技術(shù)型的。所以,在面試過程中,面試官比較偏向于問技術(shù)型的問題。

 [[343601]]

寫在前面

今天,一名讀者反饋說:自己出去面試,被面試官一頓虐啊!為什么呢?因為這名讀者面試的是某大廠的研發(fā)工程師,偏技術(shù)型的。所以,在面試過程中,面試官比較偏向于問技術(shù)型的問題。不過,技術(shù)終歸還是要服務(wù)于業(yè)務(wù)的,光會技術(shù)可不行,還要將技術(shù)應(yīng)用于項目中才行。結(jié)果,最后問了一連串的項目實戰(zhàn)問題,其中一個問題就是:如何在不重新復制整個庫的情況下,添加新數(shù)據(jù)庫到MySQL主從復制環(huán)境?結(jié)果。。。

問題闡述

明確問題

面試官的問題比較明確:如何在不重新復制整個庫的情況下,添加新數(shù)據(jù)庫到MySQL主從復制環(huán)境?

首先,我們要理解面試官的意思,不能在未理解題目的前提下,就開始回答,這樣就會答非所問,面試結(jié)果自然也就涼涼了。

接下來,我們先來分析下這個問題。面試官問的是 如何添加新數(shù)據(jù)庫到MySQL主從復制環(huán)境,注意:這里說的是數(shù)據(jù)庫,而不是MySQL實例。添加數(shù)據(jù)庫和MySQL實例是兩種完全不同的方式,所以,一定要先理解面試官的意思,再進行回答。

分析問題

MySQL主從復制一般情況下我們會設(shè)置需要同步的數(shù)據(jù)庫,使用參數(shù)配置選項,binlog-do-db,可以在master上指定需要同步的數(shù)據(jù)庫,replicate-do-db在從數(shù)據(jù)看上指定需要同步的數(shù)據(jù)庫。(一般只設(shè)定master上的binlog-do-db即可,不需要兩個同時設(shè)定。以防萬一,在slave也可以加上replicate-ignore-db)。

問題解決

主從復制基本步驟

首先,我們列舉一下主從復制的基本步驟,(MySQL主從首先需要在各自服務(wù)器配置好)。

(1)復制數(shù)據(jù)庫

  1. mysqldump --master-data --single-transaction -R --databases [db_name] | gzip -9 - | pv > all-db-with-master-data.sql.gz 

注意:innodb用 –single-transaction, myisam需要用 –lock-all-tables。

(2)復制,導入數(shù)據(jù)

  1. pv < all-db-with-master-data.sql.gz | zcat | mysql 

(3)啟動slave數(shù)據(jù)庫

  1. slave start 

注意:切換到主的語句已經(jīng)在導出的sql語句里面了,注意查看下面的代碼片段。

  1. change master to master_log_file=’(binlog  name in relay_master_log_file)’, master_log_pos=(exec_master_log_pos  number) 

那么,在現(xiàn)有的主從復制結(jié)構(gòu)中,如何增加一個新的數(shù)據(jù)庫進去?我們繼續(xù)往下看。

添加數(shù)據(jù)庫

比如我們要增加一個數(shù)據(jù)庫在master服務(wù)器上,比如,名為newdb的數(shù)據(jù)庫。具體操作如下:

(1)從服務(wù)上,停掉slave數(shù)據(jù)庫。

  1. stop slave; 

(2)主服務(wù)器上,導出新數(shù)據(jù)庫

  1. mysqldump --master-data --single-transaction -R --databases newdb > newdb.sql 

(3)修改主服務(wù)器my.cnf文件

主服務(wù)器上,修改my.cnf文件,添加新庫到binlog-do-db參數(shù),重啟mysql。

(4)查找當前的日志文件以及位置

在導出的newdb.sql里面查找當前的日志文件以及位置(change master to …)

然后讓slave服務(wù)器執(zhí)行到這個位置。

  1. start slave until MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=1222220; 

其中MASTER_LOG_FILE以及MASTER_LOG_POS在導出的數(shù)據(jù)庫newdb.sql頂部位置查找。

(5)導入新庫到從服務(wù)器上

  1. mysql < newdb.sql 

(6)啟動從服務(wù)器

  1. start slave 

本文轉(zhuǎn)載自微信公眾號「冰河技術(shù)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系冰河技術(shù)公眾號。

 

責任編輯:武曉燕 來源: 冰河技術(shù)
相關(guān)推薦

2024-11-15 15:27:09

2025-04-07 00:00:00

MySQL數(shù)據(jù)庫服務(wù)器

2025-02-28 00:00:00

2024-10-12 16:25:12

2023-12-29 13:45:00

2024-02-21 16:42:00

2011-04-06 09:59:00

MySQL數(shù)據(jù)庫主從復制

2020-11-16 09:30:11

Redis網(wǎng)絡(luò)配置

2025-02-10 10:55:16

2012-11-26 10:17:44

InnoDB

2024-07-04 17:22:23

2019-05-10 15:30:18

數(shù)據(jù)庫主從復制MySQL

2014-07-04 10:41:19

redis數(shù)據(jù)庫緩存

2024-07-04 08:00:24

2024-03-01 18:33:59

MySQL節(jié)點數(shù)據(jù)

2021-06-08 07:48:27

MySQL主從配置

2019-02-11 09:04:24

MySQL主從復制數(shù)據(jù)庫

2020-01-03 16:30:14

數(shù)據(jù)庫讀寫分離分庫

2023-03-19 11:53:27

2021-07-06 07:08:18

管控數(shù)據(jù)數(shù)倉
點贊
收藏

51CTO技術(shù)棧公眾號