Shanghai Tengke Education Dream Database Training Compartilhamento de produtos secos Use BAT no WINDOWS para executar periodicamente operações de backup

No sistema de separação de leitura e gravação Dameng, quando o host está sob alta pressão, podemos escolher fazer backup da máquina de backup para backup completo do banco de dados, mas a máquina de backup não pode usar o trabalho de proxy que vem com DM7 para backup. Use apenas ETL ou scripts para backup de banco de dados. Nesse caso, podemos usar o script BAT para realizar backups completos regulares, backups incrementais do banco de dados e excluir conjuntos de backups não utilizados.

 

Primeiro crie um procedimento armazenado PRO_BackupDatabase para backup no banco de dados

 

criar ou substituir PROCEDURE   PRO_BackupDatabase

Como

declarar

bakname VARCHAR2 (300);

BAKSTR VARCHAR2 (300);

V_DATE VARCHAR2 (50);

início

selecione  to_char (sysdate, 'day') dia  em   V_DATE;

IF   V_DATE = 'sábado'  ENTÃO

definir  bakname = 'DB_DAMENG_FULL_' || TO_CHAR (SYSDATE, 'YYYY_MM_DD_HH24_MI_SS');

defina  BAKSTR = 'banco de dados de backup completo para' || ' "'|| bakname ||' "'||' backupset '' D: \ data \ bak \ '|| bakname || '' 'thread de tarefa 4 paralelo 4;';

PRINT   BAKSTR;

EXECUTE IMMEDIATE   BAKSTR;

OUTRO

definir  bakname = 'DB_DAMENG_INCRE_' || TO_CHAR (SYSDATE, 'YYYY_MM_DD_HH24_MI_SS');

definir  BAKSTR = 'incremento do banco de dados de backup com backupdir' 'D: \ data \ bak' 'para' || '"' || bakname || '"' || ' backupset '' D: \ data \ bak \ '|| bakname ||' '' thread de tarefa 4 paralelo 4; ';

PRINT   BAKSTR;

EXECUTE IMMEDIATE   BAKSTR;

END IF ;

fim ;

 

Aqui está um backup completo no sábado e um backup incremental nos outros dias. O diretório de backup é D: \ data \ bak

Em seguida, comece a escrever o script BAT

Exibir o script de backup e o SQL de chamada correspondente

conteúdo add_bak:

 

@ echo  off

Definir  usuário = SYSDBA

Definir  Pass = SYSDBA

Definir  IP = LOCALHOST

Definir  SysDate = % date: ~ 0,4% - % date: ~ 5,2% - % date: ~ 8,2%

@ echo  time = % SysDate%

@ echo  username = % User%

@ echo  password = % Pass%

@ echo  endereço IP = % IP%

@ echo ***** Backup de banco de dados ******

cd  E: \ 工作 \ dmdbms \ dm7_setup_win64_ent_release_20180504 \ source \ bin

E:

disql.exe  % User% / % Pass% @ % IP%  `D: \ data \ bak_job \ bak.sql

@ echo  end

 

Você pode modificar manualmente USER, PASS, IP e o script SQL de execução correspondente. Meu bak.sql está localizado em D: \ data \ bak_job.

conteúdo bak.sql:

 

CALL  PRO_BackupDatabase ();

SAIR ;

 

Em seguida, o script BAT excluído do backup

conteúdo del_bak: 

 

@ echo  off

definir  SrcDir = D: \ data \ bak

@ echo  delete date % date%

@ echo  exclui arquivos de backup e diretórios vazios que expiraram 7 dias atrás

REM especifica o número de dias

definir  DaysAgo = 7

 

powershell -c "Get-ChildItem -Path ' % SrcDir% ' -Recurse -ErrorAction: SilentlyContinue  |  Where-Object -FilterScript {(((get-date) - ($ _. CreationTime)). days -gt  % DaysAgo%  - e $ _. PsISContainer -ne $ True)}  | Remove-Item -Force "

 

para  / f "delims =%% a  in  (' dir  / ad / b / s D: \ data \ bak \ ^ | sort / r')  do  (

rd  " %% a " > nul  2 > nul && echo O diretório vazio " %% a " foi excluído com sucesso! )

@ echo  delete end

 

Depois, há o arquivo BAT para registro e chamada

conteúdo start_bak.bat:

 

@ echo  off

Definir  SysDate = % date: ~ 0,4% - % date: ~ 5,2%

cd  D: \ data \ bak_job

D:

@ echo  excluir backup

chamar  del_bak.bat >> Delete_ % SysDate% _log.txt

@ echo  iniciar backup

chame  add_bak.bat >> Bakup_ % SysDate% _log.txt

@ echo  end

Pausa

 

Agora vamos fazer um backup completo e um aumento, e deletar os dados para tentar

Defina a hora para sábado

Em seguida, execute start_bak.bat, onde adicionei uma pausa ao script para facilitar a visualização

 

 

 

Sem problemas pela primeira vez

Em seguida, modifique a hora para o segundo ou terceiro dia, reinicie o banco de dados para backup

 

O backup crescente também pode ser executado normalmente, agora tente deletar o backup, vou ajustar a data para o terceiro sábado

 

O log de exclusão e backup é registrado uma vez por mês

Acho que você gosta

Origin blog.csdn.net/qq_42726883/article/details/108528580
Recomendado
Clasificación