2010-03-02 33 views
11

Cách dễ nhất để thực hiện sao lưu kho dữ liệu GAE/J là gì?Sao lưu dữ liệu GAE/J

Dường như có công cụ bulkloader.py python để thực hiện sao lưu cho các ứng dụng Python, nhưng tôi nên làm gì để sao lưu ứng dụng Java? Có cách nào để sử dụng công cụ python?

Trả lời

16

Có thể sử dụng công cụ python bulkloader.py để tạo bản sao lưu dữ liệu của ứng dụng GAE Java. Bạn chỉ cần phải thiết lập remote_api bằng cách thêm dòng sau vào web.xml:

<?xml version="1.0" encoding="utf-8"?> 
<web-app> 
    <!-- Add this to your web.xml to enable remote API on Java. --> 
    <servlet> 
    <servlet-name>remoteapi</servlet-name> 
    <servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>remoteapi</servlet-name> 
    <url-pattern>/remote_api</url-pattern> 
    </servlet-mapping> 
    <security-constraint> 
    <web-resource-collection> 
     <web-resource-name>remoteapi</web-resource-name> 
     <url-pattern>/remote_api</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>admin</role-name> 
    </auth-constraint> 
    </security-constraint> 
</web-app> 

Sau đó bạn có thể sử dụng bulkloader.py với --dump tải sao lưu và với --restore tải lên sao lưu vào kho dữ liệu.

+3

Phần ràng buộc an toàn có thể được gỡ bỏ một cách an toàn (AppEngine 1.4.3), vì bản thân Servlet giờ cũng thực hiện kiểm tra này –

+0

Đây không phải là giải pháp hợp lệ với kho dữ liệu HR: "Nếu bạn cố tải xuống dữ liệu, bạn sẽ thấy lỗi high_replication_warning trong Bảng điều khiển dành cho quản trị viên và dữ liệu đã tải xuống có thể không bao gồm các thực thể được lưu gần đây ". –

+0

Vui lòng xem [Here] (http://stackoverflow.com/a/12458521/1328880) để biết các bước cần thiết để sử dụng RemoteApiServlet – Maithilish

1

Chỉ cần thiết lập remote_api cho ứng dụng của bạn bằng cách sử dụng hướng here - đặc biệt là tip:

Mẹo: Nếu bạn có một ứng dụng Java, bạn có thể sử dụng công cụ Python bulkloader.py bởi cài đặt Java phiên bản của bộ xử lý remote_api, bao gồm với môi trường chạy Java. Lớp servlet xử lý là com.google.apphosting.utils.remoteapi.RemoteApiServlet.

Sau đó, sử dụng trình tải hàng loạt Python có --dump hoặc --restore.

+0

thể bulkloader --dump làm gia tăng tải? – Thilo

+1

Không. Hiện tại không có cách nào chung để thực hiện tải xuống gia tăng, vì App Engine không hiển thị tổng số đơn đặt hàng trên các thực thể. –

2

Tôi biết câu hỏi này khá cũ, nhưng điều này xuất hiện dưới dạng tính năng của Datastore Administration trong bảng điều khiển công cụ ứng dụng.

Các vấn đề liên quan