塞尔曼博士是MySQL备份与复制团队的开发经理。他曾经促使了MySQL备份特性的出现并且指导了MySQL复制的演进,是MySQL Cluster复制的主要参与者。
肯德尔博士是Oracle公司MySQL团队的资深高级软件开发师。他是MySQL行级复制和其他一些复制特性的主要架构师和实现者。目前他是搭建MySQLFabric的MySQL高可用性团队的架构师和项目主管。
Charles Bell(查尔斯·贝尔)博士致力于研究新兴技术。他是Oracle MySQL开发组的成员,同时兼任MySQL管理工具研发组的组长。他不仅是数据库领域的专家,同时在软件开发和系统工程学方面也有着广博的知识和经验。他的研究范围包括微控制器、3D打印技术、数据库系统、软件工程及传感器网络。
目录
Foreword for the Second Edition
Foreword for the First Edition
Preface
Part1. High Availability and Scalability
1. Introduction
What's This Replication Stuff, Anyway?
So, Backups Are Not Needed Then?
What's With All the Monitoring?
Is There Anything Else I Can Read?
Conclusion
2. MySQL Replicant Library
Basic Classes and Functions
Supporting Different Operating Systems
Servers
Server Roles
Conclusion
3. MySQL Replication Fundamentals
Basic Steps in Replication
Configuring the Master
Configuring the Slave
Connecting the Master and Slave
A Brief Introduction to the Binary Log
What's Recorded in the Binary Log
Watching Replication in Action
The Binary Log's Structure and Content
Adding Slaves
Cloning the Master
Cloning a Slave
Scripting the Clone Operation
Performing Common Tasks with Replication
Reporting
Conclusion
4. The Binary Log
Structure of the Binary Log
Binlog Event Structure
Event Checksums
Logging Statements
Logging Data Manipulation Language Statements
Logging Data Definition Language Statements
Logging Queries
LOAD DATA INFILE Statements
Binary Log Filters
Triggers, Events, and Stored Routines
Stored Procedures
Stored Functions
Events
Special Constructions
Nontransactional Changes and Error Handling
Logging Transactions
Transaction Cache
Distributed Transaction Processing Using XA
Binary Log Group Commit
Row-Based Replication
Enabling Row-based Replication
Using Mixed Mode
Binary Log Management
The Binary Log and Crash Safety
Binlog File Rotation
Incidents
Purging the Binlog File
The mysqlbinlog Utility
Basic Usage
Interpreting Events
Binary Log Options and Variables
Options for Row-Based Replication
Conclusion
5. Replication for High Availability
Redundancy
Planning
Slave Failures
Master Failures
Relay Failures
Disaster Recovery
Procedures
Hot Standby
Dual Masters
Slave Promotion
Circular Replication
Conclusion
6. MySQL Replication for Scale-Out
Scaling Out Reads, Not Writes
The Value of Asynchronous Replication
Managing the Replication Topology
Application-Level Load Balancing
Hierarchical Replication
Setting Up a Relay Server
Adding a Relay in Python
Specialized Slaves
Filtering Replication Events
Using Filtering to Partition Events to Slaves
Managing Consistency of Data
Consistency in a Nonhierarchical Deployment
Consistency in a Hierarchical Deployment
Conclusion
7. Data Sharding
What Is Sharding?
Why Should You Shard?
Limitations of Sharding
Elements of a Sharding Solution
High-Level Sharding Architecture
Partitioning the Data
Shard Allocation
Mapping the Sharding Key
Sharding Scheme
Shard Mapping Functions
Processing Queries and Dispatching Transactions
Handling Transactions
Dispatching Queries
Shard Management
Moving a Shard to a Different Node
Splitting Shards
Conclusion
8. Replication Deep Dive
Replication Architecture Basics
The Structure of the Relay Log
The Replication Threads
Starting and Stopping the Slave Threads
Running Replication over the Internet
Setting Up Secure Replication Using Built-in Support
Setting Up Secure Replication Using Stunnel
Finer-Grained Control Over Replication
Information About Replication Status
Options for Handling Broken Connections
How the Slave Processes Events
Housekeeping in the I/O Thread
SQL Thread Processing
Semisynchronous Replication
Configuring Semisynchronous Replication
Monitoring Semisynchronous Replication
Global Transaction Identifiers
Setting Up Replication Using GTIDs
Failover Using GTIDs
Slave Promotion Using GTIDs
Replication of GTIDs
Slave Safety and Recovery
Syncing, Transactions, and Problems with Database Crashes
Transactional Replication
Rules for Protecting Nontransactional Statements
Multisource Replication
Details of Row-Based Replication
Table-map Events
The Structure of Row Events
Execution of Row Event
Events and Triggers
Filtering in Row-Based Replication
……