Tôi đang thiết lập bản sao đa nguồn với máy chủ Mariadb 10.6. Tôi có 2 máy chủ mariadb với cơ sở dữ liệu có cùng tên "cơ sở dữ liệu". Tôi muốn hai máy chủ đó sao chép DB của chúng trên một máy chủ phụ để cơ sở dữ liệu của master1 được sao chép trong cơ sở dữ liệu1 và cơ sở dữ liệu của master2 được sao chép trong cơ sở dữ liệu2.
Đây là cấu hình chính:
# Nhân rộng
đăng nhập thùng
server_id=1 # 2 cho master2
log-basename=master1 # master2 cho master2
binlog-format=hỗn hợp
gtid_domain_id=1 # 2 cho master2
Đây là cấu hình nô lệ:
#Nhân rộng
đăng nhập thùng
server_id=3
master1.replicate_rewrite_db="database->database1"
master2.replicate_rewrite_db="database->database2"
Tôi sao lưu master1 bằng cách thực hiện mysqldump :
Sudo mysqldump --master-data=2 -u cơ sở dữ liệu root -p > master1_test.sql
và nhập nó vào nô lệ.
Tôi sử dụng các lệnh này trên mariadb cli để bắt đầu sao chép:
dừng nô lệ 'master1';
đặt lại nô lệ 'master1';
THAY ĐỔI MASTER 'master1' THÀNH MASTER_HOST='XXXX', MASTER_USER='replication', MASTER_PASSWORD='XXXXXXX', MASTER_PORT=3306, MASTER_LOG_FILE='master1-bin.000001', MASTER_LOG_POS=710, MASTER_CONNECT_RETRY=10, MASTER_USE_GTID = Slave_pos;
ĐẶT TOÀN CẦU gtid_slave_pos = "1-1-2"
bắt đầu nô lệ 'master1';
MASTER_LOG_FILE, MASTER_LOG_POS và gtid_slave_pos được lấy từ tệp kết xuất.
mọi thứ đều hoạt động tốt. Tôi đã cố gắng thêm một bảng mới vào master1, việc tạo bảng mới được lặp lại.
Tuy nhiên, khi tôi cố gắng đưa một số dữ liệu vào bảng mới, các lệnh sau sẽ cho tôi biết:
hiển thị trạng thái nô lệ 'master1' \G;
Last_SQL_Error: Lỗi 'Bảng 'database.test' không tồn tại' trên truy vấn. Cơ sở dữ liệu mặc định: 'database1'. Truy vấn: 'INSERT INTO `database`.`test` (`test`) VALUES ('1242')'
Nó sẽ thay thế cơ sở dữ liệu bằng cơ sở dữ liệu1.