Salvare ciclică pe zi din săptămână

Salvare ciclică pe zi din săptămână.

Pe Internet, puteți găsi adesea articole despre scrierea de scripturi pentru arhivarea automată a bazelor de date MSSQL. Metodologia în care propunerea creează o nouă arhivă în fiecare zi nouă.







Vă sugerez o îmbunătățire minoră a scenariilor și generarea de arhive în zilele săptămânii, cu suprascrierea lor ciclică. De asemenea, scenariul nu este complet al meu, dar este compus din diferite exemple găsite pe Internet, dar sper că versiunea prezentată va fi utilă nu numai pentru mine.

Pentru a copia un server SQL, utilizați scriptul obișnuit:

DECLARE @pathName NVARCHAR (512)

SET @pathName = 'D: \ Backup \ db_backup_' + Convertiți (varchar (8), GETDATE (), 112)

BACKUP DATABASE [MyDataBase] DE DISC = @pathName CU NOFORMAT. INIT. NAME = N'db_backup ". Omite. NOREWIND. NOUNLOAD. STATS = 10

Acest script creează o copie de rezervă cu numele fișierului db_backup_YYYYDDMM.bak unde YYYYDDMM este data curentă. Data din numele fișierului ne permite să creăm o copie de rezervă în fiecare zi într-un fișier nou. Rulați și verificați dacă copia de rezervă este într-adevăr creată așa cum aveți nevoie. Acest script este salvat într-un dosar numit schedule.sql, presupunând că c: \ a efectuat sarcini. În același director, creați fișierul executabil backup.bat, care citește:

SetLocal EnableExtensions EnableDelayedExpansion

Pentru / F "Tokens = 1 * Delims ==" %% i In ('Calea WMIC Win32_LocalTime Get / Value ^ | Find "="

Dacă "% $ DayOfWeek%" == "0" setați $ DayOfWeek = 7

Pentru / F "Token =% $ DayOfWeek%" %% i În ("Luni Marți Miercuri Joi Vineri Sâmbătă Duminică") Setați $ DayOfWeekName = %% i

Echo Luna. % $ MonthName% (% $ Month luna în prima lună a anului)

Echo DayOfWeek. % $ DayOfWeekName% (% $ DayOfWeek% zi din săptămână)

Echo Quarter. % $ Trimestrul%

Echo minute. % $ Minute%

Echo În al doilea rând. % $ Al doilea%

sqlcmd -S SEVERNAME -U Nume de utilizator -P Parola -i schedule.sql

del D: \ Backup \ db_backup _% $ DayOfWeekName% .rar

"C: \ Program Files (x86) \ WinRAR \ Rar.exe" D -m2: \ Backup \ db_backup _% $ DayOfWeekName% .rar D: \ Backup \ db_backup _ * Bak.

del D: \ Backup \ db_backup _ *

Acum putem rula fișierul executabil backup.bat și verificăm dacă funcționează așa cum ar trebui. Ultimul pas este de a scrie programul pentru sarcina ferestrelor. Rulați Task Scheduler din meniul Start sau tastați taskchd.msc din linia de comandă. În diferite versiuni de Windows, acesta arată diferit, iar informațiile despre modul de efectuare a acestei sarcini pot fi citite în ajutorul Windows. Principalul lucru este să executați sarcina în numele utilizatorului cu drepturi suficiente pentru dosarele utilizate. Cu ajutorul acestor acțiuni, puteți programa și alte sarcini. În scriptul schedule.sql, puteți apela toate procedurile necesare înainte de a face backup, reindexarea sau comprimarea bazei de date.

10. Nik (nikakoy) 43 Jun 16, 2010 1:36 pm în acest thread

La noi, așa este implementat.
Pe un server care nu este foarte ocupat în timpul zilei, sarcina atribuită este lansată după 10 minute. (calculată empiric, cu o marjă mare).
Fișierele god_mesyats_data_MD și Year_Month_Date bekapiruyutsya fișiere MD, DDS, de backup și SQL USR într-un fișier separat (deoarece este nevoie de un timp decent).
Fișierele de tehnologie - structură sunt copiate, redenumite și ambalate într-o arhivă.






Fișierul de rezervă este redenumit și arhivat.
Numele fișierelor se formează ora_minute. Extensie.
deoarece backup-ul este la fiecare oră, numele fișierelor nu este păcălit, se utilizează ora curentă a serverului.

De fapt, scriptul VBS în sine


Const OverwriteExisting = TRUE
Setați objFSO = CreateObject ("Scripting.FileSystemObject")
Setați WshShell = CreateObject ("WScript.Shell")
l = len (CStr (timp))
"formarea de noi nume de fișiere
dacă l = 8 atunci
NewName = CStr (Mid (timp, 1,2) "_" Mijloc (timp, 4,2) "_" "Base_" „Bak“)
NewNameMD = CStr (Mid (timp, 1,2) "_" Mijloc (timp, 4,2) "_" "Base_" ".MD")
NewNameDDS = CStr (Mid (timp, 1,2) "_" Mijloc (timp, 4,2) "_" "Base_" „DDS“)
NewNameUSR = CStr (Mid (timp, 1,2) "_" Mijloc (timp, 4,2) "_" "Base_" ".USR")
altfel
NewName = CStr (Mid (timp, 1,1) "_" Mid (timp, 3,2) "_" "Base_" „Bak“)
NewNameMD = CStr (Mid (timp, 1,1) "_" Mid (timp, 3,2) "_" "Base_" ".MD")
NewNameDDS = CStr (Mid (timp, 1,1) "_" Mid (timp, 3,2) "_" "Base_" „DDS“)
NewNameUSR = CStr (Mid (timp, 1,1) "_" Mid (timp, 3,2) "_" "Base_" ".USR")
sfârșit dacă

"C: \ BKP \ dosarul temporar de pe serverul care este arhivat
'N: \ Base \ cale către directorul bazei de date

'fișierul rar.exe pus în C: \ Program Files \ 1Cv77
"fișierele sunt șterse de către rar_com după finalizarea pachetului.

1 \ 1Cv77 \ RAR un \\ Network_Command_SubmitArchive \ BKP $ \ Base_ " Mid (Data, 9.2) "_" Mid (Data, 4,2) "_" Mijloc (Data, 1,2) "_MD C: \ BKP \ *. * -DW"
WshShell.Run runstr

objFSO.MoveFile "\\ Srv02 \ bkp $ \ Base_backup.bak", "\\ Srv02 \ bkp $" NewName
RunStr = "C: \ Progra

1 \ 1Cv77 \ RAR un \\ Network_Command_SubmitArchive \ BKP $ \ Base_ " Mid (Data, 9.2) "_" Mid (Data, 4,2) "_" Mijloc (Data, 1,2) ".rar \\ NetworkServerNameServer \ bkp $" NewName "-DW"

11. Nik (nikakoy) 43 Marți, 16 Iunie 2010 13:42 În prezent în subiect

Poate cineva va veni la îndemână.
Zilnic (înseamnă 1C) este executat printr-un script.

La reluarea erorii următoare
dim ParamFile, BasePath, User, UserPassvord, Arhiv, RunString
Setați objShellApp = CreateObject ("Shell.Application")
BasePath = "N: \ Base"
User = "UsVeR"
UserPassvord = "UsVeR_Pass"

Arhiv = CStr ("N: \ Base \ InOut \ Base_" Mid (Data, 9.2) "_" Mid (Data, 4,2) "_" Mijloc (Data, 1,2) ".zip")
ParamFile = CStr (BasePath "\ arhiv.prm")
Setați FSO = CreateObject ("Scripting.FileSystemObject")
'Paramfile MsgBox, vbInformation
Setați fișierul = FSO.CreateTextFile (ParamFile)
file.WriteLine "[general]"
file.WriteLine "Quit = 1"
file.WriteLine "UnloadData = 1"
file.WriteLine "[UnloadData]"
file.WriteLine "IncludeUserDef = 1"
file.WriteLine "UnloadToFile =" "" " Arhiv "" ""
RunStr = "" "C: \ Program Files \ 1Cv77 \ BIN \ 1cv7s.exe" "Config / D" "" "" BasePath "" "/ N" utilizator "/ P" UserPassvord "/ @" "" paramFile "" ""
Setați WshShell = CreateObject ("WScript.Shell")
WshShell.Run runstr
Dacă Err.Number <> Atunci
MsgBox "Chet nu a crescut împreună!", VbInformation
Sfârșit Dacă

12. Bogdan Vozniy (Baglandir) 09/20/11 1:09 PM Momentan în coș

În plus, adaug că au existat dificultăți în curățarea fișierului de jurnal care este rezolvat folosind scripturi.

13. Andrey Savenkov (Ichigo) 10/03/11 3:13 PM În prezent în discuție

Un script bun, foarte convenabil!

Am instalat și am uitat de backup-uri :) în fiecare zi (noaptea) este pornit automat și se face o copie de rezervă. Factorul uman dispare (uitare).

16. Andrej Kuzmuk (skelelaz) 20.03.14 00:10 Acum în subiect

Back-up un fișier bat cu WinRAR de 3 ori pe zi. De asemenea, normal. În detrimentul ciclicității - prefer să curăț manual manual arhivele și să le las să se adune, cât spațiu este suficient. Se întâmplă că trebuie să te uiți la arhivele celor șase luni.

Creat în 15.06.10 15:17

Cod deschis Nu este listat

Salvare ciclică pe zi din săptămână

Salvare ciclică pe zi din săptămână

Salvare ciclică pe zi din săptămână

Salvare ciclică pe zi din săptămână







Articole similare

Trimiteți-le prietenilor: