Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Rotina de Backup para Banco SQL
Message
De
31/12/2004 14:01:48
Peter Wagner
Point Informática Ltda.
Limeira, Brésil
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 7
OS:
Windows 2000
Network:
Windows 2000 Server
Database:
MS SQL Server
Divers
Thread ID:
00972439
Message ID:
00973568
Vues:
18
Leandro,
a rotina que te enviei de exemplo funciona sim pois eu a testei aqui sem problemas...
Segue abaixo codigo de exemplo p/ Backup/Restore/Script usando SQL-DMO via VFP.
Não recomendo que se faça Restore via DMO, mesmo sendo possivel, pois nào encontrei forma de se saber quantos Backup's de LOG foram feitos p/ poder controlar no SQL-DMO ao fazer o Restore.
De qq. forma segue o exemplo, mas vc deverá ver no BOL maiores informações se desejar incrementar o Backup/Restore.
Veja se vc esta usando Dispositivos ou armazenando em um arquivo o Backup !
***** Exemplo para exibir o Script T-SQL do Backup via SQL-DMO pelo VFP.
LOCAL oBackup AS 'SQLDMO.Backup'
LOCAL oServer AS 'SQLDMO.SqlServer'
oServer = CREATEOBJECT('SQLDMO.SqlServer')
oServer.CONNECT("BOSS700","sa", "sa")
oBackup = CREATEOBJECT('SQLDMO.Backup')
oBackup.Action 				 = 0
oBackup.DATABASE   			 = "Atuante"
oBackup.FILES      			 = '[C:\Arquivos de programas\Microsoft SQL Server\MSSQL\BACKUP\Backup_SQL_DMO.BAK]'
oBackup.Devices 			 = [Dispositivo1] 	&& Tem que existir previamente...(Atenção)
oBackup.BackupSetName 	     = "MeuBackup"
oBackup.BackupSetDescription = "Backup feito via SQL DMO pelo VFP"
oBackup.Initialize 			 = .F.
Script_Tsql 				 = oBackup.GenerateSQL

?Script_Tsql
* PS: oBackup.Devices = [Dispositivo1] && Tem que existir previamente...(Atenção)
* Só deve ser usado se for usar multiplos dispositivos, usar somente se tiver criado o dispositivo previamente
* e não pode misturar backup de Dispositivo com backup de Arquivo, portanto se usar Dispositivo não pode definir .FILES
***** Exemplo de Backup 
LOCAL oBackup AS 'SQLDMO.Backup'
LOCAL oServer AS 'SQLDMO.SqlServer'
oServer = CREATEOBJECT('SQLDMO.SqlServer')
oServer.CONNECT("BOSS700","sa", "sa")
oBackup = CREATEOBJECT('SQLDMO.Backup')
WITH oBackup
	.Initialize 		= .T.	&& Sobrescreve o Dispositivo de backup se for .T. e Adiciona se form .F.
	.Action 		= 0	&& 0 = Banco de dados ; 1 = Incremental ; 2 = Arq. especificados ; 3 = Transaction Log
	.DATABASE   		= "Atuante"
	.FILES      		= '[C:\Arquivos de programas\Microsoft SQL Server\MSSQL\BACKUP\Backup_SQL_DMO.BAK]'
	.BackupSetName 		= "MeuBackup"
	.BackupSetDescription = "Backup feito via SQL DMO pelo VFP"
	.GenerateSQL
	.SQLBackup(oServer)		&& Inicia o backup (Só p/ Action = 0 ou 3)
ENDWITH
****** Exemplo de Restore (modelo, pois depende do N° de LOG's)
LOCAL oRestore AS 'SQLDMO.Restore'
LOCAL oServer AS 'SQLDMO.SqlServer'
oServer = CREATEOBJECT('SQLDMO.SqlServer')
oServer.CONNECT("BOSS700","sa", "sa")

oRestore.Action = 0 		&& 0 = Banco de Dados ; 1 = Arquivos ; 2 = Log
oRestore.Devices = [Dispositivo1]&& Backup de Dispositivo e não de arquivo...
oRestore.FileNumber = 1		&& Pegar o 1° arquivo armazenado no dispositivo (Banco de dados) 
oRestore.Database = "Atuante"	&& Nome do banco de dados
oRestore.ReplaceDatabase = .T.	&& Sobrescreve os dados existentes
oRestore.LastRestore = .F.	&& Define que não é o ultimo restore de Log
oRestore.SQLRestore(oServer)	&& Executa o Restore p/ o banco de dados

oRestore.Action = 2		&& Restaurar LOG
oRestore.FileNumber = 2		&& Pegar o 2° arquivo do dispositivo definido acima
oRestore.LastRestore = .F.	&& Define que não é o ultimo restore de Log (Reforçar)
oRestore.SQLRestore(oServer)	&& Executa o Restore p/ o arquivo de LOG

* Repetir até o ultimo arq. LOG desejado, então no ultimo ...
oRestore.FileNumber = 3		&& Pegar o 3° arquivo do dispositivo definido acima
oRestore.LastRestore = .T.	&& Define que é o ultimo restore de LOG
oRestore.SQLRestore(oServer)	&& Executa o Restore p/ o arquivo de LOG (Ultimo)
[ ]'s
Peter

>Olá Peter,
>
>Não funcionou, está ocorrendo o erro: Cannot open backup device.
>
>Leandro.
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform