Saya memiliki file cadangan SQL 250 MB tetapi batas hosting baru hanya 100 MB ...
Apakah ada program yang memungkinkan Anda membagi file SQL menjadi beberapa file SQL?
Sepertinya orang menjawab pertanyaan yang salah ... jadi saya akan menjelaskan lebih lanjut:
Saya HANYA memiliki file 250 MB dan hanya memiliki hosting baru menggunakan phpMyAdmin yang saat ini tidak memiliki data dalam database. Saya perlu mengambil file 250 MB dan mengunggahnya ke host baru tetapi ada batas ukuran unggah file cadangan SQL 100 MB. Saya hanya perlu mengambil satu file yang terlalu besar dan membaginya menjadi beberapa file masing-masing hanya berisi pernyataan SQL yang valid penuh (tidak ada pernyataan dapat dibagi antara dua file).
Jawaban:
Dari Bagaimana cara membagi output dari mysqldump menjadi file yang lebih kecil?
sumber
Cara termudah untuk membagi file cadangan adalah dengan menggunakan perangkat lunak
sqldumpsplitter
, yang memungkinkan Anda untuk membagi file db menjadi beberapa file db. Unduh di siniAtau gunakan perintah terminal ini.
Di sini, 600 adalah jumlah baris yang ingin Anda miliki di file split Anda. Dan kedua argumen tersebut adalah sumber dan tujuan masing-masing file.
CATATAN: Anda harus memeriksa file split, Anda tidak membagi perintah apa pun.
sumber
split
saya sarankan menggunakancsplit
. Itu tidak akan terpecah tepat setelah nomor baris tertentu, yang mungkin antara daftarINSERT
nilai misalnya. Anda dapat melewati regex untuk mengidentifikasi garis yang harus dibelah. Gunakan dengan cara berikut, contoh : `csplit -k dump.sql '/ ^ CREATE TABLE. * /' '{900}'` Ini akan membagi file dump Anda sebelum setiapcreate table …
pernyataan. Ubah ini sesuai kebutuhan Anda. (Ngomong-ngomong saya lewat{900}
bukan{*}
karena saya mendapatkan kesalahan "csplit: *}: count pengulangan yang buruk" , mungkin hanya masalah pada MacOS?)Saya menulis mysqldumpsplitter (skrip shell), yang membagi database / tabel seperti yang diperintahkan dengan cara cepat dan mudah. Lihat semua kemungkinan kasus penggunaan cara mengekstrak dari mysqldump .
sumber
Kode ini akan melakukan apa yang Anda inginkan (dan itu open source):
https://web.archive.org/web/20160313044916/http://rodo.nl/index.php?page=mysql-splitter
Ini memungkinkan Anda untuk membagi file SQL apa pun menjadi beberapa file yang lebih kecil (Anda dapat menentukan ukuran maksimum) sintaks SQL akan tetap benar dan bekerja dengan sintaks kueri 'multiple insert'.
Semoga ini membantu!
sumber
1) Apakah Anda memiliki opsi untuk mengunggah file dengan metode lain misalnya: scp atau ftp dan kemudian mengembalikannya dari file lokal?
2) Apakah ISP Anda akan mengambil file dalam CD dan memuatnya untuk Anda?
3) Dapatkah Anda mengembalikan file ke server lokal dan kemudian membuat serangkaian file cadangan menggunakan kriteria tertentu untuk menjaga ukuran individu?
4) Anda dapat membagi file secara manual kemudian merapikan perintah SQL di akhir file?
sumber
4 was my first thought, but I can't even open the large file in notepad or any editor
- Notepad ++ dapat menanganinya dengan baik. lain lihat superuser.com/questions/34749/…Anda dapat membagi file besar di Eclipse. Saya telah mencoba file 105GB di Windows dengan sukses:
Cukup tambahkan perpustakaan MySQLDumpSplitter ke proyek Anda: http://dl.bintray.com/verace/MySQLDumpSplitter/jar/
Catatan cepat tentang cara mengimpor:
sumber
Saya juga mengalami masalah ini dan memutuskan untuk membuat kode yang sangat efisien & efisien CPU yang membagi satu file .sql menjadi beberapa (satu per tabel).
Saya harus menulisnya karena solusi lain yang saya temukan tidak cukup baik. Pada dump 16GB nyata saya berhasil memisahkannya dalam waktu kurang dari 2 menit.
Kode dan instruksi tersedia di halaman proyek di github
sumber
Ada beberapa opsi jika Anda dapat menjalankan skrip bash atau perl. Coba yang ini dari yoodey.com
sumber
Alih-alih membelah file, Anda bisa menggunakan klien MySQL pada mesin lokal Anda dan menghubungkannya ke DB MySQL jarak jauh. Saya menggunakan HeidiSQL dan merasa sangat bagus.
Tentu saja butuh beberapa saat untuk mengirim 250MB pernyataan SQL di Internet.
Anda juga bisa mencoba BigDump
sumber