发布管道中没有数据的备份 SQL 数据库
Backup SQL DB without data in release pipeline
如何在发布管道 (Azure Devops/VSTS) 中备份没有数据的 SQL 数据库。而且我必须将它存储在共享路径上。数据库在本地服务器中
更新:
在发布管道的 "Command Line Scripts" 任务中使用以下命令后,
"C:\Program Files (x86)\Microsoft SQL
Server0\DAC\bin\sqlpackage.exe" /sourceconnectionstring:"Data
Source=ServerName;Initial Catalog=DBName;Integrated Security=True"
/targetFile:E:\Test.dacpac /action:extract
/p:ExtractAllTableData=false /p:IgnoreUserLoginMappings=true
/p:IgnorePermissions=true /p:Storage=Memory
我收到用户 'XXXXXX' 登录失败的错误。下面是详细日志。
谢谢。
备份SQL没有数据的数据库
如果您只需要备份数据库对象的定义及其相关的实例级元素,包括表、存储过程、视图和用户。建议您通过调用 sqlpackage.exe
生成一个 DAC 包文件。
A data-tier application (DAC) is a logical database management entity
that defines all of the SQL Server objects - like tables, views, and
instance objects, including logins - associated with a user's
database. A DAC is a self-contained unit of SQL Server database
deployment that enables data-tier developers and database
administrators to package SQL Server objects into a portable artifact
called a DAC package, also known as a DACPAC.
要生成DAC 包文件,一个是使用提取数据层应用程序向导,但无法在VSTS 中实现。这里可以使用VSTS发布管道中的脚本来实现这个生成。
在发布管道中:
(1) 第一步是在 script 下应用到 powershell
/command
任务:
sqlpackage.exe /a:extract /scs:"server=localhost;database=MerlinTbData;trusted_connection=true" /tf:"C:\SQL Server Management Studio\DAC Packages\AdventureWorks2012.dacpac"
等于
sqlpackage /Action:Extract /SourceServerName:localhost /SourceDatabaseName:"MerlinTbData" /TargetFile:"C:\SQL Server Management Studio\DAC Packages\MerlinTbData.dacpac"
在这个脚本中,它会将DAC包文件保存到本地文件系统中。但是由于您想要的是让它存储在共享文件夹中。所以:
(2) 下一步是使用Windows machine file copy任务将此DAC包文件复制到共享文件夹。
另外,你也可以继续使用命令脚本来实现这个副本。
更新:
请使用下面包含您的用户名和密码的脚本:
SqlPackage /Action:Extract /SourceServerName:"*********"
/SourceDatabaseName:"*****" /TargetFile:"*****" /SourceUser:"{SQLuser}" /SourcePassword:"{SQLPassword}"
如何在发布管道 (Azure Devops/VSTS) 中备份没有数据的 SQL 数据库。而且我必须将它存储在共享路径上。数据库在本地服务器中
更新:
在发布管道的 "Command Line Scripts" 任务中使用以下命令后,
"C:\Program Files (x86)\Microsoft SQL Server0\DAC\bin\sqlpackage.exe" /sourceconnectionstring:"Data Source=ServerName;Initial Catalog=DBName;Integrated Security=True" /targetFile:E:\Test.dacpac /action:extract /p:ExtractAllTableData=false /p:IgnoreUserLoginMappings=true /p:IgnorePermissions=true /p:Storage=Memory
我收到用户 'XXXXXX' 登录失败的错误。下面是详细日志。
谢谢。
备份SQL没有数据的数据库
如果您只需要备份数据库对象的定义及其相关的实例级元素,包括表、存储过程、视图和用户。建议您通过调用 sqlpackage.exe
生成一个 DAC 包文件。
A data-tier application (DAC) is a logical database management entity that defines all of the SQL Server objects - like tables, views, and instance objects, including logins - associated with a user's database. A DAC is a self-contained unit of SQL Server database deployment that enables data-tier developers and database administrators to package SQL Server objects into a portable artifact called a DAC package, also known as a DACPAC.
要生成DAC 包文件,一个是使用提取数据层应用程序向导,但无法在VSTS 中实现。这里可以使用VSTS发布管道中的脚本来实现这个生成。
在发布管道中:
(1) 第一步是在 script 下应用到 powershell
/command
任务:
sqlpackage.exe /a:extract /scs:"server=localhost;database=MerlinTbData;trusted_connection=true" /tf:"C:\SQL Server Management Studio\DAC Packages\AdventureWorks2012.dacpac"
等于
sqlpackage /Action:Extract /SourceServerName:localhost /SourceDatabaseName:"MerlinTbData" /TargetFile:"C:\SQL Server Management Studio\DAC Packages\MerlinTbData.dacpac"
在这个脚本中,它会将DAC包文件保存到本地文件系统中。但是由于您想要的是让它存储在共享文件夹中。所以:
(2) 下一步是使用Windows machine file copy任务将此DAC包文件复制到共享文件夹。
另外,你也可以继续使用命令脚本来实现这个副本。
更新:
请使用下面包含您的用户名和密码的脚本:
SqlPackage /Action:Extract /SourceServerName:"*********"
/SourceDatabaseName:"*****" /TargetFile:"*****" /SourceUser:"{SQLuser}" /SourcePassword:"{SQLPassword}"