Tôi đang làm tăng thêm phần cuối của ứng dụng Access của ứng dụng khách vào ngày mai và cần sẵn sàng với một kế hoạch cho một vấn đề cụ thể với khách hàng này. Các ông chủ cần để có thể lấy các tập tin dữ liệu ra khỏi văn phòng nơi SQL Server là một cách thường xuyên (thường là hàng tháng) và chạy phân tích thống kê về dữ liệu.Sao chép cơ sở dữ liệu SQL Server Express sang một máy tính khác
Tôi đã nhìn Easiest way to copy an entire SQL server Database from a server to local SQL Express, và các giải pháp đó không làm việc trong kịch bản này vì:
không thể sử dụng một giải pháp một lần (Cơ sở dữ liệu Publishing Wizard), vì điều này cần phải có thể viết được.
không thể sử dụng bất kỳ phương pháp nào phụ thuộc vào hai máy tính đang được nối mạng, vì đó không phải là tùy chọn - dữ liệu phải được truyền qua ổ USB (vì vậy, không sao chép).
không thể sử dụng bất kỳ phương pháp nào phụ thuộc vào việc chạy công cụ quản lý SQL Server từ bảng điều khiển máy chủ hoặc từ máy trạm để sao lưu.
không thể kết nối trực tiếp với cơ sở dữ liệu SQL Server để phân tích vì dữ liệu phải được di chuyển đến các vị trí khác.
Điều tôi nghĩ tôi cần là một số cách để gọi tập lệnh tạo tệp sao lưu, sau đó sao chép kết quả vào ổ USB. Sau đó tôi cần một kịch bản thứ hai để sao chép các tập tin sao lưu từ ổ đĩa USB và khôi phục nó vào máy chủ SQL khác.
Dữ liệu đang được chuyển là chỉ đọc (hoặc bất kỳ thay đổi nào không cần phải quay lại máy chủ chính) và dữ liệu sẽ không được cập nhật ở vị trí thứ hai. Nó hiện đang được viết kịch bản với một tệp hàng loạt cũ đơn giản để sao chép tệp MDB back-end và tôi cần một thứ đơn giản cho người dùng.
Nó không thể có bất kỳ sự phụ thuộc nào, Powershell (của SQL Server Management Studio), bởi vì tôi không muốn nó phải được cài đặt trên máy tính người dùng đang chạy tập lệnh từ (có một nửa tá máy trạm mà kịch bản cần phải được chạy từ, và tôi không muốn phải cài đặt một cái gì đó trên tất cả các máy trạm đó).
Tôi sẽ thiết lập tác nhân sao lưu để tạo bản sao lưu hàng đêm, vì vậy tôi có thể sao chép tệp đó mà không cần phải bắt đầu sao lưu trước khi sao chép. Vì vậy, tôi chỉ có thể cần phải tập lệnh khôi phục trên máy tính mục tiêu.
Suy nghĩ, đề xuất, con trỏ?
Làm thế nào để bạn chạy SQLCMD từ một máy trạm không có SQL Server được cài đặt trên nó? Có cách nào để thực hiện những kịch bản SQL từ máy trạm, như trái ngược với từ giao diện điều khiển máy chủ, hoặc từ một máy trạm với các công cụ quản lý SQL Server được cài đặt? Những thứ đó sẽ không được cài đặt trên các máy trạm mà người dùng sẽ sử dụng để sao chép dữ liệu vào ổ USB (đó chính là phụ thuộc bên ngoài mà tôi không muốn giới thiệu). –
OK, tôi thấy rằng tôi phải cài đặt các tiện ích dòng lệnh riêng biệt cho tiện ích SQLCMD. Vì tôi phải cài đặt SQL Server Native Client, tôi đoán nó không phải là không hợp lý để cài đặt chúng cùng một lúc. Thật không may, các tài liệu tải xuống cho rằng (http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-A2BED18FE73C) nói rằng nó đòi hỏi Windows Installer 4.5, nhưng một cài đặt nặng (yêu cầu khởi động lại máy trạm WinXP). Điều này có vẻ khó sử dụng trên đầu nguồn (mặc dù OK trên mục tiêu, sẽ được cài đặt SQL Server Express). –
Tải xuống R2 có tại http://www.microsoft.com/downloads/details.aspx?FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52 –