恢复 MSSQL bak 文件扩展名数据
一、概念:
RESTORE Statements (Transact-SQL)
Restores backups taken using the BACKUP command. This command enables you to perform the following restore scenarios:
- Restore an entire database from a full database backup (a complete restore).
- Restore part of a database (a partial restore).
- Restore specific files or filegroups to a database (a file restore).
- Restore specific pages to a database (a page restore).
- Restore a transaction log onto a database (a transaction log restore).
- Revert a database to the point in time captured by a database snapshot.
——来自微软官方手册
RESTORE DATABASE (Parallel Data Warehouse)
Restores a Parallel Data Warehouse user database from a database backup to a Parallel Data Warehouse appliance. The database is restored from a backup that was previously created by the Parallel Data Warehouse BACKUP DATABASE (Parallel Data Warehouse) command. Use the backup and restore operations to build a disaster recovery plan, or to move databases from one appliance to another.
二、命令
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:\'
四:其他:
其实,之前一直再说批量处理批量处理。也是因为这个原因,所以专门开了一篇新文章写这个恢复专题。那么,批量恢复到底情况怎么样了呢?