Sql Anywhere 11: Khôi phục lỗi sao lưu gia tăng


16

Chúng tôi muốn tạo bản sao lưu gia tăng từ xa sau khi sao lưu đầy đủ. Điều này sẽ cho phép chúng tôi khôi phục trong trường hợp xảy ra lỗi và đưa lên một máy khác có khả năng sao lưu gần với thời gian thực nhất có thể với các máy chủ mạng SQL Anywhere.

Chúng tôi đang thực hiện sao lưu toàn bộ như sau:

dbbackup -y -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
    c:\backuppath\full

Điều này tạo ra một bản sao lưu của cơ sở dữ liệu và các tệp nhật ký và có thể được khôi phục như mong đợi. Đối với các bản sao lưu gia tăng, tôi đã thử cả nhật ký giao dịch trực tiếp và gia tăng với sơ đồ đổi tên nếu có nhiều bản sao lưu gia tăng:

dbbackup -y -t -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
    c:\backuppath\inc

dbbackup -y -l -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)" 
    c:\backuppath\live

Tuy nhiên, khi áp dụng nhật ký giao dịch khi khôi phục, tôi luôn gặp lỗi khi áp dụng nhật ký giao dịch vào cơ sở dữ liệu:

10092: Không thể tìm thấy định nghĩa bảng cho bảng được tham chiếu trong nhật ký giao dịch

Lệnh khôi phục nhật ký giao dịch là:

dbeng11 "c:\dbpath\dbname.db" -a "c:\backuppath\dbname.log"

Lỗi không chỉ định bảng nào không thể tìm thấy nhưng đây là kiểm tra được kiểm soát và không có bảng nào được tạo hoặc bỏ. Tôi chèn một vài hàng sau đó khởi động một bản sao lưu gia tăng trước khi thử khôi phục.

Có ai biết cách chính xác để thực hiện sao lưu và khôi phục gia tăng trên Sql Anywhere 11 không?

CẬP NHẬT: Nghĩ rằng nó có thể liên quan đến sự phức tạp của cơ sở dữ liệu đích Tôi đã tạo một cơ sở dữ liệu trống và dịch vụ mạng mới. Sau đó thêm một bảng có hai cột và chèn một vài hàng. Tạo một bản sao lưu đầy đủ, sau đó chèn và xóa thêm một vài hàng và giao dịch đã cam kết, sau đó thực hiện sao lưu gia tăng. Điều này cũng thất bại với lỗi tương tự khi cố gắng áp dụng các bản sao lưu gia tăng của nhật ký giao dịch sau khi khôi phục lại bản sao lưu đầy đủ ...

Biên tập:

Bạn có thể theo liên kết này để xem cùng một câu hỏi với phản hồi nhiều hơn một chút về SA: http://sqlanywhere-forum.sybase.com/questions/4760/restoring-incrementallive-backup-failure


Bạn có thể muốn kiểm tra sqlanywhere-forum.sybase com, một trang web Hỏi & Đáp dành riêng cho SQL ở mọi nơi.
Graeme Perrow

Cảm ơn và wow rằng trang web trông cực kỳ quen thuộc ... có liên kết với SO mặc dù nó thuộc một tên miền sybase hay bạn có nghĩ rằng họ sẽ bận tâm quá nhiều không?

Câu trả lời:


2

Tóm tắt thông tin liên kết đến trong bài viết trên ....

Lệnh bạn đã sử dụng là để sao lưu trực tiếp nhưng điều bạn muốn là sao lưu gia tăng. Cách tiếp cận bạn muốn sử dụng (theo blog này ) sử dụng các công tắc hơi khác nhau. Bạn muốn sử dụng các -n -t -xcông tắc và -o để chỉ định tệp nhật ký. Vì vậy, lệnh kết thúc một cái gì đó như:

dbbackup -n -t -x -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)" -o "c:\backup\backup_log.txt"
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.