EnglishFrenchSpanyol

Ad


Favicon OnWorks

pt-archiverp - Dalam talian di Awan

Jalankan pt-archiverp dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan pt-archiverp yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


pt-archiver - Arkibkan baris daripada jadual MySQL ke dalam jadual atau fail lain.

SINOPSIS


Penggunaan: pt-archiver [OPTIONS] --source DSN --where WHERE

pt-archiver menggigit rekod daripada jadual MySQL. Argumen --source dan --dest menggunakan DSN
sintaks; jika COPY adalah ya, --dest lalai kepada nilai kunci daripada --source.

Contoh:

Arkibkan semua baris dari oltp_server ke olap_server dan ke fail:

pt-archiver --source h=oltp_server,D=test,t=tbl --dest h=olap_server \
--file '/var/log/archive/%Y-%m-%d-%D.%t' \
--di mana "1=1" --had 1000 --komit-setiap

Bersihkan (padam) baris anak yatim daripada jadual anak:

pt-archiver --source h=host,D=db,t=child --purge \
--di mana 'TIDAK WUJUD (PILIH * DARI ibu bapa WHERE col=child.col)'

RISIKO


Percona Toolkit adalah matang, terbukti dalam dunia nyata, dan diuji dengan baik, tetapi semua pangkalan data
alatan boleh menimbulkan risiko kepada sistem dan pelayan pangkalan data. Sebelum menggunakan alat ini,
sila:

· Baca dokumentasi alat

· Semak "BUGS" alat yang diketahui

· Uji alat pada pelayan bukan pengeluaran

· Sandarkan pelayan pengeluaran anda dan sahkan sandaran

DESCRIPTION


pt-archiver ialah alat yang saya gunakan untuk mengarkibkan jadual seperti yang diterangkan dalam
<http://tinyurl.com/mysql-archiving>. Matlamatnya ialah kerja berimpak rendah, ke hadapan sahaja untuk
gigit data lama keluar daripada jadual tanpa banyak memberi kesan kepada pertanyaan OLTP. Anda boleh memasukkan
data ke dalam jadual lain, yang tidak perlu berada pada pelayan yang sama. Anda juga boleh menulisnya kepada a
fail dalam format yang sesuai untuk LOAD DATA INFILE. Atau anda tidak boleh melakukan kedua-duanya, dalam hal ini
hanya PADAM tambahan.

pt-archiver boleh dilanjutkan melalui mekanisme pemalam. Anda boleh menyuntik kod anda sendiri untuk ditambahkan
logik pengarkiban lanjutan yang boleh berguna untuk mengarkibkan data bergantung, memohon
peraturan perniagaan yang kompleks, atau membina gudang data semasa proses pengarkiban.

Anda perlu memilih nilai dengan teliti untuk beberapa pilihan. Yang paling penting ialah "--had",
"--cuba semula", dan "--txn-size".

Strateginya adalah untuk mencari baris pertama, kemudian imbas beberapa indeks ke hadapan sahaja untuk mencari lebih banyak lagi
baris dengan cekap. Setiap pertanyaan berikutnya tidak seharusnya mengimbas keseluruhan jadual; ia harus mencari
ke dalam indeks, kemudian imbas sehingga ia menemui lebih banyak baris yang boleh diarkibkan. Menentukan indeks dengan
bahagian 'i' daripada hujah "--source" boleh menjadi penting untuk ini; gunakan "--dry-run" untuk
periksa pertanyaan yang dijana dan pastikan untuk MENJELASKAN mereka untuk melihat sama ada ia cekap
(kebanyakan masa anda mungkin ingin mengimbas kekunci PRIMER, yang merupakan lalai). Malah
lebih baik, periksa perbezaan dalam kaunter status Pengendali sebelum dan selepas menjalankan
pertanyaan, dan pastikan ia tidak mengimbas keseluruhan jadual setiap pertanyaan.

Anda boleh melumpuhkan pengoptimuman cari kemudian imbas sebahagian atau keseluruhannya dengan "--no-ascend"
dan "--naik-dahulu". Kadangkala ini mungkin lebih cekap untuk kunci berbilang lajur. Jadilah
sedar bahawa pt-archiver dibina untuk bermula pada permulaan indeks yang ia pilih dan imbas
ia ke hadapan sahaja. Ini mungkin mengakibatkan imbasan jadual panjang jika anda cuba menggigit
hujung jadual dengan indeks selain daripada yang ia lebih suka. Lihat "--source" dan baca
dokumentasi pada bahagian "i" jika ini berkaitan dengan anda.

percona XtraDB Kelompok


pt-archiver berfungsi dengan Percona XtraDB Cluster (PXC) 5.5.28-23.7 dan lebih baru, tetapi terdapat
tiga had yang perlu anda pertimbangkan sebelum mengarkibkan kluster:

Ralat pada komitmen
pt-archiver tidak menyemak ralat apabila ia melakukan transaksi. Komit pada PXC boleh
gagal, tetapi alat itu belum lagi menyemak atau mencuba semula transaksi apabila ini berlaku.
Jika ia berlaku, alat itu akan mati.

Jadual MyISAM
Mengarkibkan jadual MyISAM berfungsi, tetapi sokongan MyISAM dalam PXC masih percubaan di
masa keluaran ini. Terdapat beberapa pepijat yang diketahui dengan PXC, jadual MyISAM dan
Lajur "AUTO_INCREMENT". Oleh itu, anda mesti memastikan bahawa pengarkiban tidak akan secara langsung
atau secara tidak langsung mengakibatkan penggunaan nilai "AUTO_INCREMENT" lalai untuk jadual MyISAM.
Sebagai contoh, ini berlaku dengan "--dest" jika "--columns" digunakan dan
Lajur "AUTO_INCREMENT" tidak disertakan. Alat ini tidak menyemak untuk ini!

Pilihan bukan kelompok
Pilihan tertentu mungkin berfungsi atau tidak. Sebagai contoh, jika nod kluster bukan juga a
hamba, maka "--check-slave-lag" tidak berfungsi. Dan kerana jadual PXC biasanya
InnoDB, tetapi InnoDB tidak menyokong "INSERT DELAYED", kemudian "--delayed-insert" tidak
kerja. Pilihan lain mungkin juga tidak berfungsi, tetapi alat itu tidak menyemaknya, oleh itu
anda harus menguji pengarkiban pada kluster ujian sebelum mengarkib pada kluster sebenar anda.

OUTPUT


Jika anda menentukan "--progress", output ialah baris pengepala, ditambah dengan output status pada selang waktu.
Setiap baris dalam output status menyenaraikan tarikh dan masa semasa, berapa saat pt-
arkib telah berjalan, dan berapa banyak baris yang telah diarkibkan.

Jika anda menentukan "--statistics", "pt-archiver" output pemasaan dan maklumat lain untuk membantu
anda mengenal pasti bahagian mana proses arkib anda mengambil masa paling lama.

PENGENDALIAN RALAT


pt-archiver cuba menangkap isyarat dan keluar dengan anggun; sebagai contoh, jika anda menghantarnya
SIGTERM (Ctrl-C pada sistem UNIX-ish), ia akan menangkap isyarat, mencetak mesej tentang
isyarat, dan keluar seperti biasa. Ia tidak akan melaksanakan "--analyze" atau "--optimize",
kerana ini mungkin mengambil masa yang lama untuk diselesaikan. Ia akan menjalankan semua kod lain secara normal,
termasuk memanggil after_finish() pada mana-mana pemalam (lihat "MELUAS").

Dalam erti kata lain, isyarat, jika ditangkap, akan keluar dari gelung pengarkiban utama dan melangkau
mengoptimumkan/menganalisis.

PILIHAN


Tentukan sekurang-kurangnya satu daripada "--dest", "--file", atau "--purge".

"--ignore" dan "--replace" adalah saling eksklusif.

"--txn-size" dan "--commit-each" adalah saling eksklusif.

"--sisipan-keutamaan-rendah" dan "--sisipan-tertunda" adalah saling eksklusif.

"--share-lock" dan "--for-update" adalah saling eksklusif.

"--analyze" dan "--optimize" adalah saling eksklusif.

"--no-ascend" dan "--no-delete" adalah saling eksklusif.

Nilai DSN dalam "--dest" lalai kepada nilai daripada "--source" jika COPY adalah ya.

--menganalisis
jenis: rentetan

Jalankan ANALYZE TABLE selepas itu pada "--source" dan/atau "--dest".

Menjalankan ANALYZE TABLE selepas selesai. Hujah adalah rentetan sewenang-wenangnya. Jika ia
mengandungi huruf 's', sumber akan dianalisis. Jika ia mengandungi 'd', maka
destinasi akan dianalisis. Anda boleh menentukan salah satu atau kedua-duanya. Sebagai contoh, yang
berikut akan menganalisis kedua-duanya:

--analisis=ds

Lihathttp://dev.mysql.com/doc/en/analyze-table.html> untuk butiran tentang ANALISIS JADUAL.

--naik-dahulu
Naik hanya lajur pertama indeks.

Jika anda mahu menggunakan pengoptimuman indeks menaik (lihat "--no-ascend"), tetapi jangan
ingin menanggung overhed untuk menaik indeks berbilang lajur yang besar, anda boleh menggunakan ini
pilihan untuk memberitahu pt-archiver untuk naik hanya lajur paling kiri indeks. Ini boleh
memberikan peningkatan prestasi yang ketara berbanding tidak menaik indeks sama sekali, manakala
mengelakkan kos menaik keseluruhan indeks.

Lihat "MELANJUTKAN" untuk perbincangan tentang cara ini berinteraksi dengan pemalam.

--tanya-lulus
Minta kata laluan apabila menyambung ke MySQL.

--penampan
Buffer output kepada "--file" dan siram pada komit.

Melumpuhkan autoflushing ke "--file" dan flushes "--file" ke cakera hanya apabila transaksi
melakukan. Ini biasanya bermakna fail itu disekat oleh sistem pengendalian, jadi
mungkin terdapat beberapa flushes tersirat pada cakera antara komit juga. Lalainya ialah
siram "--file" ke cakera selepas setiap baris.

Bahayanya ialah ranap sistem mungkin menyebabkan kehilangan data.

Peningkatan prestasi yang saya lihat daripada menggunakan "--buffer" adalah sekitar 5 hingga 15 peratus.
Perbatuan anda mungkin berbeza-beza.

--padam pukal
Padamkan setiap bahagian dengan satu pernyataan (menyiratkan "--commit-each").

Padamkan setiap bahagian baris secara pukal dengan satu pernyataan "DELETE". Penyataan
memadamkan setiap baris antara baris pertama dan terakhir bahagian, termasuk. Ia membayangkan
"--commit-each", kerana ia adalah idea yang tidak baik untuk "INSERT" baris satu demi satu dan
lakukannya sebelum "PADAM" pukal.

Kaedah biasa ialah memadam setiap baris dengan kunci utamanya. Pemadaman pukal mungkin a
lebih cepat. Mereka Juga kekuatan tidak be lebih cepat jika anda mempunyai klausa "WHERE" yang kompleks.

Pilihan ini menangguhkan sepenuhnya semua pemprosesan "DELETE" sehingga ketulan baris
selesai. Jika anda mempunyai pemalam pada sumbernya, kaedah "before_delete"nya tidak akan menjadi
dipanggil. Sebaliknya, kaedah "before_bulk_delete" dipanggil kemudian.

BERKHATAN :: jika anda mempunyai pemalam pada sumber yang kadangkala tidak kembali benar daripada
"is_archivable()", anda harus menggunakan pilihan ini hanya jika anda memahami fungsinya. Jika
pemalam mengarahkan "pt-archiver" untuk tidak mengarkibkan baris, ia masih akan dipadamkan oleh
pemadaman pukal!

--[tiada] had-padam pukal
lalai: ya

Tambahkan "--limit" pada pernyataan "--bulk-delete".

Ini adalah pilihan lanjutan dan anda tidak seharusnya melumpuhkannya melainkan anda tahu siapa anda
melakukan dan mengapa! Secara lalai, "--bulk-delete" menambahkan klausa "--limit" pada pukal
padam pernyataan SQL. Dalam kes tertentu, klausa ini boleh ditinggalkan dengan menyatakan
"--tiada-had-padam-pukal". "--limit" mesti tetap dinyatakan.

--sisipan pukal
Masukkan setiap bahagian dengan LOAD DATA INFILE (menyiratkan "--bulk-delete" "--commit-each").

Masukkan setiap bahagian baris dengan "LOAD DATA LOCAL INFILE". Ini mungkin lebih cepat daripada
memasukkan baris pada satu masa dengan pernyataan "INSERT". Ia dilaksanakan dengan mewujudkan a
fail sementara untuk setiap ketulan baris, dan menulis baris ke fail ini dan bukannya
memasukkan mereka. Apabila bongkah selesai, ia memuat naik baris.

Untuk melindungi keselamatan data anda, pilihan ini memaksa pemadaman pukal digunakan. Ia
adalah tidak selamat untuk memadam setiap baris kerana ia ditemui, sebelum memasukkan baris ke dalam
destinasi dahulu. Memaksa pemadaman pukal menjamin bahawa pemadaman menunggu sehingga
sisipan berjaya.

Pilihan "--low-priority-insert", "--replace", dan "--ignore" berfungsi dengan ini
pilihan, tetapi "--delayed-insert" tidak.

Jika "LOAD DATA LOCAL INFILE" melemparkan ralat dalam baris "The used command is not
dibenarkan dengan versi MySQL ini", rujuk dokumentasi untuk pilihan DSN "L".

--charset
bentuk pendek: -A; jenis: rentetan

Set aksara lalai. Jika nilainya ialah utf8, tetapkan binmode Perl pada STDOUT kepada utf8,
lulus pilihan mysql_enable_utf8 ke DBD::mysql, dan jalankan SET NAMES UTF8 selepas
menyambung ke MySQL. Sebarang nilai lain menetapkan binmode pada STDOUT tanpa lapisan utf8,
dan menjalankan SET NAMES selepas menyambung ke MySQL.

Ambil perhatian bahawa hanya charset seperti yang diketahui oleh MySQL diiktiraf; Jadi sebagai contoh, "UTF8" akan
berfungsi, tetapi "UTF-8" tidak akan berfungsi.

Lihat juga "--[no]check-charset".

--[no]check-charset
lalai: ya

Pastikan sambungan dan set aksara jadual adalah sama. Melumpuhkan cek ini boleh
menyebabkan teks tersalah tukar daripada satu set aksara kepada yang lain (biasanya daripada
utf8 kepada latin1) yang boleh menyebabkan kehilangan data atau mojibake. Melumpuhkan semakan ini mungkin
berguna atau perlu apabila penukaran set aksara dimaksudkan.

--[no]lajur semak
lalai: ya

Pastikan "--source" dan "--dest" mempunyai lajur yang sama.

Didayakan secara lalai; menyebabkan pt-archiver menyemak sama ada jadual sumber dan destinasi
mempunyai lajur yang sama. Ia tidak menyemak susunan lajur, jenis data, dll. Ia hanya
menyemak bahawa semua lajur dalam sumber wujud dalam destinasi dan sebaliknya. Jika
terdapat sebarang perbezaan, pt-archiver akan keluar dengan ralat.

Untuk melumpuhkan semakan ini, nyatakan --no-check-columns.

--semak-selang
jenis: masa; lalai: 1s

Jika "--check-slave-lag" diberikan, ini menentukan berapa lama alat itu menjeda setiap satu
masa ia mendapati bahawa seorang hamba ketinggalan.
Semakan ini dilakukan setiap 100 baris.

--check-slave-lag
jenis: rentetan; boleh diulang: ya

Jeda pengarkiban sehingga lag hamba DSN yang ditentukan adalah kurang daripada "--max-lag". ini
pilihan boleh ditentukan beberapa kali untuk menyemak lebih daripada satu hamba.

--lajur
bentuk pendek: -c; jenis: tatasusunan

Senarai lajur yang dipisahkan koma untuk diarkibkan.

Tentukan senarai lajur yang dipisahkan koma untuk diambil, ditulis pada fail dan dimasukkan ke dalamnya
jadual destinasi. Jika dinyatakan, pt-archiver mengabaikan lajur lain melainkan ia
perlu menambahkannya pada pernyataan "SELECT" untuk menaik indeks atau memadamkan baris.
Ia mengambil dan menggunakan lajur tambahan ini secara dalaman, tetapi tidak menulisnya ke
fail atau ke jadual destinasi. Ia tidak serahkannya kepada pemalam.

Lihat juga "--primary-key-only".

--komit-masing
Komit setiap set baris yang diambil dan diarkibkan (lumpuhkan "--txn-size").

Melakukan transaksi dan membuang "--file" selepas setiap set baris telah diarkibkan,
sebelum mengambil set baris seterusnya dan sebelum tidur jika "--sleep" ditentukan.
Lumpuhkan "--txn-size"; gunakan "--limit" untuk mengawal saiz transaksi dengan
"--komit-setiap".

Pilihan ini berguna sebagai jalan pintas untuk menjadikan "--limit" dan "--txn-size" nilai yang sama,
tetapi yang lebih penting ia mengelakkan urus niaga diadakan terbuka semasa mencari lebih banyak lagi
barisan. Sebagai contoh, bayangkan anda mengarkibkan baris lama dari permulaan very
meja besar, dengan "--limit" 1000 dan "--txn-size" 1000. Selepas beberapa tempoh mencari
dan mengarkibkan 1000 baris pada satu masa, pt-archiver mencari 999 baris dan arkib terakhir
mereka, kemudian laksanakan SELECT seterusnya untuk mencari lebih banyak baris. Ini mengimbas selebihnya
jadual, tetapi tidak pernah menjumpai sebarang baris lagi. Ia telah mengadakan transaksi terbuka untuk sekian lama
masa, hanya untuk menentukan ia selesai pula. Anda boleh menggunakan "--commit-each" untuk mengelak
ini.

--config
jenis: Tatasusunan

Baca senarai fail konfigurasi yang dipisahkan koma ini; jika dinyatakan, ini mestilah yang pertama
pilihan pada baris arahan.

--pangkalan data
bentuk pendek: -D; jenis: rentetan

Sambung ke pangkalan data ini.

--tertunda-masukkan
Tambahkan pengubahsuai DELAYED pada penyataan INSERT.

Menambahkan pengubahsuai TERTANGGUH kepada INSERT atau REPLACE pernyataan. Lihat
<http://dev.mysql.com/doc/en/insert.html> untuk butiran.

--dest
jenis: DSN

DSN menentukan jadual untuk diarkibkan.

Item ini menentukan jadual di mana pt-archiver akan memasukkan baris yang diarkibkan
"--sumber". Ia menggunakan format argumen key=val yang sama seperti "--source". Paling hilang
nilai lalai kepada nilai yang sama seperti "--source", jadi anda tidak perlu mengulangi pilihan
yang sama dalam "--source" dan "--dest". Gunakan pilihan "--help" untuk melihat yang mana
nilai disalin daripada "--source".

BERKHATAN :: Menggunakan fail pilihan lalai (F) pilihan DSN yang mentakrifkan soket untuk
"--source" menyebabkan pt-archiver menyambung ke "--dest" menggunakan soket itu melainkan yang lain
soket untuk "--dest" ditentukan. Ini bermakna pt-archiver mungkin tersalah sambung
kepada "--source" apabila ia bersambung ke "--dest". Sebagai contoh:

--sumber F=host1.cnf,D=db,t=tbl --dest h=host2

Apabila pt-archiver menyambung ke "--dest", host2, ia akan menyambung melalui "--source",
host1, soket ditakrifkan dalam host1.cnf.

--lari kering
Cetak pertanyaan dan keluar tanpa melakukan apa-apa.

Menyebabkan pt-archiver keluar selepas mencetak nama fail dan pernyataan SQL yang akan digunakannya.

--fail
jenis: rentetan

Fail untuk diarkibkan, dengan FORMAT TARIKH()-seperti pemformatan.

Nama fail untuk menulis baris yang diarkibkan. Subset MySQL FORMAT TARIKH() pemformatan
kod dibenarkan dalam nama fail, seperti berikut:

%d Hari dalam bulan, angka (01..31)
%J Jam (00..23)
%i Minit, angka (00..59)
%m Bulan, angka (01..12)
%s Saat (00..59)
%Y Tahun, angka, empat digit

Anda juga boleh menggunakan kod format tambahan berikut:

%D Nama pangkalan data
%t Nama jadual

Contoh:

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

Kandungan fail adalah dalam format yang sama yang digunakan oleh SELECT INTO OUTFILE, seperti yang didokumenkan
dalam manual MySQL: baris ditamatkan oleh baris baharu, lajur ditamatkan oleh tab, NULL
aksara diwakili oleh \N, dan aksara khas dilarikan oleh \. Ini membolehkan
anda memuatkan semula fail dengan tetapan lalai LOAD DATA INFILE.

Jika anda mahukan pengepala lajur di bahagian atas fail, lihat "--header". Fail adalah auto-
disiram secara lalai; lihat "--buffer".

--untuk-kemas kini
Menambah pengubah suai FOR UPDATE pada SELECT pernyataan.

Untuk butiran, lihathttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

--kepala
Cetak pengepala lajur di bahagian atas "--file".

Menulis nama lajur sebagai baris pertama dalam fail yang diberikan oleh "--file". Jika fail
wujud, tidak menulis tajuk; ini memastikan fail boleh dimuatkan dengan LOAD DATA INFILE masuk
sekiranya anda menambahkan lebih banyak output padanya.

- membantu
Tunjukkan bantuan dan keluar.

--pilihan-keutamaan-tinggi
Menambah pengubah suai HIGH_PRIORITY pada pernyataan SELECT.

Lihathttp://dev.mysql.com/doc/en/select.html> untuk butiran.

--tuan rumah
bentuk pendek: -h; jenis: rentetan

Sambung ke hos.

--abai
Gunakan IGNORE untuk penyataan INSERT.

Menyebabkan INSERTs ke dalam "--dest" menjadi INSERT IGNORE.

--had
jenis: int; lalai: 1

Bilangan baris untuk diambil dan diarkibkan setiap penyata.

Mengehadkan bilangan baris yang dikembalikan oleh penyataan SELECT yang mendapatkan semula baris
arkib. Lalai ialah satu baris. Ia mungkin lebih cekap untuk meningkatkan had, tetapi jadilah
berhati-hati jika anda jarang mengarkibkan, melangkau banyak baris; ini berpotensi
menyebabkan lebih banyak perbalahan dengan pertanyaan lain, bergantung pada enjin storan, transaksi
tahap pengasingan dan pilihan seperti "--untuk-kemas kini".

--tempatan
Jangan tulis OPTIMIZE atau ANALYZE pertanyaan ke binlog.

Menambahkan pengubahsuai NO_WRITE_TO_BINLOG untuk ANALYZE dan OPTIMIZE pertanyaan. Lihat "--analisis"
untuk maklumat lanjut.

--keutamaan-rendah-padam
Menambahkan pengubah suai LOW_PRIORITY pada DELETE pernyataan.

Lihathttp://dev.mysql.com/doc/en/delete.html> untuk butiran.

--sisipan-keutamaan-rendah
Menambahkan pengubah suai LOW_PRIORITY pada INSERT atau REPLACE pernyataan.

Lihathttp://dev.mysql.com/doc/en/insert.html> untuk butiran.

--aliran-maks-ctl
jenis: terapung

Agak serupa dengan --max-lag tetapi untuk kelompok PXC. Semak purata kluster masa yang dibelanjakan
jeda untuk Kawalan Aliran dan buat alat berhenti jika ia melebihi peratusan yang ditunjukkan
dalam pilihan. Lalai ialah tiada pemeriksaan Kawalan Aliran. Pilihan ini tersedia untuk PXC
versi 5.6 atau lebih tinggi.

--selang-maks
jenis: masa; lalai: 1s

Jeda pengarkiban jika hamba yang diberikan oleh "--check-slave-lag" ketinggalan.

Pilihan ini menyebabkan pt-archiver melihat hamba setiap kali hendak diambil
satu baris lagi. Jika lag hamba lebih besar daripada nilai pilihan, atau jika hamba
tidak berjalan (jadi lagnya adalah NULL), pt-table-checksum tidur untuk "--check-interval"
beberapa saat dan kemudian melihat ketinggalan sekali lagi. Ia berulang sehingga budak itu ditangkap,
kemudian meneruskan untuk mengambil dan mengarkibkan baris tersebut.

Pilihan ini mungkin menghapuskan keperluan untuk "--sleep" atau "--sleep-coef".

--tidak-naik
Jangan gunakan pengoptimuman indeks menaik.

Pengoptimuman indeks menaik lalai menyebabkan "pt-archiver" dioptimumkan berulang
Pertanyaan "PILIH" supaya mereka mencari ke dalam indeks di mana pertanyaan sebelumnya berakhir, kemudian mengimbas
sepanjangnya, bukannya mengimbas dari permulaan jadual setiap kali. Ini adalah
didayakan secara lalai kerana ia biasanya merupakan strategi yang baik untuk akses berulang.

Indeks berbilang lajur yang besar boleh menyebabkan klausa WHERE menjadi cukup rumit
ini sebenarnya mungkin kurang cekap. Pertimbangkan sebagai contoh KUNCI UTAMA empat lajur
pada (a, b, c, d). Klausa WHERE untuk bermula di mana pertanyaan terakhir berakhir adalah seperti berikut:

DI MANA (a > ?)
ATAU (a = ? DAN b > ?)
ATAU (a = ? DAN b = ? DAN c > ?)
ATAU (a = ? DAN b = ? DAN c = ? DAN d >= ?)

Mengisi ruang letak dengan nilai menggunakan memori dan CPU, menambah trafik rangkaian dan
menghuraikan overhed, dan mungkin membuat pertanyaan lebih sukar untuk dioptimumkan oleh MySQL. Empat lajur
kunci bukanlah masalah besar, tetapi kunci sepuluh lajur di mana setiap lajur membenarkan "NULL" mungkin
menjadi.

Menaikkan indeks mungkin tidak diperlukan jika anda tahu anda hanya mengalih keluar baris
dari permulaan jadual dalam ketulan, tetapi tidak meninggalkan sebarang lubang, jadi bermula pada
permulaan jadual sebenarnya adalah perkara yang paling berkesan untuk dilakukan.

Lihat juga "--naik-dahulu". Lihat "MELANJUTKAN" untuk perbincangan tentang cara ini berinteraksi
dengan pemalam.

--tidak-padam
Jangan padamkan baris yang diarkibkan.

Menyebabkan "pt-archiver" tidak memadamkan baris selepas memprosesnya. Ini tidak membenarkan
"--no-ascend", kerana mendayakan kedua-duanya akan menyebabkan gelung tak terhingga.

Jika terdapat pemalam pada sumber DSN, kaedah "before_delete"nya dipanggil,
walaupun "pt-archiver" tidak akan melaksanakan pemadaman. Lihat "MELANJUTKAN" untuk maklumat lanjut tentang
plugin.

--optimumkan
jenis: rentetan

Jalankan OPTIMIZE TABLE selepas itu pada "--source" dan/atau "--dest".

Menjalankan OPTIMIZE TABLE selepas selesai. Lihat "--analyze" untuk sintaks pilihan dan
<http://dev.mysql.com/doc/en/optimize-table.html> untuk butiran tentang OPTIMIZE TABLE.

--kata laluan
bentuk pendek: -p; jenis: rentetan

Kata laluan untuk digunakan semasa menyambung. Jika kata laluan mengandungi koma ia mesti dilepaskan
dengan garis miring ke belakang: "exam\,ple"

--pid
jenis: rentetan

Buat fail PID yang diberikan. Alat ini tidak akan bermula jika fail PID sudah wujud dan
PID yang terkandung adalah berbeza daripada PID semasa. Walau bagaimanapun, jika fail PID
wujud dan PID yang terkandung di dalamnya tidak lagi berjalan, alat itu akan menimpa PID
fail dengan PID semasa. Fail PID dialih keluar secara automatik apabila alat keluar.

--pasangkan
jenis: rentetan

Nama modul Perl untuk digunakan sebagai pemalam generik.

Nyatakan nama modul Perl bagi pemalam tujuan umum. Ia hanya digunakan pada masa ini
untuk statistik (lihat "--statistics") dan mesti mempunyai kaedah "new()" dan "statistics()".

Kaedah "new( src =" $src, dst => $dst, opts => $o )> mendapat sumber dan
DSN destinasi, dan sambungan pangkalan datanya, sama seperti sambungan khusus
pemalam boleh. Ia juga mendapat objek OptionParser ($o) untuk mengakses baris arahan
pilihan (contoh: "$o-"get('purge');>).

Kaedah "statistik(\%stats, $time)" mendapat hashref statistik yang dikumpul oleh
kerja mengarkib, dan masa keseluruhan kerja bermula.

--pelabuhan
bentuk pendek: -P; jenis: int

Nombor port untuk digunakan untuk sambungan.

--kunci-utama sahaja
Lajur kunci utama sahaja.

Pintasan untuk menentukan "--columns" dengan lajur kunci utama. Ini adalah sebuah
kecekapan jika anda hanya mahu membersihkan baris; ia mengelak daripada mengambil keseluruhan baris, apabila
hanya lajur kunci utama diperlukan untuk pernyataan "DELETE". Lihat juga "--purge".

--kemajuan
taip: int

Cetak maklumat kemajuan setiap baris X.

Mencetak masa semasa, masa berlalu dan baris yang diarkibkan setiap baris X.

--bersihkan
Bersihkan daripada mengarkibkan; membenarkan meninggalkan "--file" dan "--dest".

Membenarkan pengarkiban tanpa hujah "--file" atau "--dest", yang secara berkesan adalah pembersihan
memandangkan baris baru dipadamkan.

Jika anda hanya mahu membersihkan baris, pertimbangkan untuk menentukan lajur kunci utama jadual
dengan "--primary-key-only". Ini akan menghalang pengambilan semua lajur daripada pelayan untuk
tiada sebab.

--cepat-padam
Menambah pengubah suai CEPAT pada PADAM kenyataan.

Lihathttp://dev.mysql.com/doc/en/delete.html> untuk butiran. Seperti yang dinyatakan dalam
dokumentasi, dalam beberapa kes mungkin lebih pantas untuk menggunakan DELETE QUICK diikuti dengan OPTIMIZE
JADUAL. Anda boleh menggunakan "--optimum" untuk ini.

--senyap
bentuk pendek: -q

Jangan cetak sebarang output, seperti untuk "--statistics".

Menindas keluaran biasa, termasuk output "--statistik", tetapi tidak menyekat
output daripada "--mengapa-berhenti".

--ganti
Menyebabkan INSERT ke dalam "--dest" ditulis sebagai REPLACE.

--cuba semula
jenis: int; lalai: 1

Bilangan percubaan semula setiap tamat masa atau kebuntuan.

Menentukan bilangan kali pt-archiver harus mencuba semula apabila terdapat kunci InnoDB
tunggu tamat masa atau kebuntuan. Apabila percubaan semula telah habis, pt-archiver akan keluar dengan
kesilapan.

Pertimbangkan dengan teliti perkara yang anda mahu berlaku apabila anda mengarkibkan antara campuran
enjin storan transaksi dan bukan transaksi. INSERT ke "--dest" dan
PADAM daripada "--source" berada pada sambungan berasingan, jadi ia sebenarnya tidak
mengambil bahagian dalam transaksi yang sama walaupun mereka berada pada pelayan yang sama. Walau bagaimanapun, pt-
arkib melaksanakan urus niaga teragih mudah dalam kod, jadi commit dan rollback
sepatutnya berlaku seperti yang dikehendaki merentasi kedua-dua sambungan.

Pada masa ini saya belum menulis sebarang kod untuk menangani ralat dengan storan transaksi
enjin selain daripada InnoDB. Minta ciri itu jika anda memerlukannya.

--masa berjalan
jenis: masa

Masa untuk berlari sebelum keluar.

Akhiran pilihan s=saat, m=minit, h=jam, d=hari; jika tiada akhiran, s digunakan.

--[no]safe-auto-increment
lalai: ya

Jangan arkibkan baris dengan AUTO_INCREMENT maksimum.

Menambah klausa WHERE tambahan untuk menghalang pt-archiver daripada mengalih keluar baris terbaru apabila
menaik kekunci AUTO_INCREMENT satu lajur. Ini melindungi daripada penggunaan semula
AUTO_INCREMENT nilai jika pelayan dimulakan semula, dan didayakan secara lalai.

Klausa WHERE tambahan mengandungi nilai maksimum lajur kenaikan automatik pada
permulaan kerja arkib atau pembersihan. Jika baris baharu dimasukkan semasa pt-archiver
sedang berjalan, ia tidak akan melihat mereka.

--sentinel
jenis: rentetan; lalai: /tmp/pt-archiver-sentinel

Keluar jika fail ini wujud.

Kehadiran fail yang ditentukan oleh "--sentinel" akan menyebabkan pt-archiver berhenti
mengarkib dan keluar. Lalai ialah /tmp/pt-archiver-sentinel. Anda mungkin dapati ini
berguna untuk menghentikan kerja cron dengan anggun jika perlu. Lihat juga "--berhenti".

--set-vars
jenis: Tatasusunan

Tetapkan pembolehubah MySQL dalam senarai pasangan "pembolehubah=nilai" yang dipisahkan koma ini.

Secara lalai, set alat:

tunggu_masa tamat=10000

Pembolehubah yang ditentukan pada baris arahan mengatasi lalai ini. Sebagai contoh,
menyatakan "--set-vars wait_timeout=500" menggantikan nilai lalai 10000.

Alat mencetak amaran dan meneruskan jika pembolehubah tidak boleh ditetapkan.

--kongsi-kunci
Menambah pengubah mod LOCK IN SHARE MODE pada pernyataan SELECT.

Lihathttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

--langkau-semakan-kunci-asing
Melumpuhkan semakan kunci asing dengan SET FOREIGN_KEY_CHECKS=0.

--tidur
taip: int

Masa tidur antara pengambilan.

Menentukan berapa lama untuk tidur antara pernyataan SELECT. Lalai adalah untuk tidak tidur
semua. Transaksi TIDAK dilakukan, dan fail "--file" TIDAK disiram, sebelum ini
sedang tidur. Lihat "--txn-size" untuk mengawalnya.

Jika "--commit-each" dinyatakan, commit dan flushing berlaku sebelum tidur.

--sleep-coef
jenis: terapung

Kira "--sleep" sebagai gandaan masa SELECT terakhir.

Jika pilihan ini ditentukan, pt-archiver akan tidur untuk masa pertanyaan yang terakhir
SELECT didarab dengan pekali yang ditentukan.

Ini ialah cara yang lebih canggih sedikit untuk mendikitkan SELECT: tidur yang berbeza-beza
jumlah masa antara setiap SELECT, bergantung pada berapa lama SELECT mengambil masa.

--soket
Singkatan; jenis: rentetan

Fail soket untuk digunakan untuk sambungan.

--sumber
jenis: DSN

DSN menentukan jadual untuk diarkibkan (diperlukan). Hujah ini adalah DSN. Lihat
"DSN OPTIONS" untuk sintaks. Kebanyakan pilihan mengawal cara pt-archiver menyambung ke MySQL,
tetapi terdapat beberapa pilihan DSN lanjutan dalam sintaks alat ini. D, t dan i
pilihan pilih jadual untuk diarkibkan:

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

Pilihan a menentukan pangkalan data untuk ditetapkan sebagai lalai sambungan dengan USE. Jika
pilihan b adalah benar, ia melumpuhkan pengelogan binari dengan SQL_LOG_BIN. Pilihan m
menentukan tindakan boleh pasang, yang boleh disediakan oleh modul Perl luaran. Satu-satunya
bahagian yang diperlukan ialah jadual; bahagian lain boleh dibaca dari pelbagai tempat di
persekitaran (seperti fail pilihan).

Bahagian 'i' patut diberi perhatian khusus. Ini memberitahu pt-archiver indeks yang sepatutnya
imbas untuk arkib. Ini muncul dalam petunjuk FORCE INDEX atau USE INDEX dalam SELECT
pernyataan yang digunakan untuk mengambil baris yang boleh diarkibkan. Jika anda tidak menyatakan apa-apa, pt-archiver
akan mencari indeks yang baik secara automatik, memilih "KUNCI UTAMA" jika ada. dalam saya
mengalami ini biasanya berfungsi dengan baik, jadi kebanyakan masa anda mungkin boleh meninggalkannya
bahagian 'saya'.

Indeks digunakan untuk mengoptimumkan akses berulang ke jadual; pt-archiver ingat
baris terakhir yang diambilnya daripada setiap pernyataan SELECT, dan menggunakannya untuk membina WHERE
klausa, menggunakan lajur dalam indeks yang ditentukan, yang sepatutnya membenarkan MySQL memulakan fail
seterusnya PILIH di mana yang terakhir berakhir, bukannya berpotensi mengimbas dari
permulaan jadual dengan setiap SELECT berturut-turut. Jika anda menggunakan luaran
pemalam, sila lihat "MELUAS" untuk perbincangan tentang cara ia berinteraksi dengan menaik
indeks.

Pilihan 'a' dan 'b' membolehkan anda mengawal cara penyataan mengalir melalui binari
log. Jika anda menentukan pilihan 'b', pengelogan binari akan dilumpuhkan pada yang ditentukan
sambungan. Jika anda menentukan pilihan 'a', sambungan akan "GUNAKAN" yang ditentukan
pangkalan data, yang boleh anda gunakan untuk menghalang hamba daripada melaksanakan peristiwa log binari
dengan pilihan "--replicate-ignore-db". Kedua-dua pilihan ini boleh digunakan sebagai berbeza
kaedah untuk mencapai matlamat yang sama: arkibkan data daripada induk, tetapi biarkan pada
hamba. Sebagai contoh, anda boleh menjalankan kerja pembersihan pada tuan dan menghalangnya daripada
berlaku pada hamba menggunakan kaedah pilihan anda.

BERKHATAN :: Menggunakan fail pilihan lalai (F) pilihan DSN yang mentakrifkan soket untuk
"--source" menyebabkan pt-archiver menyambung ke "--dest" menggunakan soket itu melainkan yang lain
soket untuk "--dest" ditentukan. Ini bermakna pt-archiver mungkin tersalah sambung
kepada "--source" apabila ia bertujuan untuk menyambung ke "--dest". Sebagai contoh:

--sumber F=host1.cnf,D=db,t=tbl --dest h=host2

Apabila pt-archiver menyambung ke "--dest", host2, ia akan menyambung melalui "--source",
host1, soket ditakrifkan dalam host1.cnf.

--statistik
Mengumpul dan mencetak statistik masa.

Menyebabkan pt-archiver mengumpul statistik masa tentang perkara yang dilakukannya. Perangkaan ini
tersedia untuk pemalam yang ditentukan oleh "--plugin"

Melainkan anda menyatakan "--quiet", "pt-archiver" mencetak statistik apabila ia keluar. The
statistik kelihatan seperti ini:

Started at 2008-07-18T07:18:53, ended at 2008-07-18T07:18:53
Sumber: D=db,t=jadual
PILIH 4
Sisipkan 4
PADAM 4
Masa Kiraan Tindakan Pct
komit 10 0.1079 88.27
pilih 5 0.0047 3.87
memadam 4 0.0028 2.29
memasukkan 4 0.0028 2.28
lain 0 0.0040 3.29

Dua (atau tiga) baris pertama menunjukkan masa dan jadual sumber dan destinasi. The
tiga baris seterusnya menunjukkan bilangan baris yang telah diambil, disisipkan dan dipadamkan.

Baris yang tinggal menunjukkan kiraan dan masa. Lajur ialah tindakan, jumlahnya
bilangan kali tindakan itu dimasa, jumlah masa yang diambil, dan peratus daripada
jumlah masa jalan program. Baris diisih mengikut urutan jumlah masa menurun. The
baris terakhir ialah baki masa yang tidak dikaitkan dengan apa-apa secara eksplisit. Tindakan akan
berbeza-beza bergantung pada pilihan baris arahan.

Jika "--mengapa-berhenti" diberikan, tingkah lakunya berubah sedikit. Pilihan ini menyebabkannya
cetak alasan untuk keluar walaupun hanya kerana tiada lagi baris.

Pilihan ini memerlukan modul Time::HiRes standard, yang merupakan sebahagian daripada teras Perl on
keluaran Perl yang agak baharu.

--berhenti
Berhenti menjalankan contoh dengan mencipta fail sentinel.

Menyebabkan pt-archiver mencipta fail sentinel yang ditentukan oleh "--sentinel" dan keluar.
Ini sepatutnya mempunyai kesan menghentikan semua kejadian yang sedang berjalan yang menonton
fail sentinel yang sama.

--saiz txn
jenis: int; lalai: 1

Bilangan baris setiap transaksi.

Menentukan saiz, dalam bilangan baris, setiap transaksi. Sifar melumpuhkan transaksi
kesemuanya. Selepas pt-archiver memproses banyak baris ini, ia melakukan kedua-dua
"--source" dan "--dest" jika diberikan, dan buang fail yang diberikan oleh "--file".

Parameter ini penting untuk prestasi. Jika anda mengarkib daripada pelayan langsung,
yang contohnya melakukan kerja OLTP yang berat, anda perlu memilih keseimbangan yang baik antara
saiz transaksi dan komit overhed. Transaksi yang lebih besar mewujudkan kemungkinan
lebih banyak pertikaian kunci dan kebuntuan, tetapi transaksi yang lebih kecil menyebabkan lebih kerap
melakukan overhed, yang boleh menjadi penting. Untuk memberi idea, pada set ujian kecil I
digunakan semasa menulis pt-archiver, nilai 500 menyebabkan pengarkiban mengambil masa kira-kira 2
saat setiap 1000 baris pada contoh MySQL yang senyap pada mesin desktop saya,
mengarkib ke cakera dan ke jadual lain. Melumpuhkan transaksi dengan nilai sifar,
yang menghidupkan autokomit, menurunkan prestasi kepada 38 saat bagi setiap seribu baris.

Jika anda tidak mengarkib daripada atau ke enjin storan transaksi, anda mungkin mahu
lumpuhkan transaksi supaya pt-archiver tidak cuba melakukan.

--pengguna
bentuk pendek: -u; jenis: rentetan

Pengguna untuk log masuk jika bukan pengguna semasa.

--versi
Tunjukkan versi dan keluar.

--[no]version-check
lalai: ya

Semak versi terkini Percona Toolkit, MySQL dan program lain.

Ini ialah ciri standard "semak kemas kini secara automatik", dengan dua tambahan
ciri-ciri. Pertama, alat itu menyemak versi program lain pada sistem tempatan masuk
tambahan kepada versinya sendiri. Sebagai contoh, ia menyemak versi setiap pelayan MySQL
ia bersambung ke, Perl, dan modul Perl DBD::mysql. Kedua, ia menyemak dan memberi amaran
tentang versi yang mempunyai masalah yang diketahui. Sebagai contoh, MySQL 5.5.25 mempunyai pepijat kritikal dan
telah dikeluarkan semula pada 5.5.25a.

Sebarang kemas kini atau masalah yang diketahui dicetak ke STDOUT sebelum keluaran biasa alat.
Ciri ini tidak boleh mengganggu operasi normal alat.

Untuk maklumat lanjut, lawati .

--di mana
jenis: rentetan

Klausa WHERE untuk mengehadkan baris mana yang hendak diarkibkan (diperlukan).

Menentukan klausa WHERE untuk mengehadkan baris mana yang diarkibkan. Jangan masukkan perkataan
DI MANA. Anda mungkin perlu memetik hujah untuk menghalang shell anda daripada mentafsirnya.
Sebagai contoh:

--di mana 'ts < current_date - selang 90 hari'

Untuk keselamatan, "--di mana" diperlukan. Jika anda tidak memerlukan klausa WHERE, gunakan
"--di mana" 1=1.

--kenapa-berhenti
Cetak sebab untuk keluar melainkan baris habis.

Menyebabkan pt-archiver mencetak mesej jika ia keluar atas sebarang sebab selain daripada berjalan
keluar daripada baris untuk diarkibkan. Ini boleh berguna jika anda mempunyai tugas cron dengan "--run-time"
dinyatakan, sebagai contoh, dan anda ingin memastikan pt-archiver selesai sebelum ini
kesuntukan masa.

Jika "--statistik" diberikan, tingkah laku diubah sedikit. Ia akan mencetak
sebab untuk keluar walaupun hanya kerana tiada lagi baris.

Output ini dicetak walaupun "--quiet" diberikan. Itu supaya anda boleh memasukkan "pt-archiver".
kerja "cron" dan dapatkan e-mel jika terdapat jalan keluar yang tidak normal.

DSN PILIHAN


Pilihan DSN ini digunakan untuk mencipta DSN. Setiap pilihan diberikan seperti "option=value".
Pilihan adalah sensitif huruf besar-besaran, jadi P dan p bukan pilihan yang sama. Tidak boleh ada
ruang kosong sebelum atau selepas "=" dan jika nilai mengandungi ruang kosong, ia mesti dipetik.
Pilihan DSN dipisahkan koma. Lihat halaman manual percona-toolkit untuk butiran penuh.

· A

salinan: tidak

Pangkalan data untuk DIGUNAKAN apabila melaksanakan pertanyaan.

· AT

dsn: charset; salinan: ya

Set aksara lalai.

· B

salinan: tidak

Jika benar, lumpuhkan binlog dengan SQL_LOG_BIN.

· D

dsn: pangkalan data; salinan: ya

Pangkalan data yang mengandungi jadual.

· F

dsn: mysql_read_default_file; salinan: ya

Hanya baca pilihan lalai daripada fail yang diberikan

· H

dsn: hos; salinan: ya

Sambung ke hos.

· I

salinan: ya

Indeks untuk digunakan.

· L

salinan: ya

Dayakan LOAD DATA LOCAL INFILE secara eksplisit.

Atas sebab tertentu, sesetengah vendor menyusun libmysql tanpa --enable-local-infile
pilihan, yang melumpuhkan pernyataan. Ini boleh membawa kepada situasi pelik, seperti
pelayan membenarkan LOCAL INFILE, tetapi klien membuang pengecualian jika ia digunakan.

Walau bagaimanapun, selagi pelayan membenarkan LOAD DATA, pelanggan boleh mendayakannya semula dengan mudah; Lihat
dan
<http://search.cpan.org/~capttofu/DBD-mysql/lib/DBD/mysql.pm>. Pilihan ini tidak
betul-betul itu.

Walaupun kami tidak menemui kes yang mengubah pilihan ini membawa kepada ralat atau perbezaan
tingkah laku, untuk berada di bahagian yang selamat, pilihan ini tidak dihidupkan secara lalai.

· m

salinan: tidak

Nama modul pemalam.

· hlm

dsn: kata laluan; salinan: ya

Kata laluan untuk digunakan semasa menyambung. Jika kata laluan mengandungi koma ia mesti dilepaskan
dengan garis miring ke belakang: "exam\,ple"

· P

dsn: pelabuhan; salinan: ya

Nombor port untuk digunakan untuk sambungan.

· S

dsn: mysql_socket; salinan: ya

Fail soket untuk digunakan untuk sambungan.

· t

salinan: ya

Jadual untuk diarkibkan dari/ke.

· u

dsn: pengguna; salinan: ya

Pengguna untuk log masuk jika bukan pengguna semasa.

MELANJUTKAN


pt-archiver boleh diperluaskan dengan memasukkan modul Perl luaran untuk mengendalikan beberapa logik dan/atau
tindakan. Anda boleh menentukan modul untuk kedua-dua "--source" dan "--dest", dengan 'm'
sebahagian daripada spesifikasi. Sebagai contoh:

--sumber D=test,t=test1,m=My::Module1 --dest m=My::Module2,t=test2

Ini akan menyebabkan pt-archiver memuatkan pakej My::Module1 dan My::Module2, buat
contoh mereka, dan kemudian membuat panggilan kepada mereka semasa proses pengarkiban.

Anda juga boleh menentukan pemalam dengan "--plugin".

Modul mesti menyediakan antara muka ini:

baru(dbh => $dbh, db => $db_name, tbl => $tbl_name)
Pembina pemalam diberikan rujukan kepada pemegang pangkalan data, pangkalan data
nama, dan nama jadual. Pemalam dibuat hanya selepas pt-archiver membuka fail
sambungan, dan sebelum ia memeriksa jadual yang diberikan dalam hujah. Ini memberikan
pemalam peluang untuk mencipta dan mengisi jadual sementara, atau melakukan kerja persediaan lain.

before_begin(cols => \@cols, allcols => \@allcols)
Kaedah ini dipanggil sejurus sebelum pt-archiver mula lelaran melalui baris dan
mengarkibkannya, tetapi selepas ia melakukan semua kerja persediaan lain (meneliti struktur jadual,
mereka bentuk pertanyaan SQL, dan sebagainya). Ini adalah satu-satunya masa pt-archiver memberitahu pemalam
nama lajur untuk baris yang akan lulus pemalam semasa mengarkibkan.

Argumen "cols" ialah nama lajur yang diminta oleh pengguna untuk diarkibkan, sama ada oleh
lalai atau dengan pilihan "--columns". Argumen "allcols" ialah senarai lajur
nama untuk setiap baris pt-archiver akan diambil daripada jadual sumber. Ia mungkin mendapat lebih banyak
lajur daripada yang diminta pengguna, kerana ia memerlukan beberapa lajur untuk kegunaannya sendiri. Bila
fungsi pemalam seterusnya menerima baris, ia adalah baris penuh yang mengandungi semua tambahan
lajur, jika ada, ditambah pada penghujung.

is_archivable(row => \@row)
Kaedah ini dipanggil untuk setiap baris untuk menentukan sama ada ia boleh diarkibkan. ini
terpakai hanya untuk "--source". Hujahnya ialah baris itu sendiri, sebagai arrayref. Sekiranya
kaedah mengembalikan benar, baris akan diarkibkan; jika tidak ia akan dilangkau.

Melangkau satu baris menambah komplikasi untuk indeks bukan unik. Biasanya pt-archiver menggunakan a
Klausa WHERE direka untuk menyasarkan baris terakhir yang diproses sebagai tempat untuk memulakan imbasan
untuk pernyataan SELECT seterusnya. Jika anda telah melangkau baris dengan mengembalikan palsu daripada
is_archivable(), pt-archiver boleh masuk ke gelung tak terhingga kerana baris masih
wujud. Oleh itu, apabila anda menentukan pemalam untuk hujah "--source", pt-archiver
akan menukar sedikit klausa WHEREnya. Daripada bermula pada "lebih besar daripada atau sama
ke" baris terakhir yang diproses, ia akan bermula "lebih besar daripada." Ini akan berfungsi
baik pada indeks unik seperti kunci utama, tetapi ia boleh melangkau baris (meninggalkan lubang) dihidupkan
indeks bukan unik atau apabila menaik hanya lajur pertama indeks.

"pt-archiver" akan menukar klausa dengan cara yang sama jika anda menentukan "--no-delete",
kerana sekali lagi gelung tak terhingga adalah mungkin.

Jika anda menentukan pilihan "--bulk-delete" dan mengembalikan palsu daripada kaedah ini,
"pt-archiver" mungkin tidak melakukan apa yang anda mahu. Baris itu tidak akan diarkibkan, tetapi akan diarkibkan
dipadamkan, kerana pemadaman pukal beroperasi pada julat baris dan tidak tahu baris mana yang
pemalam dipilih untuk disimpan.

Jika anda menentukan pilihan "--bulk-insert", nilai pulangan kaedah ini akan mempengaruhi
sama ada baris ditulis pada fail sementara untuk sisipan pukal, jadi sisipan pukal
akan berfungsi seperti yang diharapkan. Walau bagaimanapun, sisipan pukal memerlukan pemadaman pukal.

before_delete(baris => \@baris)
Kaedah ini dipanggil untuk setiap baris sejurus sebelum ia dipadamkan. Ini hanya terpakai kepada
"--sumber". Ini adalah tempat yang baik untuk anda mengendalikan kebergantungan, seperti memadam
perkara yang berkunci asing pada baris yang akan anda padamkan. Anda juga boleh menggunakan
ini untuk mengarkibkan semua jadual bergantung secara rekursif.

Kaedah pemalam ini dipanggil walaupun "--no-delete" diberikan, tetapi bukan jika
"--bulk-delete" diberikan.

before_bulk_delete(first_row => \@row, last_row => \@row)
Kaedah ini dipanggil sejurus sebelum pemadaman pukal dilaksanakan. Ia serupa dengan
kaedah "before_delete", kecuali argumennya ialah baris pertama dan terakhir julat
untuk dipadamkan. Ia dipanggil walaupun "--no-delete" diberikan.

before_insert(baris => \@baris)
Kaedah ini dipanggil untuk setiap baris sejurus sebelum ia dimasukkan. Ini hanya terpakai kepada
"--dest". Anda boleh menggunakan ini untuk memasukkan baris ke dalam berbilang jadual, mungkin dengan
PADA klausa KEMASKINI KUNCI PENDUPLICATE untuk membina jadual ringkasan dalam gudang data.

Kaedah ini tidak dipanggil jika "--bulk-insert" diberikan.

before_bulk_insert(first_row => \@row, last_row => \@row, nama fail =>
bulk_insert_filename)
Kaedah ini dipanggil sejurus sebelum sisipan pukal dilaksanakan. Ia serupa dengan
kaedah "before_insert", kecuali argumennya ialah baris pertama dan terakhir julat
untuk dipadamkan.

custom_sth(baris => \@baris, sql => $sql)
Kaedah ini dipanggil sejurus sebelum memasukkan baris, tetapi selepas "before_insert()". Ia
membenarkan pemalam untuk menentukan pernyataan "INSERT" yang berbeza jika dikehendaki. Pulangannya
nilai (jika ada) hendaklah menjadi pemegang penyata DBI. Parameter "sql" ialah teks SQL
digunakan untuk menyediakan pernyataan "INSERT" lalai. Kaedah ini tidak dipanggil jika anda
nyatakan "--bulk-insert".

Jika tiada nilai dikembalikan, pemegang penyata "INSERT" lalai digunakan.

Kaedah ini hanya digunakan pada pemalam yang ditentukan untuk "--dest", jadi jika pemalam anda tidak
melakukan apa yang anda harapkan, pastikan anda telah menentukannya untuk destinasi dan bukan destinasi
sumber.

custom_sth_bulk(first_row => \@row, last_row => \@row, sql => $sql, nama fail =>
$bulk_insert_filename)
Jika anda telah menentukan "--bulk-insert", kaedah ini dipanggil sebelum pukal
masukkan, tetapi selepas "before_bulk_insert()", dan hujahnya berbeza.

Nilai pulangan kaedah ini dan lain-lain adalah serupa dengan "custom_sth()" kaedah.

after_finish()
Kaedah ini dipanggil selepas pt-archiver keluar dari gelung pengarkiban, melakukan semua pangkalan data
mengendalikan, menutup "--file", dan mencetak statistik akhir, tetapi sebelum pt-archiver dijalankan
ANALYZE atau OPTIMIZE (lihat "--analyze" dan "--optimize").

Jika anda menentukan pemalam untuk kedua-dua "--source" dan "--dest", binaan pt-archiver, panggil
before_begin(), dan panggilan after_finish() pada dua pemalam dalam susunan "--source",
"--dest".

pt-archiver menganggap ia mengawal urus niaga, dan pemalam TIDAK akan melakukan atau melancarkan
kembali pemegang pangkalan data. Pemegang pangkalan data yang diserahkan kepada pembina pemalam ialah
pemegang yang sama pt-archiver menggunakan dirinya sendiri. Ingat bahawa "--source" dan "--dest" adalah berasingan
pemegang.

Contoh modul mungkin kelihatan seperti ini:

pakej My::Module;

sub baru {
my ($class, %args ) = @_;
return bless(\%args, $class);
}

sub before_begin {
my ($self, %args ) = @_;
# Simpan nama lajur untuk kemudian
$self->{cols} = $args{cols};
}

sub is_archivable {
my ($self, %args ) = @_;
# Lakukan beberapa logik lanjutan dengan $args{row}
1 kembali;
}

sub before_delete {} # Jangan ambil tindakan
sub before_insert {} # Jangan ambil tindakan
sub custom_sth {} # Jangan ambil tindakan
sub after_finish {} # Jangan ambil tindakan

1;

PERSEKITARAN


Pembolehubah persekitaran "PTDEBUG" mendayakan output nyahpepijat verbose kepada STDERR. Bagi membolehkan
penyahpepijatan dan tangkap semua output ke fail, jalankan alat seperti:

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

Berhati-hati: output penyahpepijatan adalah besar dan boleh menjana beberapa megabait output.

SISTEM KEPERLUAN


Anda memerlukan Perl, DBI, DBD::mysql, dan beberapa pakej teras yang sepatutnya dipasang dalam mana-mana
versi Perl yang agak baharu.

Gunakan pt-archiverp dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

  • 1
    DivKit
    DivKit
    DivKit ialah sumber terbuka Didorong Pelayan
    Rangka kerja UI (SDUI). Ia membolehkan anda
    melancarkan kemas kini bersumberkan pelayan kepada
    versi aplikasi yang berbeza. Juga, boleh jadi
    terpakai untuk ...
    Muat turun DivKit
  • 2
    subconverter
    subconverter
    Utiliti untuk menukar antara pelbagai
    format langganan. Pengguna Shadowrocket
    harus menggunakan ss, ssr atau v2ray sebagai sasaran.
    Anda boleh menambah &remark= kepada
    HT yang disukai Telegram...
    Muat turun subconverter
  • 3
    SWASH
    SWASH
    SWASH ialah berangka tujuan umum
    alat untuk mensimulasikan goyah,
    bukan hidrostatik, permukaan bebas,
    fenomena aliran putaran dan pengangkutan
    di perairan pantai sebagai...
    Muat turun SWASH
  • 4
    VBA-M (Diarkib - Kini di Github)
    VBA-M (Diarkib - Kini di Github)
    Projek telah berpindah ke
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Ciri-ciri: Ciptaan menipu simpan statesmulti
    sistem, menyokong gba, gbc, gb, sgb,
    sgb2Tu...
    Muat turun VBA-M (Diarkib - Sekarang di Github)
  • 5
    Stacer
    Stacer
    Pengoptimum dan Pemantauan Sistem Linux
    Repositori Github:
    https://github.com/oguzhaninan/Stacer.
    Khalayak: Pengguna Akhir/Desktop. pengguna
    antara muka: Qt. Pengaturcaraan La...
    Muat turun Stacer
  • 6
    orangefox
    orangefox
    Fork TeamWinRecoveryProject(TWRP)
    dengan banyak fungsi tambahan, reka bentuk semula
    dan banyak lagi Ciri:Menyokong Treble dan
    bukan-Treble ROM kernel Oreo terkini,
    dibina...
    Muat turun OrangeFox
  • Lebih »

Arahan Linux

Ad