Không thể mở thiết bị sao lưu. Lỗi hệ điều hành 5


138

Dưới đây là truy vấn mà tôi đang sử dụng để sao lưu (tạo a .bak) cơ sở dữ liệu của mình.

Tuy nhiên, bất cứ khi nào tôi chạy nó, tôi luôn nhận được thông báo lỗi này:

Msg 3201, Cấp 16, Trạng thái 1, Dòng 1
Không thể mở thiết bị sao lưu 'C: \ Users \ Me \ Desktop \ Backup \ MyDB.Bak'. Lỗi hệ điều hành 5 (Truy cập bị từ chối.).

Msg 3013, Cấp 16, Tiểu bang 1, Dòng 1
BACKUP DATABASE đang chấm dứt bất thường.

Đây là truy vấn của tôi:

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

Chà, thông báo lỗi khá rõ ràng phải không? Những gì người dùng là chương trình đang chạy? Liệu các tập tin bak tồn tại? Bạn có thể truy cập nó bằng tay?
Pekka

1
Chúng tôi có nên cho rằng đây là dành cho SQL Server từ đường dẫn tệp, vì bạn đã không đặt sản phẩm vào thẻ hoặc tiêu đề?
Powerlord

Tôi đã có thể chạy truy vấn này trước khi tôi định dạng lại máy tính xách tay của mình nếu nó giúp được gì. Đây là SQL Server 2008 và tôi đang chạy với tư cách quản trị viên. Tệp bak không tồn tại vì tôi đang trong quá trình tạo tệp với truy vấn này.
Smiley

@Smiley Face: Bạn phải đọc tệp SQL thông qua mạng cục bộ chứ không phải mạng. Vì vậy, điều đó có nghĩa là bạn sẽ phải di chuyển tệp SQL từ mạng vào ổ đĩa cục bộ của mình trước và khôi phục nó.
mrjimoy_05

Câu trả lời:


234

Vâng, tôi chỉ ghi được cái này.

Tìm trong Dịch vụ Windows. Bắt đầu> Quản trị> Dịch vụ

Tìm Dịch vụ trong danh sách có tên: SQL Server (MSSQLSERVER) tìm cột "Đăng nhập dưới dạng" (cần thêm nó nếu nó không tồn tại trong danh sách).

Đây là tài khoản bạn cần cấp quyền cho thư mục, nhấp chuột phải vào explorer> property> Shares (And Security)

LƯU Ý : Hãy nhớ cấp quyền cho thư mục thực tế VÀ cho chia sẻ nếu bạn đang truy cập mạng.

Áp dụng và chờ cấp phép để propogate, thử lại bản sao lưu.

CHÚ THÍCH 2 : nếu bạn đang sao lưu trên mạng và SQL của bạn đang chạy dưới dạng "Dịch vụ cục bộ" thì bạn sẽ gặp rắc rối ... bạn có thể thử gán quyền hoặc có thể dễ dàng hơn để sao lưu cục bộ và xcopy bên ngoài SQL Server ( một tiếng sau).

LƯU Ý 3 : Nếu bạn đang chạy như một dịch vụ mạng thì SOMETIMES máy từ xa sẽ không nhận ra dịch vụ mạng trên Máy chủ SQL của bạn. Nếu đây là trường hợp bạn cần thêm quyền cho chính máy tính thực tế, vd. Máy chủ của tôi $.


20
Các quyền / thêm / nâng cao không tìm thấy người dùng trong danh sách, nhưng tôi đã dán vào "NT Service \ MSSQLSERVER" và nó hoạt động như một nhà vô địch.
Đánh dấu

3
Việc thêm quyền của mọi người vào thư mục có bao gồm điều này không?
DevDave

3
Tùy thuộc, nếu đó là một trong những thực sự công khai không xác thực thì có. Nếu đó là "bất kỳ xác thực" nào thì DỊCH VỤ ĐỊA PHƯƠNG trên máy từ xa thường không đủ điều kiện ... nhưng bạn có thực sự muốn cấp cho mọi người quyền truy cập không, đối với chúng tôi đó là một hành vi phạm tội gần như bị sa thải.
Robin Vessey

1
Không làm việc cho tôi và tôi chỉ sao lưu vào C: \ temp \. Màn hình Quyền thư mục sẽ không nhận ra Đăng nhập được sử dụng bởi dịch vụ, NT Service \ MSSQLSERVER , ngay cả khi dán như @Mark A được đề xuất. Có một tài khoản thay thế tốt cho dịch vụ đó để sử dụng?
MGOwen

8
Làm việc cho tôi, giải pháp tuyệt vời! Tôi đang sử dụng SQL Server Express 2014 vì vậy bạn sẽ cần cấp quyền ghi cho 'Dịch vụ NT \ MSSQL $ SQLEXPRESS'.
mikhail-t

11

Chuyển đến thư mục máy chủ SQL trong menu bắt đầu và nhấp vào công cụ cấu hình Chọn Trình quản lý cấu hình SQL Server Trên các dịch vụ máy chủ SQL, trong trường hợp mong muốn, thay đổi (Đăng nhập dưới dạng) thành hệ thống cục bộ


7

Tài khoản dịch vụ SQL Server không có quyền ghi vào thư mục C:\Users\Kimpoy\Desktop\Backup\


22
Làm cách nào để tôi cấp quyền Tài khoản Dịch vụ SQL Server để truy cập thư mục này? :)
Smiley

6

Gần đây tôi cũng gặp vấn đề này, tuy nhiên tôi đang chạy công việc sao lưu từ máy chủ A nhưng cơ sở dữ liệu được sao lưu là trên máy chủ B đến chia sẻ tệp trên máy chủ C. Khi đại lý trên máy chủ A báo cho máy chủ B chạy sao lưu t Lệnh -sql, thực sự là tài khoản dịch vụ mà sql đang chạy trên SERVER B cố gắng ghi bản sao lưu vào máy chủ C.

Chỉ cần nhớ rằng, tài khoản dịch vụ của máy chủ sql thực hiện lệnh BACKUP DATABASE thực tế là những gì cần đặc quyền trên hệ thống tệp chứ không phải tác nhân.


4

Tôi vừa mới trải qua điều này. Tôi đã đảm bảo rằng người dùng đăng nhập MSSQLSERVER của tôi có full accessnhưng nó vẫn gây ra sự cố. Nó chỉ hoạt động khi tôi chuyển đích đến gốc C. Quan trọng hơn là ra khỏi thư mục người dùng (mặc dù tôi đã chia sẻ với toàn quyền - thậm chí đã thử "Mọi người" dưới dạng thử nghiệm).

Tôi không biết nếu tôi coi vấn đề của mình là "đã sửa", tuy nhiên nó đang "hoạt động".

Chỉ là một FYI cho bất kỳ người dùng khác đi qua chủ đề này.


1
Tôi nghĩ điều này là do các miền doanh nghiệp có đường dẫn người dùng cư trú trên các ổ đĩa mạng để người dùng có thể truy cập chúng một cách trong suốt bất kể máy họ đăng nhập vào. Chẳng hạn như tình huống này: superuser.com/a/730519
Bon

@ Xin cảm ơn! Điều này sắp xếp vấn đề cho tôi. Đường dẫn mà tôi có tệp sao lưu thực sự là đường dẫn mạng.
JonM

4

Tôi gặp vấn đề tương tự với SQL Express 2014 SP1 trên Windows 10.

Giải pháp nào hiệu quả

  1. Mở dịch vụ bằng cách gõ Dịch vụ
  2. Xác định vị trí và mở Máy chủ SQL (SQLE Express)
  3. Chuyển đến tab LogOn
  4. Chọn tài khoản hệ thống cục bộ (Đồng thời kiểm tra cho phép dịch vụ tương tác với máy tính để bàn)
  5. Nhấn OK. Dừng dịch vụ. Khởi động lại dịch vụ.
  6. Vấn đề được giải quyết

3

Để tìm ra người dùng nào bạn cần cho phép thực hiện quy trình khôi phục, bạn có thể làm theo các bước sau:

Bạn cần đến máy chủ của mình nơi SQL Server được cài đặt. Tìm Trình quản lý cấu hình máy chủ SQL

nhập mô tả hình ảnh ở đây

Tiếp theo, bạn cần vào "Dịch vụ máy chủ SQL"

nhập mô tả hình ảnh ở đây

Trong trường hợp Máy chủ SQL (MSSQLSERVER) của bạn sẽ có một tài khoản với cột "Đăng nhập dưới dạng", trong trường hợp của tôi, đó là NT Service \ MSSQLSERVER .

Đó là tài khoản mà bạn cần thêm trong tab Bảo mật của vị trí .bak nguồn của bạn và cung cấp cho người dùng đó quyền "Đọc" để có thể đọc tệp sao lưu.

Giả sử tệp sao lưu của bạn hiện diện trong thư mục "D: \ Shared", sau đó bạn cần cấp quyền như thế này:

nhập mô tả hình ảnh ở đây


2

Tôi đã có một vấn đề tương tự. Tôi đã thêm quyền ghi vào chính tệp .bak và thư mục của tôi mà tôi đang viết bản sao lưu cho người dùng DỊCH VỤ MẠNG. Để thêm quyền, chỉ cần nhấp chuột phải vào tệp / thư mục bạn muốn thay đổi, chọn tab bảo mật và thêm người dùng / quyền thích hợp ở đó.


1
ý của bạn là gì?
Steam

2

Đây là những gì tôi đã làm để vượt qua vấn đề.

1) Đi đến bản sao lưu

2) Xóa đường dẫn tệp đích đến đĩa

3) Nhấp vào Thêm

4) Trong hộp Tên tệp: chọn thủ công nhập tên sao lưu sau .. \ sao lưu như bên dưới trong đó Yourdb.bak là tên sao lưu cơ sở dữ liệu

C: \ Tệp chương trình \ Microsoft SQL Server \ MSSQL11.MSQuerySERVER \ MSSQL \ Backup \ Yourdb.bak

5) Nhấp vào OK

Hi vọng điêu nay co ich!


2

Một trong những lý do tại sao điều này xảy ra là bạn đang chạy Dịch vụ MSSQLSERVER của bạn không sử dụng hệ thống cục bộ. Để khắc phục vấn đề này, sử dụng các bước sau.

  1. Chạy mở bằng Windows + R
  2. Nhập services.msc và hộp thoại dịch vụ sẽ mở
  3. Tìm máy chủ SQL (MSSQLSERVER)
  4. Nhấp chuột phải và nhấp vào tài sản.
  5. Chuyển đến tab Đăng nhập
  6. Chọn tài khoản Hệ thống cục bộ và nhấp vào "Áp dụng" và "OK"
  7. Nhấp vào liên kết Dừng trên bảng điều khiển bên trái bằng cách chọn "Máy chủ SQL (MSSQLSERVER)" và Bắt đầu lại khi đã dừng hoàn toàn.
  8. Tận hưởng bản sao lưu của bạn.

Hy vọng nó sẽ giúp bạn tốt, như nó đã làm với tôi. Chúc mừng!


1

Tôi biết nó không phải là một giải pháp chính xác nhưng sử dụng đường dẫn ổ đĩa ngoài sẽ giải quyết vấn đề này.

BACKUP DATABASE AcinsoftDB
TO DISK = 'E:\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

1

SQL Server không thể truy cập (ghi) bản sao lưu vào vị trí được chỉ định.

Trước tiên, bạn cần xác minh tài khoản dịch vụ mà máy chủ Sql đang chạy. Điều này có thể được thực hiện bằng cách sử dụng Trình quản lý cấu hình hoặc Services.msc.

hoặc là

Sử dụng truy vấn dưới đây:

SELECT  DSS.servicename,
    DSS.startup_type_desc,
    DSS.status_desc,
    DSS.last_startup_time,
    DSS.service_account,
    DSS.is_clustered,
    DSS.cluster_nodename,
    DSS.filename,
    DSS.startup_type,
    DSS.status,
    DSS.process_id FROM    sys.dm_server_services AS DSS;

Bây giờ hãy nhìn vào cột service_account và ghi chú lại.

Đi đến vị trí bạn đang cố gắng sao lưu. Trong trường hợp của bạn: C: \ Users \ Me \ Desktop \ Backup

Nhấp chuột phải -> Thuộc tính -> Bảo mật ->

Thêm tài khoản dịch vụ và cung cấp quyền đọc / ghi. Điều này sẽ giải quyết vấn đề.



0

Msg 3201, Cấp 16, Trạng thái 1, Dòng 1 Không thể mở thiết bị sao lưu 'C: \ Backup \ Adventure_20120720_1024AM.trn'. Lỗi hệ điều hành 5 (Truy cập bị từ chối.). Msg 3013, Cấp 16, Bang 1, Dòng 1 BACKUP LOG đang chấm dứt bất thường.

Tôi đã xác minh thư mục sao lưu trên ổ C, Tài khoản dịch vụ mới có được quyền truy cập toàn quyền hay không?, Tôi nhận ra rằng tài khoản dịch vụ "Test \ Kiran" không có quyền bảo mật toàn quyền kiểm soát.

Vui lòng làm theo các bước dưới đây để cung cấp toàn quyền kiểm soát tài khoản dịch vụ:

  1. Đi đến ổ C, nhấp chuột phải vào thư mục Sao lưu.
  2. Chọn tab Bảo mật.
  3. Nhấp vào nút Chỉnh sửa, cửa sổ mới sẽ mở ra.
  4. Nhấp vào nút Thêm và nhập Test \ Kiran tài khoản người dùng và nhấp vào nút kiểm tra tên, điều này sẽ xác thực bạn đã nhập người dùng có tồn tại hay không, nếu nó tồn tại, nó sẽ hiển thị người dùng trên cửa sổ, chọn OK.
  5. Chọn bạn đã nhập tên người dùng và chọn hộp kiểm Kiểm soát hoàn toàn dưới sự cho phép.

0

Vui lòng kiểm tra quyền truy cập vào ổ đĩa. Trước tiên, hãy tạo một thư mục và chuyển đến thuộc tính thư mục,

Bạn có thể tìm thấy tab bảo mật, nhấp vào đó để kiểm tra xem id người dùng của bạn có quyền truy cập hay không.

nếu không thể tìm thấy id của bạn, vui lòng nhấp vào thêm buttion và cung cấp tên người dùng với quyền truy cập đầy đủ.


0

Chia sẻ thư mục này và sử dụng đường dẫn UNC, ví dụ: \ pc \ backups \ mydb.bak

Sau đó, bạn có thể ngừng chia sẻ.

Không thanh lịch lắm, nhưng nó cũng giải quyết tất cả các vấn đề về quyền (Bạn cũng cần cấp quyền để chia sẻ, như đã đề cập ở trên)


0

Tôi gặp vấn đề này khi tệp .BAK tạm thời được lưu trữ trong một thư mục được mã hóa bằng BitLocker. Nó giữ lại mã hóa sau khi nó được chuyển sang một thư mục khác.

Tài khoản DỊCH VỤ MẠNG không thể giải mã tệp và đưa ra thông báo lỗi thông tin kỹ lưỡng này.

Xóa mã hóa BitLocker (bằng cách bỏ chọn "Mã hóa nội dung thành dữ liệu an toàn" trong thuộc tính tệp) trên tệp .BAK đã giải quyết vấn đề.


0

Tôi có cùng một lỗi. Sau những thay đổi đã giúp tôi khắc phục điều này.

Tôi đã phải kiểm tra Trình quản lý máy chủ-> Công cụ-> Dịch vụ và tìm người dùng (cột "Đăng nhập dưới dạng") cho dịch vụ: Máy chủ SQL (SQLEXPRESS).

Tôi đã đi đến thư mục cục bộ (C: \ Users \ Me \ Desktop \ Backup) và thêm "NT Service \ MSSQL $ SQLEXPRESS" với tư cách là người dùng để cấp quyền Ghi.


0

Xin chào, bạn cần thay đổi truy vấn từ:

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'

đến

BACKUP DATABASE AcinsoftDB
TO DISK = N'C:\Users\Me\Desktop\Backup\MyDB.Bak'

Bạn phải thêm một N ở phía trước đường dẫn hoạt động cho tôi.


0

Trong trường hợp của tôi, tôi đã quên đặt tên cho tệp sao lưu và nó tiếp tục gây ra lỗi cho phép tương tự: /

TO DISK N'{path}\WRITE_YOUR_BACKUP_FILENAME_HERE.bak'

0

Tôi đã giải quyết vấn đề tương tự với 3 bước sau:

  1. Tôi lưu trữ tệp sao lưu của mình trong đường dẫn thư mục khác hoạt động đúng.
  2. Xem khác nhau của tab bảo mật hai thư mục (như hình ảnh bên dưới).
  3. Chỉnh sửa quyền trong thư mục tab bảo mật không hoạt động đúng.

nhập mô tả hình ảnh ở đây

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.