10bet网址
MySQL 5.6参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 29.5 mb
PDF (A4)- 29.5 mb
PDF (RPM)- 28.2 mb
HTML下载(TGZ)- 7.1 mb
HTML下载(Zip)- 7.1 mb
HTML下载(RPM)- 6.1 mb
手册页(TGZ)- 190.3 kb
手册页(Zip)- 305.1 kb
信息(Gzip)- 2.8 mb
信息(邮政编码)- 2.8 mb
本手册节选

18.6.9使用NDB集群复制进行NDB集群备份

本节讨论如何使用NDB集群复制进行备份和恢复。我们假设复制服务器已经按照前面介绍的那样进行了配置(请参见18.6.5节,“为复制准备NDB集群”,以及紧随其后的章节)。完成此操作后,进行备份并从中恢复的过程如下:

  1. 有两种不同的方法可以启动备份。

    • 一个方法。此方法要求在启动复制进程之前,源服务器上已经启用了集群备份进程。可以通过在语句中包含以下行来实现这一点(mysql_cluster)章节。my.cnf文件,在那里management_host的IP地址或主机名NDB源集群的管理服务器港口是管理服务器的端口号:

      ndb-connectstring =management_host[:港口
      请注意

      仅当默认端口号(1186)未被使用时,才需要指定端口号。看到18.2.3“NDB集群初始配置”,以了解更多关于NDB集群中的端口和端口分配的信息。

      在这种情况下,可以通过在复制源上执行以下语句来启动备份:

      壳牌年代> ndb_mgm -e "START BACKUP"
    • 方法B。如果my.cnf文件没有指定在哪里查找管理主机,您可以通过将此信息传递给NDB管理客户端的一部分开始备份命令。这可以像这里所示的那样完成management_host而且港口为管理服务器的主机名和端口号:

      壳牌年代> ndb_mgmmanagement_host港口-e "START BACKUP"

      在我们前面概述的场景中(参见18.6.5节,“为复制准备NDB集群”),执行如下:

      壳牌年代> ndb_mgm rep-source:1186 -e "START BACKUP"
  2. 将集群备份文件复制到正在联机的副本。每个系统运行一个ndbd源集群的进程上有集群备份文件所有这些文件中的一部分必须复制到副本以确保成功恢复。备份文件可以复制到副本管理主机所在计算机上的任何目录,只要MySQL和NDB二进制文件在该目录中具有读权限。在本例中,我们假设这些文件已经复制到目录中/var/BACKUPS/BACKUP-1

    而复制集群的个数不一定相同ndbd进程(数据节点)作为源,强烈建议这个数量相同。它属性启动副本是必要的——skip-slave-start选项,以防止过早启动复制进程。

  3. 在复制集群上创建源集群上存在且要复制的任何数据库。

    重要的

    一个创建数据库(或创建模式)语句对应于每个要复制的数据库,必须在复制集群中的每个SQL节点上执行。

  4. 方法中的此语句重置副本集群mysql客户:

    mysqlR>复位slave;
  5. 属性在副本上启动集群恢复过程ndb_restore命令依次为每个备份文件执行。对于第一种情况,有必要包含- m选项恢复集群元数据,如下所示:

    壳牌R> ndb_restore -creplica_host港口- n节点编号\ - bbackup-id- m - rdir

    dir副本上放置备份文件的目录的路径。为ndb_restore剩余备份文件对应的命令- m选择应被使用。

    对于从具有四个数据节点的源集群(如图中所示)进行恢复18.6节,“NDB集群复制”),其中备份文件已复制至该目录/var/BACKUPS/BACKUP-1,在副本上执行的正确命令序列可能如下所示:

    壳牌R> ndb_restore -c replica-host:1186 -n 2 -b 1 -m \ -r ./var/BACKUPS/BACKUP-1 shellR> ndb_restore -c replica-host:1186 -n 3 -b 1 \ -r ./var/BACKUPS/BACKUP-1 shellR> ndb_restore -c replica-host:1186 -n 4 -b 1 \ -r ./var/BACKUPS/BACKUP-1 shellR> ndb_restore -c replica-host:1186 -n 5 -b 1 -e \ -r ./var/BACKUPS/BACKUP-1 .使用实例
    重要的

    - e(或——restore-epoch选项的最终调用ndb_restore在本例中,需要确保epoch被写入副本的epochmysql.ndb_apply_status表格如果没有这些信息,副本就不能正常地与源同步。(见第18.4.22节,“ndb_restore -恢复NDB集群备份”.)

  6. 对象中获取最近的epochndb_apply_status表(如中所讨论的18.6.8节,“使用NDB集群复制实现故障转移”):

    mysqlRSELECT @latest:=MAX(epoch) FROM mysql.ndb_apply_status;
  7. 使用@latest根据上一步得到的epoch值,可以得到正确的起始位置@pos在正确的二进制日志文件中@filemysql.ndb_binlog_index使用如下所示的查询在源上的表:

    mysql年代> SELECT -> @file:=SUBSTRING_INDEX(File, '/', -1), -> @pos:=Position -> FROM mysql。ndb_binlog_index -> WHERE >= @latest -> ORDER BY epoch ASC LIMIT 1;

    如果当前没有复制流量,您可以通过运行命令获取此信息显示主机状态属性中显示的值位置中显示的所有文件中后缀值最大的文件的文件列。在这种情况下,您必须确定这是哪个文件,并在下一步中手动或通过脚本解析输出来提供名称。

  8. 使用在上一步中获得的值,现在可以发出适当的将master更改为语句mysql客户:

    mysqlR> CHANGE MASTER TO -> MASTER_LOG_FILE='@file', -> MASTER_LOG_POS=@pos;
  9. 现在副本知道从哪个二进制日志文件开始从源文件中读取数据,您可以使用以下语句使副本开始复制:

    mysqlR>启动从站;

要在第二个复制区域通道上执行备份和恢复,只需重复这些步骤,在适当的情况下用次要源服务器和副本服务器的主机名和id替换主源服务器和副本服务器的主机名和id,并在它们上运行上述语句。

有关执行群集备份和从备份恢复群集的其他信息,请参见18.5.8节“NDB集群在线备份”