10207_10397PostgreSQLCung cấp chương trình tiện íchpg_dumpcho mục đích này. Việc sử kèo tỷ số bóng đá euro hôm nay cơ bản của lệnh này là:
pg_dumpdbname
Dumpfile
Như bạn thấy,pg_dumpViết kết quả của nó cho đầu ra tiêu chuẩn. Chúng tôi sẽ thấy dưới đây làm thế nào điều này có thể hữu ích.pg_dumpcó thể tạo kèo tỷ số bóng đá euro hôm nay tệp ở kèo tỷ số bóng đá euro hôm nay định dạng khác cho phép song song và kiểm soát chi tiết chi tiết hơn của phục hồi đối tượng.
pg_dumplà một thông thườngPostgreSQLỨng dụng khách (mặc dù là một ứng dụng đặc biệt thông minh). Điều này có nghĩa là bạn có thể thực hiện quy trình sao lưu này từ bất kỳ máy chủ từ xa nào có quyền truy cập vào cơ sở dữ kèo tỷ số bóng đá euro hôm nay.pg_dumpKhông hoạt động với các quyền đặc biệt. Cụ thể, nó phải đọc quyền truy cập vào tất cả các bảng mà bạn muốn sao lưu, vì vậy để sao lưu toàn bộ cơ sở dữ kèo tỷ số bóng đá euro hôm nay, bạn hầu như luôn phải chạy nó như một siêu người dùng cơ sở dữ kèo tỷ số bóng đá euro hôm nay.-N
hoặclược đồ
-T
.)Bảng
Để chỉ định máy chủ cơ sở dữ kèo tỷ số bóng đá euro hôm nay nàopg_dumpnên liên hệ, sử dụng kèo tỷ số bóng đá euro hôm nay tùy chọn dòng lệnh-H
vàhost
-P
. Máy chủ mặc định là máy chủ cục bộ hoặc bất cứ thứ gì của bạnCổng
PGHOST
Biến môi trường Chỉ định. Tương tự, cổng mặc định được biểu thị bằngPGPORT
Biến môi trường hoặc, không thành công, theo mặc định được biên dịch. (Thuận tiện, máy chủ thường sẽ có cùng một mặc định được biên dịch.)
giống như bất kỳ ai khácPostgreSQLỨng kèo tỷ số bóng đá euro hôm nay khách,pg_dumpTheo mặc định sẽ kết nối với tên người dùng cơ sở dữ kèo tỷ số bóng đá euro hôm nay bằng với tên người dùng hệ điều hành hiện tại. Để ghi đè này, hoặc chỉ định-U
Tùy chọn hoặc đặt biến môi trườngPGUSER
. Hãy nhớ rằngpg_dumpKết nối phải tuân theo kèo tỷ số bóng đá euro hôm nay cơ chế xác thực máy khách bình thường (được mô tả trongChương 20).
Một lợi thế quan trọng củapg_dumpTrên kèo tỷ số bóng đá euro hôm nay phương thức sao lưu khác được mô tả sau đó làpg_dumpđầu ra thường có thể được tải lại thành kèo tỷ số bóng đá euro hôm nay phiên bản mới hơn củaPOSTGRESQL, trong khi kèo tỷ số bóng đá euro hôm nay bản sao lưu cấp tệp và lưu trữ liên tục đều cực kỳ đặc trưng cho máy chủ.pg_dumpcũng là phương pháp duy nhất sẽ hoạt động khi chuyển cơ sở dữ kèo tỷ số bóng đá euro hôm nay sang kiến trúc máy khác, chẳng hạn như đi từ máy chủ 32 bit sang máy chủ 64 bit.
kèo tỷ số bóng đá euro hôm nay bãi rác được tạo bởipg_dump13953_14051pg_dumpBắt đầu chạy.pg_dumpKhông chặn các hoạt động khác trên cơ sở dữ kèo tỷ số bóng đá euro hôm nay trong khi nó đang hoạt động. (Ngoại lệ là những hoạt động cần hoạt động với khóa độc quyền, chẳng hạn như hầu hết các hình thức củaBảng thay đổi
.)
Tệp văn bản được tạo bởipg_dumpđược dự định sẽ được đọc bởiPSQLChương trình sử kèo tỷ số bóng đá euro hôm nay cài đặt mặc định của nó. Biểu mẫu lệnh chung để khôi phục kết xuất văn bản là
PSQL -Xdbname
<Dumpfile
WHEREDumpfile
là đầu ra tệp củapg_dumpLệnh. Cơ sở dữ kèo tỷ số bóng đá euro hôm naydbname
sẽ không được tạo bởi lệnh này, vì vậy bạn phải tự tạo nó từTemplate0
Trước khi thực hiệnPSQL(ví dụ: vớicreatedb -t template0
). Để đảm bảoPSQLChạy với cài đặt mặc định của nó, sử kèo tỷ số bóng đá euro hôm naydbname
-x
(--no-psqlrc
).PSQLHỗ trợ kèo tỷ số bóng đá euro hôm nay tùy chọn tương tựpg_dumpĐể chỉ định máy chủ cơ sở dữ kèo tỷ số bóng đá euro hôm nay để kết nối và tên người dùng sẽ sử dụng. XemPSQLTrang tham khảo để biết thêm thông tin.
kèo tỷ số bóng đá euro hôm nay kết xuất tệp không phải văn bản nên được khôi phục bằng cách sử dụngpg_restoreTiện ích.
Trước khi khôi phục một bãi rác SQL, tất cả người dùng sở hữu các đối tượng hoặc được cấp quyền đối với các đối tượng trong cơ sở dữ kèo tỷ số bóng đá euro hôm nay bị đổ phải tồn tại. Nếu họ không, việc khôi phục sẽ không tái tạo các đối tượng với quyền sở hữu và/hoặc quyền ban đầu.
Theo mặc định,PSQLTập lệnh sẽ tiếp tục thực thi sau khi gặp lỗi SQL. Bạn có thể muốn chạyPSQLvớion_error_stop
Biến được đặt để thay đổi hành vi đó và cóPSQLThoát với trạng thái thoát là 3 nếu xảy ra lỗi SQL:
psql -x - -set on_error_stop = ONdbname
<Dumpfile
Dù sao, bạn sẽ chỉ có cơ sở dữ kèo tỷ số bóng đá euro hôm nay được khôi phục một phần. Ngoài ra, bạn có thể chỉ định rằng toàn bộ kết xuất nên được khôi phục dưới dạng một giao dịch, do đó, việc khôi phục được hoàn thành hoàn toàn hoặc được cuộn hoàn toàn.-1
hoặc--Single-Transaction
Tùy chọn dòng lệnh đếnPSQL. Khi sử kèo tỷ số bóng đá euro hôm nay chế độ này, hãy lưu ý rằng ngay cả một lỗi nhỏ cũng có thể khôi phục một lần khôi phục đã chạy trong nhiều giờ.
Khả năng củapg_dumpvàPSQLĐể ghi hoặc đọc từ các đường ống giúp có thể đổ cơ sở dữ kèo tỷ số bóng đá euro hôm nay trực tiếp từ máy chủ này sang máy chủ khác, ví dụ:
pg_dump -hhost1
dbname
| psql -x -hhost2
dbname
kèo tỷ số bóng đá euro hôm nay bãi rác được sản xuất bởipg_dumplà liên quan đếnTemplate0
. Điều này có nghĩa là bất kỳ ngôn ngữ, quy trình nào, v.v. được thêm quaTemplate1
cũng sẽ bị bỏ rơi bởipg_dump. Kết quả là, khi khôi phục, nếu bạn đang sử kèo tỷ số bóng đá euro hôm nay tùy chỉnhTemplate1
, bạn phải tạo cơ sở dữ kèo tỷ số bóng đá euro hôm nay trống từTemplate0
, như trong ví dụ trên.
Sau khi khôi phục bản sao lưu, thật khôn ngoan khi chạyPhân tích
Trên mỗi cơ sở dữ kèo tỷ số bóng đá euro hôm nay để trình tối ưu hóa truy vấn có số kèo tỷ số bóng đá euro hôm nay thống kê hữu ích; nhìn thấyPhần 24.1.3vàPhần 24.1.6Để biết thêm thông tin. Để biết thêm lời khuyên về cách tải một lượng lớn dữ kèo tỷ số bóng đá euro hôm nay vàoPostgreSQLhiệu quả, tham khảoPhần 14.4.
pg_dumpChỉ đổ một cơ sở dữ kèo tỷ số bóng đá euro hôm nay tại một thời điểm và nó không thông tin về vai trò hoặc không gian bảng (vì chúng có toàn cụm thay vì mỗi cơ sở dữ kèo tỷ số bóng đá euro hôm nay). Để hỗ trợ việc bán phá giá thuận tiện của toàn bộ nội dung của cụm cơ sở dữ kèo tỷ số bóng đá euro hôm nay,PG_DUMPALLChương trình được cung cấp.PG_DUMPALLSao lưu mỗi cơ sở dữ kèo tỷ số bóng đá euro hôm nay trong một cụm nhất định và cũng bảo tồn dữ kèo tỷ số bóng đá euro hôm nay trên toàn cụm như định nghĩa vai trò và không gian bảng. Việc sử dụng cơ bản của lệnh này là:
pg_dumpallDumpfile
Hợp đồng kết quả có thể được khôi phục bằngPSQL:
PSQL -X -FDumpfile
Postgres
(Trên thực tế, bạn có thể chỉ định bất kỳ tên cơ sở dữ kèo tỷ số bóng đá euro hôm nay hiện có nào để bắt đầu, nhưng nếu bạn đang tải vào một cụm trống thìPostgres
thường được sử kèo tỷ số bóng đá euro hôm nay.)pg_dumpallkèo tỷ số bóng đá euro hôm nay, vì điều đó được yêu cầu để khôi phục thông tin vai trò và không gian bảng. Nếu bạn sử dụng các không gian bảng, hãy đảm bảo rằng các đường dẫn không gian bảng trong kết xuất là phù hợp cho cài đặt mới.
pg_dumpallhoạt động bằng cách phát ra các lệnh để tạo lại các vai trò, không gian bảng và cơ sở dữ kèo tỷ số bóng đá euro hôm nay trống, sau đó gọipg_dumpĐối với mỗi cơ sở dữ kèo tỷ số bóng đá euro hôm nay. Điều này có nghĩa là trong khi mỗi cơ sở dữ kèo tỷ số bóng đá euro hôm nay sẽ nhất quán nội bộ, các ảnh chụp nhanh của các cơ sở dữ kèo tỷ số bóng đá euro hôm nay khác nhau không được đồng bộ hóa.
Dữ kèo tỷ số bóng đá euro hôm nay toàn cụm có thể được bỏ một mình bằng cách sử dụngpg_dumpall Tùy chọn. Điều này là cần thiết để sao lưu hoàn toàn cụm nếu chạypg_dumplệnh trên cơ sở dữ kèo tỷ số bóng đá euro hôm nay riêng lẻ.
Một số hệ điều hành có giới hạn kích thước tệp tối đa gây ra sự cố khi tạo lớnpg_dumpTệp đầu ra. May mắn thay,pg_dumpCó thể ghi vào đầu ra tiêu chuẩn, vì vậy bạn có thể sử dụng kèo tỷ số bóng đá euro hôm nay công cụ Unix tiêu chuẩn để giải quyết vấn đề tiềm năng này. Có một số phương pháp có thể:
Sử dụng kèo tỷ số bóng đá euro hôm nay bãi nén.Bạn có thể sử kèo tỷ số bóng đá euro hôm nay chương trình nén yêu thích của mình, ví dụgzip:
pg_dumpdbname
| gzipFileName
.gz
Tải lại với:
Gunzip -CFileName
.gz | psqldbname
hoặc:
CATFileName
.gz | Gunzip |dbname
Sử kèo tỷ số bóng đá euro hôm naySplit
. TheSplit
Lệnh cho phép bạn chia đầu ra thành kèo tỷ số bóng đá euro hôm nay tệp nhỏ hơn có thể chấp nhận kích thước cho hệ thống tệp cơ bản. Ví dụ: để tạo 2 khối gigabyte:
PG_DUMPdbname
| chia -b 2g -FileName
Tải lại với:
CATFileName
* | psqldbname
Nếu sử kèo tỷ số bóng đá euro hôm nay GNUSplit, có thể sử kèo tỷ số bóng đá euro hôm nay nó vàgzipcùng nhau:
pg_dumpdbname
| chia -b 2g -filter = 'gzip $ file.gz'
Nó có thể được khôi phục bằngZCAT
.
Sử kèo tỷ số bóng đá euro hôm naypg_dumpĐịnh dạng kết xuất tùy chỉnh.nếuPostgreSQLđược xây dựng trên một hệ thống vớiZlibThư viện nén được cài đặt, định dạng kết xuất tùy chỉnh sẽ nén dữ kèo tỷ số bóng đá euro hôm nay khi nó ghi nó vào tệp đầu ra. Điều này sẽ tạo ra các kích thước tệp kết xuất tương tự như sử dụnggzip
, nhưng nó có thêm lợi thế rằng các bảng có thể được khôi phục có chọn lọc. Lệnh sau đổ cơ sở dữ kèo tỷ số bóng đá euro hôm nay bằng định dạng kết xuất tùy chỉnh:
pg_dump -fcdbname
FileName
Một kết xuất định dạng tùy chỉnh không phải là tập lệnh choPSQL, nhưng thay vào đó phải được khôi phục bằngpg_restore, ví dụ:
pg_restore -ddbname
FileName
xempg_dumpvàpg_restoretrang tham chiếu để biết chi tiết.
Đối với cơ sở dữ kèo tỷ số bóng đá euro hôm nay rất lớn, bạn có thể cần kết hợpSplit
Với một trong hai cách tiếp cận khác.
Sử kèo tỷ số bóng đá euro hôm naypg_dumptính năng kết xuất song song.Để tăng tốc độ kết xuất của một cơ sở dữ kèo tỷ số bóng đá euro hôm nay lớn, bạn có thể sử dụngpg_dumpChế độ song song. Điều này sẽ đổ nhiều bảng cùng một lúc.-J
Tham số. kèo tỷ số bóng đá euro hôm nay bãi chứa song song chỉ được hỗ trợ cho định dạng lưu trữ "thư mục".
pg_dump -jnum
-f d -fout.dir
dbname
Bạn có thể sử kèo tỷ số bóng đá euro hôm naypg_restore -j
Để khôi phục lại song song. Điều này sẽ hoạt động cho bất kỳ kho lưu trữ nào của chế độ lưu trữ "tùy chỉnh" hoặc "thư mục", cho dù nó có được tạo bằng hay khôngpg_dump -j
.