Programma's voor sql-serverback-up. Een MS SQL Server-database kopiëren

5 antwoorden

Die zijn er waarschijnlijk meer manieren doe het, maar ik klik meestal klik met de rechtermuisknop ga met de muis over de database en selecteer "Taken → Back-up..." met type back-up"Vol". Hierna kunt u het gemaakte bestand naar uw doelcomputer kopiëren en er verbinding mee maken SQL-server in SQLServer Managementstudio, klik met de rechtermuisknop op de map Databases en selecteer Database herstellen. Selecteer "Apparaat", selecteer het bestand en herstel het vervolgens.
Een andere aanpak zou zijn om de database te scripten in SQL Server Management Studio (klik met de rechtermuisknop op de database en vervolgens op "Taken -> Scripts genereren..."). Tijdens dit proces is er een stap genaamd "Scriptopties instellen", waarbij u op de knop "Geavanceerd" moet klikken en de opties nader moet bekijken. U zult zeker "Gegevens en schema" willen selecteren voor de optie "Gegevenstypen voor script". Soms geef ik de voorkeur aan deze methode als ik echt wil dat datastructuren en gegevens worden doorgegeven.

Update: Sorry, ik vergat te vermelden hoe ik de database kon herstellen voor de scriptoptie. Ik maak altijd scripts door "Opslaan in nieuw queryvenster" te selecteren tijdens de stap "Scriptopties instellen". Nadat u het script heeft gemaakt, kunt u het even laten staan.
Op de doelserver maakt u nieuwe basis gegevens met dezelfde naam als voor de gemaakte scripts. Of u kunt hiervoor een script maken op de bronserver (klik met de rechtermuisknop op de database, selecteer "Script Database as -> CREATE TO... -> Clipboard") en voer dat script uit door met de rechtermuisknop op het serverknooppunt in het SSMS-object te klikken Verkenner. Nieuw verzoek" door het script in het promptvenster te plakken en het uit te voeren. Deze tweede optie is beste keuze, als u echt een volledige kopie van de database nodig heeft, en niet alleen de informatie zelf.
Zodra u een van deze twee wegen bewandelt, moet u een nieuwe database aanmaken. Klik met de rechtermuisknop op deze database in Object Explorer en selecteer Nieuwe query. Kopieer en plak vervolgens het script met de databasestructuur en gegevens in het nieuwe queryvenster en voer de query uit. Dit zou de oplossing moeten zijn.

U kunt de database niet naar een andere machine kopiëren. Ja, u kunt een back-up maken op dezelfde computer en deze naar een andere machine kopiëren en herstellen.

Volg deze stappen om een ​​back-up uit te voeren:

  • Klik met de rechtermuisknop op de database waarvan u een back-up wilt maken.
  • Selecteer Taak → Terug.
  • Selecteer op uw bestemming Toevoegen.
  • Klik in de bestandsnaam op de knop... en selecteer de doelmap waarin u de back-up wilt maken, genaamd back-upnaam.bak. Klik op Ok, Ok en Ok. en wacht tot het back-upproces is voltooid. Klik op OK.

Kopieer dit back-upbestand nu naar een pendrive of een ander medium en plak het op een andere computer en open SQL Server 2008 R2

Volg deze stappen om een ​​back-up te herstellen:

  • Klik met de rechtermuisknop op Databases.
  • Selecteer "Database herstellen".
  • Voer in het veld Database de naam in van de database die u wilt herstellen
  • Selecteer 'Vanaf apparaat' in de herstelbron. Klik...
  • Klik op de knop "Toevoegen" en selecteer het databaseback-upbestand dat u hebt geplakt. Klik op "OK", "OK".
  • Schakel het selectievakje Herstellen in Selecteer back-upsets voor herstel.
  • Schakel de optie Controle overschrijven in bestaande basis gegevens opslaan en replicatie-instellingen opslaan (deze velden hoeven alleen te worden gecontroleerd als u een database probeert te herstellen die al op dat andere apparaat staat).
  • Klik op OK. wacht tot het herstel is voltooid en klik op OK.

Vertel me als je problemen hebt.

Via code

Back-up:

GEBRUIK DATABASE_NAME; GA EEN BACK-UP VAN DATABASE DATABASE_NAME NAAR SCHIJF = "D:\DATABASE_NAME.Bak" MET FORMAAT, MEDIANAME = "D_SQLServerBackups", NAME = "Volledige back-up van DATABASE_NAME"; GAAN

(Als u een back-up in een map wilt plaatsen, moet de map bestaan ​​voordat u de back-up maakt.)

Herstellen:

Stap 1: Extraheer de logische naam van het databasebestand uit de back-up.

HERSTEL FILELISTONLY VANAF SCHIJF = "D:BackUpYourBaackUpFile.bak" GO

Stap 2: Gebruik in de volgende stap de waarden in de kolom LogicalName. ---- Maak de database in de modus voor één gebruiker

WIJZIG DATABASE YourDB SET SINGLE_USER MET ONMIDDELLIJK ROLLBACK

Database herstellen

HERSTEL DATABASE YourDB VANAF SCHIJF = "D:BackUpYourBaackUpFile.bak" MET VERPLAATS "YourMDFLogicalName" NAAR "D:DataYourMDFFile.mdf", VERPLAATS "YourLDFLogicalName" NAAR "D:DataYourLDFFile.ldf"

/Als er geen fout in de instructie zit voordat de database zich in de modus voor meerdere gebruikers bevindt. Als er een fout optreedt, voert u de volgende opdracht uit. Hierdoor wordt de database naar meerdere gebruikers geconverteerd. /

WIJZIG DATABASE YourDB SET MULTI_USER GO

Als u een database kopieert met behulp van een volledige databaseback-up, worden de transacties in het online transactielogboek niet gekopieerd.

Als dit belangrijk is, gebruik dan de volgende stappen om de database uit te schakelen offline-modus, kopiëren MDF-bestanden en LDF en voeg ze toe:

  • Selecteer de database in SQL Server Management Studio, klik met de rechtermuisknop op de database en selecteer Eigenschappen. Kopieer de locatie van de MDF- en LDF-bestanden.

2.Klik OK

3. Selecteer om nogmaals op de database te klikken Taken, Offline

4. B Windows Verkenner kopieer de MDF- en LDF-bestanden met behulp van de locatie die u in stap #1 hebt gevonden

5. Leg ze opzij. 6. Klik in SQL Server Management Studio met de rechtermuisknop op de SQL Server-instantie en selecteer Bijvoegen

7. Klik in het volgende dialoogvenster op Toevoegen, zoek de gekopieerde bestanden, selecteer ze en klik OK 8. Wijzig de standaardnaam die in het veld wordt voorgesteld Bevestig AS. Voer hier een nieuwe naam voor uw database in.

Laten we eens kijken naar een ongewenste situatie. Namelijk: om de een of andere reden is de database mislukt. Wat hebben we? Een volledige kopie, een differentiële kopie van gisteren, maar er zijn ook gegevens voor vandaag, was het echt nodig om elk uur een differentiële kopie te maken? - Nee! Eten Transactielogboek.
Transactielogboek - Een logboek dat alle transacties en alle databasewijzigingen registreert die door elke transactie zijn aangebracht. Die. elke actie met de database wordt stap voor stap vastgelegd in het logboek. Elk record wordt door het DBMS gemarkeerd om te bepalen of de transactie voltooid is, of deze al dan niet is voltooid. Met zijn hulp kunt u de status van de database niet alleen herstellen na een storing, maar ook in geval van onverwachte acties met gegevens. Terugdraaien naar een bepaalde tijd. Net als bij de database moet er een back-up van het transactielogboek worden gemaakt, volledig, differentieel en incrementeel. Om een ​​deel van het transactielogboek te herstellen na een fout in het interval tussen het maken van back-ups, moet u een back-up maken van het laatste fragment van het logboek, dat in feite het eindpunt van de back-up is. Wordt uitgevoerd na een storing, als aftelpunt.
Om een ​​database na een fout te herstellen, hebben we dus een actuele volledige kopie van de database, een differentiële kopie van de database en een kopie van het transactielogboek nodig.

Er zijn 3 herstelmodellen voor de database zelf: eenvoudig, volledig en in bulk geregistreerd. Overwegen:

  1. Eenvoudig model - er wordt alleen volledige redundantie gebruikt. Geen verschil. back-ups, evenals back-ups van transactielogboeken. Volledige exemplaren moeten zo vaak mogelijk worden gecreëerd. Relevant voor databases die “alleen-lezen” worden gebruikt.
  2. Model volledig herstel(Volledig) - het meest gebruikte model, waarin alle functies van gegevensback-up en -herstel beschikbaar zijn. Ondersteunt herstel individuele pagina's gegevens. Transacties worden volledig geregistreerd en het transactielogboek wordt opgeslagen.
  3. Het Bulk-Logged-model is bedoeld als aanvulling op het volledige herstelmodel. De meeste massaoperaties ondersteunen geen logboekregistratie, en dienovereenkomstig ondersteunt het ook geen databaseherstel tot een bepaald tijdstip.

Laten we eens kijken naar de meest recente back-upketen: Volledige reservering- één keer per week, differentiële back-up - één keer per dag, back-up van het transactielogboek - één keer per uur.
Er zijn verschillende opties voor het maken van back-ups:

  • Met behulp van de ingebouwde MS SQL-taakplanner
  • Transact-SQL-taal gebruiken
  • Met behulp van sqlcmd en OS Task Scheduler
  • Handmatig (wat ons niet uitkomt, omdat een werkende beheerder voortdurend moet rommelen)

Laten we de eerste optie als de meest bruikbare beschouwen. Voor dit doel wordt het gebruikt Windows-server 2008 R2 Enterprise en MS SQL Server 2008 Eng.

Laten we zeggen dat we een TECH-database hebben:

Laten we verder gaan met de tool voor het creëren van banen:

Druk op de rechtermuisknop en bel Master Joba:
Selecteer het selectievakje " Aparte uitvoering elke taak", voeren we slechts één actie uit

De meester heeft geen tulband, maar de maat van de tulband is niet het belangrijkste)) We kiezen het soort verlangen, in ons geval - volledige reservering:

Meester Joba blijkt een beetje Joods te zijn, dus vraagt ​​hij opnieuw:

"Het is de moeite waard om extra parameters te kiezen, oh jonge Paddawan!":
Hier selecteren we de database, de opslagperiode van de back-up, het adres (tape of schijf), het opslagpad en vooral: de taakplanner!

“Je moet de database niet vergeten als je de jouwe kiest. Concentreer je op je kracht en kies een database”:

“Je hebt haast om de taak te snel aan te maken, klik op de knop onderaan met de naam Schema – Definieer.”
Eigenlijk de taakplanner, waar we het type selecteren (herhalen, één keer, etc.), dag, tijd, starttype:

Dat is alles, wij hebben het gecreëerd. Meester Joba is koel en groen. In Onderhoudsplannen kijken we naar de stand van zaken:

Voor de paranoïde, wees niet bang om het in de spiegel toe te geven, het is de moeite waard om in de ziel van SQL Server Agent te kijken - Job Activity Monitor, Job Wizard zal je alles in detail laten zien:

Als nu aan de opgegeven voorwaarden is voldaan, moet deze worden gemaakt volledige back-up DB. Volgens hetzelfde principe worden er een differentiële back-up en een back-up van het transactielogboek gemaakt (deze subitems bevinden zich onder “Volledige back-up” in de takenselectielijst).
Draai uw MSSQL-oren zoals u wilt, schroef ze niet los

In het volgende artikel - creatie met Transact-SQL en een paar voorbeelden.

Dankzij de uitgebreide functionaliteit van Bacula Enterprise Edition maakt u onder andere snel en eenvoudig databaseback-ups voor . Bijvoorbeeld, waar we het over hebben over een tool waarmee u een back-up kunt maken van MS SQL Server. Maak een MS-back-up SQL-gebruiker misschien door te creëren back-ups specifieke MS SQL-databases grote volumes, gebruikt Windows-platform, tegen lagere softwarekosten externe fabrikanten, met de mogelijkheid om gegevens te herstellen tot bepaald punt tijd (PITR-herstel) op netwerk en lokale schijf.

Het Bacula Systems-script voor het maken van MS SQL Server-back-ups wordt gekenmerkt door extreme efficiëntie, bereikt door de implementatie van een moderne, zeer betrouwbare architectuur. Bovendien kunt u met de software een back-up maken van MS SQL Server en diverse mogelijkheden gebruiken voor het maken van MS SQL-back-ups.

Het back-upscript van MS SQL Bacula Systems werkt onafhankelijk van VSS. Dit betekent dat de MS SQL-back-uptool geen VSS-snapshots gebruikt om back-ups te maken. Daarom kan de gebruiker instellen volgende waarde“VSS inschakelen = nee” in Bacula FileSet. Efficiënte creatie MS SQL Server-back-ups en hun herstel met behulp van dit besluit worden bereikt door met behulp van Microsoft API voor SQL Server. Hierdoor kan Bacula Systems beveiligingsmechanismen en alle soorten authenticatie ondersteunen die daarin zijn geïmplementeerd MicrosoftSQL Server.

Back-up van MS SQL-transactielogboek en MS SQL point-in-time herstel: Met de Bacula Enterprise Edition-software kunt u MS SQL-gegevensblokken herstellen of specifieke instellingen tot een bepaald tijdstip. Met de implementatie van volledige en bulkgelogde herstelmodellen kunt u MS SQL herstellen met behulp van PITR-herstel, of LSN gebruiken om het systeem naar een specifieke staat te herstellen. U kunt op elk gewenst moment, tot op de seconde nauwkeurig, een specifieke toestand van een MS SQL-database herstellen. In het geval van een MS SQL-transactielogback-up wordt bij het herstellen de databasestatus hersteld vanaf verschillende geselecteerde back-ups.

Kenmerken in één oogopslag
 automatische back-up en herstel van MS SQL met Bacula Enterprise

Bacula Systems heeft een plug-in voor MS SQL Server-back-up gemaakt delen met Bacula Enterprise-editie. MS SQL Server-back-up met Bacula heeft de volgende kenmerken:

  • Ondersteunt volledige en differentiële MS SQL-back-ups
  • Ondersteuning voor incrementele back-up van MS SQL
  • MS SQL-back-up naar netwerk en lokale schijf
  • Geplande MS SQL-back-up
  • Het maken van back-ups op MS SQL Server-databaseniveau
  • Mogelijkheid om databases op te nemen/uit te sluiten van de procedure voor het maken van back-ups
  • Ondersteuning voor het maken van alleen-lezen databaseback-ups
  • Herstellen van MS SQL-back-ups naar schijf
  • Een back-upstream rechtstreeks naar de Storage Daemon verzenden
  • MS SQL-herstel naar een bepaald tijdstip

Review en configuratie van back-up MS SQL 2008, 2008 R2, 2012 en 2014

IN dit document oplossingen gepresenteerd voor Bacula Enterprise Edition 8.4 en hoger latere versies, die niet worden ondersteund eerdere versies DOOR. MS SQL-databaseback-up is getest en wordt ondersteund door MS SQL 2003 R2, MS SQL 2008 R2, MS SQL 2012, MS SQL 2005, MS SQL 2008, MS SQL 2014. MS SQL-back-up van Bacula kan werken met SQL Express.

MS SQL Backup-verklarende woordenlijst 2008, 2008 R2, 2012 en 2014

  • MS SQL staat voor Microsoft SQL Server.
  • Transactielogboek. Elke MS SQL Server-database heeft een transactielogboek waarin alle transacties en databasewijzigingen worden vastgelegd die tijdens dergelijke transacties zijn uitgevoerd. Transactielogboek – belangrijk element DB. In het geval van een systeemfout kan het transactielogboek nodig zijn om de database weer in werkende staat te brengen. Meer gedetailleerde informatie vindt u op de link https://msdn.microsoft.com/en-us/library/ms190925.aspx.
  • Differentiële back-up van MS SQL Server-database. Differentiële back-up is gebaseerd op de laatste volledige back-up. Tijdens een differentiële back-up worden alleen de gegevens vastgelegd die zijn gewijzigd sinds de laatste volledige back-up is gemaakt. Meer informatie vindt u op https://msdn.microsoft.com/en-us/library/ms175526.aspx.
  • Volledige back-up van de MS SQL Server-database. Tijdens een volledige databaseback-up wordt er een back-up van de gehele database gemaakt. De back-up bevat een deel van het transactielogboek met als doel de volledige database vanuit de back-up te herstellen. Volledige databaseback-ups bevatten de database op het moment dat de back-up werd voltooid. Meer informatie vindt u op https://msdn.microsoft.com/en-us/library/ms186289.aspx.
  • Back-up “alleen kopiëren” (CopyOnly). Alleen-kopieer-back-ups zijn MS SQL-back-ups die onafhankelijk zijn van de normale stroom van traditionele SQL Server-back-ups. Soms is het handig om back-ups te maken voor speciale behoeften, zonder dat dit gevolgen heeft algemeen proces back-up en herstel van databases. Meer informatie vindt u op https://msdn.microsoft.com/en-us/library/ms191495.aspx.
  • VDI(Interface virtueel apparaat) - Dit Microsoft-technologie, waardoor u kunt creëren genaamd pijp tussen programma's.
  • standaardmaskers specificeren sets rijen met jokertekens. Het standaardproductiemasker* bevat bijvoorbeeld de regels production1 en production2.
  • lijn
  • geheel getal.
  • LSN Elke vermelding in het MS SQL Server-transactielogboek wordt geïdentificeerd door een uniek registratienummer transacties (LSN). Meer gedetailleerde informatie is te vinden op https://technet.microsoft.com/en-us/library/ms190411%28v=sql.105%29.aspx.

Back-up MS SQL Server 2008, 2008 R2, 2012 en 2014

Volledige back-up van MS SQL Server 2008, 2008 R2, 2012 en 2014 databases

Tijdens een volledige back-up van een MS SQL-database worden de databasebestanden en het transactielogboek opgeslagen, waardoor u de MS SQL-database volledig kunt beschermen in geval van mediastoring. Als een of meer bestanden beschadigd zijn, kunt u door de MS SQL-database vanaf een back-up te herstellen alle voltooide transacties herstellen. Alle lopende transacties worden ook teruggedraaid. IN deze modus er worden back-ups gemaakt van de master- en mbdb-databases.

Differentiële back-up van MS SQL Server 2008, 2008 R2, 2012 en 2014 databases

Differentieel back-up van de database MS SQL Server is gebaseerd op de nieuwste volledige back-up van de MS SQL-database. Bij het maken van een differentiële MS SQL-back-up worden alleen de gegevens vastgelegd die zijn gewijzigd sinds de laatste volledige MS SQL-back-up is gemaakt. Voor de differentiële back-upfunctie van MS SQL is de volgorde van de back-ups uiterst belangrijk. Als om welke reden dan ook de volledige back-up waarnaar wordt verwezen door MS SQL niet beschikbaar is, kunnen differentiële back-ups van de MS SQL Server-database niet worden gebruikt. MS SQL Backup van Bacula gebruikt bepaalde methoden om dit probleem op te lossen. Als zich problemen voordoen, kan de status van een differentiële databaseback-up daarom automatisch worden geüpgraded naar een volledige back-up.

Back-up van transactielogboek van MS SQL 2008, 2008 R2, 2012 en 2014

De functie van het maken van een back-up van het MS SQL-transactielogboek wordt op incrementeel niveau geïmplementeerd met behulp van Bacula-software. De MS SQL-database moet worden geconfigureerd met behulp van de volledige en bulkgelogde herstelmodellen. Als MS SQL gebruikt eenvoudig model herstel, wordt het transactielogbestand na elk controlepunt “afgekapt” en staat de back-up van het transactielogboek herstel naar het geselecteerde specifieke punt niet toe, d.w.z. PITR-herstel. Het zal mogelijk zijn om de MS SQL-database volledig te herstellen, maar het zal niet mogelijk zijn om te selecteren controlepunt. Meer informatie vindt u op https://msdn.microsoft.com/en-us/library/ms189275.aspx.

Opzetten van MS SQL backup en databaseconfiguratie

U moet altijd een reservekopie van de hoofddatabase maken. Als de hoofddatabase op de een of andere manier beschadigd is, bijvoorbeeld als gevolg van een mediafout, is het mogelijk dat het MS SQL-exemplaar niet kan worden gestart. In dit geval is het noodzakelijk om de hoofddatabase te herstellen en pas daarna de database zelf te herstellen vanaf een back-up. Het is mogelijk om alleen volledige back-ups van de MS SQL-database te maken. Meer gedetailleerde informatie is te vinden op https://technet.microsoft.com/en-s/library/aa213839%28v=sql.80%29.aspx.

Herstellen van een MS SQL-database vanaf een back-up

Je kunt alles gebruiken standaard methoden het starten van de procedure voor het herstellen van een MS SQL-database vanaf een back-up. U moet er echter voor zorgen dat bij het herstellen van differentiële gegevens ook de volledige eerdere back-up van de MS SQL-database wordt hersteld. In dit geval vindt het herstel automatisch plaats als u het in de console uitvoert bconsole met behulp van herstelopties 5 of 12. In het gegenereerde bestandsstructuur u moet het herstel van volledige databases of database-instances controleren.

Opties voor het herstellen van een MS SQL-database vanaf een back-up

Met Bacula Enterprise Edition-software kunnen gebruikers meerdere MS SQL-herstelopties gebruiken en de meeste toepassen verschillende manieren"rollback" van de database. De meest gebruikte herstelopties worden hieronder beschreven:

  • Where-parameter: In het geval van Bacula Enterprise Edition stelt deze parameter de beheerder in staat de database naar een specifieke locatie te herstellen.
  • Vervangparameter: wordt gebruikt om te definiëren hoe Bacula zich moet gedragen met de huidige database wanneer deze wordt hersteld. Met de MS SQL-back-up van Bacula kunt u bij het herstellen nog een aantal extra opties gebruiken, zoals:
  • Instantie: Omdat MS SQL meerdere exemplaren gebruikt, kunt u met de MS SQL-databaseback-up van Bacula kiezen welk exemplaar u wilt herstellen. Deze parameter is optioneel en als deze niet is opgegeven, wordt de waarde die is opgegeven bij het maken van de back-up gebruikt bij het terugzetten. Standaard wordt een exemplaar met de naam “MSSQLSERVER” gebruikt.
  • Database. Deze optie specificeert de naam van de database die moet worden hersteld en gebruikt de waarde die is opgegeven op het moment dat de database werd gemaakt. Deze parameter is optioneel. Back-ups van SQL Server-databases gebruiken standaard de parameter Where om de naam van de nieuwe database te bepalen. Als aan zowel de parameters Where als Database een geldige databasenaam is toegewezen, wordt de parameter Database gebruikt.
  • Gebruiker. De gebruikersnaam die wordt gebruikt om verbinding te maken met het MS SQL-database-exemplaar. Deze parameter is optioneel en als deze niet is opgegeven, wordt de waarde die is opgegeven bij het maken van de back-up gebruikt bij het terugzetten.
  • Wachtwoord. Wachtwoord dat wordt gebruikt om verbinding te maken met de MS SQL-database-instantie. Deze parameter is optioneel en als deze niet is opgegeven, wordt de waarde die is opgegeven bij het maken van de back-up gebruikt bij het terugzetten.
  • Domein. Het domein dat wordt gebruikt om verbinding te maken met het MS SQL-database-exemplaar. Deze parameter is optioneel en als deze niet is opgegeven, wordt de waarde die is opgegeven bij het maken van de back-up gebruikt bij het terugzetten.
  • Herstel. Met de parameter kunt u bepalen of er een rollback naar de database wordt uitgevoerd vorige staat tijdens herstel of niet. Wanneer een database wordt hersteld, wordt deze standaard teruggezet naar de vorige staat.
  • Stop_voor_markering. Conditie MET STOPVOORMARK = Wordt gebruikt om aan te geven dat de transactielogboekvermelding die onmiddellijk aan de vlag voorafgaat, het herstelpunt is. Het herstelpunt kan een datum en tijd, een LSN of een mark_name-vlag zijn.
  • Stop_bij_markering. Conditie MET STOPATMARK = Wordt gebruikt om aan te geven dat de gemarkeerde transactie een herstelpunt is. STOPATMARK beweegt vooruit naar de vlag en speelt de gemarkeerde transactie opnieuw af. Het herstelpunt kan een datum en tijd, een LSN of een mark_name-vlag zijn.
  • Stop_at= . Conditie MET STOPAT = wordt gebruikt om aan te geven dat het herstelpunt datum/tijd is.
  • Beperk_gebruiker. De clausule WITH RESTRICT_USER wordt gebruikt om de toegang tot de herstelde database te beperken. De standaardinstelling is nee.

In het programma gemaakt door Bacula Systems bevinden de MS SQL-back-upinstellingen zich op het tabblad Herstel.

Figuur 1: Tabblad Databaseherstel bij gebruik van het BWeb Management Suite-programma

MS SQL-herstel naar een bepaald tijdstip

Deze vraag is alleen van toepassing op SQL-databases die gebruikmaken van de volledige en bulksgewijs geregistreerde herstelmodellen. In het geval van een herstelmodel met bulkregistratie, als de logback-up wijzigingen bevat die tijdens bewerkingen zijn aangebracht massaverwerking gegevens, is het onmogelijk om binnen deze back-up naar welk tijdstip dan ook te herstellen. De database moet worden hersteld naar het einde van het transactielogboek waarvan de back-up is gemaakt. Meer informatie vindt u op https://msdn.microsoft.com/en-us/library/ms179451.aspx.

Het herstellen van MS SQL naar een bepaald tijdstip kan rechtstreeks vanuit de MS SQL-back-upplug-in worden uitgevoerd. U kunt bestanden ook lokaal herstellen en bewerkingen uitvoeren vanaf de console Microsoft-beheer SQL Server Management Console om meer functies te kunnen gebruiken.

LSN

LSN-nummers worden gebruikt om een ​​MS SQL-herstelreeks te maken om het tijdstip bij te houden waarop gegevens zijn hersteld. Bij het herstellen van MS SQL vanaf een back-up worden de gegevens hersteld naar het LSN-nummer dat overeenkomt met het tijdstip waarop de back-up is gemaakt. Meer informatie vindt u op https://msdn.microsoft.com/en-us/library/ms190925.aspx.

Het LSN-nummer van de logvermelding waarop een specifieke backup- en herstelgebeurtenis heeft plaatsgevonden, kan op een van de volgende manieren worden bekeken:

  • Bij het weergeven van een beschrijving van taken voor het maken van back-ups met behulp van Bacula-software
  • In de naam van het logbestand
  • In de tabel msdb.backupset
  • In de tabel msdb.backupfile

Bij het uitvoeren van een taak om een ​​back-up te maken van een MS SQL-database, wordt bij weergave de taakbeschrijving weergegeven volgende informatie over LSN-nummers:

Nummer Eerste LSN komt overeen met het laatste LSN-nummer van de laatste back-up van het transactielogboek. Zo’n backup kan de allereerste volledige backup zijn of de laatste backup (incrementeel).

Nummer Laatste LSN komt overeen met de laatste transactie die in het journaal is geregistreerd.

In het geval van een back-up van het transactielogboek (incrementeel) ziet de naam van het bestand dat aan deze database is gekoppeld in de taak voor het maken van een incrementele back-up er als volgt uit:

In ons geval het nummer in de naam 42000162001, komt overeen met het laatste LSN-nummer van de vorige taak (om een ​​volledige of incrementele back-up te maken).

Figuur 2: Eerste LSN, laatste nummer LSN- en LSN-nummers in bestandsnamen

Zoals weergegeven in het voorbeeld in Figuur 2, kunnen de volgende acties worden uitgevoerd als de beheerder de MS SQL-database moet herstellen naar een staat die overeenkomt met LSN-nummer 14:

  • Gebruik optie 5 in het databaseherstelmenu
  • Selecteer laatste bestand volledige back-up “data.bak” (LSN: 10)
  • Selecteer incrementele back-up “log-10.trn”

Of, als de laatste volledige back-up van MS SQL Server niet beschikbaar is, maar de vorige volledige back-up wel beschikbaar is, dan:

  • Gebruik hersteloptie 3, selecteer de juiste jobids-waarden
  • Selecteer de databasemap “/@mssql/db29187”
  • Selecteer het volledige back-upbestand “data.bak” (LSN: 2)
  • Selecteer incrementele back-ups “log-2.trn”, “log-3.trn”, “log-10.trn”
  • Stel de parameter stop_at_mark in op “lsn:14”
  • Voer de taak uit om de back-up te herstellen

MS SQL-herstelscripts

Beschrijving Waar Database Voorbeeld
Herstel bestanden naar schijf Pad waar=c:/tmp
Herstel originele database waar=/
Herstellen met nieuwe naam Naam waar=nieuwedb
Herstellen met nieuwe naam Naam database=nieuwedb
Herstel met nieuwe naam en verplaats bestanden Naam

Tabel 1: MS SQL-herstelscenario's

2.3.1 Een MS SQL-database herstellen met de oorspronkelijke naam

Om de database met de oorspronkelijke naam te herstellen, gebruikt u de optie Waar mag niet worden opgegeven ( lege waarde), of de waarde “/” moet worden ingesteld, en de parameter Vervangen moet een waarde toegekend worden Altijd, of u moet eerst de brondatabase verwijderen.

Een MS SQL-back-up herstellen met een nieuwe naam

Om een ​​MS SQL-databaseback-up met een nieuwe naam te herstellen, moet u mogelijk eerst de databasebestanden naar schijf verplaatsen. Het hangt allemaal af van de vraag of de oorspronkelijke database nog steeds bestaat.

Als de brondatabase niet langer beschikbaar is, wordt de parameter waar, of het veld “Plugin-opties” kan de naam van de nieuwe database bevatten. MS SQL Backup van Bacula maakt de database automatisch aan met een nieuwe naam.

Als de oorspronkelijke database nog steeds nodig is, wordt de parameter Where gebruikt om de bestanden naar schijf te verplaatsen, en moet u de nieuwe database een naam geven via het menu Plug-inopties. In de herstelstructuur moet u het layout.dat-bestand selecteren.

Mijn catalogus gebruiken

Voer de MS SQL-hersteltaak uit:

Voer met behulp van Mijn Catalogus de MS SQL-databasehersteltaak uit:

Herstel MS SQL naar lokale schijf

Als u specificeert waar=c:/pad/, worden de bestanden teruggezet naar de lokale schijf en kan de MS SQL-databasebeheerder de TSQL-procedurele extensie voor de Microsoft SQL Server Management Console gebruiken om de database te herstellen. SQL-opdrachten die nodig zijn om de database te herstellen, staan ​​vermeld in de beschrijving Taakuitvoer zoals weergegeven in de onderstaande afbeelding.

Herstellen van een MS SQL “master” database

Instructies voor het herstellen van de “master”-database vindt u op de pagina: https://technet.microsoft.com/en-us/library/aa213839%28v=sql.80%29.aspx

MS SQL-database in herstelstatus

Na voltooiing van het MS SQL-herstel, als de optionele parameter Herstel waarde werd toegekend Nee, zal de herstelde database de status "herstel" hebben. Om het herstelproces te voltooien, moet u de database-rollback-procedure uitvoeren. Gebruik hiervoor de volgende SQL-opdracht.

MS SQL Server 2000 wordt, ondanks zijn hoge leeftijd, nog steeds actief gebruikt in de uitgestrektheid van ons land, grotendeels dankzij het 1C:Enterprise 7.7-systeem, dat alleen met deze versie van de SQL-server werkt. Op de tweede plaats komt de taak, na het garanderen van een ononderbroken werking systeembeheerder is de organisatie van tijdige gegevensback-up, we zullen dit probleem in dit artikel bespreken.

MS SQL Server 2000, net als elke andere server Microsoft-product heeft standaard gereedschap back-ups, waarvan de mogelijkheden ruim voldoende zijn voor alle dagelijkse taken. Wij zullen het niet herhalen algemene regels, die moet worden gevolgd bij het ontwikkelen van een back-upbeleid, maar we raden dit ten zeerste aan.

Laten we verder gaan met oefenen. Laten we lanceren Bedrijfsleider.

We breiden de boom uit en selecteren de server waarvoor we de back-up gaan configureren, in ons geval is dat het geval (lokaal) (Windows NT), klik met de rechtermuisknop en selecteer Eigenschappen, vink op het eerste tabblad het vakje aan Automatisch starten van SQL Server Agent.

Laten we nu gaan rennen om de server niet opnieuw op te starten SQL Server-agent handmatig. Vouw hiervoor de map uit Beheer en start Agent met de rechtermuisknop en selecteer Begin in het vervolgkeuzemenu.

Laten we verder gaan met punt Databaseonderhoud(hieronder in dezelfde map) en door met de rechtermuisknop in het vrije gebied aan de rechterkant te klikken, selecteert u Nieuw Onderhoudsplan, de wizard start. Laten we eerst de databases selecteren waarvoor dit plan van toepassing is (er kunnen verschillende plannen zijn); u kunt alle databases selecteren, alleen systeemdatabases, alleen gebruikersdatabases, of willekeurig.

Er mogen geen bijzondere problemen zijn met het schema; alles is heel duidelijk. Vanaf 31 maart hebben we het dagelijks kopiëren om 21.00 uur ingesteld.

Selecteer op het volgende tabblad een map voor het opslaan van back-upkopieën (het is zeer wenselijk dat deze extern of netwerk schijf). Als we kopieën maken (van plan zijn te maken) van meer dan één database, kunnen we het vakje aanvinken om automatisch submappen voor elke database te maken, en hier stellen we de opslagperiode voor back-upkopieën in. Wij zien er geen heil in om kopieën langer dan 1 maand te bewaren, daarom stellen wij de termijn op 4 weken.

Op de bladwijzer Geef het back-upplan voor transactielogboeken op Op dezelfde manier stellen we een back-up van het transactielogboek in, stellen we er een schema en opslaglocatie voor in; als er veel databases zijn, raden we aan de back-up van de databases en logs in de loop van de tijd te spreiden. Het kopiëren van het transactielogboek is niet verplicht, maar dankzij de aanwezigheid ervan kunt u de database terugzetten naar een willekeurig tijdstip vanaf het moment van creatie vorig exemplaar, wat erg handig is, juiste tijd wordt vrij snel gevonden door het tijdsinterval achtereenvolgens door de helft te delen.

De rest van de instellingen laten we op standaard staan ​​en pas op het laatste tabblad hernoemen we het plan naar iets begrijpelijks, voor ons eigen gemak.

Nu ontvouwen we ons SQL Server-agent en het item selecteren Banen Wij zorgen ervoor dat er twee taken zijn. We starten ze handmatig (RMB - Start Job) en controleren of ze correct worden uitgevoerd. Dat is alles, we kunnen rustig slapen, er is back-up ingesteld.

Om een ​​database vanaf een back-up te herstellen, klikt u met de rechtermuisknop op de gewenste database en selecteert u Alle taken zijn Database herstellen.

Geef in het geopende venster de datum aan en selecteer onderaan het gewenste archief. Als we een kopie van het transactielogboek hebben, is de optie beschikbaar Point-in-time herstel waarmee u het tijdstip kunt selecteren waarnaar wij de database willen herstellen.

Nadat we ervoor hebben gezorgd dat alle instellingen correct zijn, kunnen we klikken OK en start het herstelproces. We raden echter niet aan om de database over de werkende database te herstellen; het is beter om hiervoor een aparte, schone database te maken. Dit is niet moeilijk en kost een minimum aan tijd, maar het verzekert je perfect voor het geval er iets misgaat.

We blijven praten over back-up en vandaag zullen we leren maak een archief van een MS SQL Server 2008-database. We zullen alles zoals gewoonlijk beschouwen aan de hand van voorbeelden met behulp van zowel een grafische interface als met behulp van SQL verzoek, en stel ook automatisch in het maken van een back-up met behulp van een batchbestand.

We zullen niet terugkomen op de kwestie van het belang van databaseback-up, omdat we dit onderwerp al meer dan eens aan de orde hebben gesteld, bijvoorbeeld in de materialen:

En in het laatste artikel zei ik dat we de mogelijkheid zouden overwegen om een ​​archief te maken op de MS SQL Server 2008 DBMS, dus nu zullen we dat doen.

En aangezien er al veel theorie is geweest, gaan we meteen verder met de praktijk, namelijk het maken van een back-updatabase.

Opmerking! Zoals je hun titel kunt zien, zullen we het artikelarchief gebruiken Microsoft DBMS SQL 2008 met behulp van Management Studio. De server bevindt zich lokaal. Windows 7 besturingssysteem.

Hoe u een archief van een SQL-serverdatabase maakt

Laten we besluiten dat we een archief gaan maken van een testdatabase met de naam "test". Vanaf het begin tot en met GUI, en tijdens dit proces zullen we een script opschrijven zodat we het in de toekomst eenvoudig kunnen uitvoeren en niet afgeleid kunnen worden door het invoeren van allerlei parameters.

Open Management Studio, vouw uit “ Databases", selecteer de noodzakelijke basis, klik er met de rechtermuisknop op en selecteer Taken->Back-up maken

Er wordt een venster geopend “ Databaseback-up» waar u archiveringsparameters kunt instellen. Ik heb zojuist de naam ingesteld " Back-upgegevensset", en veranderde ook de naam van het archief en het pad, omdat het standaard in de map wordt gemaakt Programmabestanden Ik had bijvoorbeeld het standaardpad

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\

Ik heb het bijvoorbeeld gewijzigd in C:\temp\ en heb het archief een naam gegeven test_arh.bak

Als je ook naar “ Opties“dan kun je de instelling instellen om alle datasets te overschrijven, nu zal ik uitleggen wat dit is. Als je alles laat zoals het is, d.w.z. toevoegen aan een bestaande dataset, dan beschikt u over één back-upbestand, maar met meerdere kopieën van datasets, d.w.z. Bij het herstellen selecteert u eenvoudig de set die u nodig heeft. En als je “ Overschrijf alle bestaande back-upsets"dan zal er altijd één set zijn, dan zul je in dit geval archieven moeten maken (bijvoorbeeld dagelijks). verschillende namen. Ik heb het ingesteld op overschrijven, omdat ik, laten we zeggen, in de toekomst van plan ben om voor elke dag archieven te maken met vermelding van de datum in de naam van deze archieven, zodat ik indien nodig snel de back-up kan kopiëren die ik nodig heb voor specifieke datum naar elke plaats.

En trouwens, op dit punt kunt u, nadat u alle parameters heeft ingevoerd, een script maken om het op te nemen en in de toekomst te gebruiken. Om dit te doen, klikt u eenvoudigweg op “ Scenario»

En als resultaat van deze actie wordt een verzoekvenster geopend met de code voor dit script. We komen er even later op terug, maar klik voorlopig op “OK” en nadat de handeling voltooid is, ziet u een venster waarin het resultaat van de back-up wordt aangegeven, als alles in orde is, verschijnt de volgende melding verschijnen

Een archief maken van een SQL-serverdatabase met behulp van een query

Als je alles hebt gedaan zoals hierboven vermeld (dat wil zeggen, op "Script" hebt geklikt), is er een verzoekvenster geopend, waarin feitelijk een verzoek is om een ​​archief te maken, maar we zullen het een beetje opnieuw doen, aangezien ik zei dat we van plan zijn om te starten het elke dag, dus om de naam passend te maken, zullen we de volgende SQL-instructie schrijven.

Declareer @path als varchar(200) set @path = N"C:\temp\test_arh_" + CONVERT(varchar(10), getdate(), 104) + ".bak" BACK-UP DATABASE NAAR SCHIJF = @path WITH NOFORMAT, INIT, NAME = N"Databasetest", SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO

En als we het nu uitvoeren, maken we een back-up van de database met de naam test_arh_ Huidige datum.bak

Automatische back-up maken op SQL-server

Voor deze doeleinden heeft MS SQL 2008 bijzondere kans genaamd " Serviceplannen"waar u een schema kunt instellen voor het maken van een back-up van de databases, maar voor deze doeleinden raad ik aan een bat-bestand te gebruiken om het in de planner te configureren, zodat het elke dag wordt uitgevoerd en een back-up van de database maakt. Om dit te doen, kopieert u SQL-instructie, die we hierboven hebben besproken, en plak het in Kladblok (ik raad Notepad++ aan) en sla het vervolgens op met de extensie .sql die. dit script wordt uitgevoerd op MS SQL 2008. Vervolgens hoeven we alleen maar een batchbestand te schrijven zodat het verbinding maakt met de SQL-server en ons script uitvoert. We schrijven ook in notitieblok:

SET cur_date=%date:~6,4%%date:~3,2%%date:~0,2% osql -S localhost -i C:\temp\test.sql -o C:\temp\%cur_date %_log_sql.log –E

waar ik een variabele cur_date heb gemaakt om op te slaan huidige datum en maak vervolgens verbinding met lokale server, via het hulpprogramma osql die ODBC gebruikt en ons script uitvoert (ik noemde het test.sql), en ook een log schrijft waarin we alleen onze variabele nodig hadden, dat is alles, sla het op met de extensie .knuppel, we creëren een taak in de planner en, zou je kunnen zeggen, we vergeten het proces van het archiveren van de database, nou ja, we controleren gewoon periodiek of het archief is gemaakt of niet.

Dit is voldoende voor de basis, nu weet u hoe u back-ups van databases voor 2008 kunt maken SQL-server, in het volgende artikel zullen we bekijken hoe u een database op MS SQL 2008 kunt herstellen. Dat is alles voor nu! Succes!