簡體   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