部署 Analysis Services 2000 单个 Cube
此脚本允许将单个 Cube 从一个服务器部署到另一个服务器
引言
此脚本简化了从一台服务器到另一台服务器的单个 Cube 的部署。
背景
为了以简单直接的方式访问如此丰富、可扩展、范围广泛的功能集,决策支持对象 (DSO) 库为任何可以支持组件对象模型 (COM) 对象和接口的开发环境(例如 Microsoft Visual C++®、Microsoft Visual Basic® 和 Microsoft Visual Basic Scripting Edition)提供了一个分层对象模型。
有关更多信息,请参阅 介绍决策支持对象。
Using the Code
此脚本使用 DSO 对象以 VBScript 编写。
'--------------------------------------------------------------------------
' Name       : DeployAS2kCUBE.vbs
' Author     : Manuel Cavalieri
' Date       : 27 Sep 2007
' Description: 
' Notes      : 
'
'              
'
' Revision History:
' Date          Description
'----------------------------------------------------------------------------
Dim vbCrLf
Dim m_sSourceServer     
Dim m_sSourceDatabase     
Dim m_sSourceCube     
Dim m_sTargetServer     
Dim m_sTargetDatabase     
Dim m_sTargetCube     
vbCrLf = chr(13) & chr(10)
Const olapLockWrite = 8
If WScript.Arguments.Count = 6 Then
    m_sSourceServer     = WScript.arguments(0)
    m_sSourceDatabase     = WScript.arguments(1)
    m_sSourceCube         = WScript.arguments(2)
    
    m_sTargetServer     = WScript.arguments(3)
    m_sTargetDatabase     = WScript.arguments(4)
    m_sTargetCube         = WScript.arguments(5)
Else
    sMsg = WScript.ScriptName & " richiede 6 argomenti:" & vbCrLf _
           & "    - Nome/IP Address of Analysis Services Server source" & vbCrLf _
           & "    - Source Database Namee" & vbCrLf _
           & "    - Source Cube Name" & vbCrLf _
           & vbCrLf _
           & "    - Name/IP Address of Analysis Services Server Destination" & vbCrLf _
           & "    - Target Database Name" & vbCrLf _
           & "    - Target Cube Name" & vbCrLf _
           & "This script copy Cube from a source OlapDB to another and process the cube" & vbCrLf
    WScript.echo sMsg
    WScript.quit(1)
End If
Dim oSourceServer
Dim oSourceCube
Dim oTargetServer
Dim oTargetDatabase
Dim oTargetCube
Dim oCubeBkp
Set oSourceServer = CreateObject("DSO.Server")
Call oSourceServer.Connect(m_sSourceServer)
Set oSourceCube = oSourceServer.MDStores(m_sSourceDatabase).MDStores(m_sSourceCube)
Set oTargetServer = CreateObject("DSO.Server")
Call oTargetServer.Connect(m_sTargetServer)
Set oTargetDatabase = oTargetServer.MDStores(m_sTargetDatabase)
Call oTargetDatabase.LockObject(olaplockWrite, "Deploy Cubes...")
If Not oTargetDatabase.MDStores.Find(m_sTargetCube) Then
    '== Set oSourceCube = oSourceServer.MDStores(m_sSourceDatabase).MDStores(m_sSourceCube)
    Set oTargetCube = oTargetDatabase.MDStores.AddNew(m_sTargetCube)
    Call oSourceCube.Clone(oTargetCube)
    Call oTargetCube.Update()
Else
    Set oTargetCube = oSourceServer.MDStores(m_sSourceDatabase).MDStores(m_sTargetCube)
    Set oCubeBkp = oTargetDatabase.MDStores.AddNew(m_sTargetCube & "_" & Year(Now()) & _
                                     Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now()))
    Call oTargetCube.Clone(oCubeBkp)
    Call oCubeBkp.Update()
    Call oTargetDatabase.MDStores.Remove(m_sTargetCube)
    
    Set oTargetCube = oTargetDatabase.MDStores.AddNew(m_sTargetCube)
    Call oSourceCube.Clone(oTargetCube)
    
    Call oTargetCube.Update()
End If
Call oTargetDatabase.Update()
Call oTargetDatabase.UnLockObject()
Call oTargetCube.Process()
Call oTargetServer.Update()
WScript.echo "Done."
关注点
此脚本非常有用,可以部署单个 Cube,而无需部署数据库中包含的整个 Cube 集。
历史
- 2007年10月5日 -- 首次发布




