2010-03-07 17 views
75

Bất cứ ai có thể giúp tôi, tôi đang cố gắng sao lưu cơ sở dữ liệu nằm trên localhost \ SQLEXPRESS nhưng tôi tiếp tục nhận được thông tin sau lỗi:Lỗi sao lưu SQL Server 2008 - Lỗi hệ thống hoạt động 5 (không thể truy xuất văn bản cho lỗi này. Lý do: 15105)

Backup failed for Server 'localhost\SqlExpress'. (Microsoft.SqlServer.SmoExtended) 

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.2531.0+((Katmai_PCU_Main).090329-1045+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Backup+Server&LinkId=20476 


ADDITIONAL INFORMATION: 

System.Data.SqlClient.SqlError: Cannot open backup device 'C:\backup.bak'. Operating system error 5(failed to retrieve text for this error. Reason: 15105). (Microsoft.SqlServer.Smo) 

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.2531.0+((Katmai_PCU_Main).090329-1045+)&LinkId=20476 

Bất cứ ai có thể giải thích những gì tôi đang làm sai ở đây ??

cảm ơn

+3

Trên Windows 7/2008, lưu tệp vào thư mục gốc của C không được phép, vì vậy nếu bạn đang chạy một trong hai hệ điều hành này thì điều này có ý nghĩa. – Peter

+8

Có thể tắt chủ đề nhưng hữu ích cho tôi! – kravits88

+0

tôi gặp sự cố và nguyên nhân là do tệp đã tồn tại. Tôi cần thêm mã để xử lý điều đó - và có thể tìm kiếm một tùy chọn trong đối tượng Sao lưu (tôi đang sử dụng C# để chạy bản sao lưu trong ứng dụng của mình) –

Trả lời

86

Dường như SQL Server không có quyền truy cập tệp C: \ backup.bak. Tôi sẽ kiểm tra các điều khoản của tài khoản được gán cho tài khoản dịch vụ SQL Server.

Là một phần của giải pháp, bạn có thể lưu các tệp sao lưu của mình vào một nơi nào khác mà gốc của ổ C:. Đó có thể là một lý do khiến bạn gặp sự cố về quyền.

15

Giả sử rằng tệp * .bak nằm trên cùng một máy với phiên bản SQL Express có thể là vấn đề quyền.

Nếu bạn tải xuống procmon http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx bạn có thể lọc trên đường dẫn tệp đó, tìm lỗi ACCESS_DENIED và nếu có, bạn có thể thấy tên tài khoản không truy cập được.

+2

Tôi có một vấn đề hoàn toàn khác (không đủ dung lượng đĩa) biểu hiện chính nó dưới cùng một số lỗi - procmon chỉ cho tôi đúng hướng - chắc chắn là một trong những điều cần nhớ cho tương lai. Cảm ơn Martin. – Godders

3

Vâng, đó là vấn đề bảo mật. Kiểm tra quyền truy cập thư mục và tài khoản dịch vụ theo đó máy chủ SQL 2008 bắt đầu.

39

Tôi đã gặp phải lỗi này, khi không có đủ dung lượng trống để tạo bản sao lưu.

+16

Tôi gặp vấn đề tương tự. Một thông báo lỗi đơn giản và dễ dàng về việc không có đủ dung lượng đĩa sẽ giúp ích rất nhiều. cảm ơn microsoft –

+0

Tôi cũng gặp lỗi này và giải quyết nó bằng cách mở rộng không gian đĩa của máy chủ. –

+0

Yepp, sau khi đọc câu trả lời này tôi đã kiểm tra ổ đĩa của tôi chỉ để bị sốc có một không gian 300MB measly trái: D Loại bỏ các bản sao lưu lỗi thời cũ đã giải phóng đủ. – gabore

5

Tôi gặp lỗi tương tự. Tôi đã cố gắng sửa lỗi này bằng cách thiết lập quyền cao hơn cho tài khoản đang chạy dịch vụ SQL Client, tuy nhiên nó không giúp được gì. Vấn đề là tôi chạy MS Sql Management studio ngay trong tài khoản của tôi. Vì vậy, thời gian tới ... đảm bảo rằng bạn đang chạy nó như Chạy với tư cách là Quản trị viên, nếu sử dụng Win7 với UAC được bật.

10

Tôi cũng gặp lỗi này.

Vấn đề hóa ra đơn giản là tôi phải tự tạo cấu trúc thư mục đầy đủ cho vị trí tệp của tệp LDF MDF &.

Xấu hổ trên SQL-Server để không báo cáo đúng thư mục bị thiếu!

3

Tôi gặp lỗi này. Không có gì làm việc cho tôi cho đến khi tôi mở tệp nhật ký SQLServer trong thư mục Nhật ký "MSSQL10_50". Điều đó cho biết rõ ràng tập tin nào không thể được ghi đè. Nó bật ra rằng các tập tin .mdf đã được ghi vào thư mục dữ liệu "MSSQL10". Tôi đã chắc chắn rằng thư mục có quyền truy cập SQLServer người dùng giống như thư mục tương đương "MSSQL10_50". Sau đó, tất cả đều hiệu quả.

Vấn đề ở đây là chi tiết lỗi được ghi lại nhưng không được báo cáo, vì vậy hãy kiểm tra nhật ký.

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