|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在我们工作的过程中,经常能听到很多不使用MySQL的理由,虽然其中有一些是对MySQL的误解,不过同样也有一些是合情合理的。1.方针www.yestar2000iTbulo.comWp3XQ MSSQLServer做年夜数据量传输的时分,我们年夜多会用到数据传输服务。如今假定,在开辟情况下,我们已计划好了DTS包而且运转优秀,接上去我们要做的事变是迁徙和部署这个DTS数据包。www.yestar2000iTbulo.comWp3XQ
以是,我们必要把计划情况下的DTS包保留成布局化的存储文件,而且这个文件导进到方针情况下的MSSQLServer中,最初增加功课,让MSSQLServerAngent在我们预期的事变实行这个DTS包完成数据传输事情。个中必要重点办理的一个成绩是,在方针情况中,DTS传输的源和目标地会产生改动,必要对它举行设置。www.yestar2000iTbulo.comWp3XQ
2.办理计划www.yestar2000iTbulo.comWp3XQ
2.1.DTSRunwww.yestar2000iTbulo.comWp3XQ
DTSRun是微软供应的命令用于实行DTS包(包含布局化存储的、存储在SQLServer或存储在MetaDataServices的包)。www.yestar2000iTbulo.comWp3XQ
dtsrun的用法:www.yestar2000iTbulo.comWp3XQ
dtsrun
[/?]|
[
[
/[~]Sserver_name[instance_name]
{{/[~]Uuser_name[/[~]Ppassword]}|/E}
]
{
{/[~]Npackage_name}
|{/[~]Gpackage_guid_string}
|{/[~]Vpackage_version_guid_string}
}
[/[~]Mpackage_password]
[/[~]Ffilename]
[/[~]Rrepository_database_name]
[/Aglobal_variable_name:typeid=value]
[/Llog_file_name]
[/WNT_event_log_completion_status]
[/Z][/!X][/!D][/!Y][/!C]
]www.yestar2000iTbulo.comWp3XQ
详细的用法参看微软的材料。这里必要重点指出的是,经由过程“/Aglobal_variable_name:typeid=value”选项,我们能够给DTS包传送多个自界说的参数,在DTS包部署的方针情况下,我们用这个选项告知DTS包服务器称号、用户名、暗码等数据库毗连信息。经由过程“/!Y”选项能够猎取加密后的DTSRun参数。www.yestar2000iTbulo.comWp3XQ
2.2.从头计划DTS包www.yestar2000iTbulo.comWp3XQ
为了处置DTSRun传进的自界说参数,DTS包必要从头计划。我们能够增添一个ActiveXScript义务,在ActiveXScript义务中经由过程VBScript大概JavaScript对DTS编程,而且界说流程,把ActiveXScript义务设置成最入手下手的一个义务。因为DTSCOM工具线程形式与ActiveXScript义务宿主的纷歧致,必要将ActiveXScript义务事情流属性设置成在主包线程中实行,不然大概会呈现挪用毛病。www.yestar2000iTbulo.comWp3XQ
上面的例子是ActiveXScript义务中的剧本。例子中的DTS包包括称号为"DBConnection"的数据库毗连工具。www.yestar2000iTbulo.comWp3XQ
************************************************************************
VisualBasicActiveXScript
************************************************************************ FunctionMain()
DimsDBDataSource
DimsDBCatalog
DimsDBUserID
DimsDBPassword
DimbDBUseTrusted
DimsOLAPServer
DimsOLAPCatalog
DimoPackage
DimoConnection
DimoTask
DimoCustomTask
猎取DTSRun传进的自界说参数
sDBDataSource=DTSGlobalVariables("DBDataSource").Value
sDBCatalog=DTSGlobalVariables("DBCatalog").Value
sDBUserID=DTSGlobalVariables("DBUserID").Value
sDBPassword=DTSGlobalVariables("DBPassword").Value
bDBUseTrusted=DTSGlobalVariables("DBUseTrusted").Value
sOLAPServer=DTSGlobalVariables("OLAPServer").Value
sOLAPCatalog=DTSGlobalVariables("OLAPCatalog").Value
获得以后DTS包工具的技能
SetoPackage=DTSGlobalVariables.Parent
获得包中的数据毗连工具
SetoConnection=oPackage.Connections("DBConnection")www.yestar2000iTbulo.comWp3XQ
设置数据源工具的数据毗连信息
IfbDBUseTrustedThen
oConnection.UseTrustedConnection=bDBUseTrusted
Else
oConnection.UserID=sDBUserID
oConnection.Password=sDBPassword
EndIfwww.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ
oConnection.DataSource=sDBDataSource
oConnection.Catalog=sDBCatalog
SetoConnection=nothingwww.yestar2000iTbulo.comWp3XQ
设置跟多的信息,这里是OLAP剖析服务处置义务
SetoTask=oPackage.Tasks("DTSTask_DTSOlapProcess.Certificate")
SetoCustomTask=oTask.CustomTask
SetoTask=nothing
oCustomTask.Properties("TreeKey").Value=sOLAPServer&""_
&sOLAPCatalog&"CubeFolderCertificate"
SetoCustomTask=nothing
前往乐成形态
Main=DTSTaskExecResult_Success
EndFunctionwww.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ
2.3.保留为布局化的存储文件www.yestar2000iTbulo.comWp3XQ
这个历程相称的复杂,经由过程企业办理器能够完成。另存为的布局化存储文件就是我们要分发的DTS包。www.yestar2000iTbulo.comWp3XQ
2.4.导进到MSSQLServerwww.yestar2000iTbulo.comWp3XQ
我们必要经由过程DTS编程来完成这个历程。必要夸大的是,上面这段示例必要在ApartmentState为STA线程中才能够准确的被挪用。www.yestar2000iTbulo.comWp3XQ
publicvoidGo()
{
DTS.Package2Classpkg=newDTS.Package2Class();
DTS.Applicationapp=newDTS.ApplicationClass();www.yestar2000iTbulo.comWp3XQ
//从SQLSERVER中删除已存在的同名DTS包
try
{
pkg.RemoveFromSQLServer(
DBServer,
DBSUserID,
DBSPassword,
DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default,
"",www.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ
"",
PkgName
);
}
catch
{
}www.yestar2000iTbulo.comWp3XQ
//获得待分发DTS包(布局化的存储文件)的包信息,这里假定包中只包括一个版本
DTS.SavedPackageInfosinfos=pkg.GetSavedPackageInfos(UNCFile);
DTS.SavedPackageInfoinfo=infos.Item(1);www.yestar2000iTbulo.comWp3XQ
objectobj1=null;
objectobj2=null;
stringsPkgID=info.PackageID;
stringsVerID=info.VersionID;
stringsPkgName=info.PackageName;www.yestar2000iTbulo.comWp3XQ
//载进布局化的存储文件
pkg.LoadFromStorageFile(
UNCFile,
PkgPwd,
sPkgID,
sVerID,
sPkgName,
refobj1
);
//保留到SQLServer中
pkg.SaveToSQLServerAs(
PkgName,
DBServer,
DBSUserID,
DBSPassword,
DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default,
PkgOwnerPwd,
PkgOperatorPwd,
"",
refobj2,
false);
pkg.UnInitialize();www.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ
//反省是不是保留乐成
DTS.PackageSQLServerpkgSQLServer=
app.GetPackageSQLServer(
DBServer,
DBSUserID,
DBSPassword,
DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default
);
DTS.PackageInfosinfs=
pkgSQLServer.EnumPackageInfos(PkgName,true,"");
if(infs.EOF)
thrownewException("DTS包导进到数据库失利。");
DTS.PackageInfoinf=infs.Next();www.yestar2000iTbulo.comWp3XQ
mPkgID=inf.PackageID;
mVerID=inf.VersionID;
}www.yestar2000iTbulo.comWp3XQ
www.yestar2000iTbulo.comWp3XQ
2.5.增加功课www.yestar2000iTbulo.comWp3XQ
增加功课能够用传统的体例,用SQL语句可做到,不做具体申明。MSSQLServer更是供应一系列的存储历程对功课举行修正,以到达用户预期的效果。www.yestar2000iTbulo.comWp3XQ
3.小结www.yestar2000iTbulo.comWp3XQ
文章到此已到达我们的方针。整体上说,2.2这步的完成有些坚苦,在完成历程傍边也碰着过良多坚苦,有一些是在旧事组中失掉的解答,别的的步骤检察MSDN都能够失掉对照简单的办理。www.yestar2000iTbulo.comWp3XQ
通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。 |
|