我正在开发一个用于在SQL Server之间复制数据的Web应用程序。该工具将允许您指定要从哪个服务器进行复制,然后将特定数据库(始终具有相同名称)从源服务器复制到目标服务器。在SQL服务器之间复制数据库
这样做的最佳方法是什么?数据可能相当大,因此速度也需要考虑。
我的尝试是尝试运行使用SQL Server Management Studio创建的SSIS包。该软件包存储在本地。
该计划是修改源和目标连接字符串并启动包。
这是我这样做代码:
public void DataTransfer(String sourceConnection, String destConnection, String pkgLocation)
{
Package pkg;
Application app;
DTSExecResult pkgResults;
try
{
app = new Application();
pkg = app.LoadPackage(pkgLocation, null);
foreach (ConnectionManager connectionManager in pkg.Connections)
{
SqlConnectionStringBuilder builder;
switch (connectionManager.Name)
{
case "SourceConnection":
builder = new SqlConnectionStringBuilder(sourceConnection);
builder.Remove("Initial Catalog");
builder.Add("Initial Catalog", "StagingArea");
var sourceCon = builder.ConnectionString + ";Provider=SQLNCLI;Auto Translate=false;";
//Added spaces to retain password!!!
sourceCon = sourceCon.Replace(";", "; ");
connectionManager.ConnectionString = sourceCon;
Debug.WriteLine(connectionManager.ConnectionString.ToString());
break;
case "DestinationConnection":
builder = new SqlConnectionStringBuilder(destConnection);
builder.Remove("Initial Catalog");
builder.Add("Initial Catalog", "StagingArea");
var destCon = builder.ConnectionString + ";Provider=SQLNCLI;Auto Translate=false;";
//Added spaces to retain password!!!
destCon = destCon.Replace(";", "; ");
connectionManager.ConnectionString = destCon;
Debug.WriteLine(connectionManager.ConnectionString.ToString());
break;
}
}
pkgResults = pkg.Execute();
}
catch (Exception e)
{
throw;
}
Debug.WriteLine(pkgResults.ToString());
}
当pkg
执行我得到以下异常:
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in Microsoft.SqlServer.ManagedDTS.dll
A first chance exception of type 'Microsoft.SqlServer.Dts.Runtime.DtsComponentException' occurred in Microsoft.SqlServer.ManagedDTS.dll
我真的不知道从哪里何去何从,任何想法?
到目前为止您尝试了什么?你遇到了什么问题?你有没有考虑过像SSIS这样的预先存在的选项? –
看看http://www.sqlservercentral.com/articles/Database+Mirroring/66357/ –
我想尽可能使用SSIS。我猜服务器需要安装Integration Services?我已经看过SSIS和bcp实用程序到目前为止... –