Fungsi dan prosedur dump mysql

Pesan kesalahannya cukup jelas. Pencatatan biner perlu diaktifkan untuk memulihkan fungsi. Ada dua cara untuk melakukan ini

  • Jalankan perintah berikut ke dalam konsol MySQL.
    	SET GLOBAL log_bin_trust_function_creators = 1;
    	
  • Tambahkan baris
    mysql -u dbuser -p dbname2 < dump.sql
    
    _1 ke file konfigurasi
    mysql -u dbuser -p dbname2 < dump.sql
    
    2

N. B. Jalankan perintah berikut untuk menampilkan daftar prosedur dan fungsi tersimpan

SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;

logging biner, fungsi, log_bin_trust_function_creators, MySQL, mysqldump, rutinitas, prosedur tersimpan


Catatan ini telah diposting pada 01 Mar 2011, 20. 39 dan diajukan di bawah MySQL. Anda dapat mengikuti respons apa pun untuk entri ini melalui RSS 2. 0. Anda dapat melewati sampai akhir dan meninggalkan tanggapan. Ping saat ini tidak diperbolehkan

Klien

--fields-enclosed-by='"'
5 adalah program cadangan yang aslinya ditulis oleh Igor Romanenko. Ini dapat digunakan untuk membuang database atau kumpulan database untuk cadangan atau transfer ke server database lain [tidak harus MariaDB atau MySQL]. Dump biasanya berisi pernyataan SQL untuk membuat tabel, mengisinya, atau keduanya. Namun,
--fields-enclosed-by='"'
_5 juga dapat digunakan untuk membuat file dalam format CSV, teks terbatas lainnya, atau XML

Jika Anda melakukan pencadangan di server dan semua tabel Anda adalah tabel MyISAM, pertimbangkan untuk menggunakan mysqlhotcopy sebagai gantinya karena dapat menyelesaikan pencadangan lebih cepat dan pemulihan lebih cepat

mysqldump dump memicu bersama dengan tabel, karena ini adalah bagian dari definisi tabel. Namun, prosedur tersimpan, tampilan, dan acara tidak, dan memerlukan parameter tambahan untuk dibuat ulang secara eksplisit [misalnya,

--fields-enclosed-by='"'
8 dan
--fields-enclosed-by='"'
9]. Namun, prosedur dan fungsi juga merupakan bagian dari tabel sistem [misalnya mysql. proses]

--fields-enclosed-by='"'
_5 mendukung

Pertunjukan

mysqldump biasanya tidak menghabiskan banyak sumber daya CPU pada perangkat keras modern karena secara default menggunakan satu utas. Metode ini bagus untuk server yang sarat muatan

Input/output disk per detik [IOPS], namun dapat meningkat karena berbagai alasan. Saat Anda mencadangkan pada perangkat yang sama dengan database, ini menghasilkan IOPS acak yang tidak perlu. Dump dilakukan secara berurutan, berdasarkan per tabel, menyebabkan pemindaian tabel penuh dan banyak halaman buffer terlewatkan pada tabel yang tidak sepenuhnya di-cache di memori

Anda disarankan untuk mencadangkan dari lokasi jaringan untuk menghapus IOPS disk di server database, tetapi sangat penting untuk menggunakan kartu jaringan terpisah agar bandwidth jaringan tetap tersedia untuk lalu lintas reguler

Meskipun mysqldump secara default akan mempertahankan sumber daya Anda untuk disk spindel reguler dan perangkat keras berinti rendah, ini tidak berarti bahwa dump bersamaan tidak dapat memanfaatkan arsitektur perangkat keras seperti SAN, penyimpanan flash, beban kerja tulis rendah. Waktu pencadangan akan mendapat manfaat dari alat seperti MyDumper

Penggunaan

Ada empat cara umum untuk memohon

--fields-enclosed-by='"'
5

shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases
shell> mysqldump [options] --system=[option_list]

Jika Anda tidak memberi nama tabel apa pun setelah db_name atau jika Anda menggunakan opsi

--fields-enclosed-by=0x22
2 atau
--fields-enclosed-by=0x22
3, seluruh database akan dibuang

--fields-enclosed-by='"'
5 tidak membuang database INFORMATION_SCHEMA [atau PERFORMANCE_SCHEMA, jika diaktifkan] secara default. MariaDB membuang
--fields-enclosed-by=0x22
_5 jika Anda menamainya secara eksplisit di baris perintah, meskipun saat ini Anda juga harus menggunakan opsi
--fields-enclosed-by=0x22
6

Untuk melihat daftar opsi yang didukung versi

--fields-enclosed-by='"'
5 Anda, jalankan
--fields-enclosed-by=0x22
8

Baris demi Baris vs. Penyangga

--fields-enclosed-by='"'
5 dapat mengambil dan membuang konten tabel baris demi baris, atau dapat mengambil seluruh konten dari tabel dan menyangganya di memori sebelum membuangnya. Buffer di memori bisa menjadi masalah jika Anda membuang tabel besar. Untuk membuang tabel baris demi baris, gunakan opsi
shell> mysqldump --xml -u root world City














1
Kabul
AFG
Kabol
1780000

...

4079
Rafah
PSE
Rafah
92020




0 [atau
shell> mysqldump --xml -u root world City














1
Kabul
AFG
Kabol
1780000

...

4079
Rafah
PSE
Rafah
92020




1, yang mengaktifkan
shell> mysqldump --xml -u root world City














1
Kabul
AFG
Kabol
1780000

...

4079
Rafah
PSE
Rafah
92020




0]. Opsi
shell> mysqldump --xml -u root world City














1
Kabul
AFG
Kabol
1780000

...

4079
Rafah
PSE
Rafah
92020




_1 [dan karenanya
shell> mysqldump --xml -u root world City














1
Kabul
AFG
Kabol
1780000

...

4079
Rafah
PSE
Rafah
92020




0] diaktifkan secara default, jadi untuk mengaktifkan buffering memori, gunakan
shell> mysqldump --xml -u root world City














1
Kabul
AFG
Kabol
1780000

...

4079
Rafah
PSE
Rafah
92020




5

--fields-enclosed-by='"'
5 di MariaDB 10. 3 termasuk logika untuk melayani mysql. tabel transaction_registry.
--fields-enclosed-by='"'
5 dari rilis MariaDB sebelumnya tidak dapat digunakan pada MariaDB 10. 3 dan seterusnya

mysqldump dan Versi Lama MySQL

Jika Anda menggunakan versi terbaru

--fields-enclosed-by='"'
_5 untuk menghasilkan dump yang akan dimuat ulang ke server MySQL yang sangat lama, sebaiknya Anda tidak menggunakan opsi
shell> mysqldump --xml -u root world City














1
Kabul
AFG
Kabol
1780000

...

4079
Rafah
PSE
Rafah
92020




1 atau
mysql db_name < backup-file.sql
0. Gunakan
mysql db_name < backup-file.sql
_1 sebagai gantinya

Pilihan

--fields-enclosed-by='"'
_5 mendukung opsi berikut

Opsi Grup

Beberapa opsi

--fields-enclosed-by='"'
_5 adalah singkatan untuk grup opsi lain

  • Penggunaan
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    1 sama dengan menyebutkan
    mysql db_name < backup-file.sql
    
    5,
    mysql db_name < backup-file.sql
    
    6,
    mysql db_name < backup-file.sql
    
    7,
    mysql db_name < backup-file.sql
    
    8,
    mysql db_name < backup-file.sql
    
    0,
    shell> mysqldump db_name > backup-file.sql
    
    0,
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    0, dan
    shell> mysqldump db_name > backup-file.sql
    
    2. Semua opsi yang
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    _1 juga diaktifkan secara default karena
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    1 diaktifkan secara default
  • Penggunaan
    shell> mysqldump db_name > backup-file.sql
    
    _5 sama dengan menentukan opsi
    shell> mysqldump db_name > backup-file.sql
    
    6,
    shell> mysqldump db_name > backup-file.sql
    
    7,
    shell> mysqldump db_name > backup-file.sql
    
    8,
    shell> mysqldump db_name > backup-file.sql
    
    9, dan
    shell> mysql db_name < backup-file.sql
    
    0

Untuk membalikkan efek opsi grup, gunakan formulir

shell> mysql db_name < backup-file.sql
1 [
mysql db_name < backup-file.sql
1 atau
shell> mysql db_name < backup-file.sql
3]. Dimungkinkan juga untuk memilih hanya sebagian dari efek opsi grup dengan mengikutinya dengan opsi yang mengaktifkan atau menonaktifkan fitur tertentu. Berikut beberapa contohnya

  • Untuk memilih efek
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    _1 kecuali untuk beberapa fitur, gunakan opsi
    shell> mysql db_name < backup-file.sql
    
    5 untuk setiap fitur. Untuk menonaktifkan sisipan tambahan dan penyangga memori, gunakan
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    1
    shell> mysql db_name < backup-file.sql
    
    7
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    5. [Sebenarnya,
    shell> mysql db_name < backup-file.sql
    
    7
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    5 sudah cukup karena
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    1 diaktifkan secara default. ]
  • Untuk membalik
    shell> mysqldump --xml -u root world City
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    1
    Kabul
    AFG
    Kabol
    1780000
    
    ...
    
    4079
    Rafah
    PSE
    Rafah
    92020
    
    
    
    
    
    _1 untuk semua fitur kecuali penonaktifan indeks dan penguncian tabel, gunakan
    mysql db_name < backup-file.sql
    
    1
    mysql db_name < backup-file.sql
    
    8
    shell> mysqldump db_name > backup-file.sql
    
    0

Saat Anda secara selektif mengaktifkan atau menonaktifkan efek opsi grup, urutan penting karena opsi diproses dari awal hingga akhir. Misalnya,

mysql db_name < backup-file.sql
8
shell> mysqldump db_name > backup-file.sql
0
mysql db_name < backup-file.sql
1 tidak akan memiliki efek yang diinginkan;

Karakter Khusus dalam Nilai Pilihan

Beberapa opsi, seperti

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
0, menerima string. String dapat dikutip, jika perlu. Misalnya, pada sistem Unix ini adalah opsi untuk menyertakan bidang dalam tanda kutip ganda

--fields-enclosed-by='"'
_

Alternatif untuk menentukan nilai heksadesimal dari suatu karakter. Misalnya, sintaks berikut berfungsi pada platform apa pun

--fields-enclosed-by=0x22

File Opsi

Selain membaca opsi dari baris perintah,

--fields-enclosed-by='"'
5 juga dapat membaca opsi dari file opsi. Jika opsi yang tidak diketahui disediakan untuk
--fields-enclosed-by='"'
_5 dalam file opsi, maka opsi tersebut akan diabaikan

Opsi berikut terkait dengan cara alat baris perintah MariaDB menangani file opsi. Mereka harus diberikan sebagai argumen pertama pada baris perintah

Di MariaDB 10. 2 dan yang lebih baru,

--fields-enclosed-by='"'
_5 ditautkan dengan MariaDB Connector/C. Namun, MariaDB Connector/C belum menangani penguraian file opsi untuk klien ini. Itu masih dilakukan oleh kode parsing file opsi server. Lihat MDEV-19035 untuk informasi lebih lanjut

Grup Opsi

--fields-enclosed-by='"'
_5 membaca opsi dari yang berikut dari file opsi

NULL, ´NULL´, dan Nilai Kosong dalam XML

Untuk kolom bernama

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
5, nilai
shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
6, string kosong, dan nilai string
shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
7 dibedakan satu sama lain dalam output yang dihasilkan oleh opsi ini sebagai berikut

Output dari klien mysql saat dijalankan menggunakan opsi

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
8 juga mengikuti aturan sebelumnya

Output XML dari mysqldump menyertakan namespace XML, seperti yang ditampilkan di sini

shell> mysqldump --xml -u root world City














1
Kabul
AFG
Kabol
1780000

...

4079
Rafah
PSE
Rafah
92020




Memulihkan

Untuk memulihkan cadangan yang dibuat dengan mysqldump, gunakan klien mysql untuk mengimpor dump, misalnya

mysql db_name < backup-file.sql

Variabel

Anda juga dapat mengatur variabel berikut [

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name
_9] dan opsi boolean
shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql
0 dengan menggunakan

Contoh

Penggunaan umum

--fields-enclosed-by='"'
_5 adalah untuk membuat cadangan seluruh database

shell> mysqldump db_name > backup-file.sql

Anda dapat memuat file dump kembali ke server seperti ini

shell> mysql db_name < backup-file.sql

Atau seperti ini

shell> mysql -e "source /path-to-backup/backup-file.sql" db_name

--fields-enclosed-by='"'
_5 juga sangat berguna untuk mengisi database dengan menyalin data dari satu server MariaDB ke yang lain

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name

Dimungkinkan untuk membuang beberapa database dengan satu perintah

shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql

Untuk membuang semua database, gunakan opsi

--fields-enclosed-by=0x22
3

--fields-enclosed-by='"'
_0

Untuk tabel InnoDB,

--fields-enclosed-by='"'
_5 menyediakan cara membuat cadangan online

--fields-enclosed-by='"'
_1

Cadangan ini memperoleh kunci baca global di semua tabel [menggunakan

shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql
5] di awal dump. Segera setelah kunci ini diperoleh, koordinat log biner dibaca dan kunci dilepaskan. Jika pernyataan pemutakhiran yang lama berjalan saat pernyataan FLUSH dikeluarkan, server MariaDB mungkin terhenti hingga pernyataan tersebut selesai. Setelah itu, dump menjadi bebas kunci dan tidak mengganggu proses baca dan tulis pada tabel. Jika pernyataan pembaruan yang diterima server MariaDB pendek [dalam hal waktu eksekusi], periode penguncian awal seharusnya tidak terlihat, bahkan dengan banyak pembaruan

Untuk pemulihan point-in-time [juga dikenal sebagai "roll-forward", saat Anda perlu memulihkan cadangan lama dan memutar ulang perubahan yang terjadi sejak pencadangan tersebut], sering kali berguna untuk memutar log biner atau setidaknya mengetahui

--fields-enclosed-by='"'
_2

Atau

--fields-enclosed-by='"'
_3

Opsi

shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql
6 dan
shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql
7 dapat digunakan secara bersamaan, yang menyediakan cara mudah untuk membuat cadangan online yang cocok untuk digunakan sebelum pemulihan point-in-time jika tabel disimpan menggunakan mesin penyimpanan InnoDB

Bagaimana cara membuang rutinitas MySQL?

Secara default, mysqldump tidak menyertakan rutinitas saat membuang database. Jika Anda ingin memasukkan rutin, Anda harus melewati parameter --routines atau -R saat menjalankan mysqldump .

Bagaimana cara mengambil cadangan prosedur tersimpan di MySQL?

Untuk membuat cadangan semua database server MySQL, jalankan perintah berikut. mysqldump –user root –password –all-databases > all-databases. sql. mysql –user root –password mysql < semua database .

Bagaimana cara kerja dump MySQL?

Utilitas klien mysqldump melakukan pencadangan logis, menghasilkan serangkaian pernyataan SQL yang dapat dijalankan untuk mereproduksi definisi objek database asli dan data tabel . Itu membuang satu atau lebih database MySQL untuk cadangan atau transfer ke server SQL lain.

Bagaimana cara membuang pemicu di MySQL?

Mysqldump akan mencoba membuang semua pemicu di database Anda secara default. Untuk dapat membuang pemicu tabel, Anda harus memiliki hak istimewa TRIGGER untuk tabel tersebut . Jika pengguna dump tidak memiliki hak istimewa ini, pemicu akan dilewati dan mysqldump tidak akan menimbulkan kesalahan apa pun.

Bài mới nhất

Chủ Đề