仓酷云
标题:
MSSQL网站制作之MS SQL Server 2000数据转换服务部署
[打印本页]
作者:
若相依
时间:
2015-1-16 22:18
标题:
MSSQL网站制作之MS SQL Server 2000数据转换服务部署
Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差server|数据|转换
1.方针
MSSQLServer做年夜数据量传输的时分,我们年夜多会用到数据传输服务。如今假定,在开辟情况下,我们已计划好了DTS包而且运转优秀,接上去我们要做的事变是迁徙和部署这个DTS数据包。以是,我们必要把计划情况下的DTS包保留成布局化的存储文件,而且这个文件导进到方针情况下的MSSQLServer中,最初增加功课,让MSSQLServerAngent在我们预期的事变实行这个DTS包完成数据传输事情。个中必要重点办理的一个成绩是,在方针情况中,DTS传输的源和目标地会产生改动,必要对它举行设置。
2.办理计划
2.1.DTSRun
DTSRun是微软供应的命令用于实行DTS包(包含布局化存储的、存储在SQLServer或存储在MetaDataServices的包)。
dtsrun的用法:
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]
]
详细的用法参看微软的材料。这里必要重点指出的是,经由过程“/Aglobal_variable_name:typeid=value”选项,我们能够给DTS包传送多个自界说的参数,在DTS包部署的方针情况下,我们用这个选项告知DTS包服务器称号、用户名、暗码等数据库毗连信息。经由过程“/!Y”选项能够猎取加密后的DTSRun参数。
2.2.从头计划DTS包
为了处置DTSRun传进的自界说参数,DTS包必要从头计划。我们能够增添一个ActiveXScript义务,在ActiveXScript义务中经由过程VBScript大概JavaScript对DTS编程,而且界说流程,把ActiveXScript义务设置成最入手下手的一个义务。因为DTSCOM工具线程形式与ActiveXScript义务宿主的纷歧致,必要将ActiveXScript义务事情流属性设置成在主包线程中实行,不然大概会呈现挪用毛病。
上面的例子是ActiveXScript义务中的剧本。例子中的DTS包包括称号为"DBConnection"的数据库毗连工具。
************************************************************************VisualBasicActiveXScript************************************************************************FunctionMain()DimsDBDataSourceDimsDBCatalogDimsDBUserIDDimsDBPasswordDimbDBUseTrustedDimsOLAPServerDimsOLAPCatalogDimoPackageDimoConnectionDimoTaskDimoCustomTask猎取DTSRun传进的自界说参数sDBDataSource=DTSGlobalVariables("DBDataSource").ValuesDBCatalog=DTSGlobalVariables("DBCatalog").ValuesDBUserID=DTSGlobalVariables("DBUserID").ValuesDBPassword=DTSGlobalVariables("DBPassword").ValuebDBUseTrusted=DTSGlobalVariables("DBUseTrusted").ValuesOLAPServer=DTSGlobalVariables("OLAPServer").ValuesOLAPCatalog=DTSGlobalVariables("OLAPCatalog").Value获得以后DTS包工具的技能SetoPackage=DTSGlobalVariables.Parent获得包中的数据毗连工具SetoConnection=oPackage.Connections("DBConnection")设置数据源工具的数据毗连信息IfbDBUseTrustedThenoConnection.UseTrustedConnection=bDBUseTrustedElseoConnection.UserID=sDBUserIDoConnection.Password=sDBPasswordEndIfoConnection.DataSource=sDBDataSourceoConnection.Catalog=sDBCatalogSetoConnection=nothing设置跟多的信息,这里是OLAP剖析服务处置义务SetoTask=oPackage.Tasks("DTSTask_DTSOlapProcess.Certificate")SetoCustomTask=oTask.CustomTaskSetoTask=nothingoCustomTask.Properties("TreeKey").Value=sOLAPServer&""_&sOLAPCatalog&"CubeFolderCertificate"SetoCustomTask=nothing前往乐成形态Main=DTSTaskExecResult_SuccessEndFunction
2.3.保留为布局化的存储文件
这个历程相称的复杂,经由过程企业办理器能够完成。另存为的布局化存储文件就是我们要分发的DTS包。
2.4.导进到MSSQLServer
我们必要经由过程DTS编程来完成这个历程。必要夸大的是,上面这段示例必要在ApartmentState为STA线程中才能够准确的被挪用。
publicvoidGo(){DTS.Package2Classpkg=newDTS.Package2Class();DTS.Applicationapp=newDTS.ApplicationClass();//从SQLSERVER中删除已存在的同名DTS包try{pkg.RemoveFromSQLServer(DBServer,DBSUserID,DBSPassword,DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default,"","",PkgName);}catch{}//获得待分发DTS包(布局化的存储文件)的包信息,这里假定包中只包括一个版本DTS.SavedPackageInfosinfos=pkg.GetSavedPackageInfos(UNCFile);DTS.SavedPackageInfoinfo=infos.Item(1);objectobj1=null;objectobj2=null;stringsPkgID=info.PackageID;stringsVerID=info.VersionID;stringsPkgName=info.PackageName;//载进布局化的存储文件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();//反省是不是保留乐成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();mPkgID=inf.PackageID;mVerID=inf.VersionID;}
2.5.增加功课
增加功课能够用传统的体例,用SQL语句可做到,不做具体申明。MSSQLServer更是供应一系列的存储历程对功课举行修正,以到达用户预期的效果。
3.小结
文章到此已到达我们的方针。整体上说,2.2这步的完成有些坚苦,在完成历程傍边也碰着过良多坚苦,有一些是在旧事组中失掉的解答,别的的步骤检察MSDN都能够失掉对照简单的办理。
对于insert和delete,event中包含了插入/删除的记录的所有字段的值(太爽了。。)
作者:
山那边是海
时间:
2015-1-19 07:21
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
作者:
小女巫
时间:
2015-1-24 19:16
所以你总能得到相应的升级版本,来满足你的需求。
作者:
柔情似水
时间:
2015-2-2 12:45
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
作者:
海妖
时间:
2015-2-7 20:23
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
作者:
第二个灵魂
时间:
2015-2-23 10:28
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
作者:
金色的骷髅
时间:
2015-2-23 10:28
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
作者:
愤怒的大鸟
时间:
2015-3-7 08:11
SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。
作者:
不帅
时间:
2015-3-14 16:15
无法深入到数据库系统层面去了解和探究
作者:
小妖女
时间:
2015-3-21 13:08
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2