我们使用DDBoost来备份和还原SQL Server数据库。
现在我们想要创建一个脚本或作业,以便开发人员可以启动脚本或作业来刷新他们的开发数据库,而无需询问 DBA。
我知道在SQL Server Management Studio中,我们无法在Job中接受输入,因此我想使用T-SQL或CLI或Powershell创建一个脚本来获取SourceDB,TargetDB等输入,然后使用参数刷新开发数据库。
我知道如何在PowerShell中输入,所以如果有人可以通过以下方式告诉如何做到这一点:
- 使用Powershell从DDBoost还原
- 将值从 PowerShell 传递到 T-SQL 或 CLI
- SQL Server Management Studio 中的任何其他选项。
我将忽略有关DDBoost的事实,因为我不知道。
但我知道 dbatools.io,这是一个非常坚固的Powershell模块,可以完全满足您的需求。它可以通过一行Powershell还原整个数据库。您可以根据需要使其简单或高级。
先决条件:
- 一个有效的 SQL Server 备份文件。这可以从 SQL 创建 服务器管理工作室或 dbatools.io
- 一个 SQL 服务器
- 执行用户需要特权才能还原数据库。
- 安装 dbatools
安装
启动 PowerShell(以管理员身份运行(
Install-Module dbatools
备份数据库
在这里,我将展示如何使用dbatools备份数据库。
Backup-DbaDatabase -SqlInstance servername -Database databasename -BackupDirectory C:Temp -CompressBackup
还原数据库
在这里,我将展示如何使用 dbatools 还原数据库。
Restore-DbaDatabase -SqlInstance servername -DatabaseName databasename -Path C:Tempfilename.bak -WithReplace -useDestinationDefaultDirectories -ReplaceDbNameInFile
还原脚本指示 SQL Server 覆盖任何现有数据库。它会将数据库文件还原到 SQL Server 配置中配置的文件夹中,并将替换物理文件中的数据库名称。