`
xxtianxiaxing
  • 浏览: 705267 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

MySQL Cluster 备份与恢复

阅读更多
1、在管理节点上进行备份。
ndb_mgm> start backup
ndb_mgm> shutdown
ndb_mgm> exit
2、删掉SQL节点的数据。
   DROP DATABASE TEST_CLUSTER;
3、关闭MYSQLD服务器。
[root@localhost bin]# service mysqld stop
Shutting down MySQL... SUCCESS! 
4、重新顺序启动所有节点。
[root@localhost mysql]#ndb_mgmd -f /etc/config.ini --reload
[root@localhost data]#ndbd --initial
我发现如果不带这个 --initial选项的话,恢复会失败。
[root@localhost bin]# service mysqld start
//我用的7.0.8a版rpm 安装<b>service mysqld start</b>无法启动,用、、
//[root@localhost ~]# mysqld_safe &

4、在NDBD节点上进行恢复。(每个节点都得执行一次,因为数据分散在两个节点上)
第一个节点:
[root@localhost BACKUP]# /usr/local/mysql/bin/ndb_restore -n3 -b4 -r -m --backup_path=/usr/local/mysql/data/BACKUP/BACKUP-4/ 
-r开关是记录集合。
-m是元数据。就是表和库的SCHEMA。
Nodeid = 3
Backup Id = 4
backup path = /usr/local/mysql/data/BACKUP/BACKUP-4/
Ndb version in backup files: Version 5.1.21
Connected to ndb!!
Successfully restored table `test_cluster/def/lk4_test`
...
Successfully created index `PRIMARY` on `lk4_test`
...
_____________________________________________________
Processing data in table: test_cluster/def/lk4_test54) fragment 1
_____________________________________________________
...
Restored 37 tuples and 0 log entries

NDBT_ProgramExit: 0 - OK
第二个节点:
[root@localhost BACKUP-1]# /usr/local/mysql/bin/ndb_restore -n4 -b4  -r --backup_path=/usr/local/mysql/data/BACKUP/BACKUP-4/
Nodeid = 4
Backup Id = 4
backup path = /usr/local/mysql/data/BACKUP/BACKUP-4/
Ndb version in backup files: Version 5.1.21
Connected to ndb!!
_____________________________________________________
Processing data in table: sys/def/NDB$EVENTS_0(1) fragment 1
_____________________________________________________
Processing data in table: mysql/def/ndb_apply_status(4) fragment 1
_____________________________________________________
Processing data in table: mysql/def/NDB$BLOB_2_3(3) fragment 1
_____________________________________________________
Processing data in table: test/def/t11(5) fragment 1
_____________________________________________________
Processing data in table: sys/def/SYSTAB_0(0) fragment 1
_____________________________________________________
Processing data in table: mysql/def/ndb_schema(2) fragment 1
Restored 2 tuples and 0 log entries

NDBT_ProgramExit: 0 - OK


这里完成。
5、查看一下有没有数据,为了安全起见。
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)
没有恢复的数据库?
MYSQL现在必须重新建立SCHEMA。

mysql> create database test_cluster;
Query OK, 1 row affected (0.33 sec)

mysql> use test_cluster;
Database changed
mysql> show tables;
+------------------------------+
| Tables_in_test_cluster       |
+------------------------------+
| lk4_test                     |
| ...                          |
+------------------------------+
27 rows in set (0.11 sec)

mysql> select * from cs_comment;
Empty set (0.00 sec)

不过MYSQL的backup 程序现在还只能进行完全备份。
[root@localhost BACKUP]# du -h
76K     ./BACKUP-2
96K     ./BACKUP-6
180K    ./BACKUP-4
172K    ./BACKUP-3
76K     ./BACKUP-1
60K     ./BACKUP-5
668K    .

6、在NDBD节点上进行恢复的时候有一个要注意的问题。
因为NDBD节点以 --initial 方式启动的时候不会自动删除undo 和 data 文件(即保存到磁盘上的表数据),所以得手动在每个NDBD节点上进行RM操作:

[root@node239 ndb_6_fs]# rm -rf *.dat

然后开始备份。
在MASTER上备份的时候要加 -m 开关。
在SLAVE上要加-d 而且不要-m开关。

具体步骤如下:
MASTER : 

[root@localhost ndb_3_fs]# /usr/local/mysql/bin/ndb_restore -n3 -b1 -r -m --backup_path=/usr/local/mysql/data/BACKUP/BACKUP-1/
Nodeid = 3
Backup Id = 1
backup path = /usr/local/mysql/data/BACKUP/BACKUP-1/
Ndb version in backup files: Version 5.1.21
Connected to ndb!!
Creating logfile group: lg_1...done
Creating tablespace: ts_1...done
Creating datafile "data_1.dat"...done
Creating undofile "undo_1.dat"...done
Successfully restored table `test/def/t11`
Successfully restored table event REPL$test/t11
_____________________________________________________
Processing data in table: sys/def/NDB$EVENTS_0(1) fragment 0
_____________________________________________________
Processing data in table: mysql/def/NDB$BLOB_2_3(3) fragment 0
_____________________________________________________
Processing data in table: sys/def/SYSTAB_0(0) fragment 0
_____________________________________________________
Processing data in table: mysql/def/ndb_schema(2) fragment 0
_____________________________________________________
Processing data in table: mysql/def/ndb_apply_status(4) fragment 0
_____________________________________________________
Processing data in table: test/def/t11(10) fragment 0
Restored 26 tuples and 0 log entries

NDBT_ProgramExit: 0 - OK

其他的SLAVE上的操作:

[root@node239 ndb_6_fs]# /usr/local/mysql/bin/ndb_restore -n6 -b1 -r -d --backup_path=/usr/local/mysql/data/BACKUP/BACKUP-1/                                                                                                                
Nodeid = 6
Backup Id = 1
backup path = /usr/local/mysql/data/BACKUP/BACKUP-1/
Ndb version in backup files: Version 5.1.21
Connected to ndb!!
_____________________________________________________
Processing data in table: sys/def/NDB$EVENTS_0(1) fragment 3
_____________________________________________________
Processing data in table: mysql/def/NDB$BLOB_2_3(3) fragment 3
_____________________________________________________
Processing data in table: sys/def/SYSTAB_0(0) fragment 3
_____________________________________________________
Processing data in table: mysql/def/ndb_schema(2) fragment 3
_____________________________________________________
Processing data in table: mysql/def/ndb_apply_status(4) fragment 3
_____________________________________________________
Processing data in table: test/def/t11(10) fragment 3
Restored 20 tuples and 0 log entries

NDBT_ProgramExit: 0 - OK



-d 开关的意思即:
 -d, --no-restore-disk-objects 
                      Dont restore disk objects (tablespace/logfilegroups etc)
既忽略表空间和分组空间



异常:
[root@localhost ~]# ndb_restore -n2 -b2 -r -m --backup_path=/var/lib/mysql-cluster/BACKUP/BACKUP-2
Nodeid = 2
Backup Id = 2
backup path = /var/lib/mysql-cluster/BACKUP/BACKUP-2
Opening file '/var/lib/mysql-cluster/BACKUP/BACKUP-2/BACKUP-2.2.ctl'
Backup version in files: ndb-6.3.11 ndb version: mysql-5.1.37 ndb-7.0.8
Stop GCP of Backup: 0
Configuration error: Error : Could not alloc node id at 192.168.8.120 port 1186: Connection done from wrong host ip 192.168.8.121.
Failed to initialize consumers

NDBT_ProgramExit: 1 - Failed
解决:管理节点配置文件添加
[mysqld]
//空节点
分享到:
评论

相关推荐

    MySQL_Cluster备份与恢复

    MySQL_Cluster备份与恢复 MySQL_Cluster是一种高可用性的分布式关系数据库管理系统,它可以提供高性能、可扩展性和高可用性。由于其分布式架构,MySQL_Cluster需要特殊的备份和恢复机制。本文将介绍MySQL_Cluster的...

    MySQL Cluster 8.0.27(mysql-cluster-8.0.27-winx64.zip)

    虽然数据已经分布在多个节点,但MySQL Cluster还支持传统意义上的主从复制,以实现更复杂的备份和恢复策略。 8. **安装与配置**: `mysql-cluster-8.0.27-winx64` 压缩包包含所有必要的组件,包括管理节点、数据...

    MySQL Cluster 日常维护

    本文将详细介绍 MySQL Cluster 的日常维护,包括数据备份、数据恢复、日志管理等。 一、数据备份 数据备份是 MySQL Cluster 日常维护的重要部分。备份可以防止数据丢失,确保数据的安全性。MySQL Cluster 的备份...

    mysql_cluster集群

    - **备份与恢复**:可以使用内置的备份工具 (`ndb_mgmd --backup`) 进行数据备份,也可以使用第三方工具进行更复杂的备份方案。 #### 五、MySQL Cluster 构建步骤 1. **安装所需的软件包**:从 MySQL 官方网站下载...

    mysql Cluster.pdf

    ### MySQL Cluster概述与架构 #### 一、MySQL Cluster简介 MySQL Cluster是一种高度可扩展且具有高可用性的数据库系统,它采用分布式架构,在无共享存储设备的情况下实现数据的持久化存储。这种架构允许数据分布在...

    MySQL Cluster NDB 7.3 and MySQL Cluster NDB 7.4 官方说明翻译

    管理 MySQL Cluster 包括监控集群的状态、启动和停止节点、备份和恢复数据,以及故障恢复。可以使用 ndb_mgm 客户端工具进行集群的日常管理和故障排查。例如,`SHOW` 命令可以显示集群的当前配置,而 `START` 和 `...

    mysql-cluster操作文档

    文档中还提到了如何对MySQL Cluster进行数据备份和还原。数据备份需要登录到管理节点,执行`ndb_mgm`命令,并使用`startbackup`命令来开始备份过程。备份过程中,需要指定一个唯一的`backup_id`。备份完成后,可以...

    MySQL Cluster 概述-官方文件翻译

    备份和恢复在 MySQL Cluster 中是一个关键的考虑因素。NDB 提供了原生的备份和恢复功能,可以通过管理客户端工具进行操作。同时,也可以利用 MySQL 的传统工具如 `mysqldump` 进行备份,但请注意,非集群的 MySQL ...

    MySQL Cluster搭建与测试

    MySQL Cluster 是一种高度可用、可扩展的分布式数据库系统,它利用 NDB Cluster 存储引擎实现数据的分布式存储和处理。MySQL Cluster 的核心特点是它的“Share Nothing”架构,这意味着各个组件之间不共享任何物理...

    MySQL Cluster

    ### MySQL Cluster 高可用性与可靠性特征详解 #### 执行摘要 本文档详细介绍了 MySQL Cluster 的高可用性和可靠性特点,MySQL Cluster 是一种基于内存的分布式数据库管理系统。它采用无共享架构,并包含诸如故障...

    mysql_cluster_7.3

    参考指南中可能会详细解释集群的架构、安装与升级指南、备份与恢复、监控和管理等内容。 在实际部署和管理方面,MySQL Cluster NDB 7.3提供了多种工具,比如用于安装和升级的MySQL Installer,提供监控功能的MySQL ...

    实战体验几种MysqlCluster 方案.zip

    对于故障恢复,MySQL Cluster有内置的机制,但企业还需建立完整的灾难恢复计划,包括定期备份、数据复制到远程站点等。 10. **总结** 通过对多种MySQL Cluster方案的实战体验,我们可以更好地理解和应用这个技术...

    mysql-cluster-solutions.rar_cluster_mysql cluster_负载均衡

    MySQL Cluster是一种高可用性和负载均衡的数据存储解决方案,它通过分布式数据存储和计算来提供持续的服务。在本解决方案中,我们主要关注的是如何构建和管理MySQL Cluster以实现数据库的高可用性和负载均衡。 首先...

    MYSQL Cluster研究.pdf

    通过多台数据节点(Data Nodes)的联合工作,MySQL Cluster可以提供高冗余和故障恢复能力,确保服务的连续性。 2. 存储引擎 MySQL支持多种存储引擎,其中InnoDB是事务型数据库的首选,提供了ACID事务支持和行级锁定...

    MySQL Cluster 7.3实现互联网级性能和运营商级可用性的新特性

    6. **MySQL Cluster Manager:集中备份和恢复**:MySQL Cluster Manager 的增强功能允许管理员在一个中心位置执行备份和恢复操作,极大地简化了管理流程。 7. **MySQL Cluster 运营商级版本:关键组件**:MySQL ...

    mysql-cluster-gpl-7.2.8.tar.gz

    7. **备份与恢复**:使用MySQL的备份工具(如`mysqlpump`或`mysqldump`)定期备份数据,以防止数据丢失。 总的来说,MySQL Cluster GPL 7.2.8为用户提供了一套完整的、高可用的数据库解决方案,尤其适合需要高并发...

Global site tag (gtag.js) - Google Analytics