繁体   English   中英

文件的目录查找失败,出现操作系统错误 3(系统找不到指定的路径。)

[英]Directory lookup for the file failed with the operating system error 3 (The system cannot find the path specified.)

我正在尝试从一台 SQL 服务器()到另一台(目标)重新创建数据库(MyDB)。 位于我的本地机器上,是 SQL Server 2014。目标位于远程机器上,它是 SQL Server 2012。这是我采取的步骤:

  1. 在我的本地机器上,我从 go 到 SQL 服务器管理工作室,右键单击 MyDB 和 go 到 Tasks--> Generate Scripts。
    1. 那里我 select “脚本整个数据库和所有数据库对象”。
    2. 我单击下一步,然后在下一页的高级下,我 select“架构和数据”。
    3. 这会生成一个包含 MyDB 定义的 SQL 文件 (scripts.sql)。
    4. 然后我使用以下 osql 命令在Target上重新创建数据库:

osql -S target -d master -E -i scripts.sql -o output.log

  1. 执行完成后,我在日志文件“output.log”中收到此错误:

1> 2> 1> 2> 3> 4> 5> 6> 7> 8> Msg 5133, Level 16, State 1, Server Target, Line 2 文件目录查找“C:\Program Files\Microsoft Z9778840A0100CB30C582876741B服务器MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDB.mdf”失败,操作系统错误3(系统找不到指定的路径。)。 消息 1802,级别 16,State 1,服务器目标,第 2 行创建数据库失败。 无法创建列出的某些文件名。 检查相关错误。 1> 2> 消息 5011,级别 14,State 5,服务器目标,第 1 行用户无权更改数据库“MyDB”,数据库不存在,或数据库不在允许访问检查的 state 中。 消息 5069,级别 16,State 1,服务器目标,第 1 行 ALTER DATABASE 语句失败。

以下是“scripts.sql”的前几行:

USE [master]
GO
/****** Object:  Database [MyDB]    Script Date: 4/12/2016 4:30:20 PM ******/
CREATE DATABASE [MyDB]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'MyDB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDB.mdf' , SIZE = 513024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 262144KB )
 LOG ON 
( NAME = N'MyDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDB_log.ldf' , SIZE = 1317504KB , MAXSIZE = 2048GB , FILEGROWTH = 131072KB )
GO
ALTER DATABASE [MyDB] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [MyDB].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [MyDB] SET ANSI_NULL_DEFAULT ON

我在Source上抱怨的位置确实有文件 MyDB.mdf ,但在Target上没有。 Target上没有目录“MSSQL12.MSSQLSERVER”。 我怎样才能解决这个问题?

对于那些对此解决方案感兴趣的人,问题是Target上没有“MSSQL12.MSSQLSERVER”目录,因为它位于不同版本的SQL Server上,即2012.我要做的是手动创建目录并启动之后工作。

如果目标数据库在 RDS 上

如果目标数据库是在 AWS RDS 上运行的 MS SQL 服务器,那么您必须更改数据和日志文件的文件位置。 RDS 默认将它们保存在用户无法访问的 D: 驱动器中。 D:\rdsdbdata\DATA

例如:

您从源数据库生成 a.sql 脚本,并且脚本的文件路径FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDB.mdf' (取自问题的路径) 使用此脚本,在 RDS 实例中运行它之前,您必须将其更改为FILENAME = N'D:\rdsdbdata\DATA\MyDB.mdf'然后文件系统将允许它运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM