全部产品
Search
文档中心

ApsaraDB RDS:Opsi mysqldump RDS MySQL

更新时间:Jun 25, 2025

Fitur GTID

Fitur GTID diperkenalkan di ApsaraDB RDS for MySQL 5.6 untuk menambahkan opsi set-gtid-purged ke utilitas mysqldump yang disertakan dengan MySQL 5.6.

OpsiNilai default dari bidang ini.Nilai opsionalTujuan
set-gtid-purgedAUTOON|OFF|AUTOMenentukan apakah akan menyertakan pernyataan SET @@GLOBAL.GTID_PURGED dalam output mysqldump.
Catatan
  • ON: Pernyataan SET @@GLOBAL.GTID_PURGED disertakan dalam output mysqldump.
  • OFF: Pernyataan SET @@GLOBAL.GTID_PURGED tidak disertakan dalam output mysqldump.
  • AUTO: Nilai default. Untuk instance dengan GTID diaktifkan, pernyataan SET @@GLOBAL.GTID_PURGED disertakan dalam output mysqldump. Untuk instance yang tidak dimulai atau tidak mendukung GTID, informasi GTID tidak dibuat.
Jika Anda menggunakan mysqldump MySQL 5.6 atau versi lebih baru untuk mengekspor data ke instance RDS MySQL versi 5.5, Anda harus mengatur set-gtid-purged ke OFF. Jika tidak, kesalahan berikut terjadi:
Error: Server has GTIDs disabled.
atau
mysqldump: Couldn't execute 'SELECT @@GTID_MODE': Unknown system variable 'GTID_MODE' <1193>

Hindari penantian kunci tingkat tabel

Dalam mysqldump, opsi lock-tables diaktifkan secara default untuk mengunci semua tabel sebelum membuangnya dan mencegah operasi DML pada tabel-tabel tersebut.

Mesin InnoDB dan TokuDB yang didukung oleh instance ApsaraDB RDS for MySQL mendukung transaksi. Kami merekomendasikan agar Anda menggunakan opsi single-transaction untuk membuang tabel, bukan mengatur opsi lock-all-tables atau lock-tables.

OpsiNilai default dari bidang ini.Nilai opsionalTujuan
lock-all-tablesFALSETRUE|FALSEMenentukan apakah akan mengunci semua tabel di seluruh database. Ini dicapai dengan mendapatkan kunci baca global selama durasi seluruh dump. Semua tabel di semua database bersifat hanya-baca selama dump. Opsi ini secara otomatis menonaktifkan opsi lock-tables dan single-transaction. ApsaraDB for RDS tidak mendukung opsi ini.
lock-tablesTRUETRUE|FALSEMenentukan apakah akan mengunci tabel sebelum membuangnya. Secara default, opsi ini diaktifkan. Anda dapat menentukan opsi skip-lock-tables untuk menonaktifkan opsi ini.
single-transactionFALSETRUE|FALSEMenentukan apakah akan memulai transaksi sebelum membuang data. Opsi ini secara otomatis menonaktifkan opsi lock-tables.

Setel set karakter untuk data yang akan dibuang

Jika tidak ada set karakter yang ditentukan, mysqldump menggunakan set karakter UTF-8 untuk membuang data.

OpsiNilai default dari bidang ini.Nilai opsionalTujuan
default-character-setUTF8Set karakter yang didukung oleh instance ApsaraDB RDS for MySQLMengatur set karakter untuk ekspor.

Opsi tambahan yang perlu diperhatikan saat data dibuang

OpsiNilai default dari bidang ini.Nilai opsionalTujuan
no-defaultsN/ANAMembaca file opsi .mylogin.cnf saja.
defaults-file=file_nameN/ANAMembaca file opsi tertentu.
add-drop-databaseFALSETRUE|FALSEMenentukan apakah akan menambahkan pernyataan DROP DATABASE sebelum setiap pernyataan CREATE DATABASE.
add-drop-tableTRUETRUE|FALSEMenentukan apakah akan menambahkan pernyataan DROP TABLE sebelum setiap pernyataan CREATE TABLE. Secara default, opsi ini diaktifkan. Anda dapat menggunakan opsi skip-add-drop-table untuk menonaktifkan opsi ini.
add-locksTRUETRUE|FALSEMenentukan apakah akan mengelilingi setiap pernyataan terkait tabel dengan pernyataan LOCK TABLES tab_name WRITE dan UNLOCK TABLES untuk mempercepat penyisipan saat file dump dimuat ulang.
compatible=nameNAansi|postgresql|oracle|mssqlMeningkatkan kompatibilitas dengan tipe database tertentu.
compactFALSETRUE|FALSEMenentukan apakah akan mengaktifkan opsi skip-add-drop-table, skip-add-locks, skip-comments, skip-disable-keys, dan skip-set-charset.
databasesTRUETRUE|FALSEMenentukan apakah akan membuang beberapa database. Secara default, mysqldump memperlakukan argumen nama pertama di baris perintah sebagai nama database dan nama-nama berikutnya sebagai nama tabel. Saat opsi ini ditentukan, mysqldump menafsirkan semua argumen nama sebagai nama database dan menyertakan pernyataan CREATE DATABASE dan USE DATABASE dalam output sebelum setiap database baru.
disable-keysTRUETRUE|FALSEMenentukan apakah akan mengelilingi pernyataan INSERT dengan /! 40000 ALTER TABLE tab_name DISABLE KEYS / dan /! 40000 ALTER TABLE tab_name ENABLE KEYS / untuk mempercepat pemuatan file dump. Opsi ini hanya efektif untuk indeks non-unik tabel MyISAM.
eventsFALSETRUE|FALSEMenentukan apakah akan membuang acara terjadwal dari database yang dibuang.
extended-insertTRUETRUE|FALSEMenentukan apakah akan menggabungkan pernyataan INSERT satu baris menjadi satu pernyataan yang menyisipkan beberapa baris tabel.
hex-blobFALSETRUE|FALSEMenentukan apakah akan mengekspor tipe data BINARY, VARBINARY, dan BLOB dalam notasi heksadesimal. Kami merekomendasikan Anda menambahkan opsi ini saat memigrasikan data antar versi database yang berbeda.
ignore-table=db.tabTRUETRUE|FALSEMenentukan apakah akan mengabaikan tabel atau tampilan. Format: nama database.nama tabel (db.tab). Anda dapat menggunakan opsi ini beberapa kali untuk mengabaikan beberapa tabel.
max-allowed-packet24MB24MB-1GBMenentukan ukuran maksimum buffer untuk komunikasi antara mysqldump dan instance ApsaraDB RDS for MySQL. Nilai default adalah 24MB. Nilai maksimum adalah 1GB.
no-create-dbFALSETRUE|FALSEMenentukan apakah akan mengecualikan pernyataan CREATE DATABASE dari output.
no-create-infoFALSETRUE|FALSEMenentukan apakah akan mengecualikan pernyataan CREATE TABLE dari output.
no-dataFALSETRUE|FALSEMenentukan apakah akan mengekspor database ApsaraDB RDS for MySQL ke file dump tanpa data.
optTRUETRUE|FALSEMenentukan apakah akan mengaktifkan opsi add-drop-table, add-locks, create-options, disable-keys, extended-insert, lock-tables, quick, dan set-charset. Anda dapat menentukan opsi skip-opt untuk menonaktifkan opsi opt yang diaktifkan secara default.
dump-dateTRUETRUE|FALSEMenentukan apakah akan menambahkan tanggal dump ke akhir output jika opsi comments ditentukan. Secara default, opsi comments diaktifkan.
routinesFALSETRUE|FALSEMenentukan apakah akan membuang prosedur tersimpan dan fungsi dari database yang dibuang. Secara default, prosedur tersimpan dan fungsi tidak dibuang.
result-fileTRUETRUE|FALSEMenentukan apakah akan mengarahkan output ke file tertentu.
set-charsetTRUETRUE|FALSEMenentukan apakah akan menambahkan SET NAMES default_character_set ke output.
triggersTRUETRUE|FALSEMenentukan apakah akan menyertakan pemicu untuk setiap tabel yang dibuang dalam output.

Opsi yang tidak didukung untuk apsaradb RDS for MySQL

OpsiNilai default dari bidang ini.Nilai opsionalTujuan
all-databasesFALSESet karakter yang didukung oleh instance ApsaraDB RDS for MySQLMenentukan apakah akan membuang semua database, termasuk database mysql.
flush-logsFALSETRUE|FALSEMenentukan apakah akan mengeksekusi pernyataan flush logs; di instance ApsaraDB RDS for MySQL sebelum memulai dump.
flush-privilegesFALSETRUE|FALSEMenentukan apakah akan menambahkan pernyataan flush privileges; ke output dump setelah membuang database mysql.
lock-all-tablesFALSETRUE|FALSEMenentukan apakah akan mengunci semua tabel di seluruh database. Ini dicapai dengan mendapatkan kunci baca global selama durasi seluruh dump. Semua tabel di semua database bersifat hanya-baca selama dump. Opsi ini secara otomatis menonaktifkan opsi lock-tables dan single-transaction.
tab=dir_nameN/ANAFile tbl_name.sql (termasuk pernyataan pembuatan tabel) dan file data format teks tbl_name.txt dipisahkan dengan tab dihasilkan di direktori tertentu.

Opsi yang Tidak Didukung dan Alasannya

  • all-databases: Pengguna umum RDS MySQL tidak dapat mengekspor semua tabel database karena mereka tidak memiliki izin pada beberapa tabel di database mysql.

    Pesan Kesalahan

    mysqldump: Couldn't execute 'show create table slow_log': SHOW command denied to user 'xxx'@'xx.xx.xx.xx' for table 'slow_log' (1142)
  • flush-logs: Pengguna umum RDS MySQL tidak memiliki izin reload dan oleh karena itu tidak dapat dieksekusi. flush logs; perintah.

    Pesan Kesalahan

    mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
  • flush-privileges: Opsi ini tidak diperlukan karena ApsaraDB RDS for MySQL tidak mengizinkan Anda mengekspor database mysql.
  • lock-all-tables: Pengguna umum RDS MySQL tidak memiliki izin reload dan oleh karena itu tidak dapat digunakan.

    Pesan Kesalahan

    mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
  • tab=dir_name: Opsi ini tidak didukung karena mysqldump dan instance ApsaraDB RDS for MySQL berada di mesin fisik yang sama. Namun, opsi ini dapat digunakan bersama dengan opsi no-data untuk mendapatkan pernyataan CREATE TABLE yang membuat tabel.
    # Opsi ini dapat digunakan dengan opsi no-data untuk mendapatkan file tab_name.sql yang berisi pernyataan CREATE TABLE untuk setiap tabel di database test.
    mysqldump  -no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 -set-gtid-purged=off -single-transaction -tab=/tmp -no-data test
    # Pesan kesalahan berikut muncul jika Anda menggunakan opsi no-data untuk membuang data:
    mysqldump  -no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 -set-gtid-purged=off -single-transaction -tab=/tmp test
    mysqldump: Got error: 1045: Access denied for user ‘xxx’@’%’ (using password: YES) when executing ‘SELECT INTO OUTFILE’