前言

开发环境数据库结构和生产环境不一致,需要将生产环境数据库搬迁到开发环境:
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后面接的路径就是上面查询出来的路径
原文博主下图解释的很详细,就拿来用了

在这里插入图片描述

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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐