2012-01-11 30 views
12

Hiện tại tôi đang tạo các tập lệnh SQL hàng ngày để thực hiện sao lưu cơ sở dữ liệu SQL Azure. Tôi cần phải tự động hóa quá trình này bằng cách sử dụng một số phần mềm miễn phí. Làm thế nào tôi có thể đạt được điều này?Tôi cần tự động sao lưu cơ sở dữ liệu SQL Azure trong các tệp SQL Script. Làm thế nào tôi có thể làm như vậy?

Lưu ý: - Tôi cần thực hiện sao lưu dưới dạng SQL Script cho một số máy cục bộ.

+0

Bạn đã giải quyết được sự cố này chưa? Làm thế nào để bạn tạo ra các kịch bản SQL của bạn? – cheeesus

Trả lời

18

Lựa chọn 1: Chạy một số mã/script để sao lưu cơ sở dữ liệu

Bạn có thể chạy các lệnh SQL sử dụng tiện ích sqlcmd.

http://msdn.microsoft.com/en-us/library/ms162773.aspx

Để lập kế hoạch này, chỉ cần sử dụng Windows Task Scheduler.

http://msdn.microsoft.com/en-us/library/bb756979.aspx

Lựa chọn 2: Sử dụng Azure dữ liệu Sync

Giữ một cơ sở dữ liệu địa phương trong việc đồng bộ hóa với cơ sở dữ liệu SQL Azure của bạn, giống như một bản sao lưu liên tục.

http://msdn.microsoft.com/en-us/library/windowsazure/hh456371.aspx

Lựa chọn 3: Sử dụng BacPac

Có một API có sẵn trong Azure để sao lưu cơ sở dữ liệu của bạn sang một định dạng BACPAC.

http://msdn.microsoft.com/en-us/library/windowsazure/hh335292.aspx

Một RedGate công cụ sau đó cho phép bạn khôi phục lại một SQL Server cục bộ.

http://www.red-gate.com/products/dba/sql-azure-backup/

Sửa

Tôi có kể từ khi tạo ra một công cụ dòng lệnh mà sẽ tạo ra một bản sao của cơ sở dữ liệu của bạn, và sao nó lên đến BacPac bằng API quản lý Azure:

https://github.com/richorama/SQLDatabaseBackup

+0

Cảm ơn bạn đã trả lời. Nhưng bạn có thể giải thích cách tạo SQL Script cho dữ liệu bằng cách sử dụng SQLCMD không? khi chúng tôi lấy dữ liệu từ tính năng tạo tập lệnh trong SQL Azure hoặc SQL Server. –

+0

Tiện ích dòng lệnh từ redgate đã bị ngừng. Nó vẫn có sẵn nhưng chứa các vấn đề mở. –

+0

Tôi đã thực sự xuất bản một công cụ dòng lệnh giúp bạn thực hiện việc này. Nó không hoàn toàn hoàn thành, nhưng phục vụ như là một ví dụ về cách tự động hóa điều này: https://github.com/richorama/SQLDatabaseBackup –

2

Bạn có thể thử RedGate Azure Sql backup http://www.red-gate.com/products/dba/sql-azure-backup/

Điều đó cũng có thể được lên lịch bằng Trình lập lịch tác vụ.

Tôi đã viết một số ý tưởng về cách để làm điều đó: http://anttitech.wordpress.com/2011/11/06/azure-sql-backup-and-restore-scenarios-using-bacpac-exportimport/

+0

Cảm ơn bạn đã trả lời tôi đang sử dụng nó và nó đang hoạt động đúng cách. Chỉ có vấn đề mà tôi đang phải đối mặt là kể từ khi trong kịch bản chúng ta phải đề cập đến tên cơ sở dữ liệu địa phương và nó là không đổi luôn luôn để sao lưu ngày hôm trước bị mất. Có cách nào mà tôi có thể tuyên bố databasename như [DATABASENAME_CURRENT] .Following là kịch bản của tôi mà tôi đã sử dụng và lên kế hoạch một công việc. ./RedGate.SQLAzureBackupCommandLine.exe/as: AzureServerNAME/quảng cáo: AzureDatabaseName /au: AzureUserName/ap: AzurePassword/cc/s/ls :./ld: LOCALDATABASENAME/dl/v/ba –

0

Cơ sở dữ liệu SQL Azure không hỗ trợ SQL Server Agent hoặc việc làm. Tuy nhiên, bạn có thể, , chạy SQL Server Agent trên máy chủ SQL tại chỗ của bạn và kết nối với Cơ sở dữ liệu SQL Azure.

Nguồn: http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx

SQL Server Agent là một dịch vụ Microsoft Windows thực thi công việc hành chính theo lịch trình, được gọi là công việc ... Ví dụ, nếu bạn muốn sao lưu tất cả các công ty máy chủ mỗi ngày trong tuần sau giờ, bạn có thể tự động hóa tác vụ này. Lập lịch sao lưu để chạy sau khi 22:00 từ Thứ Hai đến Thứ Sáu

Nguồn: http://msdn.microsoft.com/en-us/library/ms189237.aspx

0

Tôi đã gặp một công cụ miễn phí tạo bản sao lưu cơ sở dữ liệu SQL Azure của bạn. Sao lưu có thể được lưu trữ cục bộ hoặc trên blob. Bạn cũng có thể lên lịch các hoạt động sao lưu với bộ lập lịch trình dựng sẵn hoặc sử dụng Windows Scheduler và các tiện ích dòng lệnh được cung cấp.

Nguồn: http://blog.idera.com/sql-server/backup-and-recovery/announcing-new-free-tool-azure-sql-database-backup/

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