mysql cluster 配置文件更新 怎么重启

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql cluster 配置文件更新 怎么重启相关的知识,希望对你有一定的参考价值。

一、定义mysql Cluster的TCP/IP连接

TCP/IP是MySQL集群用于建立连接的默认传输协议,正常情况下不需要定义连接。可使用“[TCP DEFAULT]”或“[TCP]”进行定义。

 

1. SendBufferMemory

TCP传输缓存。默认值为 256KB。

 

2. SendSignalId

通过网络传输消息ID。默认禁止该特性(取值: Y/N或1/0)。

 

3. Checksum

启用该参数将在所有消息置于发送缓冲之前,为所有参数计算校验和。默认禁止该特性(取值: Y/N或1/0)。

 

4. ReceiveBufferMemory

指定从TCP/IP Socket接收数据时所使用的缓冲大小。几乎不需要更改该参数的默认值,默认值为64KB。

 

二、定义数据结点默认行为

NoOfReplicas为必要参数,使用“[NDBD DEFAULT]”进行定义。

 

1. NoOfReplicas

定义集群中每个表保存的拷贝数,另外还指定结点组的大小。结点组指保存相同信息的结点集合。通常情况下不需要为该参数指定值。NoOfReplicas没有默认值,最大的可能值为 4。

 

三、定义管理服务器(MGM)

用于配置管理服务器的行为。下面的参数均可以被忽略,如果是这样,将使用其默认值。如果没有定义ExecuteOnComputer或HostName,则会指定为localhost。可使用“[NDB_MGMD]”定义单个管理结点的行为,也可使用“[NDB_MGMD DEFAULT]”定义多个管理结点的默认行为。

 

1. NodeId

集群中结点的唯一标识,取值 1~63。

 

2. HostName

指定结点主机名或IP。

 

3. ExecuteOnComputer

引用在“[COMPUTER]”部分中定义的计算机之一。

 

4. PortNumber

管理服务器监听端口(默认值: 2202)。

 

5. LogDestination

结点日志出处理方式,可取下述值:
5.1. CONSOLE
将日志输出到标准输出设备(stdout)。
5.2. SYSLOG:facility=syslog
将日志发送到syslog(系统日志)软设备,可能值:
auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog
, user, uucp, local0, local12~7
5.3. FILE:filename=/var/log/mgmd.log,maxsize=1000000,maxfiles=6
讲日志输出到文件,可指定一下值:
filename:日志文件名称。
maxsize:日志文件最大尺寸,大于该尺寸时自动创建新日志文件。
maxfiles:日志文件最大数量。

 

6. ArbitrationRank

指定哪个结点扮演决策角色,只有MGM结点和SQL结点可以使用(默认值:1)。通常情况下,应将值设为 1,并将所有SQL结点设为 0,以MGM服务器作为决策程序。可取下述值之一:
0:该结点永远不用作决策。
1:该结点具有高优先级。
2:该结点具有低有限级。

 

7. ArbitrationDelay

指定管理服务器对决策请求的延迟时间,毫秒为单位,默认为 0。通常情况下不需要改变它。

 

8. DataDir

保存管理服务器输出文件的位置,包括日志,进程输出文件,以及程序的pid文件。对于日志文件,可通过设置LogDestination的FILE参数覆盖它。

 

四、定义数据结点(NDBD)

用于配置数据结点的行为。ExecuteOnComputer或HostName为必要参数。对于各种参数,可以使用后缀k、M或G指明单位。使用“[NDBD]”进行定义。

 

1. NodeId

启动结点时,可在命令行中分配ID(即数据结点ID),也能在配置文件中分配。

 

2. HostName

指定结点主机名或IP。

 

3. ExecuteOnComputer

引用在“[COMPUTER]”部分中定义的计算机之一。

 

4. DataDir

指定存放跟踪文件,日志文件,pid文件以及错误日志的目录。

 

5. BackupDataDir

指定存放备份的目录,默认为 FileSystemPath/BACKUP。

 

6. DataMemory

指定数据内存,默认值为 80MB,最小值 1MB,无大小限制。

 

7. IndexMemory

指定索引内存,默认值为 18MB,最小值 1MB,无大小限制。

 

8. MaxNoOfConcurrentTransactions

用于设定结点内可能的并发事务数,默认值为 4096。对于所有结点,必须将参数设置为相同的值。

 

9. MaxNoOfConcurrentOperations

设置能同时出现在更新阶段或同时锁定的记录数。默认值为 32768。

 

10. MaxNoOfLocalOperations

默认情况下,将按照1.1 * MaxNoOfConcurrentOperations计算该参数,它适合于具有很多并发事务,但不存在特大事务的系统。如果需要在某一时间处理特大事务,而且有很多结点,最好通过明确指定该参数以覆盖默认值。

 

11. MaxNoOfConcurrentIndexOperations

该参数的默认值为8192。只有在极其罕见的情况下,需要使用唯一性哈希索引执行极高的并行操作时,才有必要增大该值。如果确信该集群不需要高的并行操作,可以使用较小的值并节省内存。

 

12. MaxNoOfFiredTriggers

默认值是4000,它足以应付大多数情况。在某些情况下,如果认为在集群中对并行操作的要求并不高, 甚至还能降低它。

 

13. TransactionBufferMemory

该参数影响的内存用于跟踪更新索引表和读取唯一索引时执行的操作。该内存用于保存关于这类操作的键和列信息。几乎不需要更改该参数的默认值。

 

14. MaxNoOfConcurrentScans

该参数用于控制可在集群中执行的并行扫描的数量。默认值为256,最大值为500。

 

15. MaxNoOfLocalScans

如果很多扫描不是完全并行化的,指定本地扫描记录的数量。

 

16. BatchSizePerLocalScan

该参数用于计算锁定记录的数量。要想处理很多并发扫描操作,需要这类记录。默认值是64,该值与SQL结点中定义的 ScanBatchSize 关系密切。

 

17. LongMessageBuffer

用于在单个结点内和结点之间传递消息的内部缓冲。尽管几乎不需要改变它,但它仍是可配置的。默认情况下,它被设置为1MB。

 

18. NoOfFragmentLogFiles

设置结点的REDO日志文件的大小,默认值为 8。

 

19. MaxNoOfSavedMessages

设置跟踪文件的最大数,默认值为 25。

 

20. MaxNoOfAttributes

设置可在集群中定义的属性数量,默认值为 1000,最小值为 32。

 

21. MaxNoOfTables

设置集群中最大表对象数量。默认值为128,最小值为 8,最大值为 1600。

 

22. MaxNoOfOrderedIndexes

对于集群中的每个有序索引,会分配一个对象,用于描述索引的内容,以及它的存储片段。在默认情况下,每个如此定义的索引还定义了一个有序索引。每个唯一索引和主键都具有一个有序索引和一个哈希索引。MaxNoOfOrderedIndexes设置有序索引的总数,这是系统任何时候能够使用的有序索引的总数。这个参数的默认值是128。每个结点中的每个索引对象尺寸大约为10KB。

 

23. MaxNoOfUniqueHashIndexes

对于每个不是主键的唯一索引,会分配一个表,用于将唯一键映射至索引表的主键。在默认情况下,还会为每个唯一索引定义一个有序索引。想要避免这种情况,当定义唯一索引时,你还必须指定“USING HASH”选项。默认值是64。每个结点中的每个索引的尺寸大约为15KB。

 

24. MaxNoOfTriggers

该参数用于设置集群中触发器的最大数量。

 

25. LockPagesInMainMemory

对于很多操作系统,能够将进程锁定在内存中,以避免与磁盘的交换。使用它可以确保集群的实时特性。默认情况下,该特性是被禁止的(取值:Y/N或1/0)。

 

26. StopOnError

出现错误时,该参数指定NDBD进程是退出还是自动重启。默认情况下,该特性是启用的(取值:Y/N或1/0)。

 

27. Diskless

指定集群为“无磁盘”,意味着不会为表在磁盘上设立检查点,也不会记录任何日志。默认情况下,该特性是被禁止的(取值:Y/N或1/0)。

 

28. RestartOnErrorInsert

仅当编译为调试版时才能访问该特性。默认情况下,该特性是被禁止的。

 

29. TimeBetweenWatchDogCheck

指定监控线程检查的间隔。该参数以毫秒为单位,默认值为 4000 毫秒。

 

30. StartPartialTimeout

该参数指定了在调用集群初始化子程序之前,集群等待所有存储结点出现的时间。默认值为 30000 毫秒(0 表示无限超时)。

 

31. StartPartitionedTimeout

如果集群做好了启动准备,但仍可能处于隔离状态,集群将等待该超时时间结束。默认值为 60000 毫秒。

 

32. StartFailureTimeout

如果数据结点在该参数指定的时间内未完成其启动序列,结点启动将失败。如果将该参数设置为0,表示不采用数据结点超时。默认值为 60000 毫秒。

 

33. HeartbeatIntervalDbDb

每个数据结点发送心跳信号到SQL结点的间隔。默认值为 1500 毫秒。

 

34. HeartbeatIntervalDbApi

每个数据结点都会向每个MySQL服务器(SQL结点)发送心跳信号,以确保它们依然保持接触。如果一个MySQL服务器没能成功地及时发送一个心跳,那么就会将其声明为“失效”,在这种情况下,所有正在进行的事务都会结束,并且释放所有资源。SQL结点不能重连,直到由先前的MySQL实例所初始化的所有活动都已经结束为止。默认的时间间隔是1500毫秒(1.5秒)单个数据结点之间的这个时间间隔可以是不同的,因为每个数据结点都会监视与其连接的MySQL服务器,与所有其他的数据结点无关。

 

35. TimeBetweenLocalCheckpoints

该参数默认值为20。

 

36. TimeBetweenGlobalCheckpoints

该参数定义了全局检查点操作之间的时间间隔。默认值为 2000 毫秒。

 

37. TimeBetweenInactiveTransactionAbortCheck

该参数默认值为 1000 毫秒。

 

38. TransactionInactiveTimeout

如果事务目前未执行任何查询,而是等待进一步的用户输入,该参数指明了放弃事务之前用户能够等待的最长时间。默认值为 0。

 

39. TransactionDeadlockDetectionTimeout

该超时参数指明了放弃事务之前,事务协调器等候另一结点执行查询的时间。

 

40. NoOfDiskPagesToDiskAfterRestartTUP

该参数指定了执行本地检查点操作的速度,并能与NoOfFragmentLogFiles、DataMemory和IndexMemory一起使用。默认值是 40(每秒3.2MB的数据页)。

 

41. NoOfDiskPagesToDiskAfterRestartACC

该参数使用的单位与NoOfDiskPagesToDiskAfterRestartTUP的相同。工作方式也类似,但限制的是从索引内存进行的索引页写入速度。该参数的默认值为每秒20个索引内存页(1.6MB每秒)。

 

42. NoOfDiskPagesToDiskDuringRestartTUP

该参数涉及从数据内存写入的页。默认值是40(3.2MB每秒)。

 

43. NoOfDiskPagesToDiskDuringRestartACC

该参数默认值是20(1.6MB每秒)。

 

44. ArbitrationTimeout

指定数据结点等待决策程序对决策消息的回应的时间。默认值为 1000 毫秒。

 

45. UndoIndexBuffer

指定UNDO索引缓冲区大小。默认值为 2MB,最小值为1MB。

 

46. UndoDataBuffer

指定UNDO数据缓冲区大小。默认值为 16MB,最小值为1MB。

 

47. RedoBuffer

指定REDO数据缓冲区大小。默认值为 8MB,最小值为1MB。

 

48. LogLevelStartup

日志级别,用于进程启动过程中生成的事件。默认级别为 1。

 

49. LogLevelShutdown

日志级别,用于作为结点恰当关闭进程组成部分而生成的事件。默认级别为 0。

 

50. LogLevelStatistic

日志级别,用于统计事件,如主键法读取次数、更新数、插入数、与缓冲使用有关的信息等。默认级别为 0。

 

51. LogLevelCheckpoint

日志级别,用于由本地和全局检查点操作生成的事件。默认级别为 0。

 

52. LogLevelNodeRestart

日志级别,用于在结点重启过程中生成的事件。默认级别为 0。

 

53. LogLevelConnection

日志级别,用于由集群结点间的连接生成的事件。默认级别为 0。

 

54. LogLevelError

日志级别,用于由在整个集群内的错误和警告生成的事件。这类错误不会导致任何结点失败,但仍值得记录。默认级别为 0。

 

55. LogLevelInfo

日志级别,用于为集群的一般状态信息而生成的事件。默认级别为 0

 

56. BackupDataBufferSize

指定数据备份缓冲区大小。默认值为 2MB。

 

57. BackupLogBufferSize

指定日志备份缓冲区大小。默认值为 2MB。

 

58. BackupMemory

该参数是BackupDataBufferSize和BackupLogBufferSize之和。默认值是2MB + 2MB = 4MB。

 

59. BackupWriteSize

该参数指定了由备份日志缓冲和备份数据缓冲写入磁盘的消息大小。默认值为 32KB。

 

60. FileSystemPath

该参数指定了存放为元数据创建的所有文件、REDO日志、UNDO日志和数据文件目录。注意:在ndbd进程启动前,该目录必须已存在。

 

五、定义MySQL服务器(SQL)

定义用于访问集群数据的MySQL服务器(SQL结点)的行为。可使用“[MYSQLD]”定义单个SQL结点的行为,也可使用“[MYSQLD DEFAULT]”定义多个SQL结点的默认行为。

 

1. NodeId

集群中结点的唯一标识。取值 1~63。

 

2. HostName

指定结点主机名或IP。

 

3. ExecuteOnComputer

引用在“[COMPUTER]”部分中定义的计算机之一。

 

4. ArbitrationRank

对于正常配置,使用管理服务器作为决策程序。将管理服务器的ArbitrationRank设置为 1(默认),并将所有SQL结点的ArbitrationRank设置为 0。

 

5. ArbitrationDelay

指定管理服务器对决策请求的延迟时间,以毫秒为单位。默认为 0,通常情况下不需要改变它。

 

6. BatchByteSize

对于被转换为全表扫描或索引范围扫描的查询来说,以适当大小批量获取记录,可以获得最佳的性能。这个合适的尺寸既可以用记录数量(BatchSize)表示,也可以用字节数量(BatchByteSize)表示。实际的批量尺寸受这两个参数的限制。根据这个参数的设置方法,查询性能最多可以提高40%。该参数以字节为单位,默认值是 32KB。

 

7. BatchSize

该参数以字节为单位,默认值是 64,最大值为 992。

 

8. MaxScanBatchSize

指定从各数据结点发送的每批数据的大小,默认值是 256KB,最大值为 16MB。

六、配置文件示例

参考技术A

参考官方的mysql-cluster-excerpt-5.6-en.pdf的P376,即上图的左边红框部分。

重启分为三步:

第一步

    对于管理节点,按顺序执行以下操作重启管理节点:

    1.使用ps -ef|grep mgm 找出管理节点进程,kill掉它;

    2.更新config.ini配置文件;

    3.使用/usr/sbin/ndb_mgmd --reload启动第一个管理节点。

    注意:

    (1)以上三步需要重复在所有管理节点上操作;

    (2)如果有多个管理节点,无论是否还有其他参数,只有第一个启动的管理节点上才能使用--reload参数,其他管理节点的启动不要添加--reload参数。

第二步

    对所有数据节点,执行以下操作重启数据节点:

    1.连入任意一个管理节点,使用/usr/sbin/ndb_mgm命令进入控制台;

    2.使用命令:[node_id] restart,重新启动所有的数据节点

第三步

    对所有SQL节点,重复执行以下操作:

    1. 确保有执行service命令的权限,执行以下命令重启SQL节点:service mysql restart

mysql-主从复制

1.主从简介

MySQL 的主从复制(Replication)至少需要两个MySQL服务(可以是同一台机器,也可以是不同机器之间进行)。

MySQL 数据库的主从复制方案,与使用scp/rsync等命令进行的文件级别复制类似,都是数据的远程传输。只不过MySQL的主从复制是其自带的功能,无需借助第三方工具,而且MySQL的主从复制并不是数据库磁盘上的文件直接拷贝,而是通过逻辑的binlog日志复制到要同步的服务器本地,然后由本地的线程读取日志里面的SQL语句,重新应用到MySQL 数据库中。

1.1 作用

  1. 可以实时灾备,用于故障切换;
  2. 读写分离,提供查询服务,实现负载均衡;
  3. 数据热备,避免影响业务。

1.2 形式

  • 一主一从
  • 主主复制
  • 一主多从---扩展系统读取的性能,因为读是在从库读取的
  • 多主一从---5.7开始支持
  • 联级复制

2.主从复制原理

技术图片

1.主数据库服务将所有写操作记录在binlog日志中,并产生log dump线程(接受到从数据库服务的I/O线程请求后将binlog日志发送给IO线程)

2.从服务器MySQL服务生成两个线程,一个是 I/O 线程,另一个是 SQL 线程。

3.从库 I/O 线程去请求主库的binlog日志,并将binlog日志中的文件写入relaylog(中继日志)中

4.从库的 SQL 线程会读取relaylog中的内容,并解析成具体的操作,来实现主从的操作一致,达到最终两个数据库数据一致的目的,这个过程为重放

3.主从配置

开启主从复制时,需使主从数据库数据一致(即全备后在从数据库恢复),否则在主操从库没有的数据时,从库复制功能会受到影响,直到重新设置从库记录主库的日志位置

参数

  • 主库参数
参数 作用
binlog 开启二进制日志记录
server-id 数据库服务唯一标识,主库id小于从库
innodb_flush_log_at_trx_commit 0,表示提交事务后,重做日志不会写入日志文件
1,同步写入日志文件
2,异步写入日志文件
innodb_support_xa=1 确保二进制日志和innodb数据文件的同步
保证复制环境的数据一致
log_bin_index 二进制日志索引名称
binlog_format 二进制日志的类型
binlog_row_image 二进制镜像保存量
binlog_do_db,binlog_ignore_db 记录在二进制日志中和不记录在二进制日志中
replicate_do_db[table] slave只重放指定的库/表
replicate_ignore_db[table] slave忽略重放指定的库/表
replicate_wild_do_table slave重放满足匹配的表
replicate_wild_ignore_table slave忽略重放满足匹配条件的表
binlog_cache_size 缓存还没刷新到磁盘的binlog日志
max_binlog_size 二进制日志最大值
expire_logs_days 二进制日志被保留的有效期
sync_binlog 二进制日志刷新到磁盘频率
binlog_rows_query_log_events 二进制日志基于行,用来指定额外的信息
  • 从库参数
参数 作用
relay_log 从节点中继日志名
relay_log_index 中继日志索引名称
replicate_do_db和replicate_ignore_db 过滤那些会被应用到从节点
slave_skip_errors 自动忽略指定错误,逗号分割
slave_exec_mode 取值IDEMPOTENT,STRICE 是否自动忽略重复主键和主键找不到错误
log_slave_updates 启动从节点的二进制日志
relay_log_purge 如何清除中继日志文件,默认1 自动清理
read_only 从库只读,SUPER权限用户除外
super_read_only SUPER用户设置只读
skip_slave_start 从节点跳过自动开启复制
sync_relay_log和sysnc_relay_log_info 中继日志文件同步频率,默认10000
repost_host 区别不同的从节点,SHOW SLAVE HOSTS查看
slave_max_allowed_packet 从节点的SQL和IO线程允许最大的数据包容量
relay_log_recovery 中继日志自动恢复,从库意外停止后使用
master_info_repository slave master节点信息保留在位置,默认file
relay_log_info_repository 从节点信息slave保留在位置,默认file

3.1主数据库

  • vm1(192.168.225.129)
  • 主库当前数据
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wisan_db           |
+--------------------+
5 rows in set (0.01 sec)

mysql> show tables from wisan_db;
+--------------------+
| Tables_in_wisan_db |
+--------------------+
| student_info       |
+--------------------+
1 row in set (0.00 sec)

mysql> select * from wisan_db.student_info;
+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  1 | wisan |   18 |
|  2 | fyj   |   17 |
|  3 | flora |   19 |
|  4 | wang  |   20 |
+----+-------+------+
4 rows in set (0.04 sec)

创建同步账号并授权给从数据库使用

##replication slave 为权限类型
##授权的同时创建用户
mysql> grant replication slave on *.* to ‘repli‘@‘192.168.225.130‘ identified by ‘123456‘;
Query OK, 0 rows affected, 1 warning (0.00 sec)

##查看repli用户的slave权限
mysql> select user,repl_slave_priv from mysql.user where user=‘repli‘;
+-------+-----------------+
| user  | repl_slave_priv |
+-------+-----------------+
| repli | Y               |
+-------+-----------------+

##刷新
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

配置主数据库

[root@vm1 ~]# vim /etc/my.cnf 
[mysqld]
basedir=/usr/local/mysql
datadir=/opt/mysql_data/data
socket=/tmp/mysql.sock
port=3306
pid-file=/opt/mysql_data/data/mysql.pid
user=mysql
skip-name-resolve
symbolic-links=0

server-id=10           ##数据库服务器标识,要求主库的id小于从库
log-bin=mysql-bin      ##开启binlog日志

重启服务

[root@vm1 ~]# service mysqld restart 
Shutting down MySQL.. SUCCESS! 
Starting MySQL.. SUCCESS! 
[root@vm1 ~]# ss -antl 
State          Recv-Q          Send-Q                   Local Address:Port                   Peer Address:Port         
LISTEN         0               128                            0.0.0.0:22                          0.0.0.0:*            
LISTEN         0               128                               [::]:22                             [::]:*            
LISTEN         0               80                                   *:3306                              *:*            
[root@vm1 ~]# ls /opt/mysql_data/data/
auto.cnf        ibdata1      ib_logfile1  mysql             mysql-bin.index  performance_schema  vm1.localdomain.err
ib_buffer_pool  ib_logfile0  ibtmp1       mysql-bin.000001  mysql.pid        sys                 wisan_db
[root@vm1 ~]# 

查看主库状态

  • 查看此时主库binlog记录的位置
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)

3.2从数据库

  • vm3(192.168.225.130)

配置文件

[root@vm3 ~]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/opt/mysql_data/data
socket=/tmp/mysql.sock
port=3306
pid-file=/opt/mysql_data/data/mysql.pid
user=mysql
skip-name-resolve
symbolic-links=0

server-id=20                 ##数据库服务器标识,从库id大于主库
relay-log=mysql-relay-bin    ##启用中继日志

重启数据库服务

[root@vm3 ~]# service mysqld restart 
Shutting down MySQL.. SUCCESS! 
Starting MySQL.. SUCCESS! 
[root@vm3 ~]# ss -antl
State      Recv-Q     Send-Q         Local Address:Port          Peer Address:Port     
LISTEN     0          128                  0.0.0.0:22                 0.0.0.0:*        
LISTEN     0          80                         *:3306                     *:*        
LISTEN     0          128                     [::]:22                    [::]:*        
[root@vm3 ~]# ls /opt/mysql_data/data/
auto.cnf        ib_logfile0  mysql               sys
ib_buffer_pool  ib_logfile1  mysql.pid           vm3.localdomain.err
ibdata1         ibtmp1       performance_schema

配置并启动主从复制

mysql> change master to
    -> master_host=‘192.168.225.129‘,
    -> master_user=‘repli‘,
    -> master_password=‘123456‘,
    -> master_log_file=‘mysql-bin.000001‘,
    -> master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

查看从库状态

mysql> show slave status G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.225.129
                  Master_User: repli
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 154
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes          ##yes表示从库io启动成功
            Slave_SQL_Running: Yes          ##yes表示从库重放功能运行成功
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
......................................................

3.3主从复制测试

查看从库当前数据

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

主库更新数据

## 创建新数据库
mysql> create database country;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| country            |
| mysql              |
| performance_schema |
| sys                |
| wisan_db           |
+--------------------+

##创建新表
mysql> use country;
Database changed
mysql> create table id_name(
    -> id int not null primary key auto_increment,
    -> name varchar(100) not null
    -> );

mysql> desc country.id_name;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(100) | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> insert into id_name(name) values(‘CHINA‘),(‘The United States‘),(‘The United Kingdom‘),(‘Japan‘);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from country.id_name;
+----+--------------------+
| id | name               |
+----+--------------------+
|  1 | CHINA              |
|  2 | The United States  |
|  3 | The United Kingdom |
|  4 | Japan              |
+----+--------------------+

查看从库是否更新

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

mysql> show tables from country;
+-------------------+
| Tables_in_country |
+-------------------+
| id_name           |
+-------------------+
1 row in set (0.01 sec)

mysql> select * from country.id_name;
+----+--------------------+
| id | name               |
+----+--------------------+
|  1 | CHINA              |
|  2 | The United States  |
|  3 | The United Kingdom |
|  4 | Japan              |
+----+--------------------+
4 rows in set (0.00 sec)

在主库更新从库没有的数据

mysql> show tables from wisan_db;
+--------------------+
| Tables_in_wisan_db |
+--------------------+
| student_info       |
| student_score      |
+--------------------+
2 rows in set (0.00 sec)

mysql> insert into wisan_db.student_info(name,age) value(‘hello‘,null);
Query OK, 1 row affected (0.00 sec)

mysql> select * from wisan_db.student_info;
+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  1 | wisan |   18 |
|  2 | fyj   |   17 |
|  3 | flora |   19 |
|  4 | wang  |   20 |
|  5 | hello | NULL |
+----+-------+------+
5 rows in set (0.00 sec)

查看从库数据

  • 发现从库在复制时发生错误
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| country            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
##查看状态
mysql> show slave status G;
   Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 1146
                   Last_Error: Error executing row event: ‘Table ‘wisan_db.student_info‘ doesn‘t exist‘
                 Skip_Counter: 0

4确保主从数据库数据一致

  • 此过程在开启主从复制功能之前完成

4.1主数据库

给数据库加上读锁

  • 开启一个终端用于上读锁
  • 当退出mysql时表示解锁
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.01 sec)
##其他终端更新数据时会卡住,直到解锁才会继续处理
mysql> insert into wisan_db.student_info(name,age) value(‘world‘,null);

全备主库

[root@vm1 ~]# mysqldump -uroot -p123456 --all-databases > /opt/database-backup/all-20201029.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@vm1 ~]# ls /opt/database-backup/
all-20201029.sql

发送给从数据库

[root@vm1 ~]# scp /opt/database-backup/all-20201029.sql root@192.168.225.130:/root/
root@192.168.225.130‘s password: 
all-20201029.sql             

解除锁表状态

mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@vm1 ~]# 

4.2从数据库

恢复主库全备

[root@vm3 ~]# mysql -uroot -p123456 < /root/all-20201029.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@vm3 ~]# mysql -uroot -p123456 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| country            |
| mysql              |
| performance_schema |
| sys                |
| wisan_db           |
+--------------------+

mysql> select * from wisan_db.student_info;
+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  1 | wisan |   18 |
|  2 | fyj   |   17 |
|  3 | flora |   19 |
|  4 | wang  |   20 |
|  5 | hello | NULL |
+----+-------+------+
5 rows in set (0.00 sec)

mysql> select * from wisan_db.student_score;
Empty set (0.00 sec)



以上是关于mysql cluster 配置文件更新 怎么重启的主要内容,如果未能解决你的问题,请参考以下文章

redis-cluster 添加密码设置

Redis Cluster 设置密码

Mysql cluster管理节点配置文件详解

mysql cluster推荐配置

我在mysql里用dos命令修改编码后为啥重启之后不能生效又变回原来的样子了??怎么才能保存设置??

怎么配置mysql数据库配置文件