`

MYSQL集群的备份与恢复最终版本

阅读更多

[原创]MYSQL集群的备份与恢复最终版本
中午刚刚弄明白了MYSQL集群的备份与恢复。
写下来,以后就不用为这个问题浪费时间了。
1、在管理节点上进行备份。
ndb_mgm> start backup nowait
ndb_mgm> Node 3: Backup 4 started from node 1
Node 3: Backup 4 started from node 1 completed
StartGCP: 43010 StopGCP: 43013
#Records: 2138 #LogRecords: 0
Data: 53068 bytes Log: 0 bytes

ndb_mgm> shutdown
Node 3: Cluster shutdown initiated
Node 4: Cluster shutdown initiated
Node 4: Node shutdown completed.
Node 3: Node shutdown completed.
2 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to 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]# /usr/local/mysql/ndb_mgmd -f /etc/config.ini
[root@localhost data]# /usr/local/mysql/bin/ndbd --initial
我发现如果不带这个 --initial选项的话,恢复会失败。
[root@localhost bin]# service mysqld start
Starting MySQL SUCCESS!
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)
既忽略表空间和分组空间

分享到:
评论

相关推荐

    MYSQL 5.7 reference Manual

    手册的其余部分会详细介绍MySQL的安装、配置、SQL语法、存储引擎、安全、备份与恢复、性能优化、复制和集群等方面的内容。例如,InnoDB存储引擎支持事务处理和行级锁定,MyISAM则适合读取密集型应用。MySQL还支持...

    MySQL 5.7-OCP-题库最终版

    这些知识点主要围绕MySQL 5.7、OCP认证(Oracle Certified Professional)以及与数据库管理和优化相关的具体技术细节。 ### 1. 创建一致性的备份 **问题**: 在一个完全使用InnoDB表的MySQL数据库中,您计划通过`...

    MySQL王者晋级之路_MySql王者晋级之路_

    "MySQL王者晋级之路"这份资料,将带领你系统地学习和掌握这些知识,通过理论与实践的结合,让你在MySQL的世界里渐行渐远,最终成为真正的王者。通过阅读《MySQL王者晋级之路.pdf》,你将有机会深入探索这个领域的每...

    MySQL初级与高级教程

    1. **备份与恢复** - 备份方式:冷备份、热备份、逻辑备份。 - 恢复策略:完全恢复、部分恢复。 - 工具使用:mysqldump、mysqlhotcopy。 2. **安全设置** - 用户管理:创建用户、授权、修改密码。 - 权限控制...

    数据库mySQL

    标题中的"数据库MySQL"显然指的是MySQL数据库系统,而描述则暗示了一个常见问题:用户在尝试安装多种MySQL版本时遇到困难,但最终找到了一个免安装的MySQL工具版本并成功运行。 SQLyog是其中一个与MySQL相关的工具...

    MySQL数据库应用从入门到精通 第2版

    - **集群和复制**:讲解MySQL集群的架构和复制机制,确保数据的高可用性和负载均衡。 - **性能调优**:提供一系列优化MySQL性能的方法,包括查询优化、服务器参数调整等。 ### 学习路径建议 1. **基础阶段**:从...

    mysql-installer-web-community-8.0.20.0.7z

    安装完成后,用户可以通过MySQL命令行客户端或者MySQL Workbench图形界面工具与数据库交互,进行数据管理、查询、备份和恢复等操作。对于开发者来说,了解如何创建数据库、表结构、索引、触发器、存储过程等基本概念...

    逐步精通mysql数据库

    - 数据恢复:从备份文件恢复数据,应对意外情况。 7. **高可用性与扩展性** - 集群和复制:主从复制实现数据冗余,提高可用性;主主复制实现负载均衡。 - 分区与分片:大型数据库的横向扩展策略,提高查询速度。...

    mysql面试题50题

    备份恢复策略涉及何时、如何备份以及在灾难发生时如何恢复。MySQL 安全机制包括用户权限管理、加密、审计等,shm 包则是一组性能监视和管理工具。 总的来说,MySQL 面试题涵盖了从基础概念到高级特性的广泛知识领域...

    数据库领域 MySQL 主从复制的原理与配置详解

    使用场景及目标:适用于需要构建高效稳定的数据库集群、实现实时备份和快速恢复的企业环境。具体目标是掌握MySQL主从复制的具体实施技术和最佳实践,以此增强数据库服务的鲁棒性和灵活性。 其他说明:本资料不仅提供...

    MySQL数据库故障转移工具MHA的研究与应用.pdf

    2. **监控与报警**:MHA提供了监控工具,可以实时检查MySQL集群的状态,当检测到异常时能及时触发故障转移。同时,需要设置适当的报警机制,以便在出现问题时通知管理员。 3. **测试与演练**:在生产环境中部署MHA...

    1Z0-883 V9.02.pdf

    7. MySQL数据库备份恢复策略 - 对于DRBD的了解,这通常是一个块级别的复制解决方案,用于数据的实时备份和故障恢复。 8. 高可用性策略与最佳实践 - 对于高可用性的理解,不仅限于故障转移和数据备份,还包括在系统...

    阿里MySQL高可用方案.zip

    总结来说,阿里MySQL高可用方案是一个综合性的架构设计,它结合了主从复制、分布式集群、读写分离、存储引擎优化、故障恢复、资源调度和智能运维等多个方面,旨在提供稳定、高效、可靠的数据库服务。对于任何希望...

    mysql 课程资料

    八、备份与恢复 1.mysqldump:用于全量备份,可以导出SQL语句或二进制格式。 2-binlog:二进制日志,用于增量备份和故障恢复。 3. Percona Xtrabackup:提供无锁备份,适用于大型数据库。 九、复制与集群 1. 主从...

    MySQL云数据库架构设计实践_.zip

    4. 安全性:确保数据加密、访问控制和备份恢复机制。 5. 灾备与容灾:建立跨地域的冗余部署,确保在区域故障时能快速切换。 三、常见架构模式 1. 单机部署:适合小规模应用,但不具备高可用性。 2. 主从复制:通过...

    mysql-7 (1).pdf

    MySQL性能优化是一个涵盖广泛的主题,包括服务器层面的优化、数据库设计层面的优化、SQL查询的优化以及数据库集群和分库分表的策略。本课程旨在让学员深入理解这些关键领域,提升MySQL系统的整体性能。 首先,...

    Mysql-master-slave.rar_Master/Slave_slave mysql

    2. **备份与恢复**:在主服务器上,你需要创建一个二进制日志(binlog),记录所有的修改操作。这可以通过设置`log-bin`选项在my.cnf配置文件中实现。 3. **复制设置**:在主服务器上,配置`server-id`,确保每个...

Global site tag (gtag.js) - Google Analytics