大文件SQl脚本怎么还原以及SQlsqlserver怎么全自动备份数据库

2019/12/10 13:29
阅读数 67

1:导出的SQl脚本文件通常大于100M左右就会还原不了,不是报错就是说系统文件找不到(sql脚本是直接拖进来的,不存在路径的问题).

 

2:CMD 使用 OSQL命令或者Sqlcmd命令都是可以解决的,其实就是采用的ODBC的技术,一行一行的去执行(这样几十G的脚本文件都没有问题).

 

3:经个人测试,下面两个命令都可以:

  osql -S"XB-201907130929\ZRFSQLSERVER" -U"sa" -P"QQ88" -i"mysqlBack.sql" -d"FenggeTestDB" 

  sqlcmd -S"XB-201907130929\ZRFSQLSERVER" -U"sa" -P"QQ88" -i"mysqlBack.sql" -d"FenggeTestDB"

 

4:-S 你的sqlserver数据库的服务器名称; -U 用户名; -P 密码; -i 你的文件路径; -d 你的数据库名称(建议先在数据库中创建好).

 

5:如下测试的截图:

5.1:报错

 

 5.2:在SQl脚本的路径下打开CMD并查看对应的命令:

 

5.3执行命令后会一行一行的显示:一行受到影响,最后成功的效果如下:可以看到数据库已经有表以及数据

 

 

6:全自动备份SQlserver中的数据库:直接上干货

     6.1 手动备份单个文件:

Backup Database database_name
To disk='X:\folder\database_name_mirror1.backupname.bak'

     6.2:使用作业计划全自动备份, SQl脚本如下:

DECLARE @date DATETIME=GETDATE();
DECLARE @name VARCHAR(20);
DECLARE @okpath varchar(100);
SELECT @name= CONVERT(VARCHAR,DATEPART(YEAR,@date),10) +
'-'+ CONVERT(VARCHAR,DATEPART(MONTH,@date),10)+
'-'+CONVERT(VARCHAR,DATEPART(DAY,@date),10)+
'-'+CONVERT(VARCHAR,DATEPART(HOUR,@date),10)+
'-'+CONVERT(VARCHAR,DATEPART(MINUTE,@date),10)+
'-'+CONVERT(VARCHAR,DATEPART(SECOND,@date),10);
SET @okpath='D:\upfile\upfile_backup'+ convert(varchar,@name,20)+'.bak'
PRINT(@name);
PRINT(@okpath);

BACKUP Database DBTEST
 To disk=@okpath  --WITH int;
View Code

7:最终我们可以看到,手动备份和脚本备份的是一样的效果

 

8:最后关于怎么全自动执行脚本,请参考我之前写的学习笔记

  https://www.cnblogs.com/Fengge518/p/11483109.html

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部