Postgresql 7.4.30 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chuyển tiếp nhanh | Tiếp theo |
như mọi thứ chứa dữ liệu có giá trị,Postgre토토 꽁 머니Cơ sở dữ liệu phải được sao lưu thường xuyên. Mặc dù thủ tục về cơ bản là đơn giản, nhưng nó là quan trọng là có một sự hiểu biết cơ bản về cơ bản kỹ thuật và giả định.
Có hai cách tiếp cận cơ bản khác nhau để sao lưuPostgre토토 꽁 머니Dữ liệu:
토토 꽁 머니Dump
Sao lưu cấp hệ thống tệp
Ý tưởng đằng sau phương thức 토토 꽁 머니-Dump là tạo văn bản Tệp với các lệnh 토토 꽁 머니, khi được đưa trở lại máy chủ, sẽ tái tạo cơ sở dữ liệu ở cùng trạng thái như lúc đó của bãi rác.Postgre토토 꽁 머니Cung cấp chương trình tiện íchpg_dumpcho mục đích này. Cách sử dụng cơ bản của lệnh này là:
pg_dumpdbname Outfile
Như bạn thấy,pg_dumpViết Kết quả của nó cho đầu ra tiêu chuẩn. Chúng ta sẽ thấy dưới đây như thế nào có thể hữu ích.
pg_dumplà một thông thườngPostgre토토 꽁 머니Ứng dụng khách (mặc dù là một người đặc biệt thông minh). Điều này có nghĩa là bạn có thể làm 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 cơ sở dữ liệu. Nhưng hãy nhớ rằngpg_dump13150_13354
Để chỉ định máy chủ cơ sở dữ liệu nàopg_dumpNên liên hệ, sử dụng lệnh Tùy chọn dòng-Hmáy chủvà-PCổng13633_13693PGHOSTBiến môi trường Chỉ định. Tương tự, cổng mặc định là được biểu thị bởiPGPORT13838_13995
như bất kỳ ai khácPostgre토토 꽁 머니Ứng dụng khách,pg_dumpTheo mặc định sẽ kết nối với tên người dùng cơ sở dữ liệu bằng với tên người dùng hệ điều hành hiện tại. Để ghi đè cái này, hoặc chỉ định-UTù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 xác thực máy khách bình thường các cơ chế (được mô tả trongChương 19).
bãi rác được tạo bởipg_dumptrong khipg_dumpĐang chạy sẽ không ở trong bãi rác.pg_dump14873_15043Vacuum ĐẦY.)
quan trọng:Khi lược đồ cơ sở dữ liệu của bạn dựa vào Oids (ví dụ như khóa nước ngoài) bạn phải hướng dẫnpg_dumpĐể đổ các OIDS cũng vậy. Để làm điều này, hãy sử dụng-OTùy chọn dòng lệnh."Lớn Đối tượng "cũng không bị bỏ mặc theo mặc định. Nhìn thấypg_dump'lệnh Trang tham chiếu Nếu bạn sử dụng các đối tượng lớn.
Các tệp văn bản được tạo bởipg_dumpđược dự định sẽ được đọc bởi TheP토토 꽁 머니Chương trình. Các biểu mẫu lệnh chung để khôi phục một bãi rác là
P토토 꽁 머니dbname < Infile
WHEREInfilelà những gì bạn Được sử dụng nhưOutfilechopg_dumpLệnh. Cơ sở dữ liệudbnamesẽ không được tạo bởi Lệnh này, bạn phải tự tạo nó từTemplate0Trước khi thực hiệnP토토 꽁 머니(ví dụ: vớicreatedb -t template0dbname).P토토 꽁 머니Hỗ trợ các tùy chọn tương tự vớipg_dumpđể kiểm soát Vị trí máy chủ cơ sở dữ liệu và tên người dùng. Xem tài liệu tham khảo của nó trang để biết thêm thông tin.
Nếu các đối tượng trong cơ sở dữ liệu gốc được sở hữu bởi Người dùng khác nhau, sau đó bãi rác sẽ hướng dẫnP토토 꽁 머니Để kết nối với tư cách là người dùng bị ảnh hưởng trong Turn và sau đó tạo các đối tượng có liên quan. Cách này Quyền sở hữu ban đầu được bảo tồn. Điều này cũng có nghĩa là, tuy nhiên, rằng tất cả những người dùng này phải tồn tại và hơn nữa Bạn phải được phép kết nối như mỗi người trong số họ. Nó có thể do đó là cần thiết để tạm thời thư giãn khách hàng Cài đặt xác thực.
Sau khi được khôi phục, thật khôn ngoan khi chạyPhân tíchTrên mỗi cơ sở dữ liệu để trình tối ưu hóa có Thống kê hữu ích. Bạn cũng có thể chạyVACUUMDB -A -ZđếnPhân tíchTất cả các cơ sở dữ liệu.
Khả năng củapg_dumpvàP토토 꽁 머니để viết hoặc đọc từ các đường ống cho phép bỏ cơ sở dữ liệu trực tiếp từ máy chủ này sang máy chủ khác; Ví dụ:
pg_dump -hhost1 dbname| p토토 꽁 머니 -hhost2 dbname
quan trọng:Các 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ữ nào, thủ tục, v.v. được thêm vàoTemplate1cũng sẽ bị bỏ rơi bởipg_dump. Kết quả là Khi khôi phục, nếu bạn đang sử dụng tùy chỉnhTemplate1, bạn phải tạo trống cơ sở dữ liệu từTemplate0, như trong Ví dụ trên.
Tip:Khôi phục hiệu suất có thể được cải thiện bằng cách Tăng tham số cấu hìnhsort_mem(xem19230_19258).
Cơ chế trên là cồng kềnh và không phù hợp khi sao lưu toàn bộ cụm cơ sở dữ liệu. Vì lý do nàypg_dumpallChương trình là cung cấp.pg_dumpall19734_19883pg_dumpallchỉ đơn giản là
pg_dumpallOutfile
Hợp đồng kết quả có thể được khôi phục bằngP토토 꽁 머니:
Template P토토 꽁 머니1 <Infile
(Trên thực tế, bạn có thể chỉ định bất kỳ tên cơ sở dữ liệu hiện có nào bắt đầu từ, nhưng nếu bạn đang tải lại trong một cụm trống thìTemplate1là duy nhất có sẵn Lựa chọn.) Luôn luôn cần phải có Superuser cơ sở dữ liệu Truy cập khi khôi phụcpg_dumpallDump, vì điều đó là yêu cầu để Khôi phục thông tin người dùng và nhóm.
kể từPostgre토토 꽁 머니Cho phép các bảng lớn hơn kích thước tệp tối đa trên hệ thống của bạn, nó có thể có vấn đề khi đổ bảng như vậy vào một tệp, vì Tệp kết quả có thể sẽ lớn hơn kích thước tối đa cho phép bởi hệ thống của bạn. BẰNGpg_dumpcó thể ghi vào tiêu chuẩn đầu ra, bạn chỉ có thể sử dụng các công cụ unix tiêu chuẩn để hoạt động xung quanh Vấn đề có thể xảy ra.
Sử dụng các kết xuất nén.Bạn có thể sử dụng yêu thích của mình Chương trình nén, ví dụgzip.
PG_DUMPdbname| gzipFileName.gz
Tải lại với
createdbdbnameGunzip -CFileName.gz | psqldbname
hoặc
CATFileName.gz | Gunzip | psqldbname
sử dụngSplit.TheSplitlệnh cho phép bạn chia tách đầu ra thành các mảnh có thể chấp nhận được kích thước Hệ thống tệp cơ bản. Ví dụ, để tạo ra các khối 1 megabyte:
pg_dumpdbname| chia -b 1m -FileName
Tải lại với
createdbdbnameCATFileName* | p토토 꽁 머니dbname
Sử dụng định dạng kết xuất tùy chỉnh.nếuPostgre토토 꽁 머니được xây dựng trên một hệ thống với TheZlibNén Thư viện được cài đặt, định dạng kết xuất tùy chỉnh sẽ nén Dữ liệu khi nó ghi nó vào tệp đầu ra. Cho lớn cơ sở dữ liệu, điều này sẽ tạo ra các kích thước kết xuất tương tự như sử dụnggzip, nhưng có thêm lợi thế rằng các bảng có thể được khôi phục có chọn lọc. Sau đây Lệnh kết xuất cơ sở dữ liệu bằng định dạng kết xuất tùy chỉnh:
23348_23363dbname FileName
xempg_dumpvàPG_RESTOREtrang tham chiếu Để biết chi tiết.
pg_dump(và bởi hàm ýPG_DUMPALL) có một vài hạn chế bắt nguồn từ khó khăn của Tái cấu trúc một số thông tin nhất định từ hệ thống Danh mục.
Cụ thể, thứ tự trong đópg_dumpViết các đối tượng không phải là rất cầu kì. Điều này có thể dẫn đến các vấn đề chẳng hạn khi Các hàm được sử dụng làm giá trị mặc định cột. Câu trả lời duy nhất là để sắp xếp lại thủ công bãi rác. Nếu bạn tạo tròn sự phụ thuộc vào lược đồ của bạn thì bạn sẽ có nhiều việc hơn LÀM.
Vì lý do tương thích ngược,pg_dumpKhông đổ các đối tượng lớn bằng cách mặc định.Để đổ lớn các đối tượng bạn phải sử dụng tùy chỉnh hoặc đầu ra tar định dạng và sử dụng-BTùy chọn trongpg_dump. Xem tài liệu tham khảo trang để biết chi tiết. Thư mụcPRINT/PG_DUMPLOcủaPostgre토토 꽁 머니Cây nguồn cũng chứa một chương trình có thể đổ các đối tượng lớn.
Vui lòng làm quen vớipg_dumpTài liệu tham khảo trang.