【问题标题】:Azure SQL DB Refresh From Production从生产中刷新 Azure SQL DB
【发布时间】:2018-05-29 21:05:42
【问题描述】:

寻找从生产 Azure SQL 数据库刷新 QA/测试 Azure SQL 数据库的最佳实践

生产数据库位于不同的服务器和资源组。所以只是想知道将生产数据放入 qa/testing 数据库的最佳方法。有哪些工具可用于此类任务?

【问题讨论】:

    标签: azure-sql-database azure-sql-server bacpac


    【解决方案1】:

    SQL Azure 数据库最常见的格式是bacpac,当我告诉你它很棒时相信我。

    导出

    最简单的方法是使用Azure PortalSSMS

    但是,这将复制整个数据库架构和所有数据。如果您需要更具体的内容,例如排除表格,请查看sqlpackage.exe

    .\sqlpackage.exe /Action:Export /ssn:SERVER /sdn:ADB /tf:"C:\PATH\TO\FILE.bacpac" /of /p:TableData=TABLE /p:TableData=TABLE /p:TableData=TABLE
    

    导入

    要从上面创建的.bacpac 创建数据库,上述三种方法都支持importing

    建议

    我会在这里应用KISS 原则,并且只在两端使用门户/SSMS。删除您不再需要/不需要的特定表。

    【讨论】:

    • 我最终做的是使用 Visual Studio 中的数据工具并创建与生产和 QA Azure Sql 服务器的连接。然后一旦连接在那里,我可以右键单击并选择生产数据库上的提取数据层应用程序。从那里我可以选择/排除表格并创建 dacpac 文件。然后在 QA db 上,我可以右键单击并选择 Publish Data-tier Application 并引入数据。这也可以通过 SSMS 完成,但 VS 让它变得非常容易。感谢您让我指出正确的方向!
    • 没问题! Dacpac's 是久经考验的。我很高兴这一切都为你解决了!
    【解决方案2】:

    您只需要使用门户或 PowerShell 复制生产数据库

    New-AzureRmSqlDatabaseCopy -ResourceGroupName "myResourceGroup" `
        -ServerName $sourceserver `
        -DatabaseName "MySampleDatabase" `
        -CopyResourceGroupName "myResourceGroup" `
        -CopyServerName $targetserver `
        -CopyDatabaseName "CopyOfMySampleDatabase"
    

    您还可以通过使用 Azure 自动化和以下 T-SQL 语句重新创建开发数据库来自动刷新它。

    CREATE DATABASE db_copy   
        AS COPY OF ozabzw7545.db_original ( SERVICE_OBJECTIVE = 'P2' );
    

    【讨论】:

    • 有没有办法排除一个表?我们有一个包含 1.5 亿行的审计表,我们不想/不需要刷新?此外,我尝试从 CloudShell 运行 New-AzureRmSqlDatabaseCopy,但它一直给我一个关于找不到资源的错误。我有来自源 Db(复制/粘贴)的确切资源,所以不知道为什么它说它找不到资源?
    • 我只看到来自我们的生产订阅的资源,所以这就是找不到资源错误的原因。我尝试使用以下命令切换订阅: az account set --subscription 但这似乎没有任何区别,我仍然只能获得生产资源。
    • 改用 CREATE DATABASE 语句。如果您不需要 1.5 亿行的表,请在复制数据库后将其截断。您可以使用 Azure 自动化自动执行所有这些操作。 docs.microsoft.com/en-us/azure/automation/…
    • @AlbertoMorillo 这是怎么做到的?我们使用 create database 作为命令的副本,但想跳过两个表
    猜你喜欢
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多