Processo de Backup SQL no SAP Business One – Artigo 3/3 – Soluções Definitivas
Processo de Backup SQL no SAP Business One – Artigo 3/3
Novembro 1, 2016 Dicas SAP B1 0 Comments	0
Processo backup – agendamento por meio do agendador de tarefas do Windows
Neste processo, você tem três etapas para fazer backup de seus bancos de dados SQL Server usando o Agendador de tarefas do Windows:
Etapa um: uso SQL Server Management Studio Express ou Sqlcmd para criar o procedimento armazenado no banco de dados mestre:
/ / Copyright © Microsoft Corporation. Todos os direitos reservados.
/ / Este código lançado sob os termos da
/ / Licença pública do Microsoft (MS-PL http://opensource.org/licenses/ms-pl.html.)
[Mestre] uso
/ ****** Objeto: StoredProcedure [dbo].[sp_BackupDatabases] ****** /
-Autor: Microsoft
-Data de criação: 06-02-2010
-Descrição: bancos de dados de Backup para SQLExpress
-Parâmetro1: databaseName
-Parâmetro2: TipoDeBackup F = completo, D = diferencial, L = log
-Parâmetro3: local do arquivo de backup
procedimento CREATE [dbo]. [sp_BackupDatabases]
@ sysname databaseName = null,
@ TipoDeBackup char (1),
— Pick out only databases which are online in case ALL databases are chosen to be backed up
— If specific database is chosen to be backed up only pick that out from @DBs
— Filter out databases which do not need to backed up
IF @backupType='F'
Excluir @ DBs onde DBNAME em ('tempdb', 'Northwind', 'pubs', 'AdventureWorks')
ELSE IF @ TipoDeBackup = tinha '
DELETE @ DBs onde DBNAME em ('tempdb', 'Northwind', 'pubs' 'mestre', 'AdventureWorks')
ELSE IF @ TipoDeBackup = 'l'
-declarar variáveis
DECLARE @ NomeDoBackup varchar(100)
DECLARE @ DBNAME varchar(300)
@ Loop DECLARAR int
-Loop pelos bancos de dados, um por um
selecione @ Loop = min(ID) de @ DBs
ENQUANTO @ Loop É não nulo
– têm nomes de banco de dados no formato [dbname], pois alguns têm – ou _ no nome de
Definir @ DBNAME = '[' +(SELECT DBNAME FROM @DBs WHERE ID = @Loop) +']'
– definir o formato de n yyyyhhmmss de data e hora atual
conjunto @ dateTime = substituir (converter (VARCHAR, GETDATE(),101),'/',") + '_' +substituir (converter (VARCHAR, GETDATE(),108),':',")
– – criar o arquivo backup no formato path\filename.extension para backups de log, comparação e completo
se @ TipoDeBackup = 'F'
definir @ BackupFile = @ backupLocation + REPLACE (substituir (@ DBNAME, ' [', '),'] ', ') '_FULL_' + @ dateTime + '.BAK'
definir @ BackupFile = @ backupLocation + REPLACE (substituir (@ DBNAME, ' [', '),'] ', ') '_DIFF_' + @ dateTime + '.BAK'
definir @ BackupFile = @ backupLocation + REPLACE (substituir (@ DBNAME, ' [', '),'] ', ') '_LOG_' + @ dateTime + '.TRN'
– Forneça um nome para o armazenamento em mídia de backup
definir @ NomeDoBackup = REPLACE(REPLACE(@DBNAME,'[',"),']',") +' backup completo para ' + @ dateTime
se @ TipoDeBackup = tinha '
definir @ NomeDoBackup = REPLACE(REPLACE(@DBNAME,'[',"),']',") +' backup diferencial para ' + @ dateTime
definir @ NomeDoBackup = REPLACE(REPLACE(@DBNAME,'[',"),']',") +' backup de log de ' + @ dateTime
– gerar o comando SQL dinâmico a ser executado
conjunto @ sqlCommand = 'BACKUP DATABASE' +@DBNAME+ ' para disco = ' ' +@BackupFile+ ' ' WITH INIT, NAME= "' +@BackupName+"', NOSKIP, NOFORMAT'
IF @backupType = 'D'
SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+ ' TO DISK = "'+@BackupFile+ "' WITH DIFFERENTIAL, INIT, NAME= "' +@BackupName+"', NOSKIP, NOFORMAT'
IF @backupType = 'L'
SET @sqlCommand = 'BACKUP LOG ' +@DBNAME+ ' TO DISK = "'+@BackupFile+ "' WITH INIT, NAME= "' +@BackupName+"', NOSKIP, NOFORMAT'
— Execute the generated SQL command
— Goto the next database
SELECT @Loop = min(ID) FROM @DBs where ID > Loop @
Etapa B: em um editor de texto, crie um arquivo em lotes chamado Sqlbackup.bat e copie o texto de um dos exemplos a seguir no arquivo, dependendo do cenário:
Exemplo1:Backups completos de todos os bancos de dados na instância local nomeado do SQLEXPRESS usando a autenticação do Windows
sqlcmd -S. – e \EXPRESS -Q "EXEC sp_BackupDatabases @ backupLocation = tinha: \SQLBackups\', @ TipoDeBackup = 'F'"
Exemplo2: backups diferenciais de todos os bancos de dados na instância local nomeado do SQLEXPRESS usando um SQLLogin e sua senha
Sqlcmd – U SQLLogin -P senha -S. \SQLEXPRESS -Q "EXEC sp_BackupDatabases @ backupLocation = 'D:\SQLBackups', @ TipoDeBackup = tinha '"
Observação: O SQLLogin shouldhave pelo menos a função de operador de Backup SQL Server.
Exemplo 3:Backups de log de todos os bancos de dados local chamado instância SQLEXPRESS usando a autenticação do Windows
Sqlcmd -S. \SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @ backupLocation='D:\SQLBackups\',@backupType='L'"
Exemplo 4:Backups completos do banco de dados USERDB na instância local nomeada do SQLEXPRESS usando a autenticação do Windows
Sqlcmd -S. \SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @ backupLocation = tinha: \SQLBackups\', @ databaseName = 'USERDB', @ TipoDeBackup = 'F'"
Da mesma forma, você pode fazer um diferencial backup de USERDB colando no seria ' para o parâmetro @ TipoDeBackup e um backup de log de USERDB, colando 'L' para o parâmetro @ TipoDeBackup .
Etapa c:Agendar um trabalho usando o Agendador de tarefas do Windows para executar o arquivo em lotes criado na etapa B. Para isso, siga estas etapas:
No computador que está executando o SQL Server Express, clique em Iniciar, aponte para Programas, aponte para Acessórios, aponte para Ferramentas do sistemae clique em tarefas agendadas.
Clique duas vezes em Adicionar tarefa agendada.
No Assistente de tarefa agendada, clique em Avançar.
clique em Procurar, clique no arquivo em lotes criado na etapa b e clique em Abrir.
Digite SQLBACKUPpara o nome da tarefa, clique em diárioe clique em Avançar.
Especifique informações de uma agenda executar a tarefa. (Recomendamos que você execute essa tarefa pelo menos uma vez por dia.) Em seguida, clique em Avançar.
No campo Digite o nome do usuário, digite um nome de usuário e digite uma senha no campo Digite a senha.Observação Este usuário menos deve atribuído a função BackupOperator no nível de SQL Server se você estiver usando um dos arquivos de lote no exemplo 1, 3 ou 4.
Clique em Avançare em Concluir.
Execute a tarefa agendada pelo menos uma vez para certificar-se de que o backup é criado com êxito.
Observaçãoa pasta para o executável SQLCMD é geralmente em variáveis de caminho para o servidor depois de SQL Server é instalado, mas se a variável Path não lista nesta pasta, pode encontrar em < local > \90\Tools\Binn(por exemplo: C:\Program Files\Microsoft SQL Server\90\Tools\Binn).
Estar ciente do seguinte ao usar o procedimento documentado neste artigo:
O serviço Agendador de tarefas do Windows deve estar executando no momento em que o trabalho é agendado para execução. Recomendamos que você defina o tipo de inicialização para este serviço como automático. Isso garante que o serviço será executado mesmo em uma reinicialização.
Há deve ser muito espaço na unidade em que os backups estão sendo gravados. Recomendamos que você limpe os arquivos antigos na pasta de backup regularmente para certificar-se de que você não execute espaço em disco. O script não contém a lógica para limpar arquivos antigos.