在 MS SQL 服务器中创建数据库快照

Creating a Snapshot of a Database in MS SQL Server

在我的实例中,我有一个名为 SampleDB 的数据库。我想在其上创建名为 SampleSnap 的快照。

-- Create a Snapshot on a Database
CREATE DATABASE SampleSnap ON  
( 
    NAME = SampleDB,  -- Logical File Name
    FILENAME ='C:\Users\Eleonora\Desktop\SampleSnap.ss' 
)  
AS SNAPSHOT OF SampleDB;  
GO

这给了我一个错误

Directory lookup for the file "C:\Users\Eleonora\Desktop\SampleSnap.ss" failed error 5(Access is denied.).

我该怎么做才能解决这个问题?

再说逻辑文件名的用法我也看不懂。它是什么以及如何正确指定它?

感谢您的宝贵时间。

要创建快照,您必须是角色 sysadmin

的成员

其中source_database_name是源数据库,logical_file_name是[=41中使用的逻辑名=]服务器引用文件时,os_file_name是你创建文件时操作系统使用的路径和文件名

阅读更多here

Edit - 如果不是sysadmin权限。那是因为 SQL 服务器服务帐户无法访问您的路径。

Edit2 如果你想在 C 盘上 - 我创建了一个新文件夹 C:\Test

我给了 NETWORK SERVICE 完全控制权 - 不知道这是否必要

What can I do to fix this?

您从阅读错误开始。

Directory lookup for the file "C:\Users\Eleonora\Desktop\SampleSnap.ss" failed error 5(Access is denied.).

是一个操作系统错误,告诉你数据库服务器基本上不能访问该文件夹。就这么简单。

您可以更改权限,或者您只是将数据不在您的 C 用户文件夹中。哪个更聪明 - db 数据库文件与您的桌面无关。