Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

pt-archiverp - Trực tuyến trên Đám mây

Chạy pt-archiverp trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh pt-archiverp có thể 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 mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


pt-archiver - Lưu trữ các hàng từ một bảng MySQL vào một bảng khác hoặc một tệp.

SYNOPSIS


Cách sử dụng: pt-archiver [OPTIONS] - nguồn DSN - ở đâu WHERE

pt-archiver gặm các bản ghi từ bảng MySQL. Các đối số --source và --dest sử dụng DSN
cú pháp; nếu COPY là có, --dest mặc định thành giá trị của khóa từ --source.

Ví dụ:

Lưu trữ tất cả các hàng từ oltp_server sang olap_server và vào một tệp:

pt-archiver --source h = oltp_server, D = test, t = tbl --dest h = olap_server \
--file '/var/log/archive/%Y-%m-%d-%D.%t' \
- trong đó "1 = 1" - giới hạn 1000 - mỗi phần

Xóa (xóa) các hàng mồ côi khỏi bảng con:

pt-archiver --source h = host, D = db, t = child --purge \
- ở đâu 'KHÔNG TỒN TẠI (CHỌN * TỪ cha mẹ TẠI ĐÂU col = child.col)'

RỦI RO


Bộ công cụ Percona đã hoàn thiện, được chứng minh trong thế giới thực và được thử nghiệm tốt, nhưng tất cả cơ sở dữ liệu
các công cụ có thể gây rủi ro cho hệ thống và máy chủ cơ sở dữ liệu. Trước khi sử dụng công cụ này,
xin vui lòng:

· Đọc tài liệu của công cụ

· Xem lại "BUGS" đã biết của công cụ

· Kiểm tra công cụ trên một máy chủ không sản xuất

· Sao lưu máy chủ sản xuất của bạn và xác minh các bản sao lưu

MÔ TẢ


pt-archiver là công cụ tôi sử dụng để lưu trữ các bảng như được mô tả trong
<http://tinyurl.com/mysql-archiving>. Mục tiêu là một công việc có tác động thấp, chỉ hướng tới
tách dữ liệu cũ ra khỏi bảng mà không ảnh hưởng nhiều đến các truy vấn OLTP. Bạn có thể chèn
dữ liệu vào một bảng khác, không cần phải nằm trên cùng một máy chủ. Bạn cũng có thể viết nó vào một
tệp ở định dạng phù hợp với THÔNG TIN DỮ LIỆU TẢI. Hoặc bạn có thể không làm, trong trường hợp đó
chỉ là một DELETE gia tăng.

pt-archiver có thể mở rộng thông qua cơ chế plugin. Bạn có thể chèn mã của riêng mình để thêm
logic lưu trữ nâng cao có thể hữu ích cho việc lưu trữ dữ liệu phụ thuộc, áp dụng
các quy tắc nghiệp vụ phức tạp hoặc xây dựng kho dữ liệu trong quá trình lưu trữ.

Bạn cần phải chọn các giá trị một cách cẩn thận cho một số tùy chọn. Điều quan trọng nhất là "--limit",
"--retries" và "--txn-size".

Chiến lược là tìm (các) hàng đầu tiên, sau đó quét một số chỉ mục chuyển tiếp để tìm thêm
hàng hiệu quả. Mỗi truy vấn tiếp theo không được quét toàn bộ bảng; nó nên tìm kiếm
vào chỉ mục, sau đó quét cho đến khi tìm thấy nhiều hàng có thể lưu trữ hơn. Chỉ định chỉ mục với
phần 'i' của đối số "--source" có thể rất quan trọng cho điều này; sử dụng "--dry-run" để
kiểm tra các truy vấn đã tạo và đảm bảo GIẢI THÍCH chúng để xem liệu chúng có hiệu quả không
(hầu hết thời gian bạn có thể muốn quét khóa CHÍNH, là khóa mặc định). Thậm chí
tốt hơn, hãy kiểm tra sự khác biệt trong bộ đếm trạng thái của Trình xử lý trước và sau khi chạy
và đảm bảo rằng nó không quét toàn bộ bảng mọi truy vấn.

Bạn có thể vô hiệu hóa một phần hoặc toàn bộ tính năng tối ưu hóa tìm kiếm rồi quét bằng "--no-ascend"
và "--scend-first". Đôi khi điều này có thể hiệu quả hơn đối với các khóa nhiều cột. Thì là ở
biết rằng pt-archiver được xây dựng để bắt đầu từ đầu chỉ mục mà nó chọn và quét
nó chỉ chuyển tiếp. Điều này có thể dẫn đến việc quét bảng dài nếu bạn đang cố gắng gặm nhấm từ
cuối bảng bởi một chỉ mục khác với chỉ mục mà nó thích. Xem "--source" và đọc
tài liệu về phần "i" nếu điều này áp dụng cho bạn.

percona XtraDB cụm


pt-archiver hoạt động với Percona XtraDB Cluster (PXC) 5.5.28-23.7 và mới hơn, nhưng có
ba hạn chế bạn nên xem xét trước khi lưu trữ trên một cụm:

Lỗi khi cam kết
pt-archiver không kiểm tra lỗi khi nó thực hiện các giao dịch. Các cam kết trên PXC có thể
thất bại, nhưng công cụ vẫn chưa kiểm tra hoặc thử lại giao dịch khi điều này xảy ra.
Nếu nó xảy ra, công cụ sẽ chết.

Bảng MyISAM
Lưu trữ bảng MyISAM hoạt động, nhưng hỗ trợ MyISAM trong PXC vẫn đang thử nghiệm tại
thời gian của bản phát hành này. Có một số lỗi đã biết với bảng PXC, MyISAM và
Cột "AUTO_INCREMENT". Do đó, bạn phải đảm bảo rằng việc lưu trữ sẽ không trực tiếp
hoặc gián tiếp dẫn đến việc sử dụng các giá trị "AUTO_INCREMENT" mặc định cho bảng MyISAM.
Ví dụ: điều này xảy ra với "--dest" nếu "--columns" được sử dụng và
Cột "AUTO_INCREMENT" không được bao gồm. Công cụ không kiểm tra điều này!

Tùy chọn không theo cụm
Một số tùy chọn có thể hoạt động hoặc không. Ví dụ: nếu một nút cụm cũng không phải là
nô lệ, thì "--check-slave-lag" không hoạt động. Và vì bảng PXC thường
InnoDB, nhưng InnoDB không hỗ trợ "INSERT DELAYED", thì "--delayed-insert" không hỗ trợ
công việc. Các tùy chọn khác cũng có thể không hoạt động, nhưng công cụ không kiểm tra chúng, do đó
bạn nên kiểm tra lưu trữ trên một cụm kiểm tra trước khi lưu trữ trên cụm thực của bạn.

OUTPUT


Nếu bạn chỉ định "--progress", đầu ra là một hàng tiêu đề, cộng với đầu ra trạng thái tại các khoảng thời gian.
Mỗi hàng trong đầu ra trạng thái liệt kê ngày và giờ hiện tại, bao nhiêu giây pt-
trình lưu trữ đã được chạy và nó đã lưu trữ bao nhiêu hàng.

Nếu bạn chỉ định "--st Statistics", "pt-archiver" sẽ xuất ra thời gian và thông tin khác để trợ giúp
bạn xác định phần nào trong quá trình lưu trữ của mình mất nhiều thời gian nhất.

XỬ LÝ LỖI


pt-archiver cố gắng bắt tín hiệu và thoát ra một cách duyên dáng; ví dụ, nếu bạn gửi nó
SIGTERM (Ctrl-C trên hệ thống UNIX-ish), nó sẽ bắt tín hiệu, in thông báo về
tín hiệu và thoát khá bình thường. Nó sẽ không thực thi "--analyze" hoặc "--optimize",
bởi vì những việc này có thể mất nhiều thời gian để hoàn thành. Nó sẽ chạy tất cả các mã khác một cách bình thường,
bao gồm cả việc gọi điện sau khi hoàn thành() trên bất kỳ plugin nào (xem "EXTENDING").

Nói cách khác, một tín hiệu, nếu bị bắt, sẽ thoát ra khỏi vòng lặp lưu trữ chính và bỏ qua
tối ưu hóa / phân tích.

LỰA CHỌN


Chỉ định ít nhất một trong các "--dest", "--file" hoặc "--purge".

"--ignore" và "--replace" loại trừ lẫn nhau.

"--txn-size" và "--commit-each" loại trừ lẫn nhau.

"--low-priority-insert" và "--delayed-insert" loại trừ lẫn nhau.

"--share-lock" và "--for-update" loại trừ lẫn nhau.

"--analyze" và "--optimize" loại trừ lẫn nhau.

"--no-ascend" và "--no-delete" loại trừ lẫn nhau.

Giá trị DSN trong "--dest" mặc định thành giá trị từ "--source" nếu COPY là có.

- phân tích
loại: chuỗi

Sau đó, chạy ANALYZE TABLE trên "--source" và / hoặc "--dest".

Chạy BẢNG PHÂN TÍCH sau khi kết thúc. Đối số là một chuỗi tùy ý. Nếu nó
chứa ký tự 's', nguồn sẽ được phân tích. Nếu nó chứa 'd',
điểm đến sẽ được phân tích. Bạn có thể chỉ định một trong hai hoặc cả hai. Ví dụ,
sau đây sẽ phân tích cả hai:

--analyze = ds

Nhìn thấyhttp://dev.mysql.com/doc/en/analyze-table.html> để biết chi tiết về BẢNG PHÂN TÍCH.

--trên đầu tiên
Tăng chỉ cột đầu tiên của chỉ mục.

Nếu bạn muốn sử dụng tối ưu hóa chỉ mục tăng dần (xem "--no-ascend"), nhưng không
muốn chịu chi phí tăng dần một chỉ số nhiều cột lớn, bạn có thể sử dụng
tùy chọn để yêu cầu pt-archiver chỉ tăng lên cột ngoài cùng bên trái của chỉ mục. Cái này có thể
cung cấp mức tăng hiệu suất đáng kể thay vì hoàn toàn không tăng chỉ số, trong khi
tránh chi phí tăng dần toàn bộ chỉ số.

Xem phần "EXTENDING" để thảo luận về cách ứng dụng này tương tác với các plugin.

--hỏi-vượt qua
Nhắc nhập mật khẩu khi kết nối với MySQL.

--đệm
Đầu ra bộ đệm thành "--file" và tuôn ra khi cam kết.

Vô hiệu hóa tính năng tự động gộp vào "--file" và chỉ chuyển "--file" vào đĩa khi có một giao dịch
cam kết. Điều này thường có nghĩa là tệp được hệ điều hành chặn, vì vậy
cũng có thể có một số ẩn vào đĩa giữa các lần cam kết. Mặc định là
tuôn "--file" vào đĩa sau mỗi hàng.

Nguy hiểm là một sự cố có thể làm mất dữ liệu.

Mức tăng hiệu suất mà tôi đã thấy khi sử dụng "--buffer" là khoảng 5 đến 15 phần trăm.
Số dặm của bạn có thể thay đổi.

--Xóa hàng loạt
Xóa từng đoạn bằng một câu lệnh duy nhất (ngụ ý "--commit-each").

Xóa hàng loạt từng đoạn hàng chỉ với một câu lệnh "DELETE". Tuyên bố
xóa mọi hàng giữa hàng đầu tiên và hàng cuối cùng của đoạn, bao gồm cả. Nó ngụ ý
"--commit-each", vì sẽ là một ý tưởng tồi nếu "CHÈN" từng hàng một và
cam kết chúng trước "DELETE" hàng loạt.

Phương pháp thông thường là xóa mọi hàng bằng khóa chính của nó. Xóa hàng loạt có thể là một
nhanh hơn rất nhiều. Họ Ngoài ra Might không be nhanh hơn nếu bạn có một mệnh đề phức tạp "WHERE".

Tùy chọn này hoàn toàn xác định tất cả quá trình xử lý "XÓA" cho đến khi phân đoạn các hàng là
hoàn thành. Nếu bạn có một plugin trên nguồn, thì phương thức "before_delete" của nó sẽ không
gọi là. Thay vào đó, phương thức "before_bulk_delete" của nó được gọi sau.

CẢNH BÁO: nếu bạn có một plugin trên nguồn mà đôi khi không trả về true từ
"is_archivable ()", bạn chỉ nên sử dụng tùy chọn này nếu bạn hiểu chức năng của nó. Nếu như
plugin hướng dẫn "pt-archiver" không lưu trữ một hàng, nó sẽ vẫn bị xóa bởi
xóa hàng loạt!

- [không] giới hạn xóa hàng loạt
mặc định: có

Thêm "--limit" vào câu lệnh "--bulk-delete".

Đây là một tùy chọn nâng cao và bạn không nên tắt nó trừ khi bạn biết mình là gì
làm và tại sao! Theo mặc định, "--bulk-delete" thêm mệnh đề "--limit" vào hàng loạt
xóa câu lệnh SQL. Trong một số trường hợp nhất định, điều khoản này có thể được bỏ qua bằng cách chỉ định
"- không-số lượng-lớn-xóa-giới hạn". "--limit" vẫn phải được chỉ định.

--bulk-chèn
Chèn từng đoạn với THÔNG TIN DỮ LIỆU TẢI (ngụ ý "--bulk-delete" "--commit-each").

Chèn từng đoạn hàng với "TẢI THÔNG TIN ĐỊA PHƯƠNG DỮ LIỆU". Điều này có thể nhanh hơn nhiều so với
chèn một hàng cùng một lúc với câu lệnh "INSERT". Nó được thực hiện bằng cách tạo
tệp tạm thời cho từng đoạn hàng và ghi các hàng vào tệp này thay vì
chèn chúng. Khi phân đoạn hoàn tất, nó sẽ tải lên các hàng.

Để bảo vệ sự an toàn cho dữ liệu của bạn, tùy chọn này buộc phải sử dụng tính năng xóa hàng loạt. Nó
sẽ không an toàn nếu xóa từng hàng khi nó được tìm thấy, trước khi chèn các hàng vào
điểm đến đầu tiên. Buộc xóa hàng loạt đảm bảo rằng quá trình xóa sẽ đợi cho đến khi
chèn thành công.

Các tùy chọn "--low-priority-insert", "--replace" và "--ignore" hoạt động với điều này
nhưng "--delayed-insert" thì không.

Nếu "LOAD DATA LOCAL INFILE" đưa ra lỗi trong các dòng của "Lệnh được sử dụng không
được phép với phiên bản MySQL này ", hãy tham khảo tài liệu cho tùy chọn" L "DSN.

--bộ ký tự
dạng rút gọn: -A; loại: chuỗi

Bộ ký tự mặc định. Nếu giá trị là utf8, hãy đặt mã bin của Perl trên STDOUT thành utf8,
chuyển tùy chọn mysql_enable_utf8 tới DBD :: mysql và chạy SET NAMES UTF8 sau
kết nối với MySQL. Bất kỳ giá trị nào khác đặt mã binmode trên STDOUT mà không có lớp utf8,
và chạy SET NAMES sau khi kết nối với MySQL.

Lưu ý rằng chỉ các bộ ký tự được biết đến bởi MySQL mới được công nhận; Vì vậy, ví dụ: "UTF8" sẽ
hoạt động, nhưng "UTF-8" sẽ không.

Xem thêm "- [không] bộ ký tự kiểm tra".

- [không] bộ ký tự kiểm tra
mặc định: có

Đảm bảo kết nối và bộ ký tự bảng giống nhau. Vô hiệu hóa kiểm tra này có thể
khiến văn bản bị chuyển đổi sai từ bộ ký tự này sang bộ ký tự khác (thường là từ
utf8 đến latin1) có thể gây mất dữ liệu hoặc mất dữ liệu. Vô hiệu hóa kiểm tra này có thể
hữu ích hoặc cần thiết khi dự định chuyển đổi bộ ký tự.

- [không] cột kiểm tra
mặc định: có

Đảm bảo "--source" và "--dest" có cùng cột.

Được bật theo mặc định; khiến pt-archiver kiểm tra xem bảng nguồn và bảng đích
có các cột giống nhau. Nó không kiểm tra thứ tự cột, kiểu dữ liệu, v.v. Nó chỉ
kiểm tra xem tất cả các cột trong nguồn có tồn tại trong đích hay không và ngược lại. Nếu như
có bất kỳ sự khác biệt nào, pt-archiver sẽ thoát ra với lỗi.

Để tắt kiểm tra này, hãy chỉ định - không kiểm tra cột.

- khoảng thời gian kiểm tra
loại: thời gian; mặc định: 1 giây

Nếu "--check-slave-lag" được cung cấp, điều này xác định thời gian công cụ tạm dừng mỗi
thời gian nó phát hiện ra rằng một nô lệ đang bị chậm lại.
Việc kiểm tra này được thực hiện cứ sau 100 hàng.

--check-nô lệ-lag
type: string; có thể lặp lại: có

Tạm dừng lưu trữ cho đến khi độ trễ nô lệ của DSN được chỉ định nhỏ hơn "--max-lag". Cái này
tùy chọn có thể được chỉ định nhiều lần để kiểm tra nhiều hơn một nô lệ.

--cột
dạng rút gọn: -c; kiểu: mảng

Danh sách các cột được phân tách bằng dấu phẩy để lưu trữ.

Chỉ định danh sách các cột được phân tách bằng dấu phẩy để tìm nạp, ghi vào tệp và chèn vào
bảng đích. Nếu được chỉ định, pt-archiver bỏ qua các cột khác trừ khi nó
cần thêm chúng vào câu lệnh "SELECT" để tăng chỉ mục hoặc xóa các hàng.
Nó tìm nạp và sử dụng các cột bổ sung này trong nội bộ, nhưng không ghi chúng vào
tệp hoặc đến bảng đích. Nó làm chuyển chúng đến các plugin.

Xem thêm "--primary-key-only".

--commit-mỗi
Cam kết từng tập hợp các hàng được tìm nạp và lưu trữ (vô hiệu hóa "--txn-size").

Cam kết các giao dịch và gửi "--file" sau khi mỗi tập hợp hàng đã được lưu trữ,
trước khi tìm nạp nhóm hàng tiếp theo và trước khi chuyển sang chế độ ngủ nếu "--sleep" được chỉ định.
Tắt "--txn-size"; sử dụng "--limit" để kiểm soát quy mô giao dịch với
"--commit-each".

Tùy chọn này hữu ích như một phím tắt để làm cho "--limit" và "--txn-size" có cùng giá trị,
nhưng quan trọng hơn, nó tránh được các giao dịch đang mở trong khi tìm kiếm thêm
hàng. Ví dụ: hãy tưởng tượng bạn đang lưu trữ các hàng cũ từ đầu
bảng lớn, với "--limit" 1000 và "--txn-size" 1000. Sau một thời gian tìm kiếm
và lưu trữ 1000 hàng cùng một lúc, pt-archiver tìm 999 hàng và kho lưu trữ cuối cùng
chúng, sau đó thực hiện SELECT tiếp theo để tìm thêm hàng. Thao tác này sẽ quét phần còn lại của
bảng, nhưng không bao giờ tìm thấy bất kỳ hàng nào nữa. Nó đã tổ chức một giao dịch mở trong một thời gian rất dài
thời gian, chỉ để xác định nó đã kết thúc dù sao. Bạn có thể sử dụng "--commit-each" để tránh
cái này.

--config
kiểu: Mảng

Đọc danh sách các tệp cấu hình được phân tách bằng dấu phẩy này; nếu được chỉ định, đây phải là lần đầu tiên
tùy chọn trên dòng lệnh.

- cơ sở dữ liệu
dạng rút gọn: -D; loại: chuỗi

Kết nối với cơ sở dữ liệu này.

--dayed-insert
Thêm công cụ sửa đổi DELAYED vào câu lệnh INSERT.

Thêm công cụ sửa đổi DELAYED vào câu lệnh INSERT hoặc REPLACE. Nhìn thấy
<http://dev.mysql.com/doc/en/insert.html> để biết chi tiết.

--đích
loại: DSN

DSN chỉ định bảng để lưu trữ vào.

Mục này chỉ định một bảng mà pt-archiver sẽ chèn các hàng được lưu trữ từ đó
"--nguồn". Nó sử dụng cùng một định dạng đối số key = val như "--source". Thiếu nhiều nhất
các giá trị mặc định thành các giá trị giống như "--source", vì vậy bạn không phải lặp lại các tùy chọn
giống nhau trong "--source" và "--dest". Sử dụng tùy chọn "--help" để xem
các giá trị được sao chép từ "--source".

CẢNH BÁO: Sử dụng tùy chọn tệp tùy chọn mặc định (F) DSN xác định ổ cắm cho
"--source" khiến pt-archiver kết nối với "--dest" bằng cách sử dụng ổ cắm đó trừ khi ổ cắm khác
socket cho "--dest" được chỉ định. Điều này có nghĩa là pt-archiver có thể kết nối không chính xác
thành "--source" khi nó kết nối với "--dest". Ví dụ:

- nguồn F = host1.cnf, D = db, t = tbl --dest h = host2

Khi pt-archiver kết nối với "--dest", host2, nó sẽ kết nối qua "--source",
host1, ổ cắm được xác định trong host1.cnf.

- chạy thử
In các truy vấn và thoát ra mà không cần làm gì cả.

Khiến pt-archiver thoát ra sau khi in tên tệp và câu lệnh SQL mà nó sẽ sử dụng.

--tập tin
loại: chuỗi

Tệp để lưu trữ, với ĐỊNH DẠNG NGÀY THÁNG()-như định dạng.

Tên tệp để ghi các hàng đã lưu trữ vào. Một tập hợp con của MySQL ĐỊNH DẠNG NGÀY THÁNG() định dạng
cho phép mã trong tên tệp, như sau:

% d Ngày trong tháng, số (01..31)
% Giờ giờ (00..23)
% i Phút, số (00..59)
% m Tháng, số (01..12)
% s Giây (00..59)
% Y Năm, số, bốn chữ số

Bạn cũng có thể sử dụng các mã định dạng bổ sung sau:

% D Tên cơ sở dữ liệu
% t Tên bảng

Ví dụ:

--file '/var/log/archive/%Y-%m-%d-%D.%t'

Nội dung của tệp có cùng định dạng được CHỌN VÀO OUTFILE sử dụng, như được lập thành tài liệu
trong hướng dẫn sử dụng MySQL: các hàng được kết thúc bằng dòng mới, các cột được kết thúc bằng tab, NULL
các ký tự được đại diện bởi \ N và các ký tự đặc biệt được thoát bởi \. Điều này cho phép
bạn tải lại một tệp với cài đặt mặc định của LOAD DATA INFILE.

Nếu bạn muốn có tiêu đề cột ở đầu tệp, hãy xem "--header". Tệp tự động
tuôn ra theo mặc định; xem "--buffer".

--để cập nhật
Thêm công cụ sửa đổi FOR UPDATE vào câu lệnh SELECT.

Để biết chi tiết, hãy xemhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

--tiêu đề
In tiêu đề cột ở đầu "--file".

Viết tên cột dưới dạng dòng đầu tiên trong tệp được cung cấp bởi "--file". Nếu tệp
tồn tại, không viết tiêu đề; điều này giữ cho tệp có thể tải được với TẢI THÔNG TIN DỮ LIỆU trong
trường hợp bạn nối thêm đầu ra vào nó.

--Cứu giúp
Hiển thị trợ giúp và thoát.

- ưu tiên cao-chọn
Thêm công cụ sửa đổi HIGH_PRIORITY vào câu lệnh SELECT.

Nhìn thấyhttp://dev.mysql.com/doc/en/select.html> để biết chi tiết.

--tổ chức
dạng rút gọn: -h; loại: chuỗi

Kết nối với máy chủ.

--phớt lờ
Sử dụng BỎ QUA cho các câu lệnh CHÈN.

Khiến INSERT thành "--dest" được INSERT IGNORE.

--giới hạn
kiểu: int; mặc định: 1

Số hàng để tìm nạp và lưu trữ trên mỗi câu lệnh.

Giới hạn số hàng do câu lệnh SELECT trả về để truy xuất các hàng
lưu trữ. Mặc định là một hàng. Có thể hiệu quả hơn nếu tăng giới hạn, nhưng
cẩn thận nếu bạn đang lưu trữ thưa thớt, bỏ qua nhiều hàng; điều này có thể
gây ra nhiều tranh cãi hơn với các truy vấn khác, tùy thuộc vào công cụ lưu trữ, giao dịch
mức độ cô lập và các tùy chọn như "--for-update".

--địa phương
Không ghi các truy vấn TỐI ƯU hoặc PHÂN TÍCH vào binlog.

Thêm công cụ sửa đổi NO_WRITE_TO_BINLOG vào các truy vấn ANALYZE và OPTIMIZE. Xem "--analyze"
để biết thêm chi tiết.

- ưu tiên thấp-xóa
Thêm công cụ sửa đổi LOW_PRIORITY vào các câu lệnh DELETE.

Nhìn thấyhttp://dev.mysql.com/doc/en/delete.html> để biết chi tiết.

- ưu tiên thấp-chèn
Thêm công cụ sửa đổi LOW_PRIORITY vào câu lệnh INSERT hoặc REPLACE.

Nhìn thấyhttp://dev.mysql.com/doc/en/insert.html> để biết chi tiết.

--max-flow-ctl
loại: float

Hơi giống với --max-lag nhưng đối với các cụm PXC. Kiểm tra cụm thời gian trung bình đã sử dụng
tạm dừng để Kiểm soát luồng và tạm dừng công cụ nếu nó vượt quá tỷ lệ phần trăm được chỉ định
trong tùy chọn. Mặc định là không có kiểm tra Kiểm soát luồng. Tùy chọn này có sẵn cho PXC
phiên bản 5.6 trở lên.

- max-lag
loại: thời gian; mặc định: 1 giây

Tạm dừng lưu trữ nếu nô lệ được cung cấp bởi "--check-slave-lag" bị trễ.

Tùy chọn này khiến pt-archiver nhìn vào nô lệ mỗi khi nó sắp tìm nạp
hàng khác. Nếu độ trễ của nô lệ lớn hơn giá trị của tùy chọn hoặc nếu nô lệ
không chạy (vì vậy độ trễ của nó là NULL), pt-table-checksum ở chế độ ngủ cho "--check-period"
giây và sau đó xem xét độ trễ một lần nữa. Nó lặp lại cho đến khi nô lệ bị bắt,
sau đó tiến hành tìm nạp và lưu trữ hàng.

Tùy chọn này có thể loại bỏ nhu cầu về "--sleep" hoặc "--sleep-coef".

- không tăng lên
Không sử dụng tối ưu hóa chỉ mục tăng dần.

Tối ưu hóa chỉ mục tăng dần mặc định khiến "pt-archiver" tối ưu hóa lặp lại
Các truy vấn "CHỌN" để chúng tìm kiếm chỉ mục nơi truy vấn trước đó đã kết thúc, sau đó quét
dọc theo nó, thay vì quét từ đầu bảng mỗi lần. Đây là
được bật theo mặc định vì nó thường là một chiến lược tốt cho những lần truy cập lặp lại.

Các chỉ mục lớn, nhiều cột có thể khiến mệnh đề WHERE đủ phức tạp
điều này thực sự có thể kém hiệu quả hơn. Hãy xem xét ví dụ một KHÓA CHÍNH gồm bốn cột
trên (a, b, c, d). Mệnh đề WHERE để bắt đầu khi truy vấn cuối cùng kết thúc như sau:

WHERE (a>?)
HOẶC (a =? VÀ b>?)
HOẶC (a =? VÀ b =? VÀ c>?)
HOẶC (a =? VÀ b =? VÀ c =? VÀ d> =?)

Việc điền các giá trị vào chỗ dành sẵn sẽ sử dụng bộ nhớ và CPU, thêm lưu lượng mạng và
phân tích cú pháp chi phí và có thể làm cho truy vấn khó tối ưu hóa cho MySQL. Một cột bốn
khóa không phải là một vấn đề lớn, nhưng một khóa mười cột trong đó mỗi cột cho phép "NULL" có thể
được.

Tăng dần chỉ mục có thể không cần thiết nếu bạn biết rằng bạn chỉ đơn giản là xóa các hàng
từ phần đầu của bảng, nhưng không để lại bất kỳ lỗ nào, vì vậy bắt đầu từ
đầu bảng thực sự là điều hiệu quả nhất để làm.

Xem thêm "--ascend-first". Xem "EXTENDING" để thảo luận về cách tương tác của điều này
với các plugin.

--không xóa
Không xóa các hàng đã lưu trữ.

Khiến "pt-archiver" không xóa các hàng sau khi xử lý chúng. Điều này không cho phép
"--no-ascend", bởi vì việc kích hoạt cả hai sẽ gây ra một vòng lặp vô hạn.

Nếu có một plugin trên DSN nguồn, thì phương thức "before_delete" của nó vẫn được gọi,
mặc dù "pt-archiver" sẽ không thực hiện xóa. Xem "EXTENDING" để biết thêm về
bổ sung.

--tối ưu hóa
loại: chuỗi

Chạy BẢNG TỐI ƯU HÓA sau đó trên "--source" và / hoặc "--dest".

Chạy BẢNG TỐI ƯU sau khi kết thúc. Xem "--analyze" để biết cú pháp tùy chọn và
<http://dev.mysql.com/doc/en/optimize-table.html> để biết chi tiết về TỐI ƯU HÓA BẢNG.

--mật khẩu mở khóa
dạng rút gọn: -p; loại: chuỗi

Mật khẩu sử dụng khi kết nối. Nếu mật khẩu chứa dấu phẩy thì chúng phải được thoát
có dấu gạch chéo ngược: "exam \, ple"

- lipid
loại: chuỗi

Tạo tệp PID đã cho. Công cụ sẽ không khởi động nếu tệp PID đã tồn tại và
PID mà nó chứa khác với PID hiện tại. Tuy nhiên, nếu tệp PID
tồn tại và PID mà nó chứa không còn chạy nữa, công cụ sẽ ghi đè lên PID
tệp với PID hiện tại. Tệp PID sẽ tự động bị xóa khi công cụ thoát.

--cắm vào
loại: chuỗi

Tên mô-đun Perl để sử dụng như một plugin chung.

Chỉ định tên mô-đun Perl của một plugin có mục đích chung. Nó hiện chỉ được sử dụng
để thống kê (xem "--st Statistics") và phải có phương thức "new ()" và "Statistics ()".

Phương thức "new (src =" $ src, dst => $ dst, opts => $ o)> lấy nguồn và
DSN đích và các kết nối cơ sở dữ liệu của chúng, giống như kết nối cụ thể
plugin làm. Nó cũng nhận được một đối tượng OptionParser ($ o) để truy cập dòng lệnh
tùy chọn (ví dụ: "$ o-" get ('thanh lọc');>).

Phương thức "Statistics (\% stats, $ time)" nhận một hashref của các thống kê được thu thập bởi
công việc lưu trữ và thời gian toàn bộ công việc bắt đầu.

--Hải cảng
dạng viết tắt: -P; kiểu: int

Số cổng sử dụng để kết nối.

--chỉ-khóa-chính
Chỉ các cột khóa chính.

Phím tắt để chỉ định "--columns" với các cột khóa chính. Đây là
hiệu quả nếu bạn chỉ muốn xóa các hàng; nó tránh tìm nạp toàn bộ hàng, khi
chỉ các cột khóa chính là cần thiết cho các câu lệnh "DELETE". Xem thêm "--purge".

--phát triển
kiểu: int

In thông tin tiến trình mỗi X hàng.

In thời gian hiện tại, thời gian đã trôi qua và các hàng được lưu trữ mỗi X hàng.

--gege
Xóa thay vì lưu trữ; cho phép bỏ qua "--file" và "--dest".

Cho phép lưu trữ mà không có đối số "--file" hoặc "--dest", đây thực sự là một cuộc thanh lọc
vì các hàng vừa bị xóa.

Nếu bạn chỉ muốn xóa các hàng, hãy xem xét chỉ định các cột khóa chính của bảng
với "--primary-key-only". Điều này sẽ ngăn việc tìm nạp tất cả các cột từ máy chủ cho
không có lý do.

- xóa nhanh
Thêm công cụ sửa đổi NHANH vào các câu lệnh DELETE.

Nhìn thấyhttp://dev.mysql.com/doc/en/delete.html> để biết chi tiết. Như đã nêu trong
tài liệu hướng dẫn, trong một số trường hợp, sử dụng XÓA NHANH có thể nhanh hơn, sau đó là TỐI ƯU HÓA
BÀN. Bạn có thể sử dụng "--optimize" cho việc này.

--Yên lặng
dạng ngắn: -q

Không in bất kỳ đầu ra nào, chẳng hạn như đối với "--st Statistics".

Loại bỏ đầu ra bình thường, bao gồm đầu ra của "--st Statistics", nhưng không loại bỏ
đầu ra từ "--why-thoát".

--thay thế
Khiến INSERT trong "--dest" được viết là REPLACE.

--thử lại
kiểu: int; mặc định: 1

Số lần thử lại mỗi lần hết thời gian chờ hoặc bế tắc.

Chỉ định số lần pt-archiver nên thử lại khi có khóa InnoDB
thời gian chờ đợi hoặc bế tắc. Khi hết các lần thử lại, pt-archiver sẽ thoát ra với
lỗi.

Hãy xem xét cẩn thận những gì bạn muốn xảy ra khi bạn đang lưu trữ giữa một hỗn hợp
công cụ lưu trữ giao dịch và phi giao dịch. CHÈN vào "--dest" và
DELETE khỏi "--source" nằm trên các kết nối riêng biệt, vì vậy chúng không thực sự
tham gia vào cùng một giao dịch ngay cả khi chúng trên cùng một máy chủ. Tuy nhiên, pt-
archiver thực hiện các giao dịch phân tán đơn giản trong mã, vì vậy cam kết và khôi phục
sẽ xảy ra như mong muốn trên hai kết nối.

Tại thời điểm này, tôi chưa viết bất kỳ mã nào để xử lý lỗi với bộ nhớ giao dịch
động cơ khác với InnoDB. Yêu cầu tính năng đó nếu bạn cần.

--thời gian chạy
loại: thời gian

Thời gian để chạy trước khi thoát.

Hậu tố tùy chọn s = giây, m = phút, h = giờ, d = ngày; nếu không có hậu tố, s được sử dụng.

- [không] an toàn-tự động tăng
mặc định: có

Không lưu trữ hàng với AUTO_INCREMENT tối đa.

Thêm mệnh đề WHERE bổ sung để ngăn pt-archiver xóa hàng mới nhất khi
tăng dần một khóa AUTO_INCREMENT một cột. Điều này bảo vệ chống lại việc sử dụng lại
AUTO_INCREMENT giá trị nếu máy chủ khởi động lại và được bật theo mặc định.

Mệnh đề WHERE bổ sung chứa giá trị lớn nhất của cột tăng tự động kể từ
sự khởi đầu của công việc lưu trữ hoặc thanh lọc. Nếu các hàng mới được chèn trong khi pt-archiver
đang chạy, nó sẽ không nhìn thấy chúng.

--người canh gác
type: string; default: / tmp / pt-archiver-sentinel

Thoát nếu tệp này tồn tại.

Sự hiện diện của tệp được chỉ định bởi "--sentinel" sẽ khiến pt-archiver dừng lại
lưu trữ và thoát. Mặc định là / tmp / pt-archiver-sentinel. Bạn có thể tìm thấy cái này
tiện dụng để dừng các công việc cron một cách duyên dáng nếu cần thiết. Xem thêm "--stop".

--set-vars
kiểu: Mảng

Đặt các biến MySQL trong danh sách các cặp "biến = giá trị" được phân tách bằng dấu phẩy này.

Theo mặc định, công cụ đặt:

wait_timeout = 10000

Các biến được chỉ định trên dòng lệnh sẽ ghi đè các giá trị mặc định này. Ví dụ,
chỉ định "--set-vars wait_timeout = 500" ghi đè giá trị mặc định là 10000.

Công cụ sẽ in một cảnh báo và tiếp tục nếu một biến không thể được thiết lập.

- khóa chia sẻ
Thêm công cụ sửa đổi LOCK IN SHARE MODE vào câu lệnh CHỌN.

Nhìn thấyhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

--skip-ngoại-khóa-kiểm tra
Tắt kiểm tra khóa ngoại với SET FOREIGN_KEY_CHECKS = 0.

--ngủ
kiểu: int

Thời gian ngủ giữa các lần tìm nạp.

Chỉ định thời gian ngủ giữa các câu lệnh SELECT. Mặc định là không ngủ lúc
tất cả các. Giao dịch KHÔNG được cam kết và tệp "--file" KHÔNG được xóa trước đó
đang ngủ. Xem "--txn-size" để kiểm soát điều đó.

Nếu "--commit-each" được chỉ định, việc commit và flush sẽ xảy ra trước khi ngủ.

--ngủ-coef
loại: float

Tính "--sleep" dưới dạng bội số của lần CHỌN gần đây nhất.

Nếu tùy chọn này được chỉ định, pt-archiver sẽ ngủ trong thời gian truy vấn cuối cùng
SELECT nhân với hệ số được chỉ định.

Đây là một cách phức tạp hơn một chút để điều chỉnh các CHỌN: ngủ một cách khác nhau
khoảng thời gian giữa mỗi lần CHỌN, tùy thuộc vào thời gian các LỰA CHỌN đang diễn ra.

--ổ cắm
các hình thức ngắn; loại: chuỗi

Tập tin ổ cắm để sử dụng cho kết nối.

--nguồn
loại: DSN

DSN chỉ định bảng để lưu trữ từ (bắt buộc). Đối số này là một DSN. Nhìn thấy
"DSN OPTIONS" cho cú pháp. Hầu hết các tùy chọn kiểm soát cách pt-archiver kết nối với MySQL,
nhưng có một số tùy chọn DSN mở rộng trong cú pháp của công cụ này. D, t và i
tùy chọn chọn một bảng để lưu trữ:

--source h = my_server, D = my_database, t = my_tbl

Tùy chọn a chỉ định cơ sở dữ liệu để đặt làm mặc định của kết nối với USE. Nếu như
tùy chọn b là đúng, nó vô hiệu hóa ghi nhật ký nhị phân với SQL_LOG_BIN. Tùy chọn m
chỉ định các hành động có thể cắm được mà mô-đun Perl bên ngoài có thể cung cấp. Duy nhất
phần bắt buộc là bảng; các phần khác có thể được đọc từ nhiều nơi khác nhau trong
môi trường (chẳng hạn như các tệp tùy chọn).

Phần 'i' đáng được đề cập đặc biệt. Điều này cho pt-archiver biết nó nên lập chỉ mục nào
quét để lưu trữ. Điều này xuất hiện trong gợi ý FORCE INDEX hoặc SỬ DỤNG INDEX trong phần CHỌN
các câu lệnh được sử dụng để tìm nạp các hàng có thể lưu trữ. Nếu bạn không chỉ định bất cứ điều gì, pt-archiver
sẽ tự động phát hiện một chỉ mục tốt, ưu tiên "KHÓA CHÍNH" nếu có. trong tôi
trải nghiệm này thường hoạt động tốt, vì vậy hầu hết thời gian bạn có thể chỉ cần bỏ qua
'một phần của tôi.

Chỉ mục được sử dụng để tối ưu hóa các truy cập lặp lại vào bảng; pt-archiver ghi nhớ
hàng cuối cùng mà nó truy xuất từ ​​mỗi câu lệnh SELECT và sử dụng nó để xây dựng WHERE
, sử dụng các cột trong chỉ mục được chỉ định, sẽ cho phép MySQL bắt đầu
tiếp theo CHỌN nơi kết thúc cuối cùng, thay vì có khả năng quét từ
đầu bảng với mỗi lần CHỌN liên tiếp. Nếu bạn đang sử dụng bên ngoài
các plugin, vui lòng xem "EXTENDING" để thảo luận về cách chúng tương tác với việc tăng dần
các chỉ mục.

Các tùy chọn 'a' và 'b' cho phép bạn kiểm soát cách các câu lệnh chuyển qua hệ nhị phân
nhật ký. Nếu bạn chỉ định tùy chọn 'b', ghi nhật ký nhị phân sẽ bị vô hiệu hóa trên
sự liên quan. Nếu bạn chỉ định tùy chọn 'a', kết nối sẽ "SỬ DỤNG" tùy chọn được chỉ định
cơ sở dữ liệu mà bạn có thể sử dụng để ngăn không cho nô lệ thực thi các sự kiện nhật ký nhị phân
với các tùy chọn "--replicate-ignore-db". Hai tùy chọn này có thể được sử dụng như là khác nhau
các phương pháp để đạt được cùng một mục tiêu: lưu trữ dữ liệu ngoài cái chính, nhưng để nó trên
nô lệ. Ví dụ: bạn có thể chạy một công việc thanh lọc trên cái chính và ngăn nó khỏi
xảy ra trên nô lệ bằng cách sử dụng phương pháp bạn chọn.

CẢNH BÁO: Sử dụng tùy chọn tệp tùy chọn mặc định (F) DSN xác định ổ cắm cho
"--source" khiến pt-archiver kết nối với "--dest" bằng cách sử dụng ổ cắm đó trừ khi ổ cắm khác
socket cho "--dest" được chỉ định. Điều này có nghĩa là pt-archiver có thể kết nối không chính xác
thành "--source" khi nó được kết nối với "--dest". Ví dụ:

- nguồn F = host1.cnf, D = db, t = tbl --dest h = host2

Khi pt-archiver kết nối với "--dest", host2, nó sẽ kết nối qua "--source",
host1, ổ cắm được xác định trong host1.cnf.

--số liệu thống kê
Thu thập và in thống kê thời gian.

Khiến pt-archiver thu thập thống kê thời gian về những gì nó làm. Những thống kê này
có sẵn cho plugin được chỉ định bởi "--plugin"

Trừ khi bạn chỉ định "--quiet", "pt-archiver" sẽ in số liệu thống kê khi nó thoát. Các
thống kê trông như thế này:

Started at 2008-07-18T07:18:53, ended at 2008-07-18T07:18:53
Nguồn: D = db, t = table
CHỌN 4
CHÈN 4
XÓA 4
Pct thời gian đếm hành động
cam kết 10 0.1079 88.27
chọn 5 0.0047 3.87
xóa 4 0.0028 2.29
chèn 4 0.0028 2.28
khác 0 0.0040 3.29

Hai (hoặc ba) dòng đầu tiên hiển thị thời gian và các bảng nguồn và đích. Các
ba dòng tiếp theo hiển thị số hàng đã được tìm nạp, chèn và xóa.

Các dòng còn lại hiển thị số đếm và thời gian. Các cột là hành động, tổng số
số lần hành động đó được hẹn giờ, tổng thời gian thực hiện và phần trăm của
tổng thời gian chạy của chương trình. Các hàng được sắp xếp theo thứ tự tổng thời gian giảm dần. Các
hàng cuối cùng là phần thời gian còn lại không được quy cho bất kỳ thứ gì một cách rõ ràng. Hành động sẽ
khác nhau tùy thuộc vào các tùy chọn dòng lệnh.

Nếu "--why-thoát" được đưa ra, hành vi của nó sẽ thay đổi một chút. Tùy chọn này khiến nó
in lý do thoát ngay cả khi chỉ vì không còn hàng nào nữa.

Tùy chọn này yêu cầu mô-đun Time :: HiRes tiêu chuẩn, là một phần của lõi Perl on
các bản phát hành Perl mới hợp lý.

--ngừng lại
Dừng chạy các phiên bản bằng cách tạo tệp sentinel.

Khiến pt-archiver tạo tệp sentinel được chỉ định bởi "--sentinel" và thoát.
Điều này sẽ có tác dụng dừng tất cả các phiên bản đang chạy đang xem
cùng một tập tin sentinel.

--txn-kích thước
kiểu: int; mặc định: 1

Số hàng trên mỗi giao dịch.

Chỉ định kích thước, theo số hàng, của mỗi giao dịch. Zero vô hiệu hóa các giao dịch
hoàn toàn. Sau khi pt-archiver xử lý nhiều hàng này, nó cam kết cả
"--source" và "--dest" nếu được cung cấp và xóa tệp được cung cấp bởi "--file".

Thông số này rất quan trọng đối với hiệu suất. Nếu bạn đang lưu trữ từ một máy chủ trực tiếp,
ví dụ như đang thực hiện công việc OLTP nặng, bạn cần phải chọn một sự cân bằng tốt giữa
quy mô giao dịch và chi phí cam kết. Các giao dịch lớn hơn tạo ra khả năng
nhiều tranh chấp về khóa và bế tắc hơn, nhưng các giao dịch nhỏ hơn gây ra thường xuyên hơn
chi phí cam kết, có thể là đáng kể. Để đưa ra một ý tưởng, trong một thử nghiệm nhỏ, tôi
đã làm việc với khi viết pt-archiver, giá trị 500 khiến quá trình lưu trữ mất khoảng 2
giây trên 1000 hàng trên một phiên bản MySQL yên tĩnh khác trên máy tính để bàn của tôi,
lưu trữ vào đĩa và một bảng khác. Tắt các giao dịch có giá trị bằng XNUMX,
bật tính năng tự động gửi, giảm hiệu suất xuống 38 giây trên một nghìn hàng.

Nếu bạn không lưu trữ từ hoặc vào công cụ lưu trữ giao dịch, bạn có thể muốn
vô hiệu hóa các giao dịch để pt-archiver không cố gắng cam kết.

--người sử dụng
dạng rút gọn: -u; loại: chuỗi

Người dùng để đăng nhập nếu không phải là người dùng hiện tại.

--phiên bản
Hiển thị phiên bản và thoát.

- [không] kiểm tra phiên bản
mặc định: có

Kiểm tra phiên bản mới nhất của Bộ công cụ Percona, MySQL và các chương trình khác.

Đây là tính năng "tự động kiểm tra các bản cập nhật" tiêu chuẩn, với hai tính năng bổ sung
Tính năng, đặc điểm. Đầu tiên, công cụ kiểm tra phiên bản của các chương trình khác trên hệ thống cục bộ trong
bổ sung cho phiên bản riêng của nó. Ví dụ: nó kiểm tra phiên bản của mọi máy chủ MySQL
nó kết nối với, Perl và mô-đun Perl DBD :: mysql. Thứ hai, nó kiểm tra và cảnh báo
về các phiên bản có sự cố đã biết. Ví dụ: MySQL 5.5.25 có một lỗi nghiêm trọng và
đã được phát hành lại dưới dạng 5.5.25a.

Mọi cập nhật hoặc sự cố đã biết đều được in ra STDOUT trước khi xuất ra bình thường của công cụ.
Tính năng này không bao giờ được can thiệp vào hoạt động bình thường của công cụ.

Để biết thêm thông tin, hãy truy cập .

--ở đâu
loại: chuỗi

Mệnh đề WHERE để giới hạn các hàng cần lưu trữ (bắt buộc).

Chỉ định mệnh đề WHERE để giới hạn các hàng được lưu trữ. Không bao gồm từ
Ở ĐÂU. Bạn có thể cần phải trích dẫn đối số để ngăn trình bao của bạn diễn giải nó.
Ví dụ:

- where 'ts <current_date - khoảng thời gian 90 ngày'

Để đảm bảo an toàn, "--where" là bắt buộc. Nếu bạn không yêu cầu mệnh đề WHERE, hãy sử dụng
"- ở đâu" 1 = 1.

- tại sao lại bỏ
In lý do thoát trừ khi hết hàng.

Khiến cho pt-archiver in một tin nhắn nếu nó thoát ra vì bất kỳ lý do gì khác ngoài việc chạy
ra khỏi hàng để lưu trữ. Điều này có thể hữu ích nếu bạn có một công việc cron với "--run-time"
chẳng hạn như được chỉ định và bạn muốn chắc chắn rằng pt-archiver hoàn tất trước khi
hết thời gian rồi.

Nếu "--st Statistics" được đưa ra, hành vi sẽ thay đổi một chút. Nó sẽ in
lý do thoát ngay cả khi chỉ vì không còn hàng.

Đầu ra này sẽ in ngay cả khi "--quiet" được đưa ra. Vì vậy, bạn có thể đặt "pt-archiver" vào
một công việc "cron" và nhận email nếu có một lần thoát bất thường.

DSN LỰA CHỌN


Các tùy chọn DSN này được sử dụng để tạo DSN. Mỗi tùy chọn được đưa ra như "option = value".
Các tùy chọn phân biệt chữ hoa chữ thường, vì vậy P và p không phải là cùng một tùy chọn. Không thể có
khoảng trắng trước hoặc sau "=" và nếu giá trị chứa khoảng trắng thì nó phải được trích dẫn.
Các tùy chọn DSN được phân tách bằng dấu phẩy. Xem trang web bộ công cụ percona để biết đầy đủ chi tiết.

· A

copy: không

Cơ sở dữ liệu để SỬ DỤNG khi thực hiện truy vấn.

· MỘT

dsn: bộ ký tự; copy: vâng

Bộ ký tự mặc định.

· NS

copy: không

Nếu đúng, hãy tắt binlog bằng SQL_LOG_BIN.

· NS

dsn: cơ sở dữ liệu; copy: vâng

Cơ sở dữ liệu có chứa bảng.

· NS

dsn: mysql_read_default_file; copy: vâng

Chỉ đọc các tùy chọn mặc định từ tệp đã cho

· H

dsn: máy chủ; copy: vâng

Kết nối với máy chủ.

· tôi

copy: vâng

Chỉ mục để sử dụng.

· L

copy: vâng

Bật rõ ràng LOAD DATA LOCAL INFILE.

Vì một số lý do, một số nhà cung cấp biên dịch libmysql mà không có --enable-local-infile
tùy chọn này vô hiệu hóa câu lệnh. Điều này có thể dẫn đến những tình huống kỳ lạ, như
máy chủ cho phép THÔNG TIN ĐỊA PHƯƠNG, nhưng máy khách sẽ ném ra các ngoại lệ nếu nó được sử dụng.

Tuy nhiên, miễn là máy chủ cho phép TẢI DỮ LIỆU, các máy khách có thể dễ dàng kích hoạt lại nó; Nhìn thấy

<http://search.cpan.org/~capttofu/DBD-mysql/lib/DBD/mysql.pm>. Tùy chọn này không
chính xác đó.

Mặc dù chúng tôi chưa tìm thấy trường hợp nào mà việc chuyển tùy chọn này dẫn đến lỗi hoặc khác biệt
về mặt an toàn, tùy chọn này không được bật theo mặc định.

· NS

copy: không

Tên mô-đun plugin.

· P

dsn: mật khẩu; copy: vâng

Mật khẩu sử dụng khi kết nối. Nếu mật khẩu chứa dấu phẩy thì chúng phải được thoát
có dấu gạch chéo ngược: "exam \, ple"

· P

dsn: cổng; copy: vâng

Số cổng sử dụng để kết nối.

· NS

dsn: mysql_socket; copy: vâng

Tập tin ổ cắm để sử dụng cho kết nối.

· NS

copy: vâng

Bảng để lưu trữ từ / đến.

· U

dsn: người dùng; copy: vâng

Người dùng để đăng nhập nếu không phải là người dùng hiện tại.

MỞ RỘNG


pt-archiver có thể mở rộng bằng cách cắm vào các mô-đun Perl bên ngoài để xử lý một số logic và / hoặc
các hành động. Bạn có thể chỉ định một mô-đun cho cả "--source" và "--dest", với 'm'
một phần của đặc điểm kỹ thuật. Ví dụ:

- nguồn D = test, t = test1, m = My :: Module1 --dest m = My :: Module2, t = test2

Điều này sẽ khiến pt-archiver tải các gói My :: Module1 và My :: Module2, tạo
các phiên bản của chúng, và sau đó thực hiện các cuộc gọi đến chúng trong quá trình lưu trữ.

Bạn cũng có thể chỉ định một plugin với "--plugin".

Mô-đun phải cung cấp giao diện này:

mới (dbh => $ dbh, db => $ db_name, tbl => $ tbl_name)
Hàm tạo của plugin được chuyển một tham chiếu đến xử lý cơ sở dữ liệu, cơ sở dữ liệu
tên và tên bảng. Plugin được tạo ngay sau khi pt-archiver mở
kết nối và trước khi nó kiểm tra bảng đã cho trong các đối số. Điều này mang lại cho
plugin một cơ hội để tạo và điền các bảng tạm thời hoặc thực hiện công việc thiết lập khác.

before_begin (cols => \ @cols, allcols => \ @allcols)
Phương thức này được gọi ngay trước khi pt-archiver bắt đầu lặp qua các hàng và
lưu trữ chúng, nhưng sau khi nó thực hiện tất cả các công việc thiết lập khác (kiểm tra cấu trúc bảng,
thiết kế truy vấn SQL, v.v.). Đây là lần duy nhất pt-archiver nói với plugin
tên cột cho các hàng nó sẽ chuyển plugin trong khi lưu trữ.

Đối số "cols" là tên cột mà người dùng yêu cầu được lưu trữ, bởi
mặc định hoặc theo tùy chọn "--columns". Đối số "allcols" là danh sách cột
tên cho mọi hàng pt-archiver sẽ tìm nạp từ bảng nguồn. Nó có thể tìm nạp nhiều hơn
so với người dùng yêu cầu, bởi vì nó cần một số cột để sử dụng riêng. Khi nào
các chức năng plugin tiếp theo nhận được một hàng, đó là hàng đầy đủ chứa tất cả các
các cột, nếu có, được thêm vào cuối.

is_archivable (row => \ @row)
Phương thức này được gọi cho mỗi hàng để xác định xem nó có thể lưu trữ được hay không. Cái này
chỉ áp dụng cho "--source". Đối số là chính hàng, như một arrayref. Nếu
phương thức trả về true, hàng sẽ được lưu trữ; nếu không nó sẽ bị bỏ qua.

Bỏ qua một hàng sẽ thêm các biến chứng cho các chỉ mục không phải là duy nhất. Thông thường pt-archiver sử dụng
Mệnh đề WHERE được thiết kế để nhắm mục tiêu hàng được xử lý cuối cùng làm nơi bắt đầu quét
cho câu lệnh SELECT tiếp theo. Nếu bạn đã bỏ qua hàng bằng cách trả về false từ
is_archivable (), pt-archiver có thể đi vào vòng lặp vô hạn vì hàng vẫn
tồn tại. Do đó, khi bạn chỉ định một plugin cho đối số "--source", pt-archiver
sẽ thay đổi mệnh đề WHERE của nó một chút. Thay vì bắt đầu bằng "lớn hơn hoặc bằng
đến "hàng được xử lý cuối cùng, nó sẽ bắt đầu" lớn hơn. "Điều này sẽ hoạt động
tốt trên các chỉ mục duy nhất chẳng hạn như khóa chính, nhưng nó có thể bỏ qua hàng (để lại lỗ) trên
chỉ mục không phải duy nhất hoặc khi chỉ tăng dần cột đầu tiên của chỉ mục.

"pt-archiver" sẽ thay đổi mệnh đề theo cách tương tự nếu bạn chỉ định "--no-delete",
bởi vì một lần nữa một vòng lặp vô hạn là có thể.

Nếu bạn chỉ định tùy chọn "--bulk-delete" và trả về false từ phương thức này,
"pt-archiver" có thể không làm những gì bạn muốn. Hàng sẽ không được lưu trữ, nhưng nó sẽ
đã xóa, vì tính năng xóa hàng loạt hoạt động trên phạm vi hàng và không biết hàng nào
plugin được chọn để giữ lại.

Nếu bạn chỉ định tùy chọn "--bulk-insert", giá trị trả về của phương thức này sẽ ảnh hưởng
liệu hàng có được ghi vào tệp tạm thời để chèn hàng loạt hay không, vì vậy, hàng loạt chèn
sẽ hoạt động như mong đợi. Tuy nhiên, chèn hàng loạt yêu cầu xóa hàng loạt.

before_delete (row => \ @row)
Phương thức này được gọi cho mỗi hàng ngay trước khi nó bị xóa. Điều này chỉ áp dụng cho
"--nguồn". Đây là một nơi tốt để bạn xử lý các phần phụ thuộc, chẳng hạn như xóa
những thứ có khóa ngoại cho hàng bạn sắp xóa. Bạn cũng có thể sử dụng
điều này để lưu trữ đệ quy tất cả các bảng phụ thuộc.

Phương thức plugin này được gọi ngay cả khi "--no-delete" được đưa ra, nhưng không phải nếu
"--bulk-delete" được đưa ra.

before_bulk_delete (first_row => \ @row, last_row => \ @row)
Phương thức này được gọi ngay trước khi thực hiện xóa hàng loạt. Nó tương tự như
phương thức "before_delete", ngoại trừ các đối số của nó là hàng đầu tiên và cuối cùng của phạm vi
sẽ bị xóa. Nó được gọi ngay cả khi "--no-delete" được đưa ra.

before_insert (row => \ @row)
Phương thức này được gọi cho mỗi hàng ngay trước khi nó được chèn vào. Điều này chỉ áp dụng cho
"--dest". Bạn có thể sử dụng điều này để chèn hàng vào nhiều bảng, có thể với
Về mệnh đề CẬP NHẬT KHÓA DUPLICATE để xây dựng các bảng tóm tắt trong kho dữ liệu.

Phương thức này không được gọi nếu "--bulk-insert" được đưa ra.

before_bulk_insert (first_row => \ @row, last_row => \ @row, tên tệp =>
Bul_insert_filename)
Phương thức này được gọi ngay trước khi thực thi chèn số lượng lớn. Nó tương tự như
phương thức "before_insert", ngoại trừ các đối số của nó là hàng đầu tiên và cuối cùng của phạm vi
sẽ bị xóa.

custom_sth (row => \ @row, sql => $ sql)
Phương thức này được gọi ngay trước khi chèn hàng, nhưng sau "before_insert ()". Nó
cho phép plugin chỉ định câu lệnh "INSERT" khác nhau nếu muốn. Sự trở lại
giá trị (nếu có) phải là một xử lý câu lệnh DBI. Tham số "sql" là văn bản SQL
được sử dụng để chuẩn bị câu lệnh "INSERT" mặc định. Phương thức này không được gọi nếu bạn
chỉ định "--bulk-insert".

Nếu không có giá trị nào được trả về, thì xử lý câu lệnh "INSERT" mặc định sẽ được sử dụng.

Phương pháp này chỉ áp dụng cho plugin được chỉ định cho "--dest", vì vậy nếu plugin của bạn không
làm những gì bạn mong đợi, kiểm tra xem bạn đã chỉ định nó cho đích đến chứ không phải
nguồn.

custom_sth_bulk (first_row => \ @row, last_row => \ @row, sql => $ sql, tên tệp =>
$ số lượng lớn_insert_filename)
Nếu bạn đã chỉ định "--bulk-insert", phương thức này được gọi ngay trước phần lớn
chèn, nhưng sau "before_bulk_insert ()", và các đối số khác nhau.

Giá trị trả về của phương thức này, v.v. tương tự như "custom_sth ()" phương pháp.

sau khi hoàn thành()
Phương thức này được gọi sau khi pt-archiver thoát khỏi vòng lặp lưu trữ, cam kết tất cả cơ sở dữ liệu
xử lý, đóng "--file" và in các thống kê cuối cùng, nhưng trước khi pt-archiver chạy
PHÂN TÍCH hoặc TỐI ƯU (xem "- phân tích" và "- tối ưu hóa").

Nếu bạn chỉ định một plugin cho cả "--source" và "--dest", cấu trúc pt-archiver, lệnh gọi
before_begin ()và cuộc gọi sau khi hoàn thành() trên hai plugin theo thứ tự "--nguồn",
"--dest".

pt-archiver giả định rằng nó kiểm soát các giao dịch và plugin sẽ KHÔNG cam kết hoặc cuộn
quay lại xử lý cơ sở dữ liệu. Xử lý cơ sở dữ liệu được chuyển đến hàm tạo của plugin là
cùng một xử lý pt-archiver sử dụng chính nó. Hãy nhớ rằng "--source" và "--dest" là riêng biệt
tay cầm.

Một mô-đun mẫu có thể trông như thế này:

gói My :: Mô-đun;

sub mới {
của tôi ($ class,% args) = @_;
return Bless (\% args, $ class);
}

phụ trước_bắt đầu {
của tôi ($ self,% args) = @_;
# Lưu tên cột để dùng sau
$ self -> {cols} = $ args {cols};
}

phụ is_archivable {
của tôi ($ self,% args) = @_;
# Thực hiện một số logic nâng cao với $ args {row}
1 trở về;
}

sub before_delete {} # Không thực hiện hành động nào
sub before_insert {} # Không thực hiện hành động nào
sub custom_sth {} # Không thực hiện hành động nào
sub after_finish {} # Không thực hiện hành động nào

1;

MÔI TRƯỜNG


Biến môi trường "PTDEBUG" cho phép đầu ra gỡ lỗi chi tiết thành STDERR. Để kích hoạt
gỡ lỗi và chụp tất cả đầu ra vào một tệp, chạy công cụ như:

PTDEBUG = 1 pt-archiver ...> FILE 2> & 1

Hãy cẩn thận: đầu ra gỡ lỗi rất lớn và có thể tạo ra vài MB đầu ra.

WELFARE YÊU CẦU


Bạn cần Perl, DBI, DBD :: mysql và một số gói cốt lõi phải được cài đặt trong bất kỳ
phiên bản mới hợp lý của Perl.

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


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    DivKit
    DivKit
    DivKit là một ứng dụng mã nguồn mở chạy trên máy chủ
    Khung giao diện người dùng (SDUI). Nó cho phép bạn
    triển khai các bản cập nhật có nguồn gốc từ máy chủ để
    phiên bản ứng dụng khác nhau. Ngoài ra, nó có thể
    đã sử dụng cho ...
    Tải xuống DivKit
  • 2
    bộ chuyển đổi phụ
    bộ chuyển đổi phụ
    Tiện ích để chuyển đổi giữa các loại khác nhau
    định dạng đăng ký. người dùng tên lửa
    nên sử dụng ss, ssr hoặc v2ray làm mục tiêu.
    Bạn có thể thêm &remark= vào
    HT được yêu thích trên Telegram...
    Tải xuống bộ chuyển đổi phụ
  • 3
    RỬA MẶT
    RỬA MẶT
    SWASH là một số có mục đích chung
    công cụ để mô phỏng không ổn định,
    không thủy tĩnh, bề mặt tự do,
    dòng quay và hiện tượng vận chuyển
    ở vùng biển ven bờ như ...
    Tải xuống SWASH
  • 4
    VBA-M (Đã lưu trữ - Hiện có trên Github)
    VBA-M (Đã lưu trữ - Hiện có trên Github)
    Dự án đã chuyển sang
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Các tính năng: Tạo gian lận lưu trạng thái đa
    hệ thống, hỗ trợ gba, gbc, gb, sgb,
    sgb2Tu...
    Tải xuống VBA-M (Đã lưu trữ - Hiện có trên Github)
  • 5
    Stacer
    Stacer
    Giám sát và tối ưu hóa hệ thống Linux
    Kho lưu trữ Github:
    https://github.com/oguzhaninan/Stacer.
    Đối tượng: Người dùng cuối / Máy tính để bàn. Người sử dụng
    giao diện: Qt. Lập trình La ...
    Tải xuống Stacer
  • 6
    CamCáo
    CamCáo
    Ngã ba của TeamWinRecoveryProject(TWRP)
    với nhiều chức năng bổ sung, thiết kế lại
    và nhiều tính năng khác: Hỗ trợ Treble và
    ROM không phải TrebleNhân Oreo cập nhật,
    được xây dựng...
    Tải xuống OrangeFox
  • Khác »

Lệnh Linux

  • 1
    aa-cái móc
    aa-cái móc
    aa-clickhook - bấm móc hệ thống cho
    AppArmor MÔ TẢ: Khi một cú nhấp chuột
    gói được cài đặt, bấm sẽ chạy
    móc hệ thống và người dùng. nhấp chuột
    Hệ thống AppArmor h...
    Chạy aa-clickhook
  • 2
    truy vấn nhấp chuột aa
    truy vấn nhấp chuột aa
    aa-clickquery - chương trình truy vấn
    click-apparmor MÔ TẢ: Chương trình này
    được sử dụng để truy vấn click-apparmor cho
    thông tin. SỬ DỤNG: aa-clickquery
    --click-fra...
    Chạy aa-clickquery
  • 3
    cqrlog
    cqrlog
    CQRLOG - Chương trình ghi nhật ký nâng cao dành cho
    toán tử hamradio MÔ TẢ: CQRLOG
    là một trình ghi đài phát thanh ham tiên tiến dựa trên
    Cơ sở dữ liệu MySQL. Cung cấp điều khiển vô tuyến
    ba...
    Chạy cqrlog
  • 4
    cramfsswap
    cramfsswap
    cramfsswap - trao đổi endianess của một cram
    hệ thống tập tin (cramfs) ...
    Chạy cramfsswap
  • 5
    FvwmSự kiện
    FvwmSự kiện
    FvwmEvent - mô-đun sự kiện fvwm ...
    Chạy sự kiện Fvwm
  • 6
    FvwmForm
    FvwmForm
    FvwmForm - mô-đun biểu mẫu đầu vào cho Fvwm ...
    Chạy FvwmForm
  • Khác »

Ad