恢復 MSSQL bak 副檔名資料(下)

2022-03-22 23:48:10 字數 1757 閱讀 3554

restore statements (transact-sql)

restores backups taken using the backup command. this command enables you to perform the following restore scenarios:

——來自微軟官方手冊

restore database (parallel data warehouse)

restore database database_name from disk = '\\unc_path\backup_directory'
既然,大微軟官方給出的規範是那樣的。來試試唄~

訊息 5133,級別 16,狀態 1,第 1 行

對檔案 "e:\jaowu-data\basic_data.mdf" 的目錄查詢失敗,出現作業系統錯誤 21(裝置未就緒。)。

訊息 3156,級別 16,狀態 3,第 1 行

檔案 'basic' 無法還原為 'e:\jaowu-data\basic_data.mdf'。請使用 with move 選項來標識該檔案的有效位置。

訊息 5133,級別 16,狀態 1,第 1 行

對檔案 "e:\jaowu-data\basic_log.ldf" 的目錄查詢失敗,出現作業系統錯誤 21(裝置未就緒。)。

訊息 3156,級別 16,狀態 3,第 1 行

檔案 'basic_log' 無法還原為 'e:\jaowu-data\basic_log.ldf'。請使用 with move 選項來標識該檔案的有效位置。

訊息 3119,級別 16,狀態 1,第 1 行

在計畫 restore 語句時發現了問題。以前的訊息提供了詳細資訊。

訊息 3013,級別 16,狀態 1,第 1 行

restore database 正在異常終止。

這是為什麼呢?大家都知道mssql分為mdf ndf 和 ldf,其中mdf 包含所有資料庫所有資訊,但是當使用者操作時並不會立即寫入資料庫而是先寫入 ldf,待容量不足或使用者手動執行時才會被寫入 mdf(ndf 只有資料)。

使用select * from dbo.sysfiles可以看到 master 資料庫檔案情況。但是這時候又會有乙個問題:即:本身就只有乙個 .bak 檔案啊...

使用restore filelistonly from disk='\\unc_path\backup_directory'該命令可以得到 .bak 檔案情況

-- exec sp_configure 'show advanced options', 1;reconfigure;

-- exec sp_configure 'xp_cmdshell', 1;reconfigure

restore database [basic] from disk = n'd:\sql\basic_backup_201705040000.bak'

with move 'basic' to 'd:\\basic.mdf',move 'basic_log' to 'd:\\basic.ldf';

exec xp_cmdshell 'dir d:\'

其實,之前一直再說批量處理批量處理。也是因為這個原因,所以專門開了一篇新文章寫這個恢復專題。那麼,批量恢復到底情況怎麼樣了呢?

恢復 MSSQL bak 副檔名資料(上)

microsoft sql server是由美國微軟公司所推出的關聯式資料庫解決方案,最新的版本是sql server 2016,已經在2016年6月1日發布。資料庫的內建語言原本是採用美國標準局 ansi 和國際標準組織 iso 所定義的sql語言,但是微軟公司對它進行了部分擴充而成為作業用sql...

php獲取副檔名

第一種 123 4567 891011 1213 1415 獲取副檔名 substr strrchr name.txt 1 function fileextension fstr file extension fileextension abc def.g 123 print r file exte...

PHP獲取副檔名

第一種 tok strtok string,使用strtok將字串分割成乙個個令牌 while tok count count arr i count 1 file type arr i 第二種 arr explode string 使用explode 函式分割字串,返回值是乙個陣列 count c...