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
MySQL Index Cardinality는 쿼리 성능에 중대한 영향을 미칩니다. 1. 높은 카디널리티 인덱스는 데이터 범위를보다 효과적으로 좁히고 쿼리 효율성을 향상시킬 수 있습니다. 2. 낮은 카디널리티 인덱스는 전체 테이블 스캔으로 이어질 수 있으며 쿼리 성능을 줄일 수 있습니다. 3. 관절 지수에서는 쿼리를 최적화하기 위해 높은 카디널리티 시퀀스를 앞에 놓아야합니다.

MySQL 학습 경로에는 기본 지식, 핵심 개념, 사용 예제 및 최적화 기술이 포함됩니다. 1) 테이블, 행, 열 및 SQL 쿼리와 같은 기본 개념을 이해합니다. 2) MySQL의 정의, 작업 원칙 및 장점을 배우십시오. 3) 인덱스 및 저장 절차와 같은 기본 CRUD 작업 및 고급 사용량을 마스터합니다. 4) 인덱스의 합리적 사용 및 최적화 쿼리와 같은 일반적인 오류 디버깅 및 성능 최적화 제안에 익숙합니다. 이 단계를 통해 MySQL의 사용 및 최적화를 완전히 파악할 수 있습니다.

MySQL의 실제 응용 프로그램에는 기본 데이터베이스 설계 및 복잡한 쿼리 최적화가 포함됩니다. 1) 기본 사용 : 사용자 정보 삽입, 쿼리, 업데이트 및 삭제와 같은 사용자 데이터를 저장하고 관리하는 데 사용됩니다. 2) 고급 사용 : 전자 상거래 플랫폼의 주문 및 재고 관리와 같은 복잡한 비즈니스 로직을 처리합니다. 3) 성능 최적화 : 인덱스, 파티션 테이블 및 쿼리 캐시를 사용하여 합리적으로 성능을 향상시킵니다.

MySQL의 SQL 명령은 DDL, DML, DQL 및 DCL과 같은 범주로 나눌 수 있으며 데이터베이스 및 테이블을 작성, 수정, 삭제, 삽입, 업데이트, 데이터 삭제 및 복잡한 쿼리 작업을 수행하는 데 사용됩니다. 1. 기본 사용에는 CreateTable 생성 테이블, InsertInto 삽입 데이터 및 쿼리 데이터 선택이 포함됩니다. 2. 고급 사용에는 테이블 조인, 하위 쿼리 및 데이터 집계에 대한 GroupBy 조인이 포함됩니다. 3. 구문 검사, 데이터 유형 변환 및 권한 관리를 통해 구문 오류, 데이터 유형 불일치 및 권한 문제와 같은 일반적인 오류를 디버깅 할 수 있습니다. 4. 성능 최적화 제안에는 인덱스 사용, 전체 테이블 스캔 피하기, 조인 작업 최적화 및 트랜잭션을 사용하여 데이터 일관성을 보장하는 것이 포함됩니다.

Innodb는 잠금 장치 및 MVCC를 통한 Undolog, 일관성 및 분리를 통해 원자력을 달성하고, Redolog를 통한 지속성을 달성합니다. 1) 원자력 : Undolog를 사용하여 원래 데이터를 기록하여 트랜잭션을 롤백 할 수 있는지 확인하십시오. 2) 일관성 : 행 수준 잠금 및 MVCC를 통한 데이터 일관성을 보장합니다. 3) 격리 : 다중 격리 수준을지지하고 반복적 인 방사선이 기본적으로 사용됩니다. 4) 지속성 : Redolog를 사용하여 수정을 기록하여 데이터가 오랫동안 저장되도록하십시오.

데이터베이스 및 프로그래밍에서 MySQL의 위치는 매우 중요합니다. 다양한 응용 프로그램 시나리오에서 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) MySQL은 웹, 모바일 및 엔터프라이즈 레벨 시스템을 지원하는 효율적인 데이터 저장, 조직 및 검색 기능을 제공합니다. 2) 클라이언트 서버 아키텍처를 사용하고 여러 스토리지 엔진 및 인덱스 최적화를 지원합니다. 3) 기본 사용에는 테이블 작성 및 데이터 삽입이 포함되며 고급 사용에는 다중 테이블 조인 및 복잡한 쿼리가 포함됩니다. 4) SQL 구문 오류 및 성능 문제와 같은 자주 묻는 질문은 설명 명령 및 느린 쿼리 로그를 통해 디버깅 할 수 있습니다. 5) 성능 최적화 방법에는 인덱스의 합리적인 사용, 최적화 된 쿼리 및 캐시 사용이 포함됩니다. 모범 사례에는 거래 사용 및 준비된 체계가 포함됩니다

MySQL은 소규모 및 대기업에 적합합니다. 1) 소기업은 고객 정보 저장과 같은 기본 데이터 관리에 MySQL을 사용할 수 있습니다. 2) 대기업은 MySQL을 사용하여 대규모 데이터 및 복잡한 비즈니스 로직을 처리하여 쿼리 성능 및 트랜잭션 처리를 최적화 할 수 있습니다.

InnoDB는 팬텀 읽기를 차세대 점화 메커니즘을 통해 효과적으로 방지합니다. 1) Next-Keylocking은 Row Lock과 Gap Lock을 결합하여 레코드와 간격을 잠그기 위해 새로운 레코드가 삽입되지 않도록합니다. 2) 실제 응용 분야에서 쿼리를 최적화하고 격리 수준을 조정함으로써 잠금 경쟁을 줄이고 동시성 성능을 향상시킬 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

드림위버 CS6
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
