検索
ホームページデータベースmysql チュートリアルMySQL Cluster-备份恢复初步测试_MySQL

bitsCN.com

MySQL Cluster-备份恢复初步测试

 

sql节点上面录入数据:

 建立测试的数据库和表

 

 

 CREATE DATABASE bg;

 

 CREATE TABLE bgt1 (id INT,`name` VARCHAR(20),PRIMARY KEY(`id`))ENGINE=NDBCLUSTER;

 

 INSERT INTO bgt1 VALUES(1,'zhang1'),(2,'zhang2'),(3,'zhang3'),(4,'zhang4');

  

 8.2 管理节点上面,开始备份 

ndb_mgm> start backup

Waiting for completed, this may take several minutes

Node 4: Backup 1 started from node 1

Node 4: Backup 1 started from node 1 completed

StartGCP: 184725 StopGCP: 184772

#Records: 722078 #LogRecords: 0

Data: 287345616 bytes Log: 0 bytes

ndb_mgm> 

 

 

 8.3 再次插入几条数据(为了保持和正式环境尽可能接近,在插入数据中间穿插了flush logs操作!)

INSERT INTO bgt1 VALUES(5,'zhang5'),(6,'zhang6'); 

flush logs;

INSERT INTO bgt1 VALUES(7,'zhang7'),(8,'zhang8');

     

8.4 删掉SQL节点的数据。

mysql> drop database bg;

Query OK, 2 rows affected (6.16 sec)

 

8.5 关闭MYSQLD服务器。

[root@banggo data]# /etc/rc.d/init.d/mysqld stop

Shutting down MySQL......120718 18:58:11 mysqld_safe mysqld from pid file /usr/local/mysql/data/banggo.local.pid ended

  [确定]

[1]+  Done                    /usr/local/mysql/bin/mysqld_safe

[root@banggo data]# 

[root@banggo data]# /etc/rc.d/init.d/mysqld stop

Shutting down MySQL....                                    [确定]

[root@banggo data]# 

 

8.6 重新启动节点

ndb_mgm> shutdown

Node 4: Cluster shutdown initiated

Node 4: Node shutdown completed.

2 NDB Cluster node(s) have shutdown.

Disconnecting to allow management server to shutdown.

ndb_mgm> exit

[root@banggo mysql-cluster]# ndb_mgmd -f /usr/local/mysql/cluster-conf/config.ini --reload

MySQL Cluster Management Server mysql-5.5.19 ndb-7.2.4

 

 

8.7 重新启动数据节点

ndbd --initial   

 

 

8.8 在数据节点上面进行恢复。

/home/mysql-cluster-gpl-7.2.4-linux2.6-x86_64/bin/ndb_restore -e  -c 10.100.200.36 -n 4 -b 1 -m --backup_path=/var/lib/mysql-cluster/BACKUP/BACKUP-1/

其中backup_path 在默认的数据节点的根目录下面(找了很久,一开始以为在配置文件里面)

 

第一步骤 -m操作

   [root@test-db-20053 BACKUP-1]# /home/mysql-cluster-gpl-7.2.4-linux2.6-x86_64/bin/ndb_restore -e  -c 10.100.200.36 -n 4 -b 1 -m --backup_path=/var/lib/mysql-cluster/BACKUP/BACKUP-1/

Nodeid = 4

Backup Id = 1

backup path = /var/lib/mysql-cluster/BACKUP/BACKUP-1/

Opening file '/var/lib/mysql-cluster/BACKUP/BACKUP-1/BACKUP-1.4.ctl'

File size 61160 bytes

Backup version in files: ndb-6.3.11 ndb version: mysql-5.5.19 ndb-7.2.4

Stop GCP of Backup: 184771

Connected to ndb!!

Successfully restored table `test/def/t2`

Successfully restored table event REPL$test/t2

Successfully restored table `bg/def/#sql-303d_2`

Successfully restored table event REPL$bg/#sql-303d_2

Successfully restored table `bg/def/#sql-51f0_3`

Successfully restored table event REPL$bg/#sql-51f0_3

Successfully restored table `test/def/t11`

Successfully restored table event REPL$test/t11

Successfully restored table `ndb/def/ndborder_goods`

Successfully restored table event REPL$ndb/ndborder_goods

Successfully restored table `bg/def/bgt1`

Successfully restored table event REPL$bg/bgt1

Successfully restored table `test/def/ndborder_info_history`

Successfully restored table event REPL$test/ndborder_info_history

Successfully restored table `mysql/def/ndb_schema`

Successfully restored table event REPL$mysql/ndb_schema

Successfully restored table `mysql/def/ndb_apply_status`

Successfully restored table event REPL$mysql/ndb_apply_status

Successfully restored table `ndb/def/ndbtest`

Successfully restored table event REPL$ndb/ndbtest

Successfully created index `PRIMARY` on `ndborder_info_history`

Successfully created index `uniq_order_os` on `ndborder_goods`

Successfully created index `is_update` on `ndborder_info_history`

Successfully created index `PRIMARY` on `#sql-51f0_3`

Successfully created index `sku_sn` on `ndborder_goods`

Successfully created index `PRIMARY` on `bgt1`

Successfully created index `exchange_from` on `ndborder_goods`

Successfully created index `addtime` on `ndborder_info_history`

Successfully created index `relating_return_sn` on `ndborder_info_history`

Successfully created index `PRIMARY` on `ndborder_goods`

Successfully created index `order_from` on `ndborder_info_history`

Successfully created index `order_out_sn` on `ndborder_info_history`

Successfully created index `PRIMARY` on `#sql-303d_2`

Successfully created index `order_status` on `ndborder_info_history`

Successfully created index `user_id` on `ndborder_info_history`

Successfully created index `uniq_order_os$unique` on `ndborder_goods`

Successfully created index `order_sn` on `ndborder_goods`

 

 

NDBT_ProgramExit: 0 - OK

 

 

[root@test-db-20053 BACKUP-1]# 

8.9 第二步骤 -r操作(如果有N个node,则需要执行N次)

[root@test-db-20053 BACKUP-1]# /home/mysql-cluster-gpl-7.2.4-linux2.6-x86_64/bin/ndb_restore -e  -c 10.100.200.36 -n 4 -b 1 -r --backup_path=/var/lib/mysql-cluster/BACKUP/BACKUP-1/

Nodeid = 4

Backup Id = 1

backup path = /var/lib/mysql-cluster/BACKUP/BACKUP-1/

Opening file '/var/lib/mysql-cluster/BACKUP/BACKUP-1/BACKUP-1.4.ctl'

File size 61160 bytes

Backup version in files: ndb-6.3.11 ndb version: mysql-5.5.19 ndb-7.2.4

Stop GCP of Backup: 184771

Connected to ndb!!

Opening file '/var/lib/mysql-cluster/BACKUP/BACKUP-1/BACKUP-1-0.4.Data'

File size 287834112 bytes

_____________________________________________________

Processing data in table: test/def/t2(20) fragment 0

_____________________________________________________

Processing data in table: bg/def/#sql-303d_2(34) fragment 0

_____________________________________________________

Processing data in table: bg/def/#sql-51f0_3(32) fragment 0

_____________________________________________________

Processing data in table: mysql/def/NDB$BLOB_7_3(8) fragment 0

_____________________________________________________

Processing data in table: test/def/t11(11) fragment 0

_____________________________________________________

Processing data in table: ndb/def/ndborder_goods(12) fragment 0

_____________________________________________________

Processing data in table: ndb/def/NDB$BLOB_12_13(13) fragment 0

_____________________________________________________

Processing data in table: mysql/def/ndb_index_stat_head(4) fragment 0

_____________________________________________________

Processing data in table: sys/def/NDB$EVENTS_0(3) fragment 0

_____________________________________________________

Processing data in table: sys/def/SYSTAB_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

 

 

恢复完成后,退出单用户模式,并启动另外一个sql节点

ndb_mgm> EXIT SINGLE USER MODE;

Exiting single user mode in progress.

Use ALL STATUS or SHOW to see when single user mode has been exited.

ndb_mgm>

 

 

进入mysql节点,查到数据已经恢复了。

bitsCN.com
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
酸性の特性(原子性、一貫性、分離、耐久性)を説明します。酸性の特性(原子性、一貫性、分離、耐久性)を説明します。Apr 16, 2025 am 12:20 AM

酸性属性には、原子性、一貫性、分離、耐久性が含まれ、データベース設計の基礎です。 1.原子性は、トランザクションが完全に成功するか、完全に失敗することを保証します。 2.一貫性により、データベースがトランザクションの前後に一貫性を保証します。 3.分離により、トランザクションが互いに干渉しないようにします。 4.永続性により、トランザクションの提出後にデータが永久に保存されることが保証されます。

MySQL:データベース管理システムとプログラミング言語MySQL:データベース管理システムとプログラミング言語Apr 16, 2025 am 12:19 AM

MySQLは、データベース管理システム(DBMS)であるだけでなく、プログラミング言語にも密接に関連しています。 1)DBMSとして、MySQLはデータを保存、整理、取得するために使用され、インデックスを最適化するとクエリのパフォーマンスが向上する可能性があります。 2)SQLとPythonに埋め込まれたプログラミング言語とSQLalchemyなどのORMツールを使用すると、操作を簡素化できます。 3)パフォーマンスの最適化には、インデックス、クエリ、キャッシュ、ライブラリ、テーブル分割、およびトランザクション管理が含まれます。

MySQL:SQLコマンドでデータの管理MySQL:SQLコマンドでデータの管理Apr 16, 2025 am 12:19 AM

MySQLはSQLコマンドを使用してデータを管理します。 1.基本コマンドには、select、挿入、更新、削除が含まれます。 2。高度な使用には、参加、サブクエリ、および集計関数が含まれます。 3.一般的なエラーには、構文、ロジック、パフォーマンスの問題が含まれます。 4。最適化のヒントには、インデックスの使用、Select*の回避、制限の使用が含まれます。

MySQLの目的:データを効果的に保存および管理しますMySQLの目的:データを効果的に保存および管理しますApr 16, 2025 am 12:16 AM

MySQLは、データの保存と管理に適した効率的なリレーショナルデータベース管理システムです。その利点には、高性能クエリ、柔軟なトランザクション処理、豊富なデータ型が含まれます。実際のアプリケーションでは、MySQLはeコマースプラットフォーム、ソーシャルネットワーク、コンテンツ管理システムでよく使用されますが、パフォーマンスの最適化、データセキュリティ、スケーラビリティに注意を払う必要があります。

SQLとMySQL:関係を理解するSQLとMySQL:関係を理解するApr 16, 2025 am 12:14 AM

SQLとMySQLの関係は、標準言語と特定の実装との関係です。 1.SQLは、リレーショナルデータベースの管理と操作に使用される標準言語であり、データの追加、削除、変更、クエリを可能にします。 2.MYSQLは、SQLを運用言語として使用し、効率的なデータストレージと管理を提供する特定のデータベース管理システムです。

Innodb Redoログの役割を説明し、ログを元に戻します。Innodb Redoログの役割を説明し、ログを元に戻します。Apr 15, 2025 am 12:16 AM

INNODBは、レドログと非論的なものを使用して、データの一貫性と信頼性を確保しています。 1.レドログは、クラッシュの回復とトランザクションの持続性を確保するために、データページの変更を記録します。 2.Undologsは、元のデータ値を記録し、トランザクションロールバックとMVCCをサポートします。

説明出力(タイプ、キー、行、追加)で探す重要なメトリックは何ですか?説明出力(タイプ、キー、行、追加)で探す重要なメトリックは何ですか?Apr 15, 2025 am 12:15 AM

説明コマンドのキーメトリックには、タイプ、キー、行、および追加が含まれます。 1)タイプは、クエリのアクセスタイプを反映しています。値が高いほど、constなどの効率が高くなります。 2)キーは使用されているインデックスを表示し、nullはインデックスがないことを示します。 3)行はスキャンされた行の数を推定し、クエリのパフォーマンスに影響します。 4)追加の情報を最適化する必要があるというFilesortプロンプトを使用するなど、追加情報を提供します。

説明の一時的なステータスを使用し、それを回避する方法は何ですか?説明の一時的なステータスを使用し、それを回避する方法は何ですか?Apr 15, 2025 am 12:14 AM

Temporaryを使用すると、MySQLクエリに一時テーブルを作成する必要があることが示されています。これは、異なる列、またはインデックスされていない列を使用して順番に一般的に見られます。インデックスの発生を回避し、クエリを書き直し、クエリのパフォーマンスを改善できます。具体的には、expliect出力に使用を使用する場合、MySQLがクエリを処理するために一時テーブルを作成する必要があることを意味します。これは通常、次の場合に発生します。1)個別またはグループビーを使用する場合の重複排除またはグループ化。 2)Orderbyに非インデックス列が含まれているときに並べ替えます。 3)複雑なサブクエリを使用するか、操作に参加します。最適化方法には以下が含まれます。1)OrderbyとGroupB

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター