MySQL ndb Cluster备份与恢复

采用ndb_mgm管理客户端来备份,在管理节点执行ndb_mgm即可进入管理命令行,输入startbackup开始备份所有节点,如果后面还跟着对应数据节点的id就只备份对应的数据节点 恢复
ndb_mgm> start backup
Connected to Management Server at: localhost:1186
Waiting for completed, this may take several minutes
Node 2: Backup 1 started from node 1
ndb_mgm> Node 2: Backup 1 started from node 1 completed
 StartGCP: 11438 StopGCP: 11441
 #Records: 2059 #LogRecords: 0
 Data: 51320 bytes Log: 0 bytes
查看生成的备份文件,在ndb节点上
[ root@T2 ~]# cd /var/mysql/data/BACKUP
[ root@T2 BACKUP]# ls
BACKUP-1
我们来研究里面的文件
[ root@T3 BACKUP]# cd BACKUP-1/
[ root@T3 BACKUP-1]# ls
BACKUP-1-0.3.Data  BACKUP-1.3.ctl  BACKUP-1.3.log
BACKUP-backup_id.node_id.ctl
包含控制信息和元数据的控制文件。每个节点均会将相同的表定义(对于簇中的所有表)保存在自己的该文件中
BACKUP-backup_id-0.node_id.data
包含表记录的数据文件,它是按片段保存的,也就是说,在备份过程中,不同的节点会保存不同的片段。每个节点保存的文件以指明了记 录所属表的标题开始。在记录清单后面有一个包含关于所有记录校验和的脚注。
BACKUP-backup_id.node_id.log
包含已提交事务的记录的日志文件。在日志中,仅保存已在备份中保存的表上的事务。参与备份的节点将保存不同的记录,这是因为,不 同的节点容纳了不同的数据库片段。
在上面所列的内容中,backup_id指的是备份ID,node_id是 创建文件的节点的唯一ID。
演练测试
1、在管理节点上进行备份。
ndb_mgm> start backup
Waiting for completed, this may take several minutes
Node 2: Backup 1 started from 1 has been aborted. Error: 1350
Backup failed
*  3001: Could not start backup
*        Backup failed: file already exists (use 'START BACKUP <backup id>'): Temporary error: Temporary Resource error
注意这里前面已经备份一次所以1已经存在
ndb_mgm> start backup 2
Waiting for completed, this may take several minutes
Node 2: Backup 2 started from node 1
Node 2: Backup 2 started from node 1 completed
 StartGCP: 1644 StopGCP: 1647
 #Records: 2061 #LogRecords: 0
 Data: 51280 bytes Log: 0 bytes
可以注意到这里已经生成备份2
[ root@T3 BACKUP]# ls
BACKUP-1  BACKUP-2
2,sql节点删除数据库
mysql> DROP DATABASE test;
Query OK, 1 row affected (0.10 sec)
管理节点关闭数据库
ndb_mgm> shutdown
Node 2: Cluster shutdown initiated
Node 3: Cluster shutdown initiated
Node 3: Node shutdown completed.
Node 2: Node shutdown completed.
3 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.
3、关闭MYSQLD服务器。
[ root@T2 BACKUP]# service mysql stop
Shutting down MySQL.... SUCCESS!
[ root@T3 BACKUP-1]# service mysql stop
Shutting down MySQL.... SUCCESS!
4、重新顺序启动所有节点。
管理节点
[ root@T4 mysql-cluster]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --reload
MySQL Cluster Management Server mysql-5.6.29 ndb-7.4.11
数据节点
[ root@T2 BACKUP]# ndbd --initial
2016-06-08 17:41:13 [ndbd] INFO     -- Angel connected to '172.16.57.57:1186'
2016-06-08 17:41:13 [ndbd] INFO     -- Angel allocated nodeid: 2
[ root@T3 BACKUP]# ndbd --initial
2016-06-08 17:41:16 [ndbd] INFO     -- Angel connected to '172.16.57.57:1186'
2016-06-08 17:41:16 [ndbd] INFO     -- Angel allocated nodeid: 3
sql节点
[ root@T2 BACKUP]# service mysql start
Starting MySQL.. SUCCESS! 
[ root@T3 BACKUP]# service mysql start
Starting MySQL.. SUCCESS! 
4、在NDBD节点上进行恢复。(每个节点都得执行一次,因为数据分散在两个节点上)  
第一个节点:
[ root@T3 BACKUP]# ndb_restore -n3 -b2 -r -m --backup_path=/var/mysql/data/BACKUP/BACKUP-2
Nodeid = 3
Backup Id = 2
backup path = /var/mysql/data/BACKUP/BACKUP-2
Opening file '/var/mysql/data/BACKUP/BACKUP-2/BACKUP-2.3.ctl'
File size 21368 bytes
Backup version in files: ndb-6.3.11 ndb version: mysql-5.6.29 ndb-7.4.11
Stop GCP of Backup: 1646
Connected to ndb!!
Successfully restored table `test/def/fafa`
Successfully restored table event REPL$test/fafa
Create foreign keys
Create foreign keys done
Opening file '/var/mysql/data/BACKUP/BACKUP-2/BACKUP-2-0.3.Data'
File size 25800 bytes
_____________________________________________________
Processing data in table: test/def/fafa(10) fragment 1
_____________________________________________________
Processing data in table: mysql/def/NDB$BLOB_7_3(8) fragment 1
_____________________________________________________
Processing data in table: mysql/def/ndb_index_stat_sample(5) fragment 1
_____________________________________________________
Processing data in table: sys/def/NDB$EVENTS_0(3) fragment 1
_____________________________________________________
Processing data in table: mysql/def/ndb_apply_status(9) fragment 1
_____________________________________________________
Processing data in table: mysql/def/ndb_index_stat_head(4) fragment 1
_____________________________________________________
Processing data in table: sys/def/SYSTAB_0(2) fragment 1
_____________________________________________________
Processing data in table: mysql/def/ndb_schema(7) fragment 1
Opening file '/var/mysql/data/BACKUP/BACKUP-2/BACKUP-2.3.log'
File size 52 bytes
Restored 2 tuples and 0 log entries

NDBT_ProgramExit: 0 - OK
查看
[ root@T3 BACKUP]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.29-ndb-7.4.11-cluster-gpl MySQL Cluster Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select * from test.fafa;
ERROR 1146 (42S02): Table 'test.fafa' doesn't exist
说不存在
第二个节点:
-r开关是记录集合。    -m是元数据。就是表和库的SCHEMA。-n2是管理节点的config.ini文件。-d 既忽略表空间和分组空间
[ root@T2 BACKUP]# ndb_restore -n2 -b2 -r --backup_path=/var/mysql/data/BACKUP/BACKUP-2
Nodeid = 2
Backup Id = 2
backup path = /var/mysql/data/BACKUP/BACKUP-2
Opening file '/var/mysql/data/BACKUP/BACKUP-2/BACKUP-2.2.ctl'
File size 21368 bytes
Backup version in files: ndb-6.3.11 ndb version: mysql-5.6.29 ndb-7.4.11
Stop GCP of Backup: 1646
Connected to ndb!!
Opening file '/var/mysql/data/BACKUP/BACKUP-2/BACKUP-2-0.2.Data'
File size 26024 bytes
_____________________________________________________
Processing data in table: test/def/fafa(10) fragment 0
_____________________________________________________
Processing data in table: mysql/def/NDB$BLOB_7_3(8) fragment 0
_____________________________________________________
Processing data in table: mysql/def/ndb_index_stat_sample(5) fragment 0
_____________________________________________________
Processing data in table: sys/def/NDB$EVENTS_0(3) fragment 0
_____________________________________________________
Processing data in table: mysql/def/ndb_apply_status(9) fragment 0
_____________________________________________________
Processing data in table: mysql/def/ndb_index_stat_head(4) fragment 0
_____________________________________________________
Processing data in table: sys/def/SYSTAB_0(2) fragment 0
_____________________________________________________
Processing data in table: mysql/def/ndb_schema(7) fragment 0
Opening file '/var/mysql/data/BACKUP/BACKUP-2/BACKUP-2.2.log'
File size 52 bytes
Restored 2 tuples and 0 log entries

NDBT_ProgramExit: 0 - OK
5、查看一下有没有数据,为了安全起见。
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| BACKUP             |
| mysql              |
| ndb_2_fs           |
| ndbinfo            |
| performance_schema |
+--------------------+
6 rows in set (0.00 sec)
发现没有数据
MYSQL现在必须重新建立数据库,然后才有表和数据
mysql> create database test;
Query OK, 1 row affected (0.04 sec)

mysql> use test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| fafa           |
+----------------+
1 row in set (0.00 sec)
mysql> select * from fafa;
+------+
| a    |
+------+
|    3 |
|    2 |
|    1 |
|    4 |
+------+
4 rows in set (0.00 sec)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值