Làm cách nào tôi có thể tối ưu hóa một mysqldump của một cơ sở dữ liệu lớn?


173

Tôi có một ứng dụng symfony với cơ sở dữ liệu InnoDB có dung lượng ~ 2GB với 57 bảng. Phần lớn kích thước của cơ sở dữ liệu nằm trong một bảng duy nhất (~ 1,2GB). Tôi hiện đang sử dụng mysqldump để sao lưu cơ sở dữ liệu hàng đêm.

Do kết nối comcast của tôi, đôi khi nếu tôi đang chạy kết xuất thủ công, kết nối của tôi với máy chủ sẽ hết thời gian chờ trước khi kết xuất hoàn tất khiến tôi phải chạy lại kết xuất. [Tôi hiện đang chạy một cron thực hiện đổ rác hàng đêm, đây chỉ là cho các bãi mà tôi chạy thủ công.]

Có cách nào để tăng tốc độ kết xuất cho vấn đề hết thời gian kết nối, nhưng cũng để hạn chế thời gian máy chủ bị chiếm dụng với quy trình này không?

BTW, tôi hiện đang làm việc để giảm kích thước của cơ sở dữ liệu tổng thể để giải quyết vấn đề này.


2
Những tham số nào (nếu có) mà bạn đang chuyển đến lệnh mysqldump?
Toby

Thêm --compact có thể là một lựa chọn cho bạn.
Toby

không có gì thực sự -mysqldump [database] -u[user] -p'[password]' > db_backup.sql
Patrick

4
Một thay thế đơn giản screencho tình huống của bạn sẽ là sử dụng nohup, nó sẽ cho phép lệnh của bạn tiếp tục chạy trên máy chủ, ngay cả khi kết nối của bạn bị ngắt. Ví dụ nohup mysqldump [options] > backup.sql 2> backup.err &. Nếu bạn không cung cấp tệp đầu ra nohup, nó sẽ tạo nohup.outtheo mặc định.
dabest1

1
Hãy xem atscreen(sau này nếu được cài đặt, nhưng atlà tiêu chuẩn cho tất cả các unix) hoặc các ServerAliveIntervaltùy chọn cho SSH để biết cách xử lý tường lửa khiến bạn ngừng hoạt động sau khi kết nối quá lâu.
MattBianco

Câu trả lời:


134

Nút thắt chính trong bãi chứa như thế này là ổ I / O. Bạn đang đọc một tải dữ liệu và viết lại. Bạn có thể tăng tốc độ này theo một số cách:

  • Đảm bảo rằng đầu ra của bạn sẽ chuyển đến một ổ đĩa khác với (các) tệp cơ sở dữ liệu được lưu trữ trên - điều này sẽ tạo ra sự khác biệt lớn với các đĩa quay vì các đầu ổ đĩa sẽ không liên tục lướt giữa vị trí được đọc từ và vị trí được viết đến.
  • Đầu ra của mysqldump sẽ rất dễ nén, vì vậy nếu bạn không thể tách đầu ra khỏi đầu vào như đã đề cập ở trên thì đầu ra thông qua gziphoặc tương tự. Điều này sẽ làm giảm số lượng văn bản được thực hiện (do đó giảm tải IO tổng thể và lượng chuyển động của đầu) với chi phí của một số thời gian CPU (dù sao bạn có thể có rất nhiều thời gian dự phòng vào lúc này).
  • Ngoài ra, (cũng như thay vì nén) chuyển đầu ra thông qua tiện ích đường ống (như pv ) hỗ trợ bộ đệm ghi lớn để nhóm các khối được ghi vào các ổ đĩa với nhau nhiều hơn, một lần nữa để giảm ảnh hưởng của độ trễ chuyển động đầu - điều này sẽ làm khá khác biệt nếu sử dụng --quicktùy chọn để giảm tác động RAM của việc sao lưu các bảng lớn).
  • Chỉ chạy quá trình sao lưu của bạn khi tải IO thấp.

Tuy nhiên, bạn có thể đang khắc phục sự cố sai: thay vào đó có thể dễ dàng hơn để giải quyết sự cố rớt kết nối (mặc dù việc giảm tải I / O do các bản sao lưu của bạn sẽ giúp giảm hiệu ứng bạn có đối với người dùng khác vì vậy dù sao cũng đáng để thử). Bạn có thể chạy sao lưu thủ công thông qua màn hình (hoặc các công cụ tương tự như tmux ) không? Bằng cách đó, nếu kết nối của bạn đến máy chủ bị rớt, bạn chỉ có thể kết nối lại và gắn lại vào screenphiên mà không có bất kỳ quy trình nào bị gián đoạn.

Nếu bạn đang gửi dữ liệu trực tiếp qua kết nối (nghĩa là bạn đang chạy mysqldump trên máy cục bộ của mình dựa trên cơ sở dữ liệu từ xa, do đó, kết xuất xuất hiện cục bộ), trước tiên bạn nên chạy kết xuất trên máy chủ, nén khi cần, sau đó chuyển dữ liệu qua mạng bằng một công cụ (chẳng hạn như rsync) hỗ trợ chuyển một phần để bạn có thể tiếp tục chuyển (thay vì khởi động lại) nếu việc ngắt kết nối làm gián đoạn.

Là một phần trong việc "giảm kích thước cơ sở dữ liệu tổng thể để giải quyết vấn đề này", tôi đoán rằng một lượng lớn dữ liệu của bạn không thay đổi. Bạn có thể có thể di chuyển một khối lớn 1,2Gb từ bảng chính đó sang một bảng khác và loại bỏ nó khỏi các bảng được sao chép bởi mysqldumpcuộc gọi. Bạn không cần sao lưu dữ liệu này mỗi lần nếu nó không bao giờ thay đổi. Chia dữ liệu giữa các bảng và cơ sở dữ liệu theo cách này thường được gọi là phân vùng dữ liệu và cũng có thể cho phép bạn truyền dữ liệu và tải I / O trên nhiều ổ đĩa. Cơ sở dữ liệu cao cấp đã được tích hợp hỗ trợ cho phân vùng tự động, mặc dù trong mysql bạn có thể sẽ phải thực hiện thủ công và thay đổi lớp truy cập dữ liệu của mình để tính đến nó.

Đi lạc ngoài chủ đề cho trang web này (vì vậy bạn có thể nên truy cập vào ServerFault hoặc SuperUser để hỏi xem bạn có cần thêm chi tiết không): Nếu bạn dường như bị mất kết nối do không hoạt động, hãy kiểm tra các tùy chọn trong máy chủ SSH và máy khách SSH của bạn để thực hiện chắc chắn các gói tin còn sống được kích hoạt và được gửi thường xuyên đủ. Nếu thấy giảm ngay cả khi kết nối đang hoạt động, bạn cũng có thể thử sử dụng OpenVPN hoặc tương tự để ngắt kết nối - nó sẽ xử lý một sự sụt giảm ngắn, thậm chí là giảm hoàn toàn nếu toàn bộ kết nối của bạn bị hỏng trong vài giây, như máy khách SSH và máy chủ không thông báo.


Tôi ước tôi có thể giảm số lượng kết nối ssh bị rớt xuống các máy chủ của mình. Nếu tôi dự kiến ​​không sử dụng thiết bị đầu cuối lâu hơn ~ 60 giây, tôi sẽ chạy topđể đảm bảo kết nối không bị rớt. (Và tôi khá chắc chắn rằng đó là kết nối comcast vì chúng tôi chỉ sử dụng bộ định tuyến và tường lửa WRT tiêu chuẩn tại nơi làm việc và kết nối comcast tại nhà của tôi không bao giờ giảm)
Patrick

Tôi đã thêm một ghi chú ngắn cụ thể cho các kết nối SSH.
David Spillett

2
Sâu sắc và sâu sắc trong câu trả lời này. Bạn sẽ nhận được +3 cho việc này. Xin lỗi, tôi chỉ có thể cung cấp cho bạn +1.
RolandoMySQLDBA

116

HÃY THAM GIA VÀO BACKUPS VỚI mysqldump

IMHO Thực hiện sao lưu đã trở thành một hình thức nghệ thuật nếu bạn biết cách tiếp cận nó

Bạn có lựa chọn

Tùy chọn 1: mysqldump toàn bộ phiên bản mysql

Đây là cách dễ nhất, không có trí tuệ !!!

mysqldump -h... -u... -p... --hex-blob --routines --triggers --all-databases | gzip > MySQLData.sql.gz

Mọi thứ được viết trong một tệp: cấu trúc bảng, chỉ mục, trình kích hoạt, thủ tục được lưu trữ, người dùng, mật khẩu được mã hóa. Các tùy chọn mysqldump khác cũng có thể xuất các kiểu khác nhau của lệnh INSERT, tệp nhật ký và tọa độ vị trí từ nhật ký nhị phân, tùy chọn tạo cơ sở dữ liệu, dữ liệu một phần (tùy chọn --where), v.v.

Tùy chọn 2: mysqldump cơ sở dữ liệu riêng biệt thành các tệp dữ liệu riêng biệt

Bắt đầu bằng cách tạo danh sách cơ sở dữ liệu (2 kỹ thuật để thực hiện việc này)

Kỹ thuật 1

mysql -h... -u... -p... -A --skip-column-names -e"SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema','mysql')" > ListOfDatabases.txt

Kỹ thuật 2

mysql -h... -u... -p... -A --skip-column-names -e"SELECT DISTINCT table_schema FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql')" > ListOfDatabases.txt

Kỹ thuật 1 là cách nhanh nhất. Kỹ thuật 2 là chắc chắn và an toàn nhất. Kỹ thuật 2 tốt hơn bởi vì, đôi khi, người dùng tạo các thư mục cho các mục đích chung trong / var / lib / mysql (datadir) không liên quan đến cơ sở dữ liệu. Information_schema sẽ đăng ký thư mục dưới dạng cơ sở dữ liệu trong bảng information_schema.schemata. Kỹ thuật 2 sẽ bỏ qua các thư mục không chứa dữ liệu mysql.

Khi bạn biên dịch danh sách cơ sở dữ liệu, bạn có thể tiến hành lặp qua danh sách và mysqldump chúng, thậm chí song song nếu muốn.

for DB in `cat ListOfDatabases.txt`
do
    mysqldump -h... -u... -p... --hex-blob --routines --triggers ${DB} | gzip > ${DB}.sql.gz &
done
wait

Nếu có quá nhiều cơ sở dữ liệu để khởi chạy cùng một lúc, song song kết xuất chúng 10 lần:

COMMIT_COUNT=0
COMMIT_LIMIT=10
for DB in `cat ListOfDatabases.txt`
do
    mysqldump -h... -u... -p... --hex-blob --routines --triggers ${DB} | gzip > ${DB}.sql.gz &
    (( COMMIT_COUNT++ ))
    if [ ${COMMIT_COUNT} -eq ${COMMIT_LIMIT} ]
    then
        COMMIT_COUNT=0
        wait
    fi
done
if [ ${COMMIT_COUNT} -gt 0 ]
then
    wait
fi

Tùy chọn 3: mysqldump các bảng riêng biệt thành các tệp dữ liệu riêng biệt

Bắt đầu bằng cách tạo một danh sách các bảng

mysql -h... -u... -p... -A --skip-column-names -e"SELECT CONCAT(table_schema,'.',table_name) FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql')" > ListOfTables.txt

Sau đó kết xuất tất cả các bảng trong nhóm 10

COMMIT_COUNT=0
COMMIT_LIMIT=10
for DBTB in `cat ListOfTables.txt`
do
    DB=`echo ${DBTB} | sed 's/\./ /g' | awk '{print $1}'`
    TB=`echo ${DBTB} | sed 's/\./ /g' | awk '{print $2}'`
    mysqldump -h... -u... -p... --hex-blob --triggers ${DB} ${TB} | gzip > ${DB}_${TB}.sql.gz &
    (( COMMIT_COUNT++ ))
    if [ ${COMMIT_COUNT} -eq ${COMMIT_LIMIT} ]
    then
        COMMIT_COUNT=0
        wait
    fi
done
if [ ${COMMIT_COUNT} -gt 0 ]
then
    wait
fi

Tùy chọn 4: SỬ DỤNG HÌNH ẢNH CỦA BẠN

Hãy thử các biến thể của Tùy chọn đã nói ở trên cộng với các kỹ thuật để chụp nhanh

Ví dụ

  1. Sắp xếp danh sách các bảng theo kích thước của mỗi bảng tăng dần hoặc giảm dần.
  2. Sử dụng quy trình riêng biệt, chạy "BẢNG XÓA B READNG ĐỌC KHÓA; CHỌN SLEEP (86400)" trước khi khởi chạy mysqldumps. Giết quá trình này sau khi mysqldumps hoàn thành. Điều này hữu ích nếu cơ sở dữ liệu chứa cả InnoDB và MyISAM
  3. Lưu mysqldumps trong các thư mục ngày và xoay ra các thư mục sao lưu cũ.
  4. Tải toàn bộ mysqldumps vào các máy chủ độc lập.

CẨN THẬN

Chỉ có lựa chọn 1 mang lại mọi thứ. Hạn chế là mysqldumps được tạo theo cách này chỉ có thể được tải lại vào cùng một phiên bản phát hành chính của mysql mà mysqldump đã được tạo. Nói cách khác, một mysqldump từ cơ sở dữ liệu MySQL 5.0 có thể được tải trong 5.1 hoặc 5.5. Nguyên nhân ? Lược đồ mysql hoàn toàn khác nhau giữa các bản phát hành chính.

Tùy chọn 2 và 3 không bao gồm lưu tên người dùng và mật khẩu.

Đây là cách chung để kết xuất SQL Grants cho người dùng dễ đọc và dễ mang theo hơn

mysql -h... -u... -p... --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql -h... -u... -p... --skip-column-names -A | sed 's/$/;/g' > MySQLGrants.sql

Tùy chọn 3 không lưu các thủ tục được lưu trữ, vì vậy bạn có thể làm như sau

mysqldump -h... -u... -p... --no-data --no-create-info --routines > MySQLStoredProcedures.sql &

Một điểm khác cần lưu ý là liên quan đến InnoDB. Nếu bạn có một vùng đệm InnoDB lớn, sẽ rất hợp lý khi xóa nó tốt nhất có thể trước khi thực hiện bất kỳ bản sao lưu nào. Mặt khác, MySQL dành thời gian để xóa các bảng với trang bẩn còn sót lại khỏi vùng đệm. Đây là những gì tôi đề nghị:

Khoảng 1 giờ trước khi thực hiện sao lưu chạy lệnh SQL này

SET GLOBAL innodb_max_dirty_pages_pct = 0;

Trong MySQL 5.5 mặc định innodb_max_denty_pages_pct là 75. Trong MySQL 5.1 trở lại, mặc định innodb_max_denty_pages_pct là 90. Bằng cách đặt innodb_max_dundred_pages_pct thành 0, điều này sẽ đẩy nhanh các trang bẩn vào đĩa. Điều này sẽ ngăn chặn hoặc ít nhất làm giảm tác động của việc dọn sạch mọi cam kết hai pha không hoàn chỉnh của dữ liệu InnoDB trước khi thực hiện bất kỳ mysqldump nào đối với bất kỳ bảng InnoDB nào.

CÔNG VIỆC CUỐI CÙNG TRÊN mysqldump

Hầu hết mọi người né tránh mysqldump để ủng hộ các công cụ khác và những công cụ đó thực sự tốt.

Những công cụ này bao gồm

  1. MAATKIT ( tập lệnh kết xuất / khôi phục song song , từ Percona [Không dùng nữa nhưng tuyệt vời])
  2. XtraBackup (Sao lưu ảnh chụp nhanh TopNotch từ Percona)
  3. CDP R1Soft ( Tùy chọn mô-đun MySQL chụp ảnh nhanh theo thời gian)
  4. Sao lưu doanh nghiệp MySQL (trước đây là Sao lưu nóng InnoDB [thương mại])

Nếu bạn có tinh thần của một DBA MySQL thực sự, bạn có thể nắm lấy mysqldump và hoàn toàn làm chủ được nó có thể đạt được. Có thể tất cả các bản sao lưu của bạn là sự phản ánh các kỹ năng của bạn như là một DBA của MySQL .


2
+1 để sử dụng tốt mysqldump cũng như cho: Nếu bạn có tinh thần của một DBA MySQL thực sự, bạn có thể nắm lấy mysqldump và hoàn toàn làm chủ được nó. Có thể tất cả các bản sao lưu của bạn là sự phản ánh các kỹ năng của bạn như là một DBA của MySQL .... Các dòng tuyệt vời !!!
Abdul Manaf

4
Trong InnoDB, các bảng đổ rác riêng lẻ sẽ cung cấp cho bạn một bản sao lưu không nhất quán.
Alain Collins

5
@AlainCollins đây là lý do tại sao tôi chạy mysqldumps trên một nô lệ sao chép chỉ được đọc. Khi Seconds_Behind_Master bằng 0, bạn chạy STOP SLAVE. Bây giờ bạn có một điểm nhất quán trong thời gian để thực hiện mysqldumps trong bất kỳ phong cách nào đã nói ở trên. Tôi đã làm điều này cho các công ty thương mại trực tuyến trong 5 năm qua mà không có nhiều phàn nàn với tôi hoặc chủ sở hữu công ty của tôi. Tính đến thời điểm này, tôi thực hiện song song mysqldumps cứ sau 10 phút cho khách hàng này. Tôi cũng làm điều này cho các khách hàng khác để cung cấp thời gian sao lưu nhanh hơn.
RolandoMySQLDBA

Tôi có một db 32 GB vì vậy tùy chọn 3 chính xác là những gì tôi đã nghĩ! cảm ơn!
Raymond

Tôi phải sao lưu và nhập lại 1TB dữ liệu để thu nhỏ cực lớn ibdata1. Trong thời gian SSD được hỗ trợ bởi RAID phần cứng, tùy chọn 3 là giải pháp duy nhất cho tôi.
rabudde

18

Có một cái nhìn về bản sao nhân bản MySQL để nô lệ. Nó cho phép bạn sao chép cơ sở dữ liệu của chủ sang một máy chủ cơ sở dữ liệu khác có cùng cơ sở dữ liệu. Điều đó bao gồm danh tính chủ và nô lệ. Slave tự tạo bản sao chính xác của máy chủ cơ sở dữ liệu chủ và cơ sở dữ liệu của nó. Có thể có mối quan hệ một-một, một-nhiều, nhiều-một giữa chủ (s) và nô lệ.

Slave liên tục đọc nhật ký nhị phân tại master (nhật ký bin lưu trữ các truy vấn được viết tại máy chủ cơ sở dữ liệu chủ) và nhận đầu vào cho máy chủ cơ sở dữ liệu nô lệ của nó. (điều này có nghĩa là cơ sở dữ liệu chủ của bạn sẽ không bị ảnh hưởng chút nào)

Tin vui là nó sẽ không ảnh hưởng đến máy chủ MySQL của bạn quá nhiều vì bạn sẽ không nhận thấy bất kỳ thời gian chết hoặc phản hồi truy vấn chậm nào. Chúng tôi sử dụng nó cho cơ sở dữ liệu 10Gb và nó hoạt động như một bùa mê mà không có thời gian chết.

Bản sao MySQL trên cùng một máy


trong khi điều đó sẽ làm việc cho tôi, tôi nghĩ rằng nó có thể là một chút quá mức cần thiết. Tôi hiện không cần mức sao lưu đó, mặc dù tôi sẽ ghi nhớ điều này nếu các yêu cầu của ứng dụng thay đổi.
Patrick

4
+1 để sao lưu bản sao để loại bỏ tải IO của bản sao lưu khỏi DB chính và giảm các vấn đề liên quan đến khóa tiềm ẩn, với một cảnh báo quan trọng: hãy cẩn thận với tùy chọn "bản sao trên cùng một máy" khi bạn thao tác trên nô lệ có thể cạnh tranh với chủ băng thông IO - đảm bảo các tệp dữ liệu của nô lệ là một ổ đĩa / mảng khác với chủ để giảm thiểu vấn đề này.
David Spillett

1
Ditto về Nhận xét của David Splllet. Tôi thiết lập và duy trì hàng tá Master / Slaves với bản sao lưu mysqldump trên các nô lệ cho Nhà tuyển dụng Web Hosting của tôi. +1 từ tôi là tốt.
RolandoMySQLDBA

16

Kế hoạch A: Xem thêm Xtrabackup từ Percona. Điều này cho phép sao lưu trực tuyến InnoDB mà không có bất kỳ khóa đáng kể nào.

Kế hoạch B: Một Slave có thể bị dừng và bạn có thể sao lưu nhất quán bằng bất kỳ phương tiện nào (sao chép tệp, mysqldump, xtrabackup, v.v.)

Kế hoạch C: Ảnh chụp LVM. Sau một số thiết lập khó hiểu, thời gian chết cho một bản sao lưu là ít hơn một phút, bất kể kích thước của cơ sở dữ liệu. Bạn dừng mysqld, thực hiện ảnh chụp nhanh, khởi động lại mysqld, sau đó sao chép ảnh chụp nhanh. Bước cuối cùng có thể mất nhiều thời gian, nhưng MySQL không bị hỏng.

Kế hoạch D: Ảnh chụp của một nô lệ - thời gian chết không.


2
Hoan hô tất cả bốn kế hoạch. Tôi chỉ có thể cho +0,25 mỗi câu trả lời !!! +1 (4 x 0,25)
RolandoMySQLDBA

15

Một vài điểm quản trị đầu tiên: Bạn đang kết nối để thực hiện một ftp hay bạn đang tham gia và nó sắp chết? Nếu ssh, sau đó hãy chắc chắn sử dụng màn hình để bạn có thể tiếp tục sau sự cố comcast. Nếu ftp, thì hãy chắc chắn rằng bạn đang nén nó / tar trước khi gửi.

Ngoài ra, hãy thử tham số --opt hoặc --quick

--opt Tùy chọn này bật một tập hợp các tùy chọn bổ sung để làm cho hoạt động kết xuất và tải lại hiệu quả hơn. Cụ thể, nó tương đương với việc sử dụng các tùy chọn --add-drop-table, --add-lock, --all, --quick, --extends-insert, --lock-bảng và --disable-key cùng nhau. Lưu ý rằng tùy chọn này làm cho đầu ra ít di động hơn và ít có khả năng được hiểu bởi các hệ thống cơ sở dữ liệu khác.

--quick Tùy chọn này yêu cầu mysqldump ghi đầu ra kết xuất khi nó đọc từng hàng từ máy chủ, có thể hữu ích cho các bảng lớn. Theo mặc định, mysqldump đọc tất cả các hàng từ một bảng vào bộ nhớ trước khi ghi đầu ra; đối với các bảng lớn, điều này đòi hỏi một lượng lớn bộ nhớ, có thể khiến kết xuất không thành công.


1
- sẽ không tăng kích thước của tập tin mà cuối cùng sẽ nhận được đầu ra?
Toby

Nó sẽ thêm một số - tôi có nghĩa là thêm --quick để trả lời cho vấn đề của anh ấy .... chỉnh sửa ngay bây giờ. Cảm ơn!
Hội trường David

+1 cho màn hình, giúp tránh vấn đề này hoàn toàn
Gaius

+1 cho câu trả lời rất hay và súc tích cho các giải thích --opt và --quick của mysqldump.
RolandoMySQLDBA

1
--opt được bật theo mặc định.
Jordan

5

Tôi đã từng có vấn đề với thời gian chờ trong quá trình cơ sở dữ liệu lớn. Cuối cùng tôi đã giải quyết nếu bằng cách gửi các lệnh riêng lẻ cho mỗi bảng trong db và nối thêm mọi thứ vào một tệp như thế này:

TABLES=`mysql -u $USER -p$PWD -Bse 'show tables' $DB`
for TABLE in $TABLES
do
    mysqldump -u $USER -p$PWD $DB $TABLE >> dump.sql
done

4
Đây được coi là một bản sao lưu "không nhất quán", khi khôi phục bạn có thể có dữ liệu trong một bảng ánh xạ tới một bảng khác nhưng không tồn tại.
Morgan Tocker

3

Tôi nghĩ câu hỏi là về cách khôi phục nhanh hơn từ các tệp kết xuất được tạo của mysqldump, chứ không phải là một giải pháp sao lưu khác.

Một trong những cách, bạn có thể làm điều này là bằng cách tạo các nhóm bảng trong lược đồ của bạn và tạo một người dùng DB riêng cho mỗi nhóm, sau đó cuối cùng sử dụng quyền MySQL để không cho phép các bảng được chèn vào sử dụng tất cả trừ một người dùng DB.

Đây là một kỹ thuật đã được chứng minh, nhanh chóng, gần như song song nhưng không chắc chắn 100%, sẽ mất bao lâu để khôi phục từ các bãi lớn như 500G hoặc hơn. Nhưng theo quan điểm khiêm tốn của tôi, bạn cần một cái gì đó song song. Kiểm tra các liên kết dưới đây cho một ví dụ.

[Khôi phục nhanh, song song từ các bãi chứa SQL (mysqldump) cho MySQL] [1]

http://geeksww.com/tutorials/database_manler_systems/mysql/tips_and_tricks/fast_abul_restore_from_sql_dumps_mysqldump_for_mysql.php

"Khôi phục nhanh, song song từ các bãi chứa SQL (mysqldump) cho MySQL"


2
Đây là một bản sao chính xác của câu trả lời của bạn cho một câu hỏi khác. Bạn có thể muốn tùy chỉnh nó thêm một chút cho câu hỏi cụ thể này.
Paul White

Câu hỏi đặc biệt KHÔNG về cách khôi phục nhanh hơn.
rút lorien
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.