ViteSoft - Compartilhando tecnologia

Comunidade VSCyber free
Bem-vindo: Qua Jan 08, 2025 5:54 pm

Todos os horários são GMT - 3 horas




Criar novo tópico Responder  [ 12 mensagens ]  Ir para página Anterior  1, 2
Autor Mensagem
 Título: Re: Backup e restore com Firebird 2.0
MensagemEnviado: Sex Dez 12, 2008 1:17 am 
Offline
Moderador global
Moderador global

Registrado em: Sáb Out 07, 2006 9:38 am
Mensagens: 2339
Localização: Birigui - SP
xD.

Vivendo e aprendendo. xD

Tenho memória meio curta, xD. Nem lembrava mais dessa chave. xD. Acho que ela serviu para o suporte a varias versões néh.xD


Nossa o que o o sono das 2:00 e pouco num faz com o individuo.

Citação:
É importante lembrar que em alguns casos o banco de dados pode estar em uma máquina onde nunca foi instalado o VSCyber, nestes casos essas chaves não existem. Parece que a variável bKey serviria para isso, mas ela não está sendo utilizada.


É nesse caso não resolveria, muito, mas era tarde. A intenção foi boa convenhamos. xD

Na próxima eu tento acertar.xD

_________________
Contatos: diegocdeb@hotmail.com
Baixe o TeamViewerQS para agilizar.

________________
Moderador Global - VSCyber
Voluntário
Lembre-se: Antes de perguntar, use a Pesquisa


Voltar ao topo
 Perfil  
 
 Título: Re: Backup e restore com Firebird 2.0
MensagemEnviado: Sex Dez 12, 2008 4:55 am 
Offline
Moderador global
Moderador global

Registrado em: Sáb Out 07, 2006 9:38 am
Mensagens: 2339
Localização: Birigui - SP
André trabalhei nisso das 3:30 as 5:30, põem os defeitos aew. xD.

Só VBScript que trampo.

Se esta em uma maquina que não tenha o admin instalado pede local do BD e IP do servidor (portanto faz bkp de maquina remota){não testada efetivamente}
Escreve no registro as informações colidas.
Faz Gfix, Gback(bck), Gback(gdb)

Sera necessário edita-lo no bloco de notas para personalizar, atendo-se apenas a area indicada.

Código:
' BACKUP.VBS desenvolvido por Canton

Option Explicit
Dim WshShell, bKey, keyexist, fldr, oFso, bdvscyber, bdipserver,localfb,senha, localbck,localgdbbkp, aExec, bExec, cExec
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oFso = CreateObject("Scripting.FileSystemObject")
'*******************************************************************************************************************
'*******************************************************************************************************************
'                                                                 Atenção só altere os dados abaixo mantendo as ASPAS
'___________________________________________________________________________________________________________________
senha = "masterkey"
localbck = "C:\bkpS\testeBck"
localgdbbkp = "C:\bkpS\testeGDB"
'*******************************************************************************************************************
'*******************************************************************************************************************

' Verifica se a chave existe
function KeyExists(byval sKeyPath)
    keyExists= false
    sKeyPath= trim(sKeyPath): if (sKeyPath="") then exit function
    if not (right(sKeyPath, 1)="\") then sKeyPath= sKeyPath & "\"

    on error resume next
        createobject("wscript.shell").regRead sKeyPath

        select case err
           case 0: keyExists= true

           case &h80070002: dim sErrMsg
               sErrMsg= replace(err.description, sKeyPath, "")
               err.clear

               createobject("wscript.shell").regRead "HKEY_ERROR\"
               keyExists= not (sErrMsg=replace(err.description, _
                  "HKEY_ERROR\", ""))
        end select
    on error goto 0
end function

' Variavel que testa se o VScyber esta instalado
bKey = "HKEY_LOCAL_MACHINE\SOFTWARE\VSCyber"
' Testa a variavel
if keyExists(bKey) then

bdvscyber = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\VSCyber\DBPath")
bdipserver = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\VSCyber\DBServerName")
' Se não esta instalado pede o caminho
else
' Pega o caminho digitado e cria uma chave para automatizar os próximos BKPs
bdvscyber = InputBox("Não existe VSCyber instalado nessa maquina, não é possivél determinar o local do BD" & vbCrLf & "Favor informar a localização do VSCyber.gdb" & vbCrLf & "Digite o local", "Backup")
bdipserver = InputBox("Não existe VSCyber instalado nessa maquina, não é possivél determinar o IP do servidor do BD" & vbCrLf & "Favor informar o IP do servidor do VSCyber.gdb" & vbCrLf & "Digite o IP", "Backup")

' grava no registro
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\VSCyber\DBPath", bdvscyber
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\VSCyber\DBServerName", bdipserver

End if
' Variavel determina o local de instalação do FB
localfb = WshShell.RegRead("HKLM\SOFTWARE\Firebird Project\Firebird Server\Instances\DefaultInstance")

' Cria a pasta caso não exista
 MakeDir (localbck)
 MakeDir (localgdbbkp)
Function MakeDir (strPath)
   Dim strParentPath, objFSO
  Set objFSO = CreateObject("Scripting.FileSystemObject")
   On Error Resume Next
   strParentPath = objFSO.GetParentFolderName(strPath)

  If Not objFSO.FolderExists(strParentPath) Then MakeDir strParentPath
   If Not objFSO.FolderExists(strPath) Then objFSO.CreateFolder strPath
   On Error Goto 0
  MakeDir = objFSO.FolderExists(strPath)
End Function

' faz a manutenção no BD
Set aExec = WshShell.Exec(localfb & "bin\gfix.exe -user SYSDBA -password " & senha & " -mend -full -ignore " & chr(34) & bdipserver & ":" & bdvscyber & chr(34))
' Aguarda o fim
Do While aExec.Status <> 1
    WScript.Sleep 100
Loop
' Backupea o BD
Set bExec = WshShell.Exec(localfb & "bin\gbak.exe -b -t -user SYSDBA -password " & senha & " " & chr(34) & bdipserver & ":" & bdvscyber & chr(34) & " " & chr(34) & localbck & "\bkp_a.gbk" & chr(34))
' Aguarda o fim
Do While bExec.Status <> 1
    WScript.Sleep 100
Loop
' Gera um novo GDB na pasta escolhida
Set cExec = WshShell.Exec(localfb & "bin\gbak.exe -c -rep -user SYSDBA -password " & senha & " " & chr(34) & localbck & "\bkp_a.gbk" & chr(34) & " " & chr(34) & localgdbbkp & "\VSCyber.gdb" & chr(34))
' Aguarda o fim
Do While cExec.Status <> 1
    WScript.Sleep 100
Loop
MsgBox "Feito" & vbCrLf & "BD em: " & bdvscyber & vbCrLf & "BCK em: " & localbck & vbCrLf & "Backup de GDB em: " & localgdbbkp, vbInformation, "Backup"


EM anexo o arquivo pronto.


Anexos:
Descrição do arquivo: Sistema Backupeador do BD do VSCyber escrito em VBScript por Canton. De madrugada. xD.
backup.zip [2.55 KiB]
Baixado 177 vezes

_________________
Contatos: diegocdeb@hotmail.com
Baixe o TeamViewerQS para agilizar.

________________
Moderador Global - VSCyber
Voluntário
Lembre-se: Antes de perguntar, use a Pesquisa
Voltar ao topo
 Perfil  
 
Exibir mensagens anteriores:  Ordenar por  
Criar novo tópico Responder  [ 12 mensagens ]  Ir para página Anterior  1, 2

Todos os horários são GMT - 3 horas


Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes


Enviar mensagens: Proibido
Responder mensagens: Proibido
Editar mensagens: Proibido
Excluir mensagens: Proibido
Enviar anexos: Proibido

Procurar por:
Powered by phpBB® Forum Software © phpBB Group
Traduzido por: Suporte phpBB