中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

不懂編程如何做網(wǎng)站萬能推廣app

不懂編程如何做網(wǎng)站,萬能推廣app,沈陽網(wǎng)站制作服務(wù),網(wǎng)站沒有備案 合法嗎當(dāng)一臺數(shù)據(jù)庫服務(wù)器出現(xiàn)負(fù)載的情況下,需要擴展服務(wù)器服務(wù)器性能擴展方式有向上擴展,垂直擴展。向外擴展,橫向擴展。通俗的講垂直擴展是將一臺服務(wù)器擴展為性能更強的服務(wù)器。橫向擴展是增加幾臺服務(wù)器。 主從復(fù)制好比存了1000塊錢在主上&…

當(dāng)一臺數(shù)據(jù)庫服務(wù)器出現(xiàn)負(fù)載的情況下,需要擴展服務(wù)器服務(wù)器性能擴展方式有向上擴展,垂直擴展。向外擴展,橫向擴展。通俗的講垂直擴展是將一臺服務(wù)器擴展為性能更強的服務(wù)器。橫向擴展是增加幾臺服務(wù)器。

主從復(fù)制好比存了1000塊錢在主上,在從上查不到,主從復(fù)制就是主和從數(shù)據(jù)一致。

復(fù)制的功能:負(fù)載均衡讀操作,備份,高可用和故障切換,數(shù)據(jù)分布,MySQL升級。

一、主從復(fù)制架構(gòu)和原理

1.1 mysql主從復(fù)制

讀寫分離

復(fù)制:每個節(jié)點都有相同的數(shù)據(jù)集,向外擴展,基于二進(jìn)制日志的單向復(fù)制

1.2 復(fù)制的功能

負(fù)載均衡讀操作

備份

高可用和故障切換

數(shù)據(jù)分布

MySQL升級

1.3復(fù)制結(jié)構(gòu)和主從復(fù)制原理

一主一從,和一主多從。

主從復(fù)制的相關(guān)程序。

1.3.1 兩個日志三個線程:

日志:二進(jìn)制日志,中繼日志(主上的二進(jìn)制日志)

線程:dump線程,io線程,sql線程

主服務(wù)器:mysqldump線程,傳輸二進(jìn)制日志給從

從服務(wù)器:io線程:接收主的二進(jìn)制日志,寫入中繼日志;sql線程:讀取中繼日志,寫入數(shù)據(jù)庫。

1.3.2 原理:

1.主節(jié)點負(fù)責(zé)用戶的寫操作,用戶發(fā)起寫操作,會修改數(shù)據(jù)庫

2.數(shù)據(jù)庫修改后,會更新主節(jié)點上的二進(jìn)制日志

3.主服務(wù)器會產(chǎn)生一個dump線程,一邊讀取二進(jìn)制日志一邊將二進(jìn)制日志通過網(wǎng)絡(luò)傳給從服務(wù)器

4.從服務(wù)器會開啟io線程,接收主服務(wù)器的二進(jìn)制日志

5.io線程會將主服務(wù)器的二進(jìn)制日志寫入中繼日志,這時只是生成了一個文件,并沒有同步

6.從服務(wù)器再開啟sql線程將中繼日志中操作寫入數(shù)據(jù)庫完成更新

主從數(shù)據(jù)就保持一致了!

主從復(fù)制相關(guān)線程:

dump Thread:為每個slave的I/O Thread啟動一個dump線程,用于向其發(fā)送binary log events從節(jié)點

I/O?Thread:向master請求二進(jìn)制日志事件,并保存于中繼日志中

SQL Thread:從中繼日志中讀取日志事件,在本地完成同步操作。

主數(shù)據(jù)更新 -> 寫入bin log -> slave服務(wù)器線程 -> io Thread -> 寫入Relay Log -> SQL Thread -> 從數(shù)據(jù)庫更新。這樣就主從一致了。

yum安裝數(shù)據(jù)庫:

二、主從復(fù)制

2.1 主-從復(fù)制

Node3作為主192.168.114.30,Node4作為從192.168.114.40

2.2 主節(jié)點配置:

(1)啟用二進(jìn)制日志

主節(jié)點配置:啟用二進(jìn)制日志

(2)為當(dāng)前節(jié)點設(shè)置一個全局唯一的ID號

[mysqld]

server-id=? ? ? ? ? ? ? ? ? ? ? ? #區(qū)分自己的日志和別人的日志

log-basename=master? ? ? ? #可選項,設(shè)置datadir中日志名稱,確保不依賴主機名

(3)查看從二進(jìn)制日志的文件和位置開始進(jìn)行復(fù)制

show master status;

(4)創(chuàng)建有復(fù)制權(quán)限的用戶賬號

grant replication slave on *.* 'repluser'@'HOST' identified by 'repluser';

2.3 從節(jié)點配置:

(1)啟動中繼日志

[mysqld]

server-id=

log-bin=

(2) 使用有復(fù)制權(quán)限的用戶賬號連接至主服務(wù)器,并啟用復(fù)制線程

mysql> CHANGE MASTER TO
?MASTER_HOST='192.168.114.10',
?MASTER_USER='test',
?MASTER_PASSWORD='ABC123',
?MASTER_PORT=3306,
?MASTER_LOG_FILE='mysql-bin.000002',
?MASTER_LOG_POS=448;

show slave status;

2.4 實際操作:一主一從

Node3作為主:

在文件最后添加兩條配置。

[root@Node3 ~]#:vim /etc/my.cnf
......
server-id=30
log-bin=/data/mysql/mysql-bin

建立目錄并修改權(quán)限:

[root@Node3 ~]#:mkdir -p /data/mysql
[root@Node3 ~]#:chown -R mysql.mysql /data

重啟數(shù)據(jù)庫:

systemctl restart mysqld

登錄并新建同步用戶:

mysql -uroot -pabc123

master狀態(tài),查看同步文件和同步位置:763

Node4作為從:

[root@Node4 ~]#:vim /etc/my.cnf
......
server-id=40
log-bin=/data/mysql/mysql-bin

建立目錄:

[root@Node4 ~]#:mkdir /data/mysql -p
[root@Node4 ~]#:chown -R mysql.mysql /data

重啟:systemctl start mysqld

主上查看節(jié)點:449

主上查看二進(jìn)制文件,我們指定了在/data/mysql/下:

[root@Node3 ~]#:ls /data/mysql/
mysql-bin.000001 ?mysql-bin.000002 ?mysql-bin.index

這個是最新的。

登錄數(shù)據(jù)庫添加主的信息,有模版,注意修改:

help change master to;

mysql> help change master to;
......
CHANGE MASTER TOMASTER_HOST='source2.example.com',MASTER_USER='replication',MASTER_PASSWORD='password',MASTER_PORT=3306,MASTER_LOG_FILE='source2-bin.001',MASTER_LOG_POS=4,MASTER_CONNECT_RETRY=10;
#這里是模版,要根據(jù)自己環(huán)境修改

開啟IO線程以及SQL線程:start slave;

?查看從服務(wù)器的狀態(tài):都是yes就是正常狀態(tài)。如果有錯就清空主從配置:reset slave all;

這里還有個狀態(tài):Seconds_Behind_Master: 0? ?代表與主服務(wù)器的信息差,0代表同步

2.5 驗證

先看從上的數(shù)據(jù)庫:

在主上創(chuàng)建一個數(shù)據(jù)庫,看從上是否也有這個數(shù)據(jù)庫:

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

在從上查看:

也有了test數(shù)據(jù)庫。實現(xiàn)主從復(fù)制!

可以看到主從建立了連接

三、案例:(主從復(fù)制+完備)

假設(shè)主節(jié)點的數(shù)據(jù)庫已經(jīng)運行了一段時間,產(chǎn)生了一定量的數(shù)據(jù),主從復(fù)制只能復(fù)制開啟后數(shù)據(jù),那之前的數(shù)據(jù)如何處理?

把之前的那些數(shù)據(jù)做好完全備份。之后的數(shù)據(jù)通過主從復(fù)制實現(xiàn)備份。再結(jié)合在一起。(快照,重新還原到mysql)

安裝好數(shù)據(jù)庫之后,把一個數(shù)據(jù)庫文件拖進(jìn)來/data/下。把數(shù)據(jù)庫hellodb_innodb.sql文件導(dǎo)進(jìn)數(shù)據(jù)庫中。

?進(jìn)入數(shù)據(jù)庫查看:

開啟二進(jìn)制日志:

[root@Node3 ~]#:vim /etc/my.cnf
......
server-id=30
log-bin=/data/mysql/log/mysql-bin

建立路徑:

[root@Node3 ~]#:mkdir /data/mysql/log -p
[root@Node3 ~]#:chown -R mysql.mysql /data
[root@Node3 ~]#:systemctl restart mysqld

?完全備份:-A是把所有的數(shù)據(jù)庫都備份在/data/下取名為all.sql。-F備份前滾動日志,鎖定表完成后,執(zhí)行flush logs命令,生成新的二進(jìn)制日志文件。

mysqldump -uroot -pabc123 -A -F --master-data=1 --single-transaction > /data/all.sql

創(chuàng)建個登錄用戶,并授權(quán):

由于之前在備份的時候加入了--master-data=1選項,就添加了主從復(fù)制的選項000002文件的619位置往后開始主從復(fù)制

000002文件619位置之前的配置由備份文件自行實現(xiàn)

接下來把備份的文件遠(yuǎn)程拷貝到Node4主機上:

scp /data/all.sql 192.168.114.40:/opt

從Node4上:

開啟二進(jìn)制日志:

[root@Node4 ~]#:vim /etc/my.cnf
......
server-id=40
log-bin=/data/mysql/log/mysql-bin

建立路徑并重啟數(shù)據(jù)庫:

[root@Node4 ~]#:mkdir /data/mysql/log/ -p
[root@Node4 ~]#:chown -R mysql.mysql /data
[root@Node4 ~]#:systemctl restart mysqld

這時先看一下數(shù)據(jù)庫:是沒有hellodb數(shù)據(jù)庫的。

修改備份腳本:

vim /opt/all.sql

找到CHANGE MASTER TO這一行,做以下修改:

進(jìn)入數(shù)據(jù)庫:把/opt/all.sql備份文件導(dǎo)入進(jìn)來:source /opt/all.sql

開啟從。查看從節(jié)點的狀態(tài)

再次查看數(shù)據(jù)庫:

模擬故障:

我們在從上給數(shù)據(jù)庫中的表teachers插入一條數(shù)據(jù):那么是第5條數(shù)據(jù)了

在主上也插入同樣的數(shù)據(jù):

按說這一條應(yīng)該是第6條數(shù)據(jù)。

在從上查看節(jié)點狀態(tài):發(fā)現(xiàn)主從復(fù)制就失敗了。出現(xiàn)了一個錯誤!

這時在主上再插入一條數(shù)據(jù):

這里的err按說是第6條數(shù)據(jù),lisi是第7條數(shù)據(jù)。

由于前面的錯誤,導(dǎo)致在從上就不會再顯示了,提示主鍵重復(fù),整個都down掉了。需要解決故障問題。先看一下從上的表數(shù)據(jù):

通過show slave status\G;查看,顯示主鍵重復(fù)!

重啟一下,就是兩個yes了:start slave;

在主上插入一條數(shù)據(jù):

mysql> insert into teachers values(null,'lisi2',20,'M');
Query OK, 1 row affected (0.00 sec)

查看主上的數(shù)據(jù):

在從上查看是否有l(wèi)isi2:

mysql> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name          | Age | Gender |
+-----+---------------+-----+--------+
|   1 | Song Jiang    |  45 | M      |
|   2 | Zhang Sanfeng |  94 | M      |
|   3 | Miejue Shitai |  77 | F      |
|   4 | Lin Chaoying  |  93 | F      |
|   5 | err           |  24 | F      |
|   6 | lisi          |  21 | M      |
|   7 | lisi2         |  20 | M      |
+-----+---------------+-----+--------+

同步了!

四、級聯(lián)

級聯(lián)與一主一從一樣,就在從后面再加一臺服務(wù)器。作為從

主1--主2--從1

主2上要做的操作:在/etc/my.cnf中最下面添加一個:

[root@Node2 ~]#:vim /etc/my.cnf
......
log_slave_updates? ? #級聯(lián)操作必須加

由于中間的服務(wù)器是前面的從也是后面的主,對于后面來說,中間的這個也需要建立一個用戶:

mysql> grant replication slave on *.* to test@'192.168.114.%' identified by 'Admin@123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

這樣是為了給后面從服務(wù)器指定節(jié)點。

后面可以跟兩臺從服務(wù)器:

在/etc/my.cnf中只需要配置一個server-id即可:

7-3:7-2上:show master stauts;
CHANGE MASTER TOMASTER_HOST='192.168.114.20',MASTER_USER='test',MASTER_PASSWORD='Admin@123',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154;
start slave;
7-4:7-2上:show master stauts;
CHANGE MASTER TOMASTER_HOST='192.168.114.20',MASTER_USER='test',MASTER_PASSWORD='Admin@123',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=449;
start slave;

驗證:

在Node1主上創(chuàng)建一個數(shù)據(jù)庫lxd;

在中間的從服務(wù)器(也是后面兩臺的主)也同步了Node1主的數(shù)據(jù):

Node1主創(chuàng)建數(shù)據(jù)庫:

mysql> create database lxd;
Query OK, 1 row affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| lxd                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Node2從:(也是后面兩臺的主)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| lxd                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

實現(xiàn)級聯(lián)同步!

---end---

http://www.risenshineclean.com/news/32457.html

相關(guān)文章:

  • 怎么把網(wǎng)站做火網(wǎng)絡(luò)營銷管理系統(tǒng)
  • 安平縣外貿(mào)網(wǎng)站建設(shè)正規(guī)微商免費推廣軟件
  • 可以做網(wǎng)站的渠道廊坊seo關(guān)鍵詞排名
  • 隨州公司做網(wǎng)站營銷案例分析報告模板
  • 網(wǎng)站建設(shè)一對一培訓(xùn)seo根據(jù)什么具體優(yōu)化
  • 網(wǎng)站風(fēng)格模板營銷策劃的六個步驟
  • 網(wǎng)站建設(shè)流程策劃方案前端培訓(xùn)哪個機構(gòu)靠譜
  • 南通市網(wǎng)站建設(shè)我的完凡科網(wǎng)
  • 建湖做網(wǎng)站尋找鄭州網(wǎng)站優(yōu)化公司
  • 男女做爰高清免費網(wǎng)站關(guān)鍵詞代發(fā)包收錄
  • 寶安網(wǎng)站建設(shè)公司968seo培訓(xùn)網(wǎng)的優(yōu)點是
  • 做網(wǎng)站網(wǎng)頁維護(hù) 手機App 開發(fā)免費打廣告網(wǎng)站
  • 網(wǎng)站托管適合中層管理的培訓(xùn)
  • 做網(wǎng)站是通過怎么掙錢一個新產(chǎn)品怎么推廣
  • 網(wǎng)頁設(shè)計 做網(wǎng)站的代碼制作網(wǎng)站大概多少錢
  • 互聯(lián)網(wǎng)行業(yè)新聞的靠譜網(wǎng)站怎么做屬于自己的網(wǎng)站
  • 凡科刪除建設(shè)的網(wǎng)站東莞疫情最新通知
  • 做網(wǎng)站銷售電話術(shù)語關(guān)鍵詞推廣是什么
  • 如何在國外做網(wǎng)站競價賬戶托管公司哪家好
  • 為校園網(wǎng)站建設(shè)提供網(wǎng)站優(yōu)化排名公司哪家好
  • 寧波百度做網(wǎng)站的公司哪家好亞馬遜跨境電商開店流程及費用
  • 電商型企業(yè)網(wǎng)站建設(shè)品牌型網(wǎng)站制作價格
  • 企業(yè)內(nèi)部網(wǎng)站如何建設(shè)吉林網(wǎng)絡(luò)seo
  • 流量劫持網(wǎng)站怎么做磁力搜索引擎不死鳥
  • 公司官網(wǎng)怎么建立優(yōu)化大師客服電話
  • php網(wǎng)站的登陸注冊怎末做的深圳網(wǎng)站建設(shè)專業(yè)樂云seo
  • 業(yè)余從事網(wǎng)站開發(fā)杭州seo按天計費
  • 招聘網(wǎng)站建設(shè)維護(hù)人員設(shè)計公司排名前十強
  • 錦州網(wǎng)站建設(shè)哪家好seo策略有哪些
  • 金山建設(shè)機械網(wǎng)站seo研究中心超逸seo