nhật ký mysqlbin

nhật ký mysqlbin

Đây là lệnh mysqlbinlog có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


mysqlbinlog - tiện ích để xử lý các tệp nhật ký nhị phân

SYNOPSIS


nhật ký mysqlbin [tùy chọn] log_file ...

MÔ TẢ


Nhật ký nhị phân của máy chủ bao gồm các tệp chứa "sự kiện" mô tả các sửa đổi
đến nội dung cơ sở dữ liệu. Máy chủ ghi các tệp này ở định dạng nhị phân. Để hiển thị của họ
nội dung ở định dạng văn bản, sử dụng nhật ký mysqlbin tính thiết thực. Bạn cũng có thể dùng nhật ký mysqlbin đến
hiển thị nội dung của tệp nhật ký chuyển tiếp được viết bởi máy chủ phụ trong thiết lập sao chép
bởi vì các bản ghi chuyển tiếp có cùng định dạng với các bản ghi nhị phân. Nhật ký nhị phân và nhật ký chuyển tiếp là
được thảo luận thêm trong Phần 5.2.4, “Nhật ký nhị phân” và Phần 17.2.2, “Sao chép
Nhật ký chuyển tiếp và trạng thái ”.

cầu nguyện nhật ký mysqlbin như thế này:

vỏ> nhật ký mysqlbin [lựa chọn] log_file ...

Ví dụ: để hiển thị nội dung của tệp nhật ký nhị phân có tên binlog.000003, hãy sử dụng
chỉ huy:

vỏ> nhật ký mysqlbin binlog.0000003

Đầu ra bao gồm các sự kiện có trong binlog.000003. Đối với ghi nhật ký dựa trên tuyên bố, sự kiện
thông tin bao gồm câu lệnh SQL, ID của máy chủ mà nó được thực thi,
dấu thời gian khi câu lệnh được thực thi, mất bao nhiêu thời gian, v.v. Vì
ghi nhật ký dựa trên hàng, sự kiện chỉ ra một sự thay đổi hàng chứ không phải là một câu lệnh SQL. Nhìn thấy
Phần 17.1.2, “Định dạng sao chép”, để biết thông tin về các chế độ ghi nhật ký.

Các sự kiện được đặt trước bởi các bình luận tiêu đề cung cấp thông tin bổ sung. Ví dụ:

# lúc 141
# 100309 9:28:36 id máy chủ 123 end_log_pos 245
Truy vấn thread_id = 3350 exec_time = 11 error_code = 0

Trong dòng đầu tiên, số sau tại cho biết độ lệch tệp hoặc bắt đầu
vị trí của sự kiện trong tệp nhật ký nhị phân.

Dòng thứ hai bắt đầu bằng ngày và giờ cho biết khi nào câu lệnh bắt đầu trên
máy chủ nơi bắt nguồn sự kiện. Để nhân rộng, dấu thời gian này được truyền tới nô lệ
may chủ. id máy chủ là giá trị server_id của máy chủ nơi bắt nguồn sự kiện.
end_log_pos cho biết nơi bắt đầu sự kiện tiếp theo (nghĩa là, đó là vị trí kết thúc của
sự kiện hiện tại + 1). thread_id cho biết luồng nào đã thực thi sự kiện. thời gian thực thi là
thời gian dành cho việc thực thi sự kiện, trên máy chủ chính. Trên một nô lệ, đó là sự khác biệt
của thời gian thực hiện kết thúc trên máy phụ trừ đi thời gian thực hiện bắt đầu trên máy chủ.
Sự khác biệt đóng vai trò như một chỉ báo về mức độ sao chép chậm hơn so với bản chính.
error_code cho biết kết quả từ việc thực thi sự kiện. Không có nghĩa là không có lỗi
xảy ra.

Chú thích
Khi sử dụng các nhóm sự kiện, phần bù tệp của các sự kiện có thể được nhóm lại với nhau và
bình luận của các sự kiện có thể được nhóm lại với nhau. Đừng nhầm các sự kiện được nhóm này với
phần bù tệp trống.

Đầu ra từ nhật ký mysqlbin có thể được thực thi lại (ví dụ: bằng cách sử dụng nó làm đầu vào cho
mysql) để thực hiện lại các câu lệnh trong nhật ký. Điều này rất hữu ích cho các hoạt động khôi phục sau khi
sự cố máy chủ. Đối với các ví dụ sử dụng khác, hãy xem thảo luận sau trong phần này và trong
Phần 7.5, “Khôi phục điểm trong thời gian (tăng dần) bằng cách sử dụng nhật ký nhị phân”.

Thông thường, bạn sử dụng nhật ký mysqlbin để đọc trực tiếp các tệp nhật ký nhị phân và áp dụng chúng vào
máy chủ MySQL cục bộ. Cũng có thể đọc nhật ký nhị phân từ một máy chủ từ xa bằng cách sử dụng
các --read-từ-máy chủ từ xa Lựa chọn. Để đọc nhật ký nhị phân từ xa, tham số kết nối
có thể đưa ra các tùy chọn để chỉ ra cách kết nối với máy chủ. Các tùy chọn này là --tổ chức,
--mật khẩu mở khóa, --Hải cảng, - giao thức, --ổ cắm--người sử dụng; họ bị bỏ qua ngoại trừ khi bạn
cũng sử dụng --read-từ-máy chủ từ xa tùy chọn.

nhật ký mysqlbin hỗ trợ các tùy chọn sau, có thể được chỉ định trên dòng lệnh hoặc
trong nhóm [mysqlbinlog] và [client] của một tệp tùy chọn. Để biết thông tin về tùy chọn
các tệp được sử dụng bởi các chương trình MySQL, hãy xem Phần 4.2.6, “Sử dụng tệp tùy chọn”.

· --Cứu giúp, -?

Hiển thị thông báo trợ giúp và thoát.

· --base64-output =giá trị

Tùy chọn này xác định khi nào các sự kiện sẽ được hiển thị được mã hóa dưới dạng chuỗi cơ sở 64
bằng cách sử dụng các câu lệnh BINLOG. Tùy chọn có các giá trị được phép sau (không phân biệt chữ hoa chữ thường):

· AUTO ("tự động") hoặc UNSPEC ("không xác định") hiển thị các câu lệnh BINLOG
tự động khi cần thiết (nghĩa là đối với các sự kiện mô tả định dạng và hàng
sự kiện). Nếu không --base64-đầu ra tùy chọn được đưa ra, hiệu ứng giống như
--base64-output = AUTO.

Chú thích
Hiển thị BINLOG tự động là hành vi an toàn duy nhất nếu bạn có ý định sử dụng
đầu ra của nhật ký mysqlbin để thực thi lại nội dung tệp nhật ký nhị phân. Các tùy chọn khác
các giá trị chỉ dành cho mục đích gỡ lỗi hoặc thử nghiệm vì chúng có thể
tạo ra kết quả không bao gồm tất cả các sự kiện ở dạng thực thi.

· KHÔNG BAO GIỜ khiến các câu lệnh BINLOG không được hiển thị. nhật ký mysqlbin lối ra với một
nếu một sự kiện hàng được tìm thấy phải được hiển thị bằng cách sử dụng BINLOG.

· DECODE-ROWS chỉ định cho nhật ký mysqlbin mà bạn dự định cho các sự kiện hàng được giải mã
và được hiển thị dưới dạng các câu lệnh SQL được chú thích bằng cách chỉ định --dài dòng tùy chọn.
Giống như KHÔNG BAO GIỜ, DECODE-ROWS ngăn chặn hiển thị các câu lệnh BINLOG, nhưng không giống như KHÔNG BAO GIỜ,
nó không thoát với một lỗi nếu một sự kiện hàng được tìm thấy.

Ví dụ cho thấy tác dụng của --base64-đầu ra--dài dòng sự kiện trên hàng
đầu ra, hãy xem phần có tên “MYSQLBINLOG ROW EVENT DISPLAY”.

· --bind-address =địa chỉ IP

Trên máy tính có nhiều giao diện mạng, hãy sử dụng tùy chọn này để chọn
giao diện để sử dụng để kết nối với máy chủ MySQL.

Tùy chọn này được hỗ trợ bắt đầu với MySQL 5.6.1.

· --binlog-row-event-max-size =N

┌────────────────────── ───────────────┐
Dòng lệnh Định dạng │ --binlog-row-event-max-size = # │
├────────────────────── ───────────────┤
│ │ Được phép Các giá trị
│ ├─────────────────────
│ │ Nền tảng Một chút Kích thước máy │ 64 │
│ ├─────────────────────
│ │ Kiểu │ số │
│ ├─────────────────────
│ │ Mặc định │ 4294967040 │
│ ├─────────────────────
│ │ min Giá trị │ 256 │
│ ├─────────────────────
│ │ Max Giá trị │ 18446744073709547520 │
└────────────────────── ───────────────┘
Chỉ định kích thước tối đa của sự kiện nhật ký nhị phân dựa trên hàng, tính bằng byte. Các hàng được nhóm lại
thành các sự kiện nhỏ hơn kích thước này nếu có thể. Giá trị phải là bội số của 256.
Mặc định là 4GB.

· --character-sets-dir =con đường

Thư mục nơi các bộ ký tự được cài đặt. Xem Phần 10.5, “Bộ ký tự
Cấu hình".

· --connection-server-id =id máy chủ

Tùy chọn này được sử dụng để kiểm tra máy chủ MySQL để hỗ trợ BINLOG_DUMP_NON_BLOCK
cờ kết nối, đã vô tình bị xóa trong MySQL 5.6.5 và được khôi phục trong MySQL
5.6.20 (Lỗi # 18000079, Lỗi # 71178). Nó không cần thiết cho hoạt động bình thường.

Giá trị mặc định và giá trị tối thiểu hiệu quả cho tùy chọn này phụ thuộc vào việc nhật ký mysqlbin
được chạy ở chế độ chặn hoặc chế độ không chặn. Khi nào nhật ký mysqlbin đang bị chặn
chế độ, giá trị mặc định (và tối thiểu) là 1; khi chạy ở chế độ không chặn, mặc định
(và giá trị nhỏ nhất) là 0.

Tùy chọn này đã được thêm vào MySQL 5.6.20.

· --database =db_name, -d db_name

Tùy chọn này gây ra nhật ký mysqlbin để xuất các mục nhập từ nhật ký nhị phân (chỉ nhật ký cục bộ)
xảy ra trong khi db_name được chọn làm cơ sở dữ liệu mặc định bởi SỬ DỤNG.

- cơ sở dữ liệu tùy chọn cho nhật ký mysqlbin tương tự như --binlog-do-db tùy chọn cho
mysqld, nhưng chỉ có thể được sử dụng để chỉ định một cơ sở dữ liệu. Nếu như - cơ sở dữ liệu được đưa ra nhiều
lần, chỉ phiên bản cuối cùng được sử dụng.

Các tác động của tùy chọn này phụ thuộc vào việc ghi nhật ký dựa trên câu lệnh hay dựa trên hàng
định dạng đang được sử dụng, giống như cách mà các tác động của --binlog-do-db phụ thuộc vào liệu
ghi nhật ký dựa trên câu lệnh hoặc dựa trên hàng đang được sử dụng.

Dựa trên tuyên bố khai thác gỗ. Các - cơ sở dữ liệu tùy chọn hoạt động như sau:

· Trong khi db_name là cơ sở dữ liệu mặc định, các câu lệnh được xuất cho dù chúng có sửa đổi
bảng trong db_name hoặc một cơ sở dữ liệu khác.

· Trừ phi db_name được chọn làm cơ sở dữ liệu mặc định, các câu lệnh không được xuất ra,
ngay cả khi họ sửa đổi các bảng trong db_name.

· Có một ngoại lệ đối với TẠO CƠ SỞ DỮ LIỆU, CƠ SỞ DỮ LIỆU ALTER và DROP CƠ SỞ DỮ LIỆU. Các
cơ sở dữ liệu đang được tạo, đã thay đổi, or hủy bỏ được coi là mặc định
cơ sở dữ liệu khi xác định có xuất câu lệnh hay không.

Giả sử rằng nhật ký nhị phân được tạo bằng cách thực hiện các câu lệnh này bằng cách sử dụng
ghi nhật ký dựa trên tuyên bố:

CHÈN VÀO test.t1 (i) GIÁ TRỊ(100);
CHÈN VÀO db2.t2 (j) GIÁ TRỊ(200);
Kiểm tra SỬ DỤNG;
CHÈN VÀO test.t1 (i) GIÁ TRỊ(101);
CHÈN VÀO t1 (i) GIÁ TRỊ(102);
CHÈN VÀO db2.t2 (j) GIÁ TRỊ(201);
SỬ DỤNG db2;
CHÈN VÀO test.t1 (i) GIÁ TRỊ(103);
CHÈN VÀO db2.t2 (j) GIÁ TRỊ(202);
CHÈN VÀO t2 (j) GIÁ TRỊ(203);

nhật ký mysqlbin --database = test không xuất ra hai câu lệnh INSERT đầu tiên vì
không có cơ sở dữ liệu mặc định. Nó xuất ra ba câu lệnh INSERT sau USE
kiểm tra, nhưng không kiểm tra ba câu lệnh INSERT sau USE db2.

nhật ký mysqlbin --database = db2 không xuất ra hai câu lệnh INSERT đầu tiên vì
không có cơ sở dữ liệu mặc định. Nó không xuất ra ba câu lệnh INSERT sau
Kiểm tra sử dụng, nhưng không xuất ra ba câu lệnh INSERT sau USE db2.

Dựa trên hàng khai thác gỗ. nhật ký mysqlbin chỉ xuất các mục thay đổi bảng thuộc về
db_name. Cơ sở dữ liệu mặc định không ảnh hưởng đến điều này. Giả sử rằng nhật ký nhị phân chỉ
được mô tả bằng cách sử dụng ghi nhật ký dựa trên hàng chứ không phải ghi nhật ký dựa trên câu lệnh.
nhật ký mysqlbin --database = test chỉ xuất những mục nhập sửa đổi t1 trong bài kiểm tra
cơ sở dữ liệu, bất kể USE được phát hành hay cơ sở dữ liệu mặc định là gì. Nếu một
máy chủ đang chạy với binlog_format được đặt thành MIXED và bạn muốn nó có thể
sử dụng nhật ký mysqlbin với - cơ sở dữ liệu tùy chọn, bạn phải đảm bảo rằng các bảng
được sửa đổi trong cơ sở dữ liệu được lựa chọn bởi USE. (Đặc biệt, không có cơ sở dữ liệu chéo
cập nhật nên được sử dụng.)

Trước MySQL 5.6.10, - cơ sở dữ liệu tùy chọn không hoạt động chính xác với nhật ký được viết
bởi máy chủ MySQL hỗ trợ GTID. (Lỗi # 15912728)

· --debug [=debug_options], -# [debug_options]

Viết nhật ký gỡ lỗi. Khác biệt debug_options chuỗi là d: t: o,tên_tệp. Mặc định
là d: t: o, / tmp / mysqlbinlog.trace.

· --debug-kiểm tra

In một số thông tin gỡ lỗi khi chương trình thoát.

· --debug-thông tin

In thông tin gỡ lỗi và thống kê sử dụng bộ nhớ và CPU khi chương trình
lối thoát hiểm.

· --default-auth =Plugin

Plugin xác thực phía máy khách để sử dụng. Xem Phần 6.3.7, “Có thể lắp ráp
Xác thực ”.

Tùy chọn này đã được thêm vào MySQL 5.6.2.

· --defaults-extra-file =tên_tệp

Đọc tệp tùy chọn này sau tệp tùy chọn chung nhưng (trên Unix) trước người dùng
tệp tùy chọn. Nếu tệp không tồn tại hoặc không thể truy cập được, thì sẽ xảy ra lỗi.
tên_tệp được diễn giải liên quan đến thư mục hiện tại nếu được cung cấp dưới dạng một đường dẫn tương đối
tên thay vì tên đường dẫn đầy đủ.

· --defaults-file =tên_tệp

Chỉ sử dụng tệp tùy chọn đã cho. Nếu tệp không tồn tại hoặc khác
không thể truy cập được, một lỗi xảy ra. tên_tệp được diễn giải liên quan đến hiện tại
thư mục nếu được cung cấp dưới dạng tên đường dẫn tương đối hơn là tên đường dẫn đầy đủ.

· hậu tố --defaults-group-=str

Đọc không chỉ các nhóm tùy chọn thông thường, mà còn đọc các nhóm có tên thông thường và
hậu tố của str. Ví dụ, nhật ký mysqlbin thường đọc [client] và [mysqlbinlog]
các nhóm. Nếu --defaults-group-anal = _other tùy chọn được đưa ra, nhật ký mysqlbin cũng đọc
nhóm [client_other] và [mysqlbinlog_other].

· --disable-log-bin, -D

Tắt ghi nhật ký nhị phân. Điều này rất hữu ích để tránh một vòng lặp vô tận nếu bạn sử dụng
- to-last-log và đang gửi kết quả đến cùng một máy chủ MySQL. Tùy chọn này
cũng hữu ích khi khôi phục sau sự cố để tránh trùng lặp các câu lệnh bạn
đã đăng nhập.

Tùy chọn này yêu cầu bạn có đặc quyền SUPER. Điều đó gây ra nhật ký mysqlbin đến
bao gồm câu lệnh SET sql_log_bin = 0 trong đầu ra của nó để tắt ghi nhật ký nhị phân của
sản lượng còn lại. Câu lệnh SET không hiệu quả trừ khi bạn có SUPER
đặc ân.

· --exclude-gtids =gtid_set

Không hiển thị bất kỳ nhóm nào được liệt kê trong gtid_set. Đã thêm vào MySQL 5.6.5.

· --buộc-nếu-mở, -F

Đọc các tệp nhật ký nhị phân ngay cả khi chúng đang mở hoặc không được đóng đúng cách.

· --bắt buộc đọc, -f

Với tùy chọn này, nếu nhật ký mysqlbin đọc một sự kiện nhật ký nhị phân mà nó không nhận ra,
nó in một cảnh báo, bỏ qua sự kiện và tiếp tục. Nếu không có tùy chọn này,
nhật ký mysqlbin dừng lại nếu nó đọc một sự kiện như vậy.

· --hexdump, -H

Hiển thị kết xuất hex của nhận xét đăng nhập, như được mô tả trong phần có tên
“ĐỊNH DẠNG MYSQLBINLOG HEX DUMP”. Đầu ra hex có thể hữu ích cho việc nhân rộng
gỡ lỗi.

· --host =tên máy chủ, -h tên máy chủ

Lấy nhật ký nhị phân từ máy chủ MySQL trên máy chủ nhất định.

· --include-gtids =gtid_set

Chỉ hiển thị các nhóm được liệt kê trong gtid_set. Đã thêm vào MySQL 5.6.5.

· --local-tải =con đường, -l con đường

Chuẩn bị các tệp tạm thời cục bộ cho TẢI THÔNG TIN DỮ LIỆU trong thư mục được chỉ định.

Quan trọng
Các tệp tạm thời này không tự động bị xóa bởi nhật ký mysqlbin Hay bất cứ thứ gì khác
Chương trình MySQL.

· --login-path =tên

Đọc các tùy chọn từ đường dẫn đăng nhập được đặt tên trong tệp đăng nhập .mylogin.cnf. "Đường dẫn đăng nhập"
là một nhóm tùy chọn chỉ cho phép một nhóm tùy chọn hạn chế: chủ nhà, người sử dụng
mật khẩu. Hãy coi đường dẫn đăng nhập như một tập hợp các giá trị cho biết máy chủ lưu trữ và
thông tin xác thực với máy chủ. Để tạo tệp đường dẫn đăng nhập, hãy sử dụng
các mysql_config_editor tính thiết thực. Nhìn thấy mysql_config_editor(1). Tùy chọn này đã được thêm vào
Mysql 5.6.6.

· - không mặc định

Không đọc bất kỳ tệp tùy chọn nào. Nếu chương trình khởi động không thành công do đọc các tùy chọn không xác định
từ một tệp tùy chọn, - không mặc định có thể được sử dụng để ngăn không cho chúng bị đọc.

Ngoại lệ là tệp .mylogin.cnf, nếu nó tồn tại, sẽ được đọc trong mọi trường hợp. Cái này
cho phép mật khẩu được chỉ định theo cách an toàn hơn so với trên dòng lệnh ngay cả khi
- không mặc định Được sử dụng. (.mylogin.cnf được tạo bởi mysql_config_editor tiện ích.
Xem mysql_config_editor(1).)

· --offset =N, -o N

Bỏ qua phần đầu tiên N các mục trong nhật ký.

· - mật khẩu [=mật khẩu], -P[mật khẩu]

Mật khẩu sử dụng khi kết nối với máy chủ. Nếu bạn sử dụng biểu mẫu tùy chọn ngắn
(-p), bạn không thể có khoảng trắng giữa tùy chọn và mật khẩu. Nếu bạn bỏ qua
mật khẩu giá trị theo sau --mật khẩu mở khóa or -p tùy chọn trên dòng lệnh, nhật ký mysqlbin
lời nhắc cho một.

Việc chỉ định mật khẩu trên dòng lệnh sẽ được coi là không an toàn. Nhìn thấy
Phần 6.1.2.1, “Nguyên tắc bảo mật mật khẩu cho người dùng cuối”. Bạn có thể sử dụng một tùy chọn
để tránh nhập mật khẩu trên dòng lệnh.

· --plugin-dir =con đường

Thư mục để tìm plugin. Có thể cần phải chỉ định tùy chọn này
nếu --default-auth tùy chọn được sử dụng để chỉ định một plugin xác thực nhưng
nhật ký mysqlbin không tìm thấy nó. Xem Phần 6.3.7, “Xác thực có thể cài đặt”.

Tùy chọn này đã được thêm vào MySQL 5.6.2.

· --port =số cổng, -P số cổng

Số cổng TCP / IP để sử dụng để kết nối với máy chủ từ xa.

· - print-defaults

In tên chương trình và tất cả các tùy chọn mà nó nhận được từ các tệp tùy chọn.

· --protocol = {TCP | SOCKET | PIPE | MEMORY}

Giao thức kết nối được sử dụng để kết nối với máy chủ. Nó hữu ích khi
các thông số kết nối khác thường sẽ khiến một giao thức được sử dụng khác với
một trong những bạn muốn. Để biết chi tiết về các giá trị cho phép, hãy xem Phần 4.2.2, “Kết nối với
Máy chủ MySQL ”.

· --thô

Theo mặc định, nhật ký mysqlbin đọc các tệp nhật ký nhị phân và ghi các sự kiện ở định dạng văn bản. Các
--thô tùy chọn nói với nhật ký mysqlbin để viết chúng ở định dạng nhị phân ban đầu của chúng. Công dụng của nó
yêu cầu điều đó --read-từ-máy chủ từ xa cũng được sử dụng vì các tệp được yêu cầu
từ một máy chủ. nhật ký mysqlbin ghi một tệp đầu ra cho mỗi tệp được đọc từ máy chủ.
--thô tùy chọn có thể được sử dụng để tạo bản sao lưu nhật ký nhị phân của máy chủ. Với
- dừng lại-không bao giờ tùy chọn, bản sao lưu là "trực tiếp" vì nhật ký mysqlbin vẫn kết nối với
người phục vụ. Theo mặc định, các tệp đầu ra được ghi trong thư mục hiện tại với cùng
tên như các tệp nhật ký ban đầu. Tên tệp đầu ra có thể được sửa đổi bằng cách sử dụng
--tập tin kết quả Lựa chọn. Để biết thêm thông tin, hãy xem phần có tên “SỬ DỤNG MYSQLBINLOG
ĐỂ QUAY LẠI CÁC LỌC BẢN NHẬT CHÍNH ”.

Tùy chọn này đã được thêm vào MySQL 5.6.0.

· --read-from-remote-master =kiểu

Đọc nhật ký nhị phân từ máy chủ MySQL với COM_BINLOG_DUMP hoặc COM_BINLOG_DUMP_GTID
bằng cách đặt giá trị tùy chọn thành BINLOG-DUMP-NON-GTIDS hoặc
BINLOG-DUMP-GTIDS, tương ứng. Nếu như --read-from-remote-master = BINLOG-DUMP-GTIDS is
kết hợp với --loại trừ-gtids, các giao dịch có thể được lọc ra trên trang cái,
tránh lưu lượng mạng không cần thiết.

Xem thêm mô tả cho --read-từ-máy chủ từ xa.

Tùy chọn này đã được thêm vào MySQL 5.6.5.

· --read-từ-máy chủ từ xa, -R

Đọc nhật ký nhị phân từ máy chủ MySQL thay vì đọc tệp nhật ký cục bộ. Không tí nào
tùy chọn tham số kết nối bị bỏ qua trừ khi tùy chọn này cũng được cung cấp. Này
lựa chọn là --tổ chức, --mật khẩu mở khóa, --Hải cảng, - giao thức, --ổ cắm--người sử dụng.

Tùy chọn này yêu cầu máy chủ từ xa đang chạy. Nó chỉ hoạt động cho nhật ký nhị phân
tệp trên máy chủ từ xa, không chuyển tiếp tệp nhật ký.

Kể từ MySQL 5.6.5, tùy chọn này giống như
--read-from-remote-master = BINLOG-DUMP-NON-GTIDS.

· --result-file =tên, -r tên

Không có --thô tùy chọn, tùy chọn này cho biết tệp mà nhật ký mysqlbin viết
đầu ra văn bản. Với --thô, nhật ký mysqlbin ghi một tệp đầu ra nhị phân cho mỗi tệp nhật ký
được chuyển từ máy chủ, ghi chúng theo mặc định trong thư mục hiện tại bằng cách sử dụng
tên giống như tệp nhật ký ban đầu. Trong trường hợp này, --tập tin kết quả giá trị tùy chọn
được coi như một tiền tố sửa đổi tên tệp đầu ra.

· --secure-auth

Không gửi mật khẩu đến máy chủ ở định dạng cũ (trước 4.1). Điều này ngăn cản các kết nối
ngoại trừ các máy chủ sử dụng định dạng mật khẩu mới hơn. Tùy chọn này được kích hoạt bởi
vỡ nợ; sử dụng --skip-secure-auth để vô hiệu hóa nó. Tùy chọn này đã được thêm vào MySQL 5.6.17.

Chú thích
Mật khẩu sử dụng phương pháp băm trước 4.1 kém an toàn hơn mật khẩu
sử dụng phương pháp băm mật khẩu gốc và nên tránh. Mật khẩu trước 4.1
không được dùng nữa và hỗ trợ cho chúng sẽ bị xóa trong bản phát hành MySQL trong tương lai. Vì
hướng dẫn nâng cấp tài khoản, xem Phần 6.3.8.3, “Di chuyển từ trước 4.1
Băm mật khẩu và Plugin mysql_old_password ”.

· --server-id =id

Chỉ hiển thị những sự kiện được tạo bởi máy chủ có ID máy chủ nhất định.

· --server-id-bits =N

Chỉ sử dụng cái đầu tiên N các bit của server_id để xác định máy chủ. Nếu nhật ký nhị phân
được viết bởi một mysqld với server-id-bit được đặt thành nhỏ hơn 32 và dữ liệu người dùng được lưu trữ
trong phần quan trọng nhất, đang chạy nhật ký mysqlbin với --server-id-bit đặt thành 32
cho phép dữ liệu này được nhìn thấy.

Tùy chọn này chỉ được hỗ trợ bởi các phiên bản của nhật ký mysqlbin được cung cấp với MySQL
Phân phối cụm hoặc được xây dựng từ các nguồn cụm MySQL.

· --set-charset =tên bộ ký tự

Thêm ĐẶT TÊN tên bộ ký tự câu lệnh cho đầu ra để chỉ định ký tự được đặt thành
được sử dụng để xử lý các tệp nhật ký.

· --shared-memory-base-name =tên

Trên Windows, tên bộ nhớ dùng chung để sử dụng, cho các kết nối được thực hiện bằng bộ nhớ dùng chung để
một máy chủ cục bộ. Giá trị mặc định là MYSQL. Tên bộ nhớ dùng chung có phân biệt chữ hoa chữ thường.

Máy chủ phải được khởi động bằng - bộ nhớ chia sẻ tùy chọn để bật bộ nhớ chia sẻ


· --hình thức ngắn, -s

Chỉ hiển thị các câu lệnh có trong nhật ký, không có bất kỳ thông tin bổ sung nào hoặc
sự kiện dựa trên hàng. Điều này chỉ để thử nghiệm và không được sử dụng trong sản xuất
hệ thống.

· --skip-gtids [= (true | false)]

Không hiển thị bất kỳ GTID nào trong đầu ra. Điều này là cần thiết khi ghi vào tệp kết xuất
từ một hoặc nhiều nhật ký nhị phân có chứa GTID, như được minh họa trong ví dụ sau:

vỏ> nhật ký mysqlbin --skip-gtids binlog.000001 > /tmp/dump.sql
vỏ> nhật ký mysqlbin --skip-gtids binlog.000002 >> /tmp/dump.sql
vỏ> mysql -u nguồn gốc -p -e "nguồn /tmp/dump.sql "

Nếu không, việc sử dụng tùy chọn này thường không được khuyến khích trong sản xuất.

Tùy chọn này đã được thêm vào MySQL 5.6.5.

· --socket =con đường, -S con đường

Đối với các kết nối đến máy chủ cục bộ, tệp ổ cắm Unix để sử dụng hoặc trên Windows, tên của
đường ống được đặt tên để sử dụng.

· --start-datetime =ngày giờ

Bắt đầu đọc nhật ký nhị phân ở sự kiện đầu tiên có dấu thời gian bằng hoặc sau đó
hơn ngày giờ tranh luận. Các ngày giờ giá trị liên quan đến múi giờ địa phương trên
cái máy nơi bạn chạy nhật ký mysqlbin. Giá trị phải ở định dạng được chấp nhận cho
kiểu dữ liệu DATETIME hoặc TIMESTAMP. Ví dụ:

vỏ> nhật ký mysqlbin --start-datetime = "2005-12-25 11:25:56 " binlog.000003

Tùy chọn này hữu ích cho việc khôi phục theo thời gian. Xem Phần 7.3, “Sao lưu ví dụ và
Chiến lược phục hồi ”.

· --start-position =N, -j N

Bắt đầu đọc nhật ký nhị phân ở sự kiện đầu tiên có vị trí bằng hoặc lớn hơn
hơn N. Tùy chọn này áp dụng cho tệp nhật ký đầu tiên có tên trên dòng lệnh.

Tùy chọn này hữu ích cho việc khôi phục theo thời gian. Xem Phần 7.3, “Sao lưu ví dụ và
Chiến lược phục hồi ”.

· --stop-datetime =ngày giờ

Dừng đọc nhật ký nhị phân ở sự kiện đầu tiên có dấu thời gian bằng hoặc sau đó
hơn ngày giờ tranh luận. Tùy chọn này hữu ích cho việc khôi phục theo thời gian. Xem
mô tả của --ngày bắt đầu tùy chọn cho thông tin về ngày giờ giá trị.

Tùy chọn này hữu ích cho việc khôi phục theo thời gian. Xem Phần 7.3, “Sao lưu ví dụ và
Chiến lược phục hồi ”.

· - dừng lại-không bao giờ

Tùy chọn này được sử dụng với --read-từ-máy chủ từ xa. Nó nói nhật ký mysqlbin ở lại
kết nối với máy chủ. Nếu không thì nhật ký mysqlbin thoát khi tệp nhật ký cuối cùng đã được
được chuyển từ máy chủ. - dừng lại-không bao giờ ngụ ý - to-last-log, vì vậy chỉ là người đầu tiên
tệp nhật ký để chuyển cần được đặt tên trên dòng lệnh.

- dừng lại-không bao giờ thường được sử dụng với --thô để tạo bản sao lưu nhật ký nhị phân trực tiếp, mà còn
có thể được sử dụng mà không cần --thô để duy trì hiển thị văn bản liên tục của các sự kiện nhật ký như
máy chủ tạo ra chúng.

Tùy chọn này đã được thêm vào MySQL 5.6.0.

· --stop-never-slave-server-id =id

Với - dừng lại-không bao giờ, nhật ký mysqlbin báo cáo ID máy chủ là 65535 khi nó kết nối với
máy chủ. --stop-never-nô lệ-máy chủ-id chỉ định rõ ràng ID máy chủ để báo cáo. Nó
có thể được sử dụng để tránh xung đột với ID của máy chủ nô lệ hoặc máy chủ khác nhật ký mysqlbin
tiến trình. Xem phần có tên “ĐẶT CỤ THỂ ID MÁY CHỦ MYSQLBINLOG”.

Tùy chọn này đã được thêm vào MySQL 5.6.0.

· --stop-position =N

Dừng đọc nhật ký nhị phân ở sự kiện đầu tiên có vị trí bằng hoặc lớn hơn
hơn N. Tùy chọn này áp dụng cho tệp nhật ký cuối cùng có tên trên dòng lệnh.

Tùy chọn này hữu ích cho việc khôi phục theo thời gian. Xem Phần 7.3, “Sao lưu ví dụ và
Chiến lược phục hồi ”.

· - to-last-log, -t

Không dừng lại ở cuối nhật ký nhị phân được yêu cầu từ máy chủ MySQL, mà thay vào đó
tiếp tục in cho đến khi kết thúc nhật ký nhị phân cuối cùng. Nếu bạn gửi đầu ra đến
cùng một máy chủ MySQL, điều này có thể dẫn đến một vòng lặp vô tận. Tùy chọn này yêu cầu
--read-từ-máy chủ từ xa.

· - người dùng =user_name, -u user_name

Tên người dùng MySQL để sử dụng khi kết nối với máy chủ từ xa.

· --dài dòng, -v

Cấu trúc lại các sự kiện hàng và hiển thị chúng dưới dạng các câu lệnh SQL đã nhận xét. Nếu tùy chọn này là
được đưa ra hai lần, đầu ra bao gồm các nhận xét để chỉ ra các kiểu dữ liệu cột và một số
metadata.

Ví dụ cho thấy tác dụng của --base64-đầu ra--dài dòng sự kiện trên hàng
đầu ra, hãy xem phần có tên “MYSQLBINLOG ROW EVENT DISPLAY”.

· --verify-binlog-checksum, -c

Xác minh tổng kiểm tra trong tệp nhật ký nhị phân. Tùy chọn này đã được thêm vào MySQL 5.6.1.

· --phiên bản, -V

thông tin phiên bản màn hình và thoát.

Trước MySQL 5.6.11, nhật ký mysqlbin số phiên bản được hiển thị là 3.3. Trong MySQL 5.6.11
và sau này, đây là 3.4. (Lỗi # 15894381, Lỗi # 67643)

Bạn cũng có thể đặt biến sau bằng cách sử dụng --var_name=giá trị cú pháp:

· Open_files_limit

Chỉ định số lượng bộ mô tả tệp đang mở để dự trữ.

Bạn có thể chuyển đầu ra của nhật ký mysqlbin vào mysql khách hàng để thực hiện các sự kiện
chứa trong nhật ký nhị phân. Kỹ thuật này được sử dụng để khôi phục sau sự cố khi bạn có
một bản sao lưu cũ (xem Phần 7.5, “Khôi phục điểm trong thời gian (tăng dần) bằng cách sử dụng nhị phân
Nhật ký ”). Ví dụ:

vỏ> nhật ký mysqlbin binlog.000001 | mysql -u nguồn gốc -p

Hoặc:

vỏ> nhật ký mysqlbin binlog. [0-9] * | mysql -u nguồn gốc -p

Nếu các câu lệnh được tạo ra bởi nhật ký mysqlbin có thể chứa các giá trị BLOB, những giá trị này có thể gây ra
vấn đề khi mysql xử lý chúng. Trong trường hợp này, hãy gọi mysql với --chế độ nhị phân
tùy chọn.

Bạn cũng có thể chuyển hướng đầu ra của nhật ký mysqlbin thay vào đó vào một tệp văn bản, nếu bạn cần
sửa đổi nhật ký câu lệnh trước (ví dụ: để xóa các câu lệnh mà bạn không muốn
thực thi vì một số lý do). Sau khi chỉnh sửa tệp, hãy thực thi các câu lệnh mà nó chứa
bằng cách sử dụng nó làm đầu vào cho mysql chương trình:

vỏ> nhật ký mysqlbin binlog.000001 > tmpfile
vỏ> ... chỉnh sửa tmpfile ...
vỏ> mysql -u nguồn gốc -p < tmpfile

Thời Gian nhật ký mysqlbin được gọi với --vị trí bắt đầu tùy chọn, nó chỉ hiển thị những
các sự kiện có độ lệch trong nhật ký nhị phân lớn hơn hoặc bằng một vị trí nhất định (
vị trí đã cho phải khớp với phần bắt đầu của một sự kiện). Nó cũng có các tùy chọn để dừng và bắt đầu
khi nó nhìn thấy một sự kiện có ngày và giờ nhất định. Điều này cho phép bạn thực hiện
khôi phục tại điểm trong thời gian bằng cách sử dụng --dừng-ngày giờ tùy chọn (ví dụ, có thể nói,
“Chuyển tiếp cơ sở dữ liệu của tôi về trạng thái của chúng hôm nay lúc 10:30 sáng”).

Nếu bạn có nhiều hơn một nhật ký nhị phân để thực thi trên máy chủ MySQL, thì phương pháp an toàn là
xử lý tất cả chúng bằng một kết nối duy nhất tới máy chủ. Đây là một ví dụ
chứng minh những gì có thể là không an toàn:

vỏ> nhật ký mysqlbin binlog.000001 | mysql -u nguồn gốc -p # NGUY HIỂM !!
vỏ> nhật ký mysqlbin binlog.000002 | mysql -u nguồn gốc -p # NGUY HIỂM !!

Xử lý nhật ký nhị phân theo cách này bằng cách sử dụng nhiều kết nối đến máy chủ gây ra sự cố
nếu tệp nhật ký đầu tiên chứa câu lệnh TẠO BẢNG TẠM THỜI và nhật ký thứ hai
chứa một câu lệnh sử dụng bảng tạm thời. Khi người đầu tiên mysql quá trình
kết thúc, máy chủ giảm bảng tạm thời. Khi thứ hai mysql nỗ lực xử lý
để sử dụng bảng, máy chủ sẽ báo cáo "bảng không xác định".

Để tránh những vấn đề như thế này, hãy sử dụng duy nhất mysql quy trình để thực thi nội dung của tất cả
nhật ký nhị phân mà bạn muốn xử lý. Đây là một cách để làm như vậy:

vỏ> nhật ký mysqlbin binlog.000001 binlog.000002 | mysql -u nguồn gốc -p

Một cách tiếp cận khác là ghi tất cả nhật ký vào một tệp duy nhất và sau đó xử lý tệp:

vỏ> nhật ký mysqlbin binlog.000001 > /tmp/statements.sql
vỏ> nhật ký mysqlbin binlog.000002 >> /tmp/statements.sql
vỏ> mysql -u nguồn gốc -p -e "nguồn /tmp/statements.sql "

nhật ký mysqlbin có thể tạo ra đầu ra tái tạo hoạt động LOAD DATA INFILE mà không cần
tệp dữ liệu gốc. nhật ký mysqlbin sao chép dữ liệu vào một tệp tạm thời và ghi một TẢI
Câu lệnh THÔNG TIN ĐỊA PHƯƠNG DỮ LIỆU đề cập đến tệp. Vị trí mặc định của thư mục
nơi các tệp này được viết là dành riêng cho hệ thống. Để chỉ định một thư mục một cách rõ ràng, hãy sử dụng
các --local-tải tùy chọn.

Bởi vì nhật ký mysqlbin chuyển đổi các câu lệnh LOAD DATA INFILE thành LOAD DATA LOCAL INFILE
(nghĩa là nó thêm LOCAL), cả máy khách và máy chủ mà bạn sử dụng
xử lý các câu lệnh phải được cấu hình với khả năng LOCAL được kích hoạt. Nhìn thấy
Phần 6.1.6, “Vấn đề bảo mật với VỊ TRÍ DỮ LIỆU TẢI”.

Cảnh báo
Các tệp tạm thời được tạo cho các câu lệnh LOAD DATA LOCAL là không tự động
bị xóa bởi vì chúng cần thiết cho đến khi bạn thực sự thực thi các câu lệnh đó. Bạn
nên tự xóa các tệp tạm thời sau khi bạn không cần nhật ký câu lệnh nữa.
Các tệp có thể được tìm thấy trong thư mục tệp tạm thời và có tên như
original_file_name - # - #.

MYSQLBINLOG HEX XE FORMAT


--hexdump nguyên nhân tùy chọn nhật ký mysqlbin để tạo ra một kết xuất hex của nội dung nhật ký nhị phân:

vỏ> nhật ký mysqlbin --hexdump master-bin.000001

Đầu ra hex bao gồm các dòng nhận xét bắt đầu bằng #, vì vậy đầu ra có thể trông giống như
điều này cho lệnh trước:

/ *! 40019 SET @@ session.max_insert_delayed_threads = 0 * /;
/ *! 50003 SET @OLD_COMPLETION_TYPE = @@ COMPLETION_TYPE, COMPLETION_TYPE = 0 * /;
# lúc 4
# 051024 17:24:13 id máy chủ 1 end_log_pos 98
# Vị trí Dấu thời gian Loại ID Chính Kích thước Mã Vị trí Chính Các cờ Vị trí
# 00000004 9d fc 5c 43 0f 01 00 00 00 5e 00 00 00 62 00 00 00 00 00
# 00000017 04 00 35 2e 30 2e 31 35 2d 64 65 62 75 67 2d 6c | ..5.0.15.debug.l |
# 00000027 6f 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | og .............. |
# 00000037 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |
# 00000047 00 00 00 00 9d fc 5c 43 13 38 0d 00 08 00 12 00 | ....... C.8 ...... |
# 00000057 04 04 04 04 12 00 00 4b 00 04 1a | ....... K ... |
# Start: binlog v 4, server v 5.0.15-debug-log đã tạo 051024 17:24:13
# lúc khởi động
QUAY LẠI;

Kết xuất hex hiện chứa các phần tử trong danh sách sau. Định dạng này là
có thể thay đổi. (Để biết thêm thông tin về định dạng nhật ký nhị phân, hãy xem MySQL Nội bộ:
Nhị phân Khúc gỗ[1.

· Vị trí: Vị trí byte trong tệp nhật ký.

· Timestamp: Dấu thời gian của sự kiện. Trong ví dụ được hiển thị, '9d fc 5c 43' là
biểu diễn của '051024 17:24:13' trong hệ thập lục phân.

· Loại: Mã loại sự kiện. Trong ví dụ được hiển thị, '0f' cho biết
FORMAT_DESCRIPTION_EVENT. Bảng sau liệt kê các mã loại có thể có.

┌─────┬───────────────────────────── ────────────────────────┐
KiểuHọ tênÝ nghĩa
├─────┼───────────────────────────── ────────────────────────┤
│00 │ UNKNOWN_EVENT │ Sự kiện này sẽ không bao giờ │
│ │ │ có mặt trong nhật ký. │
├─────┼───────────────────────────── ────────────────────────┤
│01 │ START_EVENT_V3 │ Điều này cho biết bắt đầu │
│ │ │ của một tệp nhật ký được viết bởi │
│ │ │ MySQL 4 hoặc phiên bản cũ hơn. │
├─────┼───────────────────────────── ────────────────────────┤
│02 │ QUERY_EVENT │ Loại phổ biến nhất của │
│ │ │ sự kiện. Những thứ này chứa │
│ │ │ câu lệnh được thực thi trên │
│ │ │ cái │
│ │ │ chủ. │
├─────┼───────────────────────────── ────────────────────────┤
│03 │ STOP_EVENT │ Cho biết trang cái có │
│ │ │ dừng lại. │
├─────┼───────────────────────────── ────────────────────────┤
│04 │ ROTATE_EVENT │ Được viết khi bản gốc │
│ │ │ chuyển sang tệp nhật ký mới. │
├─────┼───────────────────────────── ────────────────────────┤
│05 │ INTVAR_EVENT │ Được sử dụng cho AUTO_INCREMENT │
│ │ │ giá trị hoặc khi │
│ │ │ LAST_INSERT_ID () │
│ │ │ hàm │
│ │ │ được sử dụng trong câu lệnh. │
├─────┼───────────────────────────── ────────────────────────┤
│06 │ LOAD_EVENT │ Được sử dụng để TẢI DỮ LIỆU │
│ │ │ INFILE trong MySQL │
│ │ │ 3.23. │
├─────┼───────────────────────────── ────────────────────────┤
│07 │ SLAVE_EVENT │ Được bảo lưu để sử dụng trong tương lai. │
├─────┼───────────────────────────── ────────────────────────┤
│08 │ CREATE_FILE_EVENT │ Được sử dụng để TẢI DỮ LIỆU │
│ │ │ THÔNG TIN │
│ │ │ câu lệnh. Điều này cho thấy │
│ │ │ bắt đầu của │
│ │ │ thực hiện một tuyên bố như vậy. A │
│ │ │ tạm thời │
│ │ │ tệp được tạo │
│ │ │ trên nô lệ. Chỉ được sử dụng trong MySQL 4. │
├─────┼───────────────────────────── ────────────────────────┤
│09 │ APPEND_BLOCK_EVENT │ Chứa dữ liệu để sử dụng trong │
│ │ │ TẢI DỮ LIỆU │
│ │ │ THÔNG TIN │
Câu lệnh │ │ │. Dữ liệu được lưu trữ trong │
│ │ │ tạm thời │
│ │ │ tệp trên nô lệ. │
├─────┼───────────────────────────── ────────────────────────┤
│0a │ EXEC_LOAD_EVENT │ Được sử dụng để TẢI DỮ LIỆU │
│ │ │ THÔNG TIN │
│ │ │ câu lệnh. Nội dung của │
│ │ │ tệp tạm thời │
│ │ │ được lưu trong bảng trên nô lệ. │
│ │ │ Được sử dụng trong MySQL 4 │
│ │ │ thôi. │
├─────┼───────────────────────────── ────────────────────────┤
│0b │ DELETE_FILE_EVENT │ Khôi phục DỮ LIỆU ĐÃ TẢI │
│ │ │ THÔNG TIN │
Câu lệnh │ │ │. Tệp tạm thời │
│ │ │ nên là │
Đã xóa │ │ │ trên nô lệ. │
├─────┼───────────────────────────── ────────────────────────┤
│0c │ NEW_LOAD_EVENT │ Dùng để TẢI DỮ LIỆU │
│ │ │ INFILE trong MySQL │
│ │ │ 4 trở về trước. │
├─────┼───────────────────────────── ────────────────────────┤
│0d │ RAND_EVENT │ Được sử dụng để gửi thông tin về │
│ │ │ giá trị ngẫu nhiên nếu │
│ │ │ Hàm RAND () │
│ │ │ là │
│ │ │ được sử dụng trong │
Câu lệnh │ │ │. │
├─────┼───────────────────────────── ────────────────────────┤
│0e │ USER_VAR_EVENT │ Được sử dụng để sao chép các biến người dùng. │
├─────┼───────────────────────────── ────────────────────────┤
│0f │ FORMAT_DESCRIPTION_EVENT │ Điều này cho biết thời điểm bắt đầu nhật ký │
│ │ │ tệp được viết bởi MySQL 5 trở lên. │
├─────┼───────────────────────────── ────────────────────────┤
│10 │ XID_EVENT │ Sự kiện cho biết cam kết của XA │
│ │ │ giao dịch. │
├─────┼───────────────────────────── ────────────────────────┤
│11 │ BEGIN_LOAD_QUERY_EVENT │ Được sử dụng để TẢI DỮ LIỆU │
│ │ │ THÔNG TIN │
Câu lệnh │ │ │ trong MySQL 5 trở lên. │
├─────┼───────────────────────────── ────────────────────────┤
│12 │ EXECUTE_LOAD_QUERY_EVENT │ Được sử dụng để TẢI DỮ LIỆU │
│ │ │ THÔNG TIN │
Câu lệnh │ │ │ trong MySQL 5 trở lên. │
├─────┼───────────────────────────── ────────────────────────┤
│13 │ TABLE_MAP_EVENT │ Thông tin về bảng │
│ │ │ định nghĩa. Được sử dụng trong MySQL 5.1.5 và │
│ │ │ sau này. │
├─────┼───────────────────────────── ────────────────────────┤
│14 │ PRE_GA_WRITE_ROWS_EVENT │ Dữ liệu hàng cho một bảng duy nhất │
│ │ │ nên được tạo. Được sử dụng trong MySQL │
│ │ │ 5.1.5 │
│ │ │ đến 5.1.17. │
├─────┼───────────────────────────── ────────────────────────┤
│15 │ PRE_GA_UPDATE_ROWS_EVENT │ Dữ liệu hàng cho một bảng duy nhất │
│ │ │ cần được cập nhật. Được sử dụng trong MySQL │
│ │ │ 5.1.5 đến 5.1.17. │
├─────┼───────────────────────────── ────────────────────────┤
│16 │ PRE_GA_DELETE_ROWS_EVENT │ Hàng dữ liệu cho một bảng duy nhất │
│ │ │ nên bị xóa. Được sử dụng trong MySQL │
│ │ │ 5.1.5 │
│ │ │ đến 5.1.17. │
├─────┼───────────────────────────── ────────────────────────┤
│17 │ WRITE_ROWS_EVENT │ Dữ liệu hàng cho một bảng duy nhất │
│ │ │ nên được tạo. Được sử dụng trong MySQL │
│ │ │ 5.1.18 │
│ │ │ và sau này. │
├─────┼───────────────────────────── ────────────────────────┤
│18 │ UPDATE_ROWS_EVENT │ Dữ liệu hàng cho một bảng duy nhất │
│ │ │ cần được cập nhật. Được sử dụng trong MySQL │
│ │ │ 5.1.18 và │
│ │ │ sau này. │
├─────┼───────────────────────────── ────────────────────────┤
│19 │ DELETE_ROWS_EVENT │ Hàng dữ liệu cho một bảng duy nhất │
│ │ │ nên bị xóa. Được sử dụng trong MySQL │
│ │ │ 5.1.18 │
│ │ │ và sau này. │
├─────┼───────────────────────────── ────────────────────────┤
│1a │ INCIDENT_EVENT │ Có gì đó khác thường │
│ │ │ đã xảy ra. Đã thêm vào MySQL 5.1.18. │
└─────┴───────────────────────────── ────────────────────────┘

· Master ID: ID máy chủ của cái chính đã tạo ra sự kiện.

· Kích thước: Kích thước tính bằng byte của sự kiện.

· Master Pos: Vị trí của sự kiện tiếp theo trong tệp nhật ký chính ban đầu.

· Cờ: 16 cờ. Hiện tại, các cờ sau được sử dụng. Những người khác được dành riêng cho
sử dụng trong tương lai.

┌─────┬──────────────────────────────── ─
FlagHọ tênÝ nghĩa
├─────┼──────────────────────────────── ─
│01 │ LOG_EVENT_BINLOG_IN_USE_F │ Ghi tệp chính xác │
│ │ │ đóng cửa. (Chỉ được sử dụng trong │
│ │ │ FORMAT_DESCRIPTION_EVENT.) │
│ │ │ Nếu │
│ │ │ cái này │
Cờ │ │ │ được đặt (nếu │
Ví dụ như cờ │ │ │ là │
│ │ │ '01 │
│ │ │ 00 ') trong một │
│ │ │ FORMAT_DESCRIPTION_EVENT, │
│ │ │ nhật ký │
│ │ │ tệp │
│ │ │ chưa được đúng cách │
│ │ │ đóng cửa. Có lẽ là │
│ │ │ cái này │
│ │ │ là vì chủ nhân │
│ │ │ sụp đổ (ví dụ, do │
│ │ │ thành │
│ │ mất điện). │
├─────┼──────────────────────────────── ─
│02 │ │ Được bảo lưu để sử dụng trong tương lai. │
├─────┼──────────────────────────────── ─
│04 │ LOG_EVENT_THREAD_SPECIFIC_F │ Đặt nếu sự kiện phụ thuộc vào │
Kết nối │ │ │ nó được thực thi trong (cho │
│ │ │ ví dụ, '04 00 '), cho │
│ │ │ ví dụ, │
│ │ │ nếu sự kiện sử dụng │
│ │ │ bảng tạm thời. │
├─────┼──────────────────────────────── ─
│08 │ LOG_EVENT_SUPPRESS_USE_F │ Đặt trong một số trường hợp khi sự kiện là │
│ │ │ không phụ thuộc vào mặc định │
│ │ │ cơ sở dữ liệu. │
└─────┴──────────────────────────────── ─

MYSQLBINLOG HÀNG TRƯỜNG DISPLAY


Các ví dụ sau minh họa cách nhật ký mysqlbin hiển thị các sự kiện hàng chỉ định dữ liệu
các sửa đổi. Những điều này tương ứng với các sự kiện với WRITE_ROWS_EVENT, UPDATE_ROWS_EVENT,
và mã loại DELETE_ROWS_EVENT. Các --base64-output = DECODE-ROWS--dài dòng lựa chọn
có thể được sử dụng để ảnh hưởng đến đầu ra sự kiện hàng.

Giả sử rằng máy chủ đang sử dụng ghi nhật ký nhị phân dựa trên hàng và bạn thực thi lệnh
chuỗi các câu lệnh sau:

TẠO BẢNG
(
id INT KHÔNG NULL,
tên VARCHAR(20) KHÔNG ĐẦY ĐỦ,
ngày DATE NULL
) ĐỘNG CƠ = InnoDB;
BẮT ĐẦU GIAO DỊCH;
INSERT INTO t VALUES (1, 'apple', NULL);
CẬP NHẬT t SET name = 'lê', date = '2009-01-01' WHERE id = 1;
XÓA khỏi t WHERE id = 1;
CAM KẾT;

Theo mặc định, nhật ký mysqlbin hiển thị các sự kiện hàng được mã hóa dưới dạng chuỗi cơ sở 64 bằng cách sử dụng BINLOG
các câu lệnh. Bỏ qua các dòng không liên quan, đầu ra cho các sự kiện hàng do
chuỗi câu lệnh trước trông giống như sau:

vỏ> nhật ký mysqlbin log_file
...
# lúc 218
# 080828 15:03:08 id máy chủ 1 end_log_pos 258 Write_rows: id bảng 17 cờ: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ =
fAS3SBcBAAAAKAAAAAAAIBAAAQABEAAAAAAAAAEAA // 8AQAAAAVhcHBsZQ ==
'/ *! * /;
...
# lúc 302
# 080828 15:03:08 id máy chủ 1 end_log_pos 356 Update_rows: id bảng 17 cờ: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ =
fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAAAEAA //// AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/ *! * /;
...
# lúc 400
# 080828 15:03:08 id máy chủ 1 end_log_pos 442 Delete_rows: id bảng 17 cờ: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ =
fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA // 4AQAAAARwZWFyIbIP
'/ *! * /;

Để xem các sự kiện hàng dưới dạng nhận xét dưới dạng câu lệnh "pseudo-SQL", hãy chạy nhật ký mysqlbin
với --dài dòng or -v Lựa chọn. Đầu ra sẽ chứa các dòng bắt đầu bằng ###:

vỏ> nhật ký mysqlbin -v log_file
...
# lúc 218
# 080828 15:03:08 id máy chủ 1 end_log_pos 258 Write_rows: id bảng 17 cờ: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ =
fAS3SBcBAAAAKAAAAAAAIBAAAQABEAAAAAAAAAEAA // 8AQAAAAVhcHBsZQ ==
'/ *! * /;
### CHÈN VÀO test.t
### BỘ
### @ 1 = 1
### @ 2 = 'apple'
### @ 3 = NULL
...
# lúc 302
# 080828 15:03:08 id máy chủ 1 end_log_pos 356 Update_rows: id bảng 17 cờ: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ =
fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAAAEAA //// AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/ *! * /;
### CẬP NHẬT test.t
### Ở ĐÂU
### @ 1 = 1
### @ 2 = 'apple'
### @ 3 = NULL
### BỘ
### @ 1 = 1
### @ 2 = 'lê'
### @ 3 = '2009: 01: 01'
...
# lúc 400
# 080828 15:03:08 id máy chủ 1 end_log_pos 442 Delete_rows: id bảng 17 cờ: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ =
fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA // 4AQAAAARwZWFyIbIP
'/ *! * /;
### XÓA KHỎI test.t
### Ở ĐÂU
### @ 1 = 1
### @ 2 = 'lê'
### @ 3 = '2009: 01: 01'

Chỉ định --dài dòng or -v hai lần để cũng hiển thị các loại dữ liệu và một số siêu dữ liệu cho mỗi
cột. Đầu ra sẽ chứa một chú thích bổ sung sau mỗi thay đổi cột:

vỏ> nhật ký mysqlbin -vv log_file
...
# lúc 218
# 080828 15:03:08 id máy chủ 1 end_log_pos 258 Write_rows: id bảng 17 cờ: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ =
fAS3SBcBAAAAKAAAAAAAIBAAAQABEAAAAAAAAAEAA // 8AQAAAAVhcHBsZQ ==
'/ *! * /;
### CHÈN VÀO test.t
### BỘ
### @ 1 = 1 / * INT meta = 0 nullable = 0 is_null = 0 * /
### @ 2 = 'apple' / * VARSTING(20) meta = 20 nullable = 0 is_null = 0 * /
### @ 3 = NULL / * VARSTING(20) meta = 0 nullable = 1 is_null = 1 * /
...
# lúc 302
# 080828 15:03:08 id máy chủ 1 end_log_pos 356 Update_rows: id bảng 17 cờ: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ =
fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAAAEAA //// AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/ *! * /;
### CẬP NHẬT test.t
### Ở ĐÂU
### @ 1 = 1 / * INT meta = 0 nullable = 0 is_null = 0 * /
### @ 2 = 'apple' / * VARSTING(20) meta = 20 nullable = 0 is_null = 0 * /
### @ 3 = NULL / * VARSTING(20) meta = 0 nullable = 1 is_null = 1 * /
### BỘ
### @ 1 = 1 / * INT meta = 0 nullable = 0 is_null = 0 * /
### @ 2 = 'lê' / * VARSTING(20) meta = 20 nullable = 0 is_null = 0 * /
### @ 3 = '2009: 01: 01' / * meta DATE = 0 nullable = 1 is_null = 0 * /
...
# lúc 400
# 080828 15:03:08 id máy chủ 1 end_log_pos 442 Delete_rows: id bảng 17 cờ: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ =
fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA // 4AQAAAARwZWFyIbIP
'/ *! * /;
### XÓA KHỎI test.t
### Ở ĐÂU
### @ 1 = 1 / * INT meta = 0 nullable = 0 is_null = 0 * /
### @ 2 = 'lê' / * VARSTING(20) meta = 20 nullable = 0 is_null = 0 * /
### @ 3 = '2009: 01: 01' / * meta DATE = 0 nullable = 1 is_null = 0 * /

Bạn có thể nói nhật ký mysqlbin để loại bỏ các câu lệnh BINLOG cho các sự kiện hàng bằng cách sử dụng
--base64-output = DECODE-ROWS Lựa chọn. Điều này tương tự như --base64-output = KHÔNG BAO GIỜ nhưng không
thoát với một lỗi nếu một sự kiện hàng được tìm thấy. Sự kết hợp của --base64-output = DECODE-ROWS
--dài dòng cung cấp một cách thuận tiện để chỉ xem các sự kiện hàng dưới dạng câu lệnh SQL:

vỏ> nhật ký mysqlbin -v --base64-output = DECODE-ROWS log_file
...
# lúc 218
# 080828 15:03:08 id máy chủ 1 end_log_pos 258 Write_rows: id bảng 17 cờ: STMT_END_F
### CHÈN VÀO test.t
### BỘ
### @ 1 = 1
### @ 2 = 'apple'
### @ 3 = NULL
...
# lúc 302
# 080828 15:03:08 id máy chủ 1 end_log_pos 356 Update_rows: id bảng 17 cờ: STMT_END_F
### CẬP NHẬT test.t
### Ở ĐÂU
### @ 1 = 1
### @ 2 = 'apple'
### @ 3 = NULL
### BỘ
### @ 1 = 1
### @ 2 = 'lê'
### @ 3 = '2009: 01: 01'
...
# lúc 400
# 080828 15:03:08 id máy chủ 1 end_log_pos 442 Delete_rows: id bảng 17 cờ: STMT_END_F
### XÓA KHỎI test.t
### Ở ĐÂU
### @ 1 = 1
### @ 2 = 'lê'
### @ 3 = '2009: 01: 01'

Chú thích
Bạn không nên chặn các câu lệnh BINLOG nếu bạn định thực thi lại nhật ký mysqlbin
đầu ra.

Các câu lệnh SQL được tạo ra bởi --dài dòng cho các sự kiện hàng dễ đọc hơn nhiều so với
các câu lệnh BINLOG tương ứng. Tuy nhiên, chúng không tương ứng chính xác với bản gốc
Các câu lệnh SQL đã tạo ra các sự kiện. Các giới hạn sau được áp dụng:

· Tên cột ban đầu bị mất và được thay thế bằng @N, Nơi N là một số cột.

· Thông tin bộ ký tự không có sẵn trong nhật ký nhị phân, điều này ảnh hưởng đến chuỗi
hiển thị cột:

· Không có sự phân biệt giữa chuỗi nhị phân và không nhị phân tương ứng
loại (BINARY và CHAR, VARBINARY và VARCHAR, BLOB và TEXT). Đầu ra sử dụng một
kiểu dữ liệu STRING cho các chuỗi có độ dài cố định và VARSTRING cho các chuỗi có độ dài thay đổi
dây.

· Đối với bộ ký tự nhiều byte, số byte tối đa cho mỗi ký tự không phải là
hiện diện trong nhật ký nhị phân, vì vậy độ dài cho các loại chuỗi được hiển thị theo byte
hơn là trong các ký tự. Ví dụ, STRING(4) sẽ được sử dụng làm kiểu dữ liệu
cho các giá trị từ một trong các loại cột này:

XE TĂNG(4) BỘ NHÂN VẬT latin1
XE TĂNG(2) BỘ NHÂN VẬT ucs2

· Do định dạng lưu trữ cho các sự kiện kiểu UPDATE_ROWS_EVENT, câu lệnh UPDATE
được hiển thị với mệnh đề WHERE trước mệnh đề SET.

Việc giải thích đúng các sự kiện hàng yêu cầu thông tin từ mô tả định dạng
sự kiện ở đầu nhật ký nhị phân. Tại vì nhật ký mysqlbin không biết trước
liệu phần còn lại của nhật ký có chứa các sự kiện hàng hay không, theo mặc định nó sẽ hiển thị định dạng
sự kiện mô tả bằng cách sử dụng câu lệnh BINLOG trong phần đầu của kết quả.

Nếu nhật ký nhị phân được biết là không chứa bất kỳ sự kiện nào yêu cầu câu lệnh BINLOG (điều đó
là, không có sự kiện hàng), --base64-output = KHÔNG BAO GIỜ tùy chọn có thể được sử dụng để ngăn chặn tiêu đề này
khỏi được viết.

SỬ DỤNG MYSQLBINLOG ĐẾN TRỞ LẠI UP nhị phân LOG CÁC TẬP TIN


Theo mặc định, nhật ký mysqlbin đọc các tệp nhật ký nhị phân và hiển thị nội dung của chúng ở định dạng văn bản.
Điều này cho phép bạn kiểm tra các sự kiện trong tệp dễ dàng hơn và thực thi lại chúng
(ví dụ: bằng cách sử dụng đầu ra làm đầu vào cho mysql). nhật ký mysqlbin có thể đọc các tệp nhật ký
trực tiếp từ hệ thống tệp cục bộ hoặc với --read-từ-máy chủ từ xa tùy chọn, nó có thể
kết nối với máy chủ và yêu cầu nội dung nhật ký nhị phân từ máy chủ đó. nhật ký mysqlbin viết
đầu ra văn bản thành đầu ra tiêu chuẩn của nó hoặc đến tệp được đặt tên là giá trị của
--result-file =tên_tệp tùy chọn nếu tùy chọn đó được đưa ra.

Kể từ MySQL 5.6, nhật ký mysqlbin có thể đọc các tệp nhật ký nhị phân và ghi các tệp mới chứa
cùng một nội dung — nghĩa là ở định dạng nhị phân chứ không phải là định dạng văn bản. Khả năng này cho phép
bạn có thể dễ dàng sao lưu nhật ký nhị phân ở định dạng ban đầu của nó. nhật ký mysqlbin có thể tạo ra một động tĩnh
sao lưu, sao lưu một tập hợp các tệp nhật ký và dừng khi kết thúc tệp cuối cùng
đạt. Nó cũng có thể tạo bản sao lưu liên tục (“trực tiếp”), duy trì kết nối với máy chủ
khi nó đến cuối tệp nhật ký cuối cùng và tiếp tục sao chép các sự kiện mới như chúng vốn có
được tạo ra. Trong hoạt động sao lưu liên tục, nhật ký mysqlbin chạy cho đến khi kết nối kết thúc (đối với
ví dụ, khi máy chủ thoát) hoặc nhật ký mysqlbin buộc phải chấm dứt. Khi kết nối
kết thúc, nhật ký mysqlbin không đợi và thử lại kết nối, không giống như một bản sao nô lệ
người phục vụ. Để tiếp tục sao lưu trực tiếp sau khi máy chủ đã được khởi động lại, bạn cũng phải
khởi động lại nhật ký mysqlbin.

Sao lưu nhật ký nhị phân yêu cầu bạn gọi nhật ký mysqlbin với hai tùy chọn tối thiểu:

· Các --read-từ-máy chủ từ xa (Hoặc -R) tùy chọn cho biết nhật ký mysqlbin kết nối với máy chủ
và yêu cầu nhật ký nhị phân của nó. (Điều này tương tự như một máy chủ sao chép nô lệ đang kết nối
đến máy chủ chính của nó.)

· Các --thô tùy chọn nói với nhật ký mysqlbin để ghi đầu ra thô (nhị phân), không phải đầu ra văn bản.

Cùng với --read-từ-máy chủ từ xa, thường chỉ định các tùy chọn khác: --tổ chức
cho biết máy chủ đang chạy ở đâu và bạn cũng có thể cần chỉ định các tùy chọn kết nối
như là --người sử dụng--mật khẩu mở khóa.

Một số tùy chọn khác hữu ích cùng với --thô:

· - dừng lại-không bao giờ: Giữ kết nối với máy chủ sau khi đến cuối tệp nhật ký cuối cùng
và tiếp tục đọc các sự kiện mới.

· --stop-never-slave-server-id =id: ID máy chủ nhật ký mysqlbin báo cáo cho máy chủ
khi nào - dừng lại-không bao giờ Được sử dụng. Giá trị mặc định là 65535. Giá trị này có thể được sử dụng để tránh xung đột
với ID của một máy chủ nô lệ hoặc một máy chủ khác nhật ký mysqlbin tiến trình. Xem phần có tên
“ĐẶT CỤ THỂ ID MÁY CHỦ MYSQLBINLOG”.

· --tập tin kết quả: Tiền tố cho tên tệp đầu ra, như được mô tả sau.

Để sao lưu các tệp nhật ký nhị phân của máy chủ với nhật ký mysqlbin, bạn phải chỉ định tên tệp
thực sự tồn tại trên máy chủ. Nếu bạn không biết tên, hãy kết nối với máy chủ và sử dụng
câu lệnh SHOW BINARY LOGS để xem các tên hiện tại. Giả sử rằng câu lệnh
tạo ra đầu ra này:

mysql> HIỂN THỊ nhị phân HÀNG NHÁI;
+ --------------- + ----------- +
| Tên_đăng nhập | Kích thước tệp |
+ --------------- + ----------- +
| binlog.000130 | 27459 |
| binlog.000131 | 13719 |
| binlog.000132 | 43268 |
+ --------------- + ----------- +

Với thông tin đó, bạn có thể sử dụng nhật ký mysqlbin để sao lưu nhật ký nhị phân vào hiện tại
thư mục như sau (nhập mỗi lệnh trên một dòng):

· Để tạo một bản sao lưu tĩnh của binlog.000130 thông qua binlog.000132, hãy sử dụng một trong hai cách sau
lệnh:

mysqlbinlog --read-from-remote-server --host =tên máy chủ --thô
binlog.000130 binlog.000131 binlog.000132
mysqlbinlog --read-from-remote-server --host =tên máy chủ --thô
--to-cuối-log binlog.000130

Lệnh đầu tiên chỉ định rõ ràng mọi tên tệp. Tên thứ hai chỉ
tệp đầu tiên và sử dụng - to-last-log để đọc hết phần cuối cùng. Một sự khác biệt giữa những
là nếu máy chủ mở binlog.000133 trước đó nhật ký mysqlbin
đến cuối binlog.000132, lệnh đầu tiên sẽ không đọc nó, nhưng lệnh thứ hai
lệnh sẽ.

· Để tạo một bản sao lưu trực tiếp trong đó nhật ký mysqlbin bắt đầu với binlog.000130 để sao chép hiện có
tệp nhật ký, sau đó vẫn được kết nối để sao chép các sự kiện mới khi máy chủ tạo chúng:

mysqlbinlog --read-from-remote-server --host =tên máy chủ --thô
--stop-không bao giờ binlog.000130

Với - dừng lại-không bao giờ, nó không cần thiết phải chỉ định - to-last-log đọc đến cuối cùng
tệp nhật ký vì tùy chọn đó được ngụ ý.
Đặt tên tệp đầu ra.PP Không có --thô, nhật ký mysqlbin tạo ra đầu ra văn bản và
--tập tin kết quả tùy chọn, nếu được cung cấp, chỉ định tên của tệp duy nhất mà tất cả đầu ra
được viết. Với --thô, nhật ký mysqlbin ghi một tệp đầu ra nhị phân cho mỗi tệp nhật ký
được chuyển từ máy chủ. Theo mặc định, nhật ký mysqlbin ghi các tập tin vào hiện tại
thư mục có cùng tên với các tệp nhật ký gốc. Để sửa đổi tên tệp đầu ra,
sử dụng --tập tin kết quả Lựa chọn. Kết hợp với --thô, Các --tập tin kết quả giá trị tùy chọn là
được coi như một tiền tố sửa đổi tên tệp đầu ra.

Giả sử rằng một máy chủ hiện có các tệp nhật ký nhị phân có tên binlog.000999 trở lên. nếu bạn
sử dụng nhật ký mysqlbin --thô để sao lưu các tệp, --tập tin kết quả tùy chọn tạo ra tệp đầu ra
tên như trong bảng sau. Bạn có thể ghi các tệp vào một thư mục cụ thể bằng cách
bắt đầu --tập tin kết quả giá trị với đường dẫn thư mục. Nếu --tập tin kết quả giá trị
chỉ bao gồm một tên thư mục, giá trị phải kết thúc bằng dấu phân tách tên đường dẫn
tính cách. Các tệp đầu ra được ghi đè nếu chúng tồn tại.

┌─────────────────────── ─┐
--tập tin kết quả Tùy chọn │ Đầu ra Tập tin tên
├─────────────────────── ─┤
--result-file = x │ xbinlog.000999 trở lên │
├─────────────────────── ─┤
--result-file =/ tmp / │ /tmp/binlog.000999 trở lên │
├─────────────────────── ─┤
--result-file = / tmp / x │ /tmp/xbinlog.000999 trở lên │
└─────────────────────── ─┘
Ví dụ: mysqldump + mysqlbinlog để Sao lưu và Khôi phục.PP Ví dụ sau mô tả
một kịch bản đơn giản chỉ ra cách sử dụng mysqldumpnhật ký mysqlbin cùng nhau để sao lưu một
dữ liệu của máy chủ và nhật ký nhị phân và cách sử dụng bản sao lưu để khôi phục máy chủ nếu mất dữ liệu
xảy ra. Ví dụ giả định rằng máy chủ đang chạy trên máy chủ lưu trữ tên máy chủ và nó đầu tiên
tệp nhật ký nhị phân được đặt tên là binlog.000999. Nhập mỗi lệnh trên một dòng.

Sử dụng nhật ký mysqlbin để tạo một bản sao lưu liên tục của nhật ký nhị phân:

mysqlbinlog --read-from-remote-server --host =tên máy chủ --thô
--stop-không bao giờ binlog.000999

Sử dụng mysqldump để tạo tệp kết xuất dưới dạng ảnh chụp nhanh dữ liệu của máy chủ. Sử dụng
- cơ sở dữ liệu tất cả, --sự kiện- quy trình để sao lưu tất cả dữ liệu và --master-data = 2 đến
bao gồm các tọa độ nhật ký nhị phân hiện tại trong tệp kết xuất.

mysqldump --host =tên máy chủ --all-databases --events --routines --master-data = 2> tập tin dump

Thực hiện mysqldump lệnh định kỳ để tạo các ảnh chụp nhanh mới hơn như mong muốn.

Nếu xảy ra mất dữ liệu (ví dụ: nếu máy chủ gặp sự cố), hãy sử dụng tệp kết xuất gần đây nhất để
khôi phục dữ liệu:

mysql --host =tên máy chủ -u root -p tập tin dump

Sau đó, sử dụng bản sao lưu nhật ký nhị phân để thực thi lại các sự kiện đã được viết sau
tọa độ được liệt kê trong tệp kết xuất. Giả sử rằng các tọa độ trong tệp trông giống như
điều này:

- ĐỔI MASTER THÀNH MASTER_LOG_FILE = 'binlog.001002', MASTER_LOG_POS = 27284;

Nếu tệp nhật ký được sao lưu gần đây nhất có tên binlog.001004, hãy thực thi lại các sự kiện nhật ký
như thế này:

mysqlbinlog --start-position = 27284 binlog.001002 binlog.001003 binlog.001004
| mysql --host =tên máy chủ -u gốc -p

Bạn có thể thấy dễ dàng hơn khi sao chép các tệp sao lưu (tệp kết xuất và tệp nhật ký nhị phân) vào
máy chủ lưu trữ để giúp thực hiện thao tác khôi phục dễ dàng hơn hoặc nếu MySQL không cho phép
truy cập root từ xa.

ĐẶC ĐIỂM KỸ THUẬT CÁC MYSQLBINLOG MÁY CHỦ ID


Khi được gọi với --read-từ-máy chủ từ xa Tùy chọn, nhật ký mysqlbin kết nối với MySQL
máy chủ, chỉ định ID máy chủ để nhận dạng chính nó và yêu cầu tệp nhật ký nhị phân từ
người phục vụ. Bạn có thể dùng nhật ký mysqlbin để yêu cầu tệp nhật ký từ máy chủ theo một số cách:

· Chỉ định một tập hợp các tệp được đặt tên rõ ràng: Đối với mỗi tệp, nhật ký mysqlbin kết nối và
đưa ra lệnh kết xuất Binlog. Máy chủ gửi tệp và ngắt kết nối. Chỉ có một
kết nối mỗi tệp.

· Chỉ định tệp bắt đầu và - to-last-log: nhật ký mysqlbin kết nối và phát hành một Binlog
lệnh kết xuất cho tất cả các tệp. Máy chủ gửi tất cả các tệp và ngắt kết nối.

· Chỉ định tệp bắt đầu và - dừng lại-không bao giờ (ngụ ý - to-last-log): nhật ký mysqlbin
kết nối và đưa ra lệnh kết xuất Binlog cho tất cả các tệp. Máy chủ gửi tất cả các tệp,
nhưng không ngắt kết nối sau khi gửi lần cuối cùng.

Với --read-từ-máy chủ từ xa chỉ có, nhật ký mysqlbin kết nối bằng cách sử dụng ID máy chủ là 0,
yêu cầu máy chủ ngắt kết nối sau khi gửi tệp nhật ký được yêu cầu cuối cùng.

Với --read-từ-máy chủ từ xa- dừng lại-không bao giờ, nhật ký mysqlbin kết nối bằng cách sử dụng một số khác
ID máy chủ, do đó máy chủ không ngắt kết nối sau khi gửi tệp nhật ký cuối cùng. Máy chủ
ID là 65535 theo mặc định, nhưng điều này có thể được thay đổi bằng --stop-never-nô lệ-máy chủ-id.

Do đó, đối với hai cách yêu cầu tệp đầu tiên, máy chủ ngắt kết nối vì
nhật ký mysqlbin chỉ định ID máy chủ là 0. Nó không ngắt kết nối nếu - dừng lại-không bao giờ được đưa ra
bởi vì nhật ký mysqlbin chỉ định một ID máy chủ khác không.

BẢN QUYỀN


Bản quyền © 1997, 2014, Oracle và / hoặc các chi nhánh của Oracle. Đã đăng ký Bản quyền.

Tài liệu này là phần mềm miễn phí; bạn có thể phân phối lại nó và / hoặc sửa đổi nó chỉ trong
các điều khoản của Giấy phép Công cộng GNU do Tổ chức Phần mềm Tự do xuất bản;
phiên bản 2 của Giấy phép.

Tài liệu này được phân phối với hy vọng rằng nó sẽ hữu ích, nhưng KHÔNG CÓ BẤT KỲ
SỰ BẢO ĐẢM; thậm chí không có bảo đảm ngụ ý về KHẢ NĂNG LÊN LỚN hoặc SỰ PHÙ HỢP VỚI NGƯỜI THAM GIA
MỤC ĐÍCH. Xem Giấy phép Công cộng GNU để biết thêm chi tiết.

Bạn đáng lẽ đã nhận được một bản sao của Giấy phép Công cộng GNU cùng với chương trình;
nếu không, hãy viết thư cho Free Software Foundation, Inc., 51 Franklin Street, Tầng Năm,
Boston, MA 02110-1301 Hoa Kỳ hoặc xem http://www.gnu.org/licenses/.

GHI CHÚ


1. MySQL Internals: Nhật ký nhị phân
http://dev.mysql.com/doc/internals/en/binary-log.html

Sử dụng mysqlbinlog trực tuyến bằng các dịch vụ onworks.net



Các chương trình trực tuyến Linux & Windows mới nhất