mysqlndb集群备份数据库和还原数据库的方法
1、在管理节点上进行备份。
ndb_mgm>startbackupnowait
ndb_mgm>Node3:Backup4startedfromnode1
Node3:Backup4startedfromnode1completed
StartGCP:43010StopGCP:43013
#Records:2138#LogRecords:0
Data:53068bytesLog:0bytes
ndb_mgm>shutdown
Node3:Clustershutdowninitiated
Node4:Clustershutdowninitiated
Node4:Nodeshutdowncompleted.
Node3:Nodeshutdowncompleted.
NDBClusternode(s)haveshutdown.
Disconnectingtoallowmanagementservertoshutdown.
ndb_mgm>exit
2、删掉SQL节点的数据。
DROPDATABASETEST_CLUSTER;
、关闭MYSQLD服务器。
[root@localhostbin]#servicemysqldstop
ShuttingdownMySQL...SUCCESS!
3、重新顺序启动所有节点。
[root@localhostmysql]#/usr/local/mysql/ndb_mgmd-f/etc/config.ini
[root@localhostdata]#/usr/local/mysql/bin/ndbd--initial
我发现如果不带这个--initial选项的话,恢复会失败。
[root@localhostbin]#servicemysqldstart
StartingMySQLSUCCESS!
4、在NDBD节点上进行恢复。(每个节点都得执行一次,因为数据分散在两个节点上)
第一个节点:
[root@localhostBACKUP]#/usr/local/mysql/bin/ndb_restore-n3-b4-r-m--backup_path=/usr/local/mysql/data/BACKUP/BACKUP-4/
-r开关是记录集合。
-m是元数据。就是表和库的SCHEMA。
Nodeid=3
BackupId=4
backuppath=/usr/local/mysql/data/BACKUP/BACKUP-4/
Ndbversioninbackupfiles:Version5.1.21
Connectedtondb!!
Successfullyrestoredtable`test_cluster/def/lk4_test`
...
Successfullycreatedindex`PRIMARY`on`lk4_test`
...
_____________________________________________________
Processingdataintable:test_cluster/def/lk4_test54)fragment1
_____________________________________________________
...
Restored37tuplesand0logentries
NDBT_ProgramExit:0-OK
第二个节点:
[root@localhostBACKUP-1]#/usr/local/mysql/bin/ndb_restore-n4-b4-r--backup_path=/usr/local/mysql/data/BACKUP/BACKUP-4/
Nodeid=4
BackupId=4
backuppath=/usr/local/mysql/data/BACKUP/BACKUP-4/
Ndbversioninbackupfiles:Version5.1.21
Connectedtondb!!
_____________________________________________________
Processingdataintable:sys/def/NDB$EVENTS_0(1)fragment1
_____________________________________________________
Processingdataintable:mysql/def/ndb_apply_status(4)fragment1
_____________________________________________________
Processingdataintable:mysql/def/NDB$BLOB_2_3(3)fragment1
_____________________________________________________
Processingdataintable:test/def/t11(5)fragment1
_____________________________________________________
Processingdataintable:sys/def/SYSTAB_0(0)fragment1
_____________________________________________________
Processingdataintable:mysql/def/ndb_schema(2)fragment1
Restored2tuplesand0logentries
NDBT_ProgramExit:0-OK
这里完成。
5、查看一下有没有数据,为了安全起见。
mysql>showdatabases;
+--------------------+
|Database|
+--------------------+
|information_schema|
|mysql|
|test|
+--------------------+
rowsinset(0.00sec)
没有恢复的数据库?
MYSQL现在必须重新建立SCHEMA。
mysql>createdatabasetest_cluster;
QueryOK,1rowaffected(0.33sec)
mysql>usetest_cluster;
Databasechanged
mysql>showtables;
+------------------------------+
|Tables_in_test_cluster|
+------------------------------+
|lk4_test|
|...|
+------------------------------+
rowsinset(0.11sec)
mysql>select*fromcs_comment;
Emptyset(0.00sec)
不过MYSQL的backup程序现在还只能进行完全备份。
[root@localhostBACKUP]#du-h
K./BACKUP-2
K./BACKUP-6
K./BACKUP-4
K./BACKUP-3
K./BACKUP-1
K./BACKUP-5
K.
6、在NDBD节点上进行恢复的时候有一个要注意的问题。
因为NDBD节点以--initial方式启动的时候不会自动删除undo和data文件(即保存到磁盘上的表数据),所以得手动在每个NDBD节点上进行RM操作:
[root@node239ndb_6_fs]#rm-rf*.dat
然后开始备份。
在MASTER上备份的时候要加-m开关。
在SLAVE上要加-d而且不要-m开关。
具体步骤如下:
MASTER:
[root@localhostndb_3_fs]#/usr/local/mysql/bin/ndb_restore-n3-b1-r-m--backup_path=/usr/local/mysql/data/BACKUP/BACKUP-1/
Nodeid=3
BackupId=1
backuppath=/usr/local/mysql/data/BACKUP/BACKUP-1/
Ndbversioninbackupfiles:Version5.1.21
Connectedtondb!!
Creatinglogfilegroup:lg_1...done
Creatingtablespace:ts_1...done
Creatingdatafile"data_1.dat"...done
Creatingundofile"undo_1.dat"...done
Successfullyrestoredtable`test/def/t11`
SuccessfullyrestoredtableeventREPL$test/t11
_____________________________________________________
Processingdataintable:sys/def/NDB$EVENTS_0(1)fragment0
_____________________________________________________
Processingdataintable:mysql/def/NDB$BLOB_2_3(3)fragment0
_____________________________________________________
Processingdataintable:sys/def/SYSTAB_0(0)fragment0
_____________________________________________________
Processingdataintable:mysql/def/ndb_schema(2)fragment0
_____________________________________________________
Processingdataintable:mysql/def/ndb_apply_status(4)fragment0
_____________________________________________________
Processingdataintable:test/def/t11(10)fragment0
Restored26tuplesand0logentries
NDBT_ProgramExit:0-OK
其他的SLAVE上的操作:
[root@node239ndb_6_fs]#/usr/local/mysql/bin/ndb_restore-n6-b1-r-d--backup_path=/usr/local/mysql/data/BACKUP/BACKUP-1/
Nodeid=6
BackupId=1
backuppath=/usr/local/mysql/data/BACKUP/BACKUP-1/
Ndbversioninbackupfiles:Version5.1.21
Connectedtondb!!
_____________________________________________________
Processingdataintable:sys/def/NDB$EVENTS_0(1)fragment3
_____________________________________________________
Processingdataintable:mysql/def/NDB$BLOB_2_3(3)fragment3
_____________________________________________________
Processingdataintable:sys/def/SYSTAB_0(0)fragment3
_____________________________________________________
Processingdataintable:mysql/def/ndb_schema(2)fragment3
_____________________________________________________
Processingdataintable:mysql/def/ndb_apply_status(4)fragment3
_____________________________________________________
Processingdataintable:test/def/t11(10)fragment3
Restored20tuplesand0logentries
NDBT_ProgramExit:0-OK
-d开关的意思即:
-d,--no-restore-disk-objects
Dontrestorediskobjects(tablespace/logfilegroupsetc)
既忽略表空间和分组空间
相关文章
- oracle错误904解决方法_oracle导出数据库命令
- SQL Server中聚合历史备份信息对比数据库增长的方法
- MySQL导入数据报错Got a packet bigger than‘max_allowed_packet’bytes错误的解决方法详解数据库
- MySQL数据库恢复:一步一步的指南(mysql数据库恢复方法)
- 实现mysql数据库备份的方法(c备份mysql数据库)
- 掌握Oracle数据库备份的有效方法(oracle备份方法)
- Java Connection.setAutoCommit()方法:设置数据库连接的提交模式
- 备份Wamp 数据库MySQL 备份方法(wamp的mysql)
- Oracle数据库慢响应:调整应对方法(oracle数据库响应慢)
- MySQL 5.6数据库备份方法(mysql5.6备份)
- MySQL数据库备份的途径与方法(如何备份mysql数据库)
- Oracle数据库:实现安全备份的最佳方法(oracle数据备份方法)
- 远程备份数据库和文件的方法
- Oracle数据库设置自增长的取消方法(oracle关闭自增长)
- 方法Oracle数据库定时备份实践几种有效方法(oracle几种定时备份)
- 什么简介及使用方法MySQL 中的 DTP 是指 Data Transfer Protocol(数据传输协议),它可以帮助用户在数据库之间转移数据本文将为您介绍 DTP 的概念和使用方法
- MySQL三部曲掌握数据库基础高效调优技巧与备份恢复方法(mysql三部曲)
- 类型Oracle数据库中的CHAR类型及其使用方法(oracle中char)
- msSQLserver数据库备份、压缩与SQL数据库数据处理的方法
- 加密你的Access数据库asp打开方法
- MySQL自动备份与数据库被破坏后的恢复方法
- 在CentOS上MySQL数据库服务器配置方法