Ir a contenido


MENSAJE DE BIENVENIDA Foro vínculado con Twitter, más info aquí.

“El secreto para progresar es empezar por algún lugar. El secreto para empezar por algún lugar es fragmentar tus complejas y abrumadoras tareas de tal manera que queden convertidas en pequeñas tareas que puedas realizar y entonces simplemente comenzar por la primera.” - Mark Twain

Foto

VBS Script para mover Bases de Datos entre Webapplications


  • Please log in to reply
No replies to this topic

#1 Alberto Dominguez

Alberto Dominguez

    Gurú

  • Administradores
  • 1.059 Mensajes:
  • LocationMadrid

Escrito 29 mayo 2012 - 12:58

Dejo un vbs para mover bases de datos de una Aplicación a otra. El listado de Bases de datos debe estar en un archivo llamado en este caso BaseDatos.txt:

'**************************************************************************************************************
'*   Programa: CambioBasesDatosMOSS.vbs                                                                        *
'*   Descripcion: Script usado para mover Bases de Datos desde apporigen a appdestino.                        *
'*   Autor:  Alberto Dominguez                                                                                *
'**************************************************************************************************************

Option Explicit
'On error resume next

'***************************
'*   Constantes            *
'***************************

Const FICHEROBDS="c:\temp\BasesDatos.txt"
Const FICHEROLOG="c:\temp\BasesDatos.log"
Const DBSERVER="SERVIDOR\INSTANCIASQL"
Const APPORIGEN="http://urlapporigen"
Const APPDESTINO="http://urlappdestino"
Const LECTURA = 1
Const ESCRITURA = 2

'***************************
'*   Variables             *
'***************************

Dim oWSH : Set oWSH = CreateObject( "WScript.Shell" )
Dim t, objFSO, objFichero
Set objFSO = CreateObject("scripting.filesystemobject")
Dim arrLineasFichero()
Dim errores()
Dim Linea, basedatos, lineaLog, nRet


'***************************
'*   Programa Principal    *
'***************************

If objFSO.FileExists(FICHEROBDS) Then

  Set objFichero = objFSO.opentextfile(FICHEROBDS, LECTURA)
  t=0
  Do Until objFichero.AtEndOfStream
    ReDim Preserve arrLineasFichero(t)
    Linea=objFichero.ReadLine
    arrLineasFichero(t) = Linea
    t = t + 1
  Loop
  objFichero.Close

  Set objFichero = objFSO.opentextfile(FICHEROLOG, ESCRITURA)

  For Each basedatos in arrLineasFichero
  
    nRet = oWSH.Run("stsadm.exe -o deletecontentdb -url " & APPORIGEN & " -databasename " & basedatos & " -databaseserver " & DBSERVER, 0, True )
    
    If nRet <> 0 Then
      lineaLog = basedatos & ": ERROR en Borrado"
    Else
      lineaLog = basedatos & ": OK en Borrado"
    End If 

    objFichero.WriteLine(lineaLog)

    nRet = oWSH.Run("stsadm.exe -o addcontentdb -url " & APPDESTINO & " -databasename " & basedatos & " -databaseserver " & DBSERVER & " -sitewarning 5 -sitemax 10", 0, True )
    
    If nRet <> 0 Then
      lineaLog = basedatos & ": ERROR en Añadido"
    Else
      lineaLog = basedatos & ": OK en Añadido"
    End If 

    objFichero.WriteLine(lineaLog)

  Next

  objFichero.Close  
	
End If

WScript.Quit

Recomiendo meter en código en un archivo .vbs y ejecutarlo con cscript para evitar la formación de hilos cmd que no veamos.
Saludos,

Alberto Dominguez

Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Imagen enviadaPerfil Profesional Imagen enviadaTwitter
Imagen enviadaImagen enviadaImagen enviadaImagen enviada




0 usuarios están leyendo este tema

0 miembro/s, 0 invitado/s, 0 usuario/s anónimo/s