• ADADADADAD

    主从复制2——拥有海量数据主服务器的主从复制模型详细实现;[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:13:32

    作者:文/会员上传

    简介:

    基本策略:此时需要在主服务器上先完全备份,还原到从服务器;接着开启主从复制;如果直接使用主从复制,那么主从服务器的压力很大;主服务器数据全备份操作:[root@master~]$mysqldump-A

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    基本策略:

    此时需要在主服务器上先完全备份,还原到从服务器;接着开启主从复制;如果直接使用主从复制,那么主从服务器的压力很大;

    主服务器数据全备份操作:

    [root@master~]$mysqldump-A-F--single-transaction--master-data=1>all.sql

    主服务器模拟修改操作:

    MariaDB[(none)]>createdatabasewangdb1;QueryOK,1rowaffected(0.01sec)MariaDB[(none)]>showmasterlogs;+--------------------+-----------+|Log_name|File_size|+--------------------+-----------+|mariadb-bin.000001|8217||mariadb-bin.000002|555||mariadb-bin.000003|334|+--------------------+-----------+3rowsinset(0.00sec)[root@master~]$lessall.sqlCHANGEMASTERTOMASTER_LOG_FILE='mariadb-bin.000003',MASTER_LOG_POS=245;

    主服务器配置:

    [root@slave~]$vim/etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock#Disablingsymbolic-linksisrecommendedtopreventassortedsecurityriskssymbolic-links=0#Settingsuserandgroupareignoredwhensystemdisused.innodb_file_per_tableserver_id=2

    从服务器数据还原:

    [root@master~]$scpall.sql192.168.27.17:~[root@slave~]$mysql<all.sql

    从服务器开启主从复制:

    MariaDB[(none)]>CHANGEMASTERTO->MASTER_HOST='192.168.27.7',->MASTER_USER='repluser',->MASTER_PASSWORD='centos',->MASTER_LOG_FILE='mariadb-bin.000003',->MASTER_LOG_POS=245;QueryOK,0rowsaffected(0.01sec)MariaDB[(none)]>startslave;QueryOK,0rowsaffected(0.00sec)MariaDB[(none)]>showslavestatus\G***************************1.row***************************Slave_IO_State:WaitingformastertosendeventMaster_Host:192.168.27.7Master_User:repluserMaster_Port:3306Connect_Retry:60Master_Log_File:mariadb-bin.000003Read_Master_Log_Pos:334Relay_Log_File:mariadb-relay-bin.000002Relay_Log_Pos:620Relay_Master_Log_File:mariadb-bin.000003Slave_IO_Running:YesSlave_SQL_Running:YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno:0Last_Error:Skip_Counter:0Exec_Master_Log_Pos:334Relay_Log_Space:916Until_Condition:NoneUntil_Log_File:Until_Log_Pos:0Master_SSL_Allowed:NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master:0Master_SSL_Verify_Server_Cert:NoLast_IO_Errno:0Last_IO_Error:Last_SQL_Errno:0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id:11rowinset(0.00sec)

    从服务器数据一致性保证:

    由于从服务器上的数据也是可以被删除的,所以为了保证数据的一致性,可以将只读属性打开;这种情况下,MySQL的root用户依然是可以修改删除的,只是对于普通用户生效;MariaDB[(none)]>showvariableslike'read_only';+---------------+-------+|Variable_name|Value|+---------------+-------+|read_only|OFF|+---------------+-------+1rowinset(0.00sec)[root@slave~]$vim/etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock#Disablingsymbolic-linksisrecommendedtopreventassortedsecurityriskssymbolic-links=0#Settingsuserandgroupareignoredwhensystemdisused.innodb_file_per_tableserver_id=2read_onlyMariaDB[(none)]>grantselect,update,deleteon*.*totest@'192.168.27.%'identifiedby'centos';QueryOK,0rowsaffected(0.00sec)[root@master~]$mysql-utest-pcentos-h292.168.27.17MariaDB[hellodb]>select*fromstudentswhereage='22';+-------+---------------+-----+--------+---------+-----------+|StuID|Name|Age|Gender|ClassID|TeacherID|+-------+---------------+-----+--------+---------+-----------+|1|ShiZhongyu|22|M|2|3||2|ShiPotian|22|M|1|7||21|HuangYueying|22|F|6|NULL|+-------+---------------+-----+--------+---------+-----------+3rowsinset(0.00sec)MariaDB[hellodb]>deletefromstudents;ERROR1290(HY000):TheMariaDBserverisrunningwiththe--read-onlyoptionsoitcannotexecutethisstatement