Di chuyển cơ sở dữ liệu lớn


8

Tôi có một máy chủ centos và / var / lib / mysql / là 125GB (đĩa có dung lượng trống 1GB).

Thông thường tôi sẽ sử dụng mysqldump để sao lưu cơ sở dữ liệu, nhưng tôi thường không làm việc với các cơ sở dữ liệu lớn như vậy, vì vậy tôi cần biết cách an toàn nhất để sao chép cơ sở dữ liệu sang máy chủ mới.

Tất cả lời khuyên đánh giá cao!

Câu trả lời:


3

Bạn có thể sử dụng các bước sau

Trên máy chủ cũ

1.Số máy chủ mysql

2.Copy nội dung của datadir đến một vị trí khác trên đĩa dưới dạng ... mysqlbackup

3. Khởi động lại máy chủ mysql

4. Nén dữ liệu (tar -czvf mysqlbackup.tar.gz mysqlbackup)

5. Sao chép tệp nén vào máy chủ mới

Trên máy chủ mới

1.Install MySQL [Phiên bản MySQL phải giống với máy chủ cũ] (không khởi động máy chủ MySQL)

2.Unzip tệp nén (tar -xzvf mysqlbackup.tar.gz)

3. Di chuyển nội dung của mysqlbackup vào datadir.

4. Hãy chắc chắn rằng các quyền của datadir là chính xác

5. Hãy chắc chắn rằng innodb_log_file_size của bạn giống nhau trên máy chủ mới hoặc nếu không, đừng sao chép các tệp nhật ký cũ (MySQL sẽ tạo ra các tệp này)

6. Bắt đầu MySQL.

Bạn cũng có thể xem Làm thế nào tôi có thể di chuyển cơ sở dữ liệu từ máy chủ này sang máy chủ khác?


2

Vì Source DB chỉ có 1GB, nên bạn không có chỗ để mysqldump ở bất cứ đâu.

Những gì bạn cần là sau đây

  • Cổng 3306 mở trong tường lửa của máy chủ Nguồn DB
  • Chạy chương trình mysqldump từ máy chủ Target DB

Đối với máy chủ Nguồn DB có địa chỉ IP là 10.20.30.40, hãy đăng nhập vào Target DB và chạy nó

PIPE mysqldump VÀO Instance MySQL trên máy chủ DB mục tiêu

MYSQL_HOST=10.20.30.40
MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
MYSQLDUMP_OPTIONS="--all-databases --add-drop-database --single-tranactions"
MYSQLDUMP_OPTIONS="${MYSQLDUMP_OPTIONS} --routines --triggers"
mysqldump -h${MYSQL_HOST} ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS}| mysql ${MYSQL_CONN}

PIPE mysqldump vào tệp SQL. Tải MySQL từ SQLFile

MYSQL_HOST=10.20.30.40
MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
MYSQLDUMP_OPTIONS="--all-databases --add-drop-database --single-transaction"
MYSQLDUMP_OPTIONS="${MYSQLDUMP_OPTIONS} --hex-blob --routines --triggers"
mysqldump -h${MYSQL_HOST} ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS} > MySQLData.sql
mysql ${MYSQL_CONN} < MySQLData.sql

THÔNG BÁO CUỐI CÙNG

Sử dụng Kỹ thuật # 1 là không có không gian đĩa để lưu tệp SQL. Sử dụng Kỹ thuật # 2 nếu bạn muốn kết xuất tệp và tải nó sau.


0

Từ máy chủ mới, giả sử bạn đã thiết lập cặp khóa công khai / riêng tư

ssh root@oldserver mysqldump database | mysql database

nên hoạt động tốt, tôi không nghĩ rằng bất kỳ không gian đĩa sẽ được sử dụng


Đừng quên sử dụng ssh -Cđể nén nhanh.
Twinkles

0

Thông thường bạn chạy mysqldump để tạo bản sao cơ sở dữ liệu và sao lưu như sau:

$ mysqldump -u user -p db-name > db-name.out

Sao chép tệp db-name.out bằng sftp / ssh sang máy chủ MySQL từ xa:

$ scp db-name.out user@remote.box.com:/backup

Khôi phục cơ sở dữ liệu tại máy chủ từ xa (đăng nhập qua ssh):

$ mysql -u user -p db-name < db-name.out

HOẶC LÀ

$ mysql -u user -p 'password' db-name < db-name.out

0

Điều này làm việc cho tôi:

cd /var/lib/
rsync -rav mysql newmachine:/var/lib/

Vui lòng chỉnh sửa bài đăng của bạn và cung cấp một số giải thích sẽ giúp người dùng trong tương lai hiểu mã của bạn.
RLF

0

@ user2029574, Phần cứng của bạn có trên đám mây không? Tôi cũng đã một lần vấp vào cùng một vấn đề mà bạn đã / đang ở đây. Tuy nhiên, cài đặt MySQL của tôi là trong AWS và bạn biết điều đó có nghĩa là rất dễ dàng để đính kèm một đĩa có kích thước lớn hơn. Ở đây tôi đang tóm tắt những gì tôi đã làm:

  1. Đính kèm một đĩa mới lớn hơn vào phiên bản máy chủ MySQL hiện tại của bạn.
  2. Sử dụng innobackupex của Percona để chuẩn bị sao lưu toàn bộ dữ liệu MySQL hiện tại vào đĩa mới mà bạn đã đính kèm.
  3. Chuẩn bị một ví dụ khác với MySQL được cài đặt.
  4. Tháo đĩa được gắn vào ví dụ 1.
  5. Bây giờ gắn đĩa vào ví dụ mới, ví dụ 2.
  6. Dừng dịch vụ MySQL trong ví dụ 2.
  7. Chỉnh sửa tệp cấu hình MySQL để thư mục dữ liệu trỏ đến vị trí mới.
  8. Khôi phục cơ sở dữ liệu trong trường hợp mới. Một lần nữa, innobackupex , có sự giúp đỡ của bạn.
  9. Khởi động máy chủ MySQL trong ví dụ 2.

Bằng cách này, bạn có thể có các ứng dụng kết nối với DB này mọi lúc và bạn cũng có thể nâng cấp cấu hình của cá thể đám mây của mình, nếu đó cũng là một yêu cầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.