【问题标题】:use smo to clone azure SQL database?使用 smo 克隆 Azure SQL 数据库?
【发布时间】:2015-10-27 16:46:10
【问题描述】:

我正在编写一个程序来测试 Azure sql 的更新脚本。 这个想法是 - 首先克隆一个数据库(或用源模式和内容填充一个克隆) - 然后在克隆上运行更新脚本

在本地我有这个工作,但是对于天蓝色我有一个我没有看到任何文件名的问题。如果我将一个数据库还原到同一天蓝色“服务器”上的另一个数据库,我是否也不必在还原过程中重命名数据文件?

对于本地恢复,我这样做:

restore.Devices.AddDevice(settings.BackupFileName, DeviceType.File);
restore.RelocateFiles.Add(new RelocateFile("<db>", Path.Combine(settings.DataFileDirectory, settings.TestDatabaseName + ".mdf")));
restore.RelocateFiles.Add(new RelocateFile("<db>_log", Path.Combine(settings.DataFileDirectory, settings.TestDatabaseName + "_1.ldf")));
restore.SqlRestore(srv);

在 azure 上克隆数据库是否需要类似的东西?

很多问候! 沃尔克

【问题讨论】:

    标签: clone azure-sql-database restore smo


    【解决方案1】:

    您可以创建一个数据库作为 [source]的副本:

    CREATE DATABASE database_name [ COLLATE collation_name ]
    | AS COPY OF [source_server_name].source_database_name
    
    {
       (<edition_options> [, ...n]) 
    }
    
    <edition_options> ::= 
    {
          MAXSIZE = { 100 MB | 500 MB | 1 | 5 | 10 | 20 | 30 … 150…500 } GB  
        | EDITION = { 'web' | 'business' | 'basic' | 'standard' | 'premium' } 
        | SERVICE_OBJECTIVE = 
              {  'basic' | 'S0' | 'S1' | 'S2' | 'S3' 
                | 'P1' | 'P2' | 'P3' | 'P4'| 'P6' | 'P11' 
                | { ELASTIC_POOL(name = <elastic_pool_name>) } } 
    }
    [;]
    

    【讨论】:

    • 嗯,几乎就是这样。还有两件事:首先需要轮询服务器,直到数据库以正确的状态显示在 sys.databases 视图中。然后需要再次轮询,直到数据库实际显示在 smo 数据库集合中。 那么就可以使用数据库了。当然,如果这样做过于频繁,复制过程可能随时挂起。
    猜你喜欢
    • 2016-12-31
    • 2011-08-13
    • 2012-01-26
    • 2011-06-23
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多