admin管理员组

文章数量:1794759

使用SQLServer复制数据库

使用SQLServer复制数据库

文章目录
  • 前言
  • 一、备份需要复制的数据库
  • 二、获取LogicalName、PhysicalName这两个的值
  • 三、使用刚刚的备份文件复制新数据库


前言

开发环境数据库结构和生产环境不一致,需要将生产环境数据库搬迁到开发环境: 1、一般数据量小的话右键生成脚本,然后在新的库执行一下就好了,但是这个生成环境sql脚本1.8g,执行会超时,我也不敢用cmd 命令行执行,只能作罢~ 2、下面这个方法在本地测试一切正常,但是去生产环境操作就不行 原因是生产环境用的华为云数据库,给的账号没有备份数据库权限…… 3、最后手动把数据库结构差异补齐,浪费我好几个小时,就这? 但是这个方法在本地操作确实可行,记录一下


一、备份需要复制的数据库

执行下面语句备份数据库

BACKUP DATABASE database1 TO DISK = 'E:\\tmp\\dbbek\\database1.bak'

database1:需要复制的数据库 E:\\tmp\\dbbek\\database1.bak:备份到这个路径

二、获取LogicalName、PhysicalName这两个的值

执行下面语句,从刚刚备份文件中查询LogicalName、PhysicalName

RESTORE FILELISTONLY FROM DISK = 'E:\\tmp\\dbbek\\database1.bak'

查询结果如下:(把这两个值保存起来)

三、使用刚刚的备份文件复制新数据库 RESTORE DATABASE database2 FROM DISK ='E:\\tmp\\dbbek\\database1.bak' WITH MOVE 'database1' TO 'D:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLServer\\MSSQL\\DATA\\database1.mdf', MOVE 'database1_log' TO 'D:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\database1_log.ldf'

两个TO后面接的路径就是上面查询出来的路径 原文博主下图解释的很详细,就拿来用了

到这就复制完了,原文还写了定时备份啥的,目前不需要就不写了 原文:wwwblogs/bdqczhl/p/16199900.html

本文标签: 数据库sqlserver