Apakah kaedah untuk menambah pangkalan data hamba dalam MYSQL?

PHPz
Lepaskan: 2023-05-27 17:43:25
ke hadapan
1726 orang telah melayarinya

    1. Replikasi tuan-hamba MySQL

    Seni bina tuan-hamba biasa:

    • Satu tuan dan seorang hamba: Satu Tuan, seorang Hamba

    • Satu tuan dan berbilang hamba: Satu Tuan, berbilang Hamba

    Untuk butiran, sila rujuk rajah di bawah:

    Apakah kaedah untuk menambah pangkalan data hamba dalam MYSQL?

    Apakah kaedah untuk menambah pangkalan data hamba dalam MYSQL?

    Butiran pelaksanaan

    Apakah butiran pelaksanaan asas MySQL semasa penyegerakan induk-hamba? Untuk menganalisis sebab kelewatan tuan-hamba dan rancangan pengoptimuman kemudian, buat persediaan teori.

    Apakah kaedah untuk menambah pangkalan data hamba dalam MYSQL?

    Ringkasnya, replikasi tuan-hamba MySQL: Asynchronous single-threaded.

    • Master1 SebelumnyaIO线程, bertanggungjawab untuk menghantar kepada Hamba binary log(binlog)

    • Hamba 2 Benang: IO 线程 dan 执行SQL的线程, antaranya:

      • IO线程: Tambahkan maklumat log yang diperoleh pada log geganti; 🎜>

        : Jika dikesan bahawa kandungan dalam log geganti telah dikemas kini, laksanakan SQL pada Slave;
      • : MySQL 5.6.3 mula menyokong "
      • 's

        ", 执行SQL的线程

        ,
      • boleh menjadi
      .

    Selesaikan proses replikasi tuan-hamba antara Tuan & Hamba: 多线程主从复制一个数据库一个线程多个数据库Tambah hamba多个线程

    Keperluan:

    Pada masa ini terdapat pusat pangkalan data pada tuan saya, dan saya perlu menambah hamba kepadanya (pada masa ini terdapat satu hamba)

    Analisis:

    Apakah kaedah untuk menambah pangkalan data hamba dalam MYSQL?

    Saya mempunyai sandaran pangkalan data pada pukul 4:00 sehari sebelumnya.

    Ada budak ucenter sedia ada

    Inti utamanya ialah mencari titik masa binlog
    • Operasi:
    • 1 Konfigurasikan maklumat hamba pada mesin hamba, ubah suai konfigurasi mysql.cfg dan mulakan semula pangkalan data hamba
    • Dalam [mysqld] Tambah
    • replicate-do-db = ucenter     #同步的数据库名字
      slave-skip-errors=all         #同步是忽略错误
      server-id       = 1112        #和master与其他slave保持不通
      Salin selepas log masuk

    2 Cari sandaran pangkalan data sehari sebelumnya, salin ke mesin hamba baharu dan import pangkalan data

    [root@ucenter_slave /data]# mysql ucenter < ucenter_20171102.sql[root@ucenter_slave /data]# du -sh ucenter_20171102.sql 24G    ucenter_20171102.sql
    Salin selepas log masuk

    <. 🎜>3. Cari cap waktu binlog (titik penting)

    Cari binlog pada induk

    [root@Ucenter /data/mysqldata]# ll -t *bin*
    -rw-rw---- 1 mysql mysql   30709744 Nov  2 21:32 mysql-bin.000268
    -rw-rw---- 1 mysql mysql        171 Nov  2 19:41 mysql-bin.index
    -rw-rw---- 1 mysql mysql 1021101094 Nov  2 19:41 mysql-bin.000267
    -rw-rw---- 1 mysql mysql 1073742415 Oct 30 06:07 mysql-bin.000266
    -rw-rw---- 1 mysql mysql 1073742062 Oct 26 12:03 mysql-bin.000265
    -rw-rw---- 1 mysql mysql 1073742636 Oct 22 19:21 mysql-bin.000264
    -rw-rw---- 1 mysql mysql 1073741961 Oct 18 22:49 mysql-bin.000263
    -rw-rw---- 1 mysql mysql 1073742141 Oct 15 12:47 mysql-bin.000262
    -rw-rw---- 1 mysql mysql 1073742284 Oct 11 10:18 mysql-bin.000261
    -rw-rw---- 1 mysql mysql 1073742184 Oct  7 09:49 mysql-bin.000260
    Salin selepas log masuk

    Masa sandaran saya bermula pada 4:00 pada hari ke-2, jadi saya harus mencari untuk 2 dalam mysql-bin.000267 POS sebelum pukul 4, mulakan kedudukan

    [root@Ucenter /data/mysqldata]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000267 |grep &#39;3:59:&#39; |grep -v &#39;13:59:&#39;
    #171102 3:59:58 server id 21323 end_log_pos 824385760 Query thread_id=3023086382 exec_time=0 error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824386335 Query    thread_id=3023086386    exec_time=0    error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824386363 Intvar
    #171102 3:59:58 server id 21323 end_log_pos 824386698 Query    thread_id=3023086386    exec_time=0    error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824387706 Query    thread_id=3023086388    exec_time=0    error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824387734 Intvar
    #171102 3:59:58 server id 21323 end_log_pos 824388209 Query    thread_id=3023086388    exec_time=0    error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824388534 Query    thread_id=3023086398    exec_time=0    error_code=0
    Salin selepas log masuk

    , jadi kedudukan ke hujung end_log_pos 824388534

    4

    [root@LeduPass02/data/mysqldata]# cat master.info 
    15
    mysql-bin.000268
    11367810
    192.168.100.70
    omsync
    om@123
    3306
    60
    0
    
    0
    0
    Salin selepas log masuk
    pada hamba lain 5 Konfigurasikan hamba pada hamba untuk penyegerakan

    Konfigurasikan tetapan yang berkaitan pada hamba untuk memberitahu hamba cara menyambung kepada tuan, termasuk alamat hos, bukti kelayakan log masuk, dsb.

    [root@ucenter_slave /data]# mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 6
    Server version: 5.1.51-Community-Server-log Source
    
    Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL v2 license
    
    Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.
    
    mysql (none)>change master to master_host=&#39;192.168.100.70&#39;,master_port=3306,master_user=&#39;omsync&#39;,master_password=&#39;om@123&#39;,master_log_file=&#39;mysql-bin.000267&#39;,master_log_pos=824388534;
    Salin selepas log masuk

    Dayakan hamba

    mysql (none)>start slave;
    Salin selepas log masuk
    Lihat status hamba:

    Atas ialah kandungan terperinci Apakah kaedah untuk menambah pangkalan data hamba dalam MYSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!