利用SQL还原.bak 文件
利用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
Reproduced please indicate the author and the source, and error a link to this page.
text link:
/159.html