利用SQL还原.bak 文件

/ 2014-08-22
利用SQL还原.bak 文件 提到这个问题还是1年多前的事情了,刚开始使用SQLServer,使用SQL导入固然是很方便的。而且对于在线管理SQL server的程序都是很久以前的了。做一些基本的增删改查还是挺方便的, 而这个程序用的可谓是相当的少而且比起phpmyadmin 这个在线管理工具来说简直就是弱爆了。 对于这两个工具的优缺点就不去讨论了。我说一点吧 phpmyadmin 支持导入sql文件的大小基本都没有撒限制的。当然默认是8M 可以 改这个 sqlserver 这个(貌似这个唯一的,不晓得微软是咋个想的)。对与sql 文件的还原小一点的文件是可以的。 但是文件过大直接是无法愉快的还原了。而且有大量的aspx的程序都在使用.bak 来还原的方式来导入数据。 正文 这里需要主意的是.bak还原需要一定的权限了(bak 目前不支持远程还原的。于是需要将需要还原的文件上传到服务器了。这个需要一个diskadmin的权限) 呵呵。管他撒的直接用sa 调用这个命令撒(有些粗鲁了)。 需要通过 RESTORE FILELISTONLY FROM DISK = 'E:\template\bak\1.bak' 得到bak文件原来的 xx_Data 和xx_Log的内容 -- 将需要还原的数据库设置为脱机状态 ALTER DATABASE sq_ts SET SINGLE_USER with ROLLBACK IMMEDIATE -- 删除数据库 DROP DATABASE sq_ts use master RESTORE database sq_ts FROM DISK = 'E:\template\bak\1.bak' with REPLACE, MOVE 'NETOK_Data' TO 'E:\home\ftp\t\ts\database\sq_ts.mdf', MOVE 'NETOK_Log' TO 'E:\home\ftp\t\ts\database\sq_ts_log.ldf' -- 将数据库的所有者归还给sq_ts 这个用户 use sq_ts EXEC sp_changedbowner 'sq_ts' 到这里就完成了bak 文件的还原了。 最后补充下备份bak文件的SQL backup DATABASE sq_ts to DISK = 'E:/1.bak' WITH FORMAT

转载请注明作者和出处,并添加本页链接。
原文链接: //xiaochun.zrlog.com/159.html