Vấn đề với CSDL lớn - Three methods for importing large SQL files

Category: Joomla Published: 15 December 2013
Hits: 5769

Mấy hôm nay loay hoay chuyển HOST mua của www.bluehost.com. Vấn đề xảy ra là với CSDL lớn trên 200MB thường chức năng Import từ phpMyAdmin thường bị expired time. Ví dụ csdl của Forum mình tại forum.luyenkim.org, http://cambienonline.com có CSDL tầm 350MB, file Zip CSDL cũng tầm 50MB. Upload mấy lần đều không qua được. May tìm trên mạng và sử dụng phần mềm SQLDumpSplitter2 trên Windows lại khắc phục được.

Sau đây là ba cách xử lý với CSDL SQL lớn (large or huge SQL database)

Phương pháp 1: sử dụng Bigdump

Tham khảo tại: http://www.ozerov.de/bigdump.php

bigdump2 300x236 Here are three methods for importing large SQL files

Chúng ta có thể sử dụng script tên là BigDump.php, là chương trinh nhập liệu chia tách SQL. Phần mềm php này chỉ sử lý phần nhỏ của CSDL lớn và tự khởi động lại. Phiên làm việc tiếp theo sẽ được khởi động khi phiên làm việc trước đó dừng lại để giữ cho hoạt động được duy trì do giới hạn của máy chủ. Các hướng dẫn cài đặt và sử dụng có nêu chi tiết trên trang BigDump. Về cơ bản đặt file SQL của bạn vào 1 folder trên máy chủ cùng với file bigdump.php. Bạn sửa lại file này phù hợp với thông tin giao tiếp với CSDL và sau đó chạy file này trên website của bạn để thực hiện việc nhập liệu cho CSDL. Đây là công việc thực hiện khá nhanh chóng và sẽ tiếp kiệm cho bạn nhiều thời gian.

Phương pháp 2: SSH

Khi bạn có thể có quyền truy cập root trên máy chủ, bạn có thể tạo sao lưu với SSH

cd chuyển tới thư mục bạn muốn lưu file SQL:

cd /var/www/vhosts/yourdomain.com/httpdocs/sqldump

Tiếp theo, ra lệnh cho mysql thực hiện:

mysqldump –add-drop-table -u dbuser -p your_db > mybackup.sql

Khi đó sẽ có yêu cầu nhập mật khẩu. Mọi thứ sẽ được thực hiện ngay.

*Chú ý: The directory where you’re sending the dump file needs to be writeable by the server. Also, you don’t really want to leave it in that folder permanently. Just drop it there and pull it off your server so that you can manipulate it if you have to.
How to Import a Large SQL File

Importing is usually a bit messier. If you’re duplicating this database for testing purposes or moving your site to a new server, a large dump file, even when gzipped, can pose some challenges in the import process. This is the part where things can really stall out, and you need a few tricks up your sleeve.

Ordinarily I would just use phpMyAdmin to import the file. Because it’s so large, the first thing you should do is try importing via SSH:

mysql -u your_database -p db_user < mybackup.sql
Common Error when using SSH:

"got a packet bigger than ‘max_allowed_packet’ bytes"

Now what? Depending on the size of your file, running this command may fix it for you:

mysql> set global max_allowed_packet=1000000000;
mysql> set global net_buffer_length=1000000;

Then try importing your database after this. If it still doesn’t work, you might try splitting it up.

 

Phương pháp 3: tách nhỏ file SQL

Tải về phần mềm windows để chi tách file SQL của bạn, đó là SQLDumpSplitter2. Đây là phần mềm miễn phí sử dụng để chia tách file SQL, bạn cho phần mềm biết độ lớn của file phân tách và nó sẽ tự động cắt và lưu các file SQL được chia tách.

http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/

sqldumpsplitter2 Here are three methods for importing large SQL files

Phần mềm sẽ tạo ra các file chia tách nhỏ hơn và sau đó bạn upload chúng lên máy chủ HOST.

Khi bạn muốn khôi phục lại file SQL từ các file chia tách này, ạn phải chạy yourdatabase_DataStructure.sql trước tiên để tạo các cấu trúc bảng. Sau đó, bạn có thể thực hiện các file .sql có chứa dữ liệu của các bảng đã tạo từ trước. Sử dụng SSH, CD đến thư mục chứa file SQL phân tách và chắc chắn là chạy câu lệnh này trước tiên:

mysql -u db_user -p db_name < yourbackup_DataStructure.sql

Sau đó là các file phân tách:
mysql -u db_user -p db_name < yourbackup_1.sql
mysql -u db_user -p db_name < yourbackup_2.sql


Thực tê trên Shared host của Bluehost, mình tách ra thành các file sql 40MB, sau đó zip lại và upload vào thư mục /tmp, sau đó chạy MyPHPAdmin để restored các file zip này. Mọi thứ dường như rất ổn.

Tham khảo từ: http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/

viet4777
Author: Nguyễn Hoàng Việt
About: Viet Nguyen-Hoang is a lecturer in school of Materials Science and Engineering at HUST (www.hust.edu.vn). He starts coding with Joomla from 2006. His lectures could be found at kythuatvatlieu.ORG. His writing is about IT, Joomla and his teaching topics.

Donate

Donate using PayPal
Amount:  
Loading Player...
Watching: User: trangdentv (Trắng) - Click to play
Loading...