Điểm:1

Veeam SQL Server Database Publishing Fail với mã lỗi không mong muốn 3

lá cờ jp

Vì vậy, chúng tôi đã thử nghiệm Veeam Backup & Replication được một thời gian. Chúng tôi thiết lập một máy ảo chuyên dụng cho Máy chủ sao lưu Veeam để thực hiện sao lưu hàng ngày tất cả các thành phần cơ sở hạ tầng của chúng tôi. Chúng tôi chưa xin giấy phép, vì vậy đây là phiên bản Cộng đồng mà chúng tôi đang thử nghiệm (phiên bản bản dựng 11a 11.0.1.1261 P20220302)

Chúng tôi có một vài máy ảo với phiên bản SQL Server chứa cơ sở dữ liệu. Chúng tôi sử dụng tùy chọn xử lý ứng dụng của Veeam để sao lưu cơ sở dữ liệu và đưa chúng vào tệp sao lưu.

Tuy nhiên, chúng tôi gặp sự cố khi cố gắng thực hiện khôi phục cơ sở dữ liệu từ tệp sao lưu, có thể là trên máy Veeam Backup Server hoặc máy cục bộ khác. Chúng tôi thực hiện khôi phục mục ứng dụng như được mô tả trong Tài liệu Veeam B&R sau đó đi qua các bước cho xuất bản dữ liệu đến Máy chủ SQL cục bộ (dàn dựng) bằng Veeam SQL Explorer. Chúng tôi đã thử xuất bản cơ sở dữ liệu, khôi phục tệp .BAK hoặc thậm chí lưu trực tiếp tệp MDF và LDF. Tất cả các hoạt động không thành công do thiếu quyền (xem nhật ký Veeam SQL Explorer bên dưới).

Ảnh chụp màn hình của lỗi

04/11/2022 00:17:32 21 (8876) Đang kết nối với SQL Server localhost\SQL2019 bằng xác thực Windows (tên người dùng: WIN-KB0LJQ6QU6L\Administrator)...
04/11/2022 00:17:32 21 (8876) Đã kết nối thành công.
04/11/2022 00:17:32 21 (8876) Kiểm tra tính tương thích của phiên bản cơ sở dữ liệu (máy chủ: Microsoft SQL Server 2014, phiên bản cơ sở dữ liệu: 782)...
04/11/2022 00:17:32 21 (8876) Máy chủ mục tiêu (localhost\SQL2019) được xác định là Microsoft SQL Server 2019 (phiên bản: 904).
04/11/2022 00:17:32 21 (8876) Đang kết nối với SQL Server localhost\SQL2019 bằng xác thực Windows (tên người dùng: WIN-KB0LJQ6QU6L\Administrator)...
04/11/2022 00:17:32 21 (8876) Đang kết nối với SQL Server localhost\SQL2019 bằng xác thực Windows (tên người dùng: WIN-KB0LJQ6QU6L\Administrator)...
04/11/2022 00:17:32 21 (8876) Đang xác thực quyền tài khoản cho máy chủ 'localhost'...
04/11/2022 00:17:32 21 (8876) Xác thực hoàn tất thành công.
04/11/2022 00:17:33 16 (9136) Xuất bản cơ sở dữ liệu...
04/11/2022 00:17:33 16 (9136) ID điểm khôi phục: 3147eb18-d76a-47f1-ab4c-ec5a67dd81f1
04/11/2022 00:17:33 16 (9136) Máy chủ SQL: localhost\SQL2019
04/11/2022 00:17:33 16 (9136) Tên cơ sở dữ liệu: bigsoft_33o_vide
04/11/2022 00:17:33 16 (9136) Đang kết nối với SQL Server localhost\SQL2019 bằng xác thực Windows (tên người dùng: WIN-KB0LJQ6QU6L\Administrator)...
04/11/2022 00:17:34 17 (11180) Nhận các phiên Khôi phục tức thì...
04/11/2022 00:17:34 17 (11180) Giá trị USN mới: 5113
04/11/2022 00:17:34 17 (11180) Đã tải 0 phiên Phục hồi tức thì
04/11/2022 00:17:34 17 (11180) Hoàn thành tải cơ sở dữ liệu
04/11/2022 00:17:37 19 (9280) Nhận các phiên Khôi phục tức thì...
04/11/2022 00:17:37 19 (9280) Giá trị USN mới: 5114
...
04/11/2022 00:18:05 16 (9136) Xuất bản cơ sở dữ liệu không thành công
11/04/2022 00:18:05 16 (9136) Lỗi: Phương pháp không thành công với mã lỗi không mong muốn 3.
04/11/2022 00:18:05 16 (9136) Loại: System.InvalidOperationException
04/11/2022 00:18:05 16 (9136) Ngăn xếp:
04/11/2022 00:18:05 16 (9136) tại System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
   tại System.Security.AccessControl.FileSystemSecurity..ctor(Boolean isContainer, Tên chuỗi, AccessControlSections bao gồmSections, Boolean isDirectory)
   tại System.Security.AccessControl.FileSecurity..ctor(String fileName, AccessControlSections includeSections)
   tại System.IO.FileInfo.GetAccessControl(AccessControlSections includeSections)
   tại Veeam.Engine.Security.FileAccess.GetAccessControl(Đường dẫn chuỗi, phần AccessControlSections)
   tại Veeam.Engine.Security.FileSystemSecurity.HasFileAccess(String accountName, String path)
   tại Veeam.Engine.FileSystem.LocalAccessChecker.GrantFileAccess(String filePath)
   tại Veeam.SQL.Core.Extensions.AccessCheckerExtension.CheckDatabaseFilesAccess(IAccessChecker accessChecker, IDatabaseFiles databaseFiles, String permissionSourceFolder)
   tại Veeam.SQL.Restore.Publish.RestorePointDatabasePublisher.Publish(Nhà môi giới ISqlBroker, ISqlConnectProvider sqlConnectProvider, Cấu hình IPublishConfig, Boolean isClustered, Trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.DatabasePublisher.Publish(ISqlBroker sqlBroker, ISqlConnectProvider sqlConnectProvider, cấu hình IPublishConfig, ISqlActionsObserver quan sát, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.DatabasePublisher.Publish(ISqlConnectProvider sqlConnectProvider, cấu hình IPublishConfig, trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.DatabasePublisher.Publish(cấu hình IPublishConfig, trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.LoggedDatabasePublisher.Publish(cấu hình IPublishConfig, trình quan sát ISqlActionsObserver, CancellationToken ct)
04/11/2022 00:18:06 1 (6504) Xuất bản cơ sở dữ liệu không thành công
11/04/2022 00:18:06 1 (6504) Lỗi: Phương pháp không thành công với mã lỗi không mong muốn 3.
04/11/2022 00:18:06 1 (6504) Loại: System.InvalidOperationException
04/11/2022 00:18:06 1 (6504) Ngăn xếp:
04/11/2022 00:18:06 1 (6504) tại System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
   tại System.Security.AccessControl.FileSystemSecurity..ctor(Boolean isContainer, Tên chuỗi, AccessControlSections bao gồmSections, Boolean isDirectory)
   tại System.Security.AccessControl.FileSecurity..ctor(String fileName, AccessControlSections includeSections)
   tại System.IO.FileInfo.GetAccessControl(AccessControlSections includeSections)
   tại Veeam.Engine.Security.FileAccess.GetAccessControl(Đường dẫn chuỗi, phần AccessControlSections)
   tại Veeam.Engine.Security.FileSystemSecurity.HasFileAccess(String accountName, String path)
   tại Veeam.Engine.FileSystem.LocalAccessChecker.GrantFileAccess(String filePath)
   tại Veeam.SQL.Core.Extensions.AccessCheckerExtension.CheckDatabaseFilesAccess(IAccessChecker accessChecker, IDatabaseFiles databaseFiles, String permissionSourceFolder)
   tại Veeam.SQL.Restore.Publish.RestorePointDatabasePublisher.Publish(Nhà môi giới ISqlBroker, ISqlConnectProvider sqlConnectProvider, Cấu hình IPublishConfig, Boolean isClustered, Trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.DatabasePublisher.Publish(ISqlBroker sqlBroker, ISqlConnectProvider sqlConnectProvider, cấu hình IPublishConfig, ISqlActionsObserver quan sát, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.DatabasePublisher.Publish(ISqlConnectProvider sqlConnectProvider, cấu hình IPublishConfig, trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.DatabasePublisher.Publish(cấu hình IPublishConfig, trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.LoggedDatabasePublisher.Publish(cấu hình IPublishConfig, trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.AuditedDatabasePublisher.Publish(Cấu hình IPublishConfig, trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.StoringDatabasePublisher.Publish(Cấu hình IPublishConfig, trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Restore.Publish.PublishService.Publish(cấu hình IPublishConfig, trình quan sát ISqlActionsObserver, CancellationToken ct)
   tại Veeam.SQL.Explorer.Async.Publish.AsyncPublishDatabaseTask.Run(IProcessObserver observer, CancellationToken ct)
   tại Veeam.Presentation.Async.VisualAsyncTask.Execute(IProcessObserver observer)

Lưu ý rằng Veeam đã được cài đặt làm tài khoản Hệ thống cục bộ trên Máy chủ sao lưu Veeam và người dùng đã đăng nhập bằng Xác thực Windows nằm trong nhóm của Quản trị viên.Ngoài ra, trong máy cục bộ của chúng tôi, chúng tôi đã nhập bản sao lưu và đã thử nghiệm chạy mọi thứ với tư cách là người dùng "Quản trị viên" trên Windows Server 2019 (các dịch vụ Veeam, tài khoản người dùng Veeam và dịch vụ sql explorer), nhưng vấn đề về quyền vẫn còn.

Câu hỏi này dành cho bất kỳ ai đặc biệt quen thuộc với Veeam hoặc bất kỳ ai có ý tưởng về thông báo lỗi chung và cách vượt qua nó bằng cách cung cấp đầy đủ quyền trong Windows.

Điểm:1
lá cờ jp

Sau khi liên hệ với bộ phận hỗ trợ, hóa ra, vấn đề là tôi đã không đưa thư mục SQL Server DATA vào bản sao lưu của mình. Tôi nghĩ Veeam sẽ làm điều đó cho tôi vì nó cho phép tôi kích hoạt xử lý ứng dụng. Tôi không nhớ đã thấy bất kỳ chi tiết nào về điều này trong tài liệu hoặc tôi có thể đã bỏ lỡ nó.

Điều này cũng có thể được giảm thiểu bằng cách chọn toàn bộ máy tính để sao lưu hoặc thực hiện sao lưu ổ đĩa C. Rõ ràng, dù sao thì cũng nên lưu toàn bộ máy để phục hồi ngay lập tức.

Tất cả các lỗi không rõ ràng đã biến mất chỉ bằng cách bao gồm thư mục DATA.

Điểm:0
lá cờ us

Xem Quyền cần thiết tại:

https://helpcenter.veeam.com/docs/backup/explorers/vesql_permissions.html?ver=110

Quyền tối thiểu trên mssql cho Tài khoản dịch vụ Veeam để thực hiện sao lưu:

Cấp độ động cơ: XEM MỌI ĐỊNH NGHĨA, XEM TRẠNG THÁI MÁY CHỦ

Cấp độ DB: chính: db_backupoperator, db_datareader

msdb: db_backupoperator, db_datawriter, db_datareader

bất kỳ DB nào bạn muốn Sao lưu nhật ký trn: db_backupoperator, db_denydatareader

Ngoài ra, tài khoản dịch vụ Veeam của bạn cần phải là một phần của nhóm quản trị viên cục bộ.

Để có thể thực hiện khôi phục trực tiếp vào mssql, vai trò cấp công cụ dbcreator là bắt buộc.

Để thiết lập điều này đúng cách, bạn cần thay đổi tài khoản dịch vụ Veeam của mình thành người dùng miền.

Easy Mode: Domain Admin và Sysadmin trên SQL (nếu muốn backup và restore đối tượng AD nữa thì có thể làm ngay cách này)

youcef nafa avatar
lá cờ jp
Đây là suy nghĩ đầu tiên của tôi, đó là lý do tại sao tôi cài đặt lại veeam với tư cách là Quản trị viên miền như đã nêu trong câu hỏi của tôi. Tôi thậm chí đã thử nghiệm "sa" cho kết nối SQL và mọi thứ đều thất bại. Vấn đề là thư mục Dữ liệu SQL bị thiếu trong tệp sao lưu của tôi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.