1.备份一个bak文件,其中database_name为数据库名,目录路径需要存在。这是完整备份。
BACKUP DATABASE [database_name] TO DISK='D:database_name.bak'
2.检查备份文件的逻辑信息,主要为LogicName,一个是数据文件mdf,一个是日志文件ldf
RESTORE FILELISTONLY FROM DISK = 'D:database_name.bak';
3.还原数据库
RESTORE DATABASE [database_name] FROM DISK='D:database_name.bak'
若还原到本地,且改名的需求,可用以下命令,其中Move后的字符串,为第二部中查询到的逻辑名LogicName
RESTORE DATABASE [database_name] FROM DISK='D:database_name.bak' WITH MOVE 'database_name' TO 'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATA ew_database_name.mdf', MOVE 'database_name_log' TO 'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATA ew_database_name_log.ldf', STATS = 10,REPLACE
其他几个常用命令
--脱库,使数据库离线,不会有其他链接上来 ALTER DATABASE [database_name] SET OFFLINE WITH ROLLBACK IMMEDIATE --挂载,是数据库重新上线 ALTER DATABASE [database_name] SET ONLINE --当数据库显示正在恢复中,是用该命令可恢复正常 RESTORE DATABASE [database_name] WITH RECOVERY --当数据库显示单用户,该命令修改为多用户正常模式 ALTER DATABASE [database_name] SET MULTI_USER
差异备份
BACKUP DATABASE [database_name] TO DISK='D:database_name_diff.bak' WITH DIFFERENTIAL
镜像备份
BACKUP DATABASE [database_name] TO DISK='D:database_name_mirror1.bak' MIRROR TO DISK='D:database_name_mirror2.bak' WITH FORMAT