MySQL Cluster-备份恢复初步测试(三)
0(2) fragment 0
_____________________________________________________
Processing data in table: mysql/def/ndb_index_stat_sample(5) fragment 0
_____________________________________________________
Processing data in table: bg/def/bgt1(36) fragment 0
_____________________________________________________
Processing data in table: test/def/ndborder_info_history(21) fragment 0
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
Temporary error: 1220: REDO log files overloaded (increase FragmentLogFileSize)
在执行 -r操作的时候 报错
【ok】飞鸿大哥说是由于REDO log 文件太小了要加大,不影响恢复效果。参考了http://bugs.mysql.com/bug.php id=19651 这上面的人也这么讲。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ndb |
| ndbinfo |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
-- 没有库?看来要重建了
mysql> create database bg; -- 重建
Query OK, 1 row affected (0.06 sec)
mysql> use bg
Database changed
mysql> show tables; -- ok,看下表
+--------------+
| Tables_in_bg |
+--------------+
| bgt1 |
+--------------+
1 row in set (0.00 sec)
mysql> select * from bgt1; --数据恢复过来了
+----+--------+
| id | name |
+----+--------+
| 3 | zhang3 |
| 1 | zhang1 |
| 2 | zhang2 |
| 4 | zhang4 |
+----+--------+
4 rows in set (0.01 sec)
8.10 找一个mysqld节点,在管理节点进入单用户模式,然后启动sql节点,启动该mysqld节点,并登陆找到最大的epoch的值
ndb_mgm> ENTER SINGLE USER MODE 10;
Single user mode entered
Access is granted for API node 10 only.
ndb_mgm>
mysql> SELECT @LASTEPOCH:=MAX(epoch) FROM mysql.ndb_apply_status;
+------------------------+
| @LASTEPOCH:=MAX(epoch) |
+------------------------+
| 793593992183807 |
+------------------------+
1 row in set (0.04 sec)
根据epoch的值,找到二进制日志的位置以及文件名
mysql> SELECT POSITION, @FIRSTFILE:=FILE
->
-> FROM mysql.ndb_binlog_index
->
-> WHERE epoch > @LASTEPOCH
->
-> ORDER BY epoch ASC
->
-> LIMIT 1;
Empty set (0.03 sec)
8.11 根据时间点恢复
找出恢复的时候需要用到的除第一个日志文件以外的其他的二进制日志文件
SELECT DISTINCT File
FROM mysql.ndb_binlog_index
WHERE epoch > @LASTEPOCH
AND File <> @FIRSTFILE
ORDER BY File;
然后进行二进制日志的恢复:
mysqlbinlog -H --set-charset="utf8" -D --start-position=829 ./mysql-bin.000012 | grep -v "RELOAD DATABASE" |mysql bg
mysqlbinlog -H --set-charset="utf8" -D --stop-datetime="2012-07-18 13:30:00" ./mysql-bin.0000013 | grep -v "RELOAD DATABASE" |mysql bg
恢复完成后,退出单用户模式,并启动另外一