- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在寻求有关 MySql Master-Master 配置问题的帮助。
我正在处理由另一名员工设置的服务器配置,该员工现在无法就此事提供任何帮助。这是我第一次体验这样的设置,在做了相当多的研究之后,我设法找到的所有信息都是相互矛盾的(或缺失的!)。因此,如果我的问题很愚蠢,我深表歉意!
Câu hỏi của tôi là:
虽然复制在服务器之间进行,但我对 Auto_Increment 值的行为方式有疑问。
我对正确设置 AI 偏移量和增量感到满意:
-- Master1 --
auto_increment_increment = 2
auto_increment_offset = 1
-- Master2 --
auto_increment_increment = 2
auto_increment_offset = 2
这目前可以正常工作(Master 1 的 AI_Numbers 为奇数,Master 2 的 AI_Numbers 为偶数)。不幸的是,如果 Master 1 出现故障(自 2 年前启动以来从未发生过),一直使用该系统的软件仅连接到 Master 2。这意味着对于我现在负责更新的系统部分,我们还没有看到偶数 AI_Number ...... 曾经!
sử dụng:
SHOW TABLE STATUS FROM `Database` LIKE 'TableName';
我可以看到 AI 值是 7765。然而,这对于两个表都是如此 - 因此即使 Master2 从未在其上直接运行插入,但在下一个运行时它会生成 7766 作为 AI_Value。因此,我的问题是:
这是预期的还是 Master2 中的表应该具有值 1(因此在对其运行插入时生成 2)?如果这是预期的,那么有没有一种方法可以保留复制配置,但只在插入运行时增加 Master2 的 AI_Value?
感谢您的帮助!
克里斯
câu trả lời hay nhất
不,你看到的是正确的。
当从另一台服务器复制行时,未直接写入的表服务器的 TỰ ĐỘNG TĂNG
值将增加,因此它永远不会小于目前插入的最大值。
选项的命名可能有点违反直觉。每个服务器只会分配不小于当前值的值,并且在从 0 开始的所有整数的集合中,逐个偏移,逐个递增,对于该服务器。
给定服务器上下一次插入的自动增量值为 INT(current_value/increment) x increment + offset
。
因此,如果 TỰ ĐỘNG TĂNG
为 9,增量为 2,则偏移量为 1 的服务器 A 将在 int(9/2) x 2 + 1 处进行下一次插入,因此下一行将为 9。 .. 但是服务器 B 的偏移量为 2,给定相同的 TỰ ĐỘNG TĂNG
为 9 使用 int(9/2) x 2 + 2 = 10
这样,两台服务器上的自动递增值几乎的分配顺序与插入实际发生时的时间顺序完全相同,偏移量提供了防止冲突的保护。
在您所描述的设置中,通常具有大部分全奇数或全偶数的值,并且根据设计,间隙保持未使用状态。插入的下一行,无论写入哪个服务器,都会有一个比之前插入的任何行都高的自动增量值。
当第一个本地插入发生时,您的“Master 2”将做正确的事情。给定表的当前 TỰ ĐỘNG TĂNG
值预计在任何给定时间在所有 master 上都是相同的。
所以,不,不能改,也不应该改。将行插入这些间隙会导致页面拆分和表空间碎片的困惑,因为当最初插入行时,存储中没有留下间隙——那里没有未使用的空间,只有未分配的数字。
关于MySql Master-Master 复制导致缺少自增值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35766521/
Tôi đang viết một ứng dụng cho phép người dùng tạo "bảng câu hỏi" và sau đó thêm câu hỏi vào đó. Tôi đang sử dụng dữ liệu cốt lõi để lưu trữ thông tin. Tôi đã tạo thực thể Bảng câu hỏi và thiết lập mối quan hệ "một-nhiều" với thực thể Câu hỏi. Câu hỏi của tôi là liệu tôi có muốn cho phép người dùng sao chép (copy) toàn bộ giai điệu không
Có cách nào để sao chép hoặc sao chép SharedPreference không? Hay tôi cần lấy từng biến từ một biến và đặt chúng vào một biến khác? Câu trả lời hay nhất hãy thử đại loại như thế này: //sp1 là pref được chia sẻ
Có sự khác biệt nào giữa (A) và (B) dưới đây không? (Giả sử KHÔNG ARC, nếu quan trọng) // --- (A) --- @interface Zoo : NSObject{} @property (copy) Dog
Tôi đang cố lưu truy vấn CHỌN mysql vào một tệp như thế này: $result = mysqli_query($db,$sql); $out = fopen('tmp/csv.csv', 'w'
Tôi cần tạo một bản sao của CVPixelBufferRef để có thể sử dụng các giá trị trong bản sao để thao tác với bộ đệm pixel gốc theo chiều bit. Có vẻ như tôi không thể sử dụng CVPixelBufferCreate hoặc CVPixelBufferCr
Tôi có một bản ghi sóng hoạt động wave-file.wav trong thư mục Nguồn. Tôi cần sao chép tệp này vào thư mục Đích với tên mới wave-file-copy.wav.
Trong một dự án được xây dựng bằng GNU Autotools, tôi có một tập lệnh cần được sửa đổi thông qua make để bao gồm đường dẫn cài đặt. Đây là một ví dụ nhỏ: configure.ac: AC_INIT(foobar, 1.0) AC_PR
Tôi muốn sao chép các hàng SQL vào cùng một bảng. Nhưng trong bảng của tôi, tôi có cột "văn bản". Sử dụng SQL này: TẠO BẢNG TẠM THỜI produit2 ENGINE=MEMORY SELECT
Ai có thể giải thích cho tôi df2 = df1 df2 = df1.copy() df3 = df1.copy(deep=False) Tôi đã thử tất cả các tùy chọn và làm như sau: df1 = pd.DataFram
Hazelcast có bản sao tương tự như Ehcache không? http://www.ehcache.org/generated/2.9.0/pdf/Ehcache_Replication_Guide.
Tôi có cấu trúc liên kết sau đây. Ubuntu 16.04. Một phiên bản trên Amazon AWS chạy máy chủ MySQL toàn cầu của tôi. Tôi muốn sử dụng máy chủ này làm nô lệ cho nhiều máy chủ chính cục bộ (máy Windows, máy chủ MySQL)
Sử dụng SQLyog, tôi đang kiểm tra xem các giá trị chính xác có được đặt trong bảng hay không. Tôi đã thử SELECT type_service FROM service WHERE email='test@gmail.com' Vì vậy, chỉ có đầu ra
Ai đó có thể cung cấp một số hướng dẫn về cách định cấu hình ElasticSearch để sao chép. Tôi đang chạy ES trong Windows và tôi hiểu rằng nếu tôi chạy tệp bat nhiều lần trên cùng một máy chủ thì một phiên bản ES riêng biệt sẽ được khởi động và
Một lưu ý nhỏ về hai phương pháp sao chép luồng của ThreadGroup. public int enumerate(Thread list[]) // Sẽ sao chép tất cả các thread đang hoạt động trong ThreadGroup sang
Một điểm: ThreadGroup có hai phương pháp sao chép nhóm luồng. public int enumerate(ThreadGroup list[]) // liên quan đến enumerate(list,true) pu
Tài liệu hướng dẫn Cassandra: Cấu hình không gian khóa và tạo trung tâm dữ liệu mới: Sử dụng ALTER KEYSPAC
Câu hỏi này đã có câu trả lời tại đây: Làm thế nào để làm mịn trọng số theo hệ số tùy ý trong ggplot2? (2 bài viết)
Chúng tôi có một biểu mẫu để thể hiện sự quan tâm đến các câu lạc bộ khác nhau. Đầu ra ghi lại dữ liệu trong bảng tính Excel liệt kê tên, họ, email, đại từ ưa thích của họ và số "1" trong cột tương ứng cho câu lạc bộ mà họ quan tâm (mô hình bên dưới). Chúng tôi hy vọng rằng đối với câu lạc bộ
Câu hỏi này đã có câu trả lời ở đây: Đã đóng 8 năm trước. Có thể trùng lặp: Trong vim, làm thế nào để tôi có được
Làm cách nào để sao chép hình và ô chứa hình đó? Khi tôi sao chép thủ công, hình dạng sẽ theo ô, nhưng khi tôi sao chép bằng macro, tôi nhận được mọi thứ trừ hình dạng. Ô(sourceRow, sourceColumn).Sao chép C
Tôi là một lập trình viên xuất sắc, rất giỏi!