Het overbrengen van de database naar een andere SQL-server. MySQL-database overbrengen naar een andere server

Soms is het nodig om een ​​SQL-database over te zetten van de ene SQL-server naar de andere. Het proces voor gegevensoverdracht bestaat doorgaans uit het maken van een back-up van de database en het terugzetten naar een andere SQL-server. Het lijkt er echter op dat bij zo'n eenvoudige operatie allerlei problemen kunnen ontstaan. In dit artikel zullen we proberen een aantal van hen te behandelen.

1. Als er al een database met dezelfde naam bestaat

Als tijdens de overdracht van de database blijkt dat er al een database met dezelfde naam bestaat, of tijdens herstel een fout optreedt dat er al een databasebestand met dezelfde naam bestaat, moet u handmatig de nieuwe naam van de database opgeven en/of de map waarin de fysieke bestanden zich bevinden.DB. Dit kan gedaan worden in SQL Server Management Studio door een nieuwe databasenaam op te geven tijdens het terugzetten op het tabblad Algemeen

en de map waarin de databasebestanden moeten worden geplaatst (het tabblad Bestanden)

2. Overdracht van de Alta-GTD-database samen met aanvullende ED-databases

Als u de Alta-GTD-database samen met extra ED-databases wilt overbrengen, moet u:

1. Maak een reservekopie van de database samen met aanvullende databases met behulp van het Alta-GTD-programma. Om dit te doen, moet u Service - SQL Administrator - Back-up SQL-database uitvoeren en vervolgens bevestigend antwoorden op de vraag over de noodzaak om extra ED-databases te back-uppen. Nadat de bewerking van het maken van back-upkopieën van aanvullende databases is voltooid, zal het programma een informatievenster weergeven met een beschrijving van alle gemaakte back-upbestanden. Deze bestanden, evenals het back-upbestand van de productiedatabase, moeten worden overgebracht naar een andere SQL-server.

2. Herstel databases vanaf back-ups. Als de server al een database met dezelfde naam heeft, moet deze met een andere naam worden hersteld (zie paragraaf 1).

3. Als tijdens het herstel de naam van de werkende database is gewijzigd, moet het script voor alle aanvullende databases worden uitgevoerd:

UPDATE [Add_Base_Name] .. SET = " [e-mail beveiligd] Primary_Base_Name "

4. Als tijdens het herstel een of meer extra databases zijn hernoemd, moet u voor elk ervan het script uitvoeren

UPDATE [Main_Base_Name] .. SET = "New_And_Base_Name" WHERE = "Old_And_Base_Name"

Van de auteur: onlangs kwamen er familieleden op bezoek. Dus in een paar dagen tijd hadden ze eerst de hele voedselbasis uitgeput, vervolgens de hele nerveuze eruit geslagen en uiteindelijk de muziek (muziekcentrum) verbrand. Over het algemeen heb ik, buiten gevaar, besloten om de MySQL-database snel over te zetten. Als u zich ook in een dergelijke situatie bevindt, lees dan zeker dit artikel.

Snelle manier om te exporteren

Laten we beginnen met een overzicht van phpMyAdmin. Om een ​​basis over te dragen, moet u er eerst een duplicaat van maken. Hiervoor heeft het programma een speciale functionaliteit. Laten we dit proces in detail bekijken:

U kunt eerst de gewenste basis selecteren in de lijst aan de linkerkant en vervolgens naar het tabblad "Exporteren" van het menu gaan. Als u deze optie gebruikt, wordt MySQL per tabel gemigreerd. Om dit te doen, stelt u in de "Exportmethode" "Normaal" in en selecteert u in de "Tabellen" de exportitems.

Wil je de hele database (met alle tabellen) exporteren, ga dan direct naar "Exporteren". Alleen werken we hier al niet met tafels, maar met onderstellen. In de "Exportmethode" stellen we ook "Normaal" in. Selecteer vervolgens de vereiste database en selecteer in het gedeelte "Uitvoer" de optie "Uitvoer opslaan in bestand".

De volgende stap is het instellen van het formaat waarin de kopie van de database wordt opgeslagen. We selecteren de waarde "SQL" in de bijbehorende lijst. Dit zorgt ervoor dat de kopie op de meeste platforms kan worden gebruikt. Maar als u de database naar een specifieke basis gaat overbrengen, dan kunt u hier het juiste formaat kiezen: PHP-array, CSV, PDF en andere.

Hieronder in de secties "Format Parameters" en "Data Saving Parameters" kunt u meer "" parameters configureren voor het overzetten van de MySQL-database. Maar we zullen niet in detail stilstaan ​​​​bij hun beoordeling. Als u met geen van deze bekend bent, kunt u de standaardwaarden het beste niet (onnodig) wijzigen. Hier kunt u de maximale compatibiliteit met oudere versies van het DBMS configureren en hoe de tabellen worden opgeslagen. Alleen gegevens of structuren kunnen worden geëxporteerd. We zullen de tabellen volledig kopiëren (optie structuur en gegevens).

Nadat u alle parameters hebt ingesteld om een ​​kopie van de database te maken, klikt u onderaan op "OK". Als resultaat krijgen we een dubbele database, die gemakkelijk kan worden overgebracht naar een andere server. Het gegenereerde bestand wordt standaard opgeslagen in de downloadmap van uw browser.

wij importeren

Met phpMyAdmin kunt u niet alleen kopieën maken van de hele server, databases en afzonderlijke tabellen. Met het programma kunt u eenvoudig MySQL-gegevens overbrengen naar een andere instantie van het DBMS. Dit proces lijkt erg op het exporteren van een database. phpMyAdmin is in staat om zowel afzonderlijke tabellen met de database als meerdere databases tegelijk met de server te verbinden. Om tabellen aan de linkerkant in de lijst toe te voegen, selecteert u de gewenste basis en gaat u naar het tabblad "Importeren".

Om een ​​basis (of meerdere bases) aan de server te bevestigen, ga je onmiddellijk naar het aangegeven tabblad. Markeer vervolgens in de sectie "Bestand om te importeren" het item "Bladeren op uw computer" en geef via de verkenner de locatie van het databasebestand aan.

Hier moet u de codering specificeren waarin de gegevens in de geïmporteerde bron worden gepresenteerd. Je moet voorzichtiger zijn met deze parameter, anders krijg je echte "hiërogliefen" in plaats van regels in de tabellen, en moet je een native Japanner of Chinees inhuren om ze te ontcijferen. En met hen in onze regio - een echt tekort.

De meest gebruikte codering is UTF-8, die standaard is ingesteld. Daarom, zelfs als u niet precies weet welke in de draagbare MySQL-database wordt gebruikt, is het de moeite waard om deze codering te proberen. In ieder geval kunt u altijd de geïmporteerde basis verwijderen en deze vervolgens "opnieuw uploaden" met een andere codering.

Ik haast me ook om de "ijverige" fans van phpMyAdmin teleur te stellen. Dit hulpprogramma is alleen geschikt voor export-import van kleine databases (tot 2 "meters"). Deze waarde is voldoende voor gedeeltelijke (gefaseerde) serveroverdracht, wat onhandig kan zijn en het hele proces voor lange tijd kan vertragen.

Stel in het gedeelte "Formaat" de waarde "SQL" in. Schakel indien nodig de compatibiliteitsmodus in. En schakel ook het automatisch aanmaken van een sleutelwaarde uit voor kolommen met een nulwaarde (afhankelijk van de structuur van de geïmporteerde brontabellen). En om het importeren te voltooien, klikt u op "Ok".

Als u de MySQL-database van de back-up gaat overzetten, vergeet dan niet de "originele" bron van de server te verwijderen voordat u met importeren begint. Anders krijgt u een foutmelding, aangezien deze database al bestaat.

Als het proces succesvol was, zal het programmasysteem een ​​overeenkomstig bericht weergeven.

Alternatieve software

Ik heb beloofd je kennis te laten maken met verschillende DBMS-beheersoftware terwijl je MySQL leert. U kunt dus uw "professionele" blik verbreden en het programma kiezen dat het beste bij uw behoeften en type activiteit past.

Vandaag zullen we de draagbaarheid van MySQL testen met behulp van een krachtige, veelzijdige applicatie die is ontwikkeld door de ontwikkelaars van het databasebeheersysteem. U kunt MySQL Workbench downloaden van de officiële bron van het bedrijf. Verschillende distributies van derden (en koppelingen ernaar), die nodig zijn om het DBMS met dit platform te beheren, worden ook in detail beschreven.

Ik zal het nog een keer herhalen: de tool in kwestie heeft krachtige functionaliteit, dus we zullen alleen die bekijken die is ontworpen om individuele databases in SQL-indeling te importeren en exporteren. Om dit te doen, start u het programma, klikt u op het pictogram van de gewenste verbinding (als er meerdere zijn).

Selecteer in het nieuw geopende venster aan de linkerkant in het "Navigator"-paneel het gewenste tabblad (voor export of import). Ik importeer een dubbele database gemaakt met phpMyAdmin.

Om MySQL-gegevens over te zetten, gaat u door het item "Gegevens importeren". Selecteer op het gelijknamige tabblad in het gedeelte "Importopties" de tweede optie (aangegeven in de afbeelding).

Aangezien we geen schema's hebben, klikken we onderaan op "Start Import". Het volgende tabblad "Import Progress" toont de status van de overdracht van het opgegeven bestand. Deze optie kan van pas komen bij het importeren van grote hoeveelheden gegevens.

Na het einde van de MySQL-migratie verschijnt db1 in de lijst met databases, waarvan we een duplicaat hebben gemaakt met phpMyAdmin.

Terwijl ik mijn MySQL-database aan het "verstoppen" was, vertrokken alle familieleden. Omdat ik het druk had en er niemand was om de voedselbasis van de koelkast aan te vullen. Dit is hoe mijn favoriete DBMS me van een "gerelateerd" ongeluk heeft gered. Waarvoor veel dank aan haar.

Velen vroegen zich af hoe scripts van een MySQL-database naar een andere hosting konden worden overgebracht. Dus schreef ik in dit artikel hoe je je database kunt overzetten met SSH / telnet en PHPMyAdmin "a.

Als je telnet- of SSH-toegang tot beide servers hebt, is de volgorde van je acties als volgt:
Ga via telnet/SSH naar de bronserver. Exporteer de inhoud van uw database met het volgende commando:

mysqldump -uYourLogin -pYourpassword _mysql YourDatabase> baza.sql

Na het uitvoeren van deze opdracht wordt alle inhoud van uw database opgeslagen in het bestand baza.sql.

Vervolgens moet u het resulterende bestand met uw database uploaden naar de ontvangende server. Dit kan in dezelfde telnet / SSH-sessie met het ftp-commando, of met een willekeurige client (download eerst het baza.sql-bestand naar uw computer en upload het vervolgens naar de ontvangende server). Nadat uw databasebestand op de server van de ontvanger staat, gaat u via telnet / SSH naar deze server. U kunt uw database uploaden naar de ontvangende server door de volgende opdracht uit te voeren:

mysql -uYourLogin -pYourpassword _mysql YourDatabase< baza.sql

(wachtwoorden en logins en namen van databases moet u natuurlijk wel geldig aangeven voor de ontvangende server). Als gevolg hiervan zet u uw database zonder verlies van de ene server naar de andere.

De hierboven beschreven techniek kan worden gebruikt in gevallen waarin u toegang heeft tot beide servers via telnet of SSH en in gevallen waarin uw database groot genoeg is (enkele tienduizenden records). In gevallen waarin je geen toegang hebt tot de servers (of een van hen) via telnet of SSH, of je niet weet hoe je in een Unix-opdrachtomgeving moet werken en een telnet- of SSH-client gebruikt, kun je de volgende techniek gebruiken:
Ga op de bronserver naar het script voor het werken met MySQL-databases (in de regel is dit PHPMyAdmin). Selecteer de database die bedoeld is voor overdracht en specificeer in de eigenschappen "Dump (schema) van de database bekijken" (Opgemerkt moet worden dat de specifieke namen van de menu-items kunnen verschillen van de hier genoemde vanwege het feit dat verschillende versies van het programma kan op verschillende servers worden gebruikt, en daarom is het ten zeerste aan te raden om vertrouwd te raken met de relevante documentatie). Vink de vakjes aan die u nodig hebt: "Alleen structuur", "Structuur en gegevens", "Alleen gegevens" en markeer het item "Verzenden". Wanneer u na een tijdje op de knop "Go" klikt, wordt u gevraagd een bestand te downloaden - dit is de inhoud van uw database. Wanneer het bestand naar uw computer is gedownload.

U hebt een MS SQL Server-database die u naar een andere fysieke computer moet overbrengen. Je hebt al een back-up gemaakt en begint gelukkig met herstellen. Maar dan blijkt dat er een oudere versie van MS SQL Server is geïnstalleerd op de computer waar je de database moet overzetten. Stack Overflow verzekert u dat het slecht gaat. Maar is het echt zo?

Natuurlijk is het overzetten van een database van een nieuwere naar een oude versie geen klassiek en niet het meest correcte scenario. Maar vaak worden databases zo gemaakt dat ze steeds meer nieuwe versies van SQL ondersteunen, te beginnen met sommige, bijvoorbeeld 2008 R2, sinds Voorwaartse compatibiliteit met MS SQL is meer dan uitstekend. En uw klant heeft bijvoorbeeld al MS SQL 2016 voor zichzelf geïnstalleerd en u heeft MS SQL 2014 op de testserver voor ontwikkeling. En u wilt een klantenbestand inzetten om erachter te komen waar zijn gegevensverwarring zit.

Microsoft verwierp het probleem - ze zeggen dat ze geen achterwaartse compatibiliteit hebben, en dat is het dan. Een back-up die op een nieuwere server is gemaakt, kan niet worden teruggezet op een oudere server. Ja, ze hebben tools zoals DTS, database kopiëren, export-import, etc. Maar ze zijn zo onhandig en omslachtig dat de normale overdracht van een grote database met veel tabellen niet erg handig is om met hun hulp te doen. Persoonlijk is het mij in ieder geval niet gelukt.

Ja, u kunt SQL-scripts genereren voor de gehele database, inclusief data. Maar stel je voor, je hebt een heleboel blob-velden met big data in je database, en in het algemeen is de grootte van de hele database 500+ GB. Stel je voor hoe lang zo'n script zal duren, hoe lang het zal worden gegenereerd en uitgevoerd.

Beperking nummer één is dat u via MS SQL Management Studio toegang nodig heeft tot beide servers - oude en nieuwe. Als dit niet mogelijk is, dan zou het mogelijk moeten zijn op de machine waarvan u de database moet overzetten om de versie van SQL te installeren waarnaar u de database moet overzetten om de database eerst lokaal naar deze versie over te zetten, en dan sleep het via de back-up of rechtstreeks via *df-databasebestanden (via Detach / Attach) naar de nieuwe machine (de versie van SQL Server en in dit geval zal het al hetzelfde zijn).

Een andere beperking is dat je een databaseschemascript nodig hebt (alle objecten, inclusief tabellen, indexen, beperkingen, opgeslagen procedures, triggers, enz.) zonder gegevens, en de instructies voor het maken van Foreign Key Constraints in dit script moeten helemaal tot het einde gaan , los van het script voor het maken van de tabellen zelf.

Ik zal het algoritme voor gegevensoverdracht zelf kort beschrijven. Alle acties worden uitgevoerd in de Management Studio-sessie die is verbonden met de server, waarop? u moet de basis overbrengen.

1) Maak op de nieuwe server een lege database aan met dezelfde bestanden en bestandsgroepen als de draagbare database.

2) Met behulp van het databaseschemascript creëren we alle database-objecten (tabellen, indexen, views, triggers, opgeslagen procedures en functies), maar zonder het creëren van Foreign Key Constraints. Het is in dit stadium onmogelijk om een ​​FK te maken, omdat: ze zullen interfereren met het invoegen van gegevens.

3) We verbinden de database van waaruit we gegevens zullen overdragen, als een gekoppelde server "en zodat we oproepen naar de oude database kunnen gebruiken in query's naar de nieuwe database.

EXEC sp_addlinkedserver @ server = N "LinkedServerAlias", @ srvproduct = N "", @ provider = N "SQLNCLI", @ datasrc = N "LinkedServerHost \ LinkedServerName"; EXEC sp_addlinkedsrvlogin "LinkedServerUser", "false", null, "RealUser", "RealUserPassword";
4) Omdat de databasestructuren zijn hetzelfde, we zullen de ingebouwde opgeslagen procedure sp_msforeachtable gebruiken, waarmee we een query op elke databasetabel kunnen uitvoeren om een ​​script te genereren voor het overbrengen van gegevens van de oude database naar een nieuwe via een query van het formulier

INVOEREN? SELECTEER UIT?
In plaats van een vraagteken vervangt sp_msforeachtable de naam van elke tabel en voert de query meerdere keren uit (eenmaal voor elke tabel).

Hier kwam ik het grootste aantal harken tegen.

A) Probleem nummer één is dat je voor tabellen met IDENTITY-velden moet bellen:

STEL IDENTITY_INSERT IN; --INSERT INTO ... (zelf invoegen); STEL IDENTITY_INSERT UIT;
b) Probleem nummer twee is dat deze aanroep niet kan worden gedaan op tabellen die geen IDENTITY-velden hebben, daarom is het vereist om dynamisch te bepalen of er een IDENITY-kolom in de tabel is of niet.

Dit kan met een query als deze:

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME = "SomeTable") AND (COLUMNPROPERTY (object_id ("dbo.SomeTable"), COLUMN_NAME, "IsIdentity") = 1)
c) Probleem nummer drie is dat, zoals later bleek, je in de IDENITY_INSERT ON-modus niet kunt doen

INVOEREN IN ... KIES * VAN ...
, maar u moet specifieke velden vermelden.

U kunt tabelvelden op een rij opsommen met de volgende query:

SELECTEER SUBSTRING ((SELECT "," + QUOTENAME (COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = "SomeTable" ORDER DOOR ORDINAL_POSITION VOOR XML-pad ("")), 3, 200000);
4) Genereer een invoegscript voor alle tabellen:

Procedure voor het genereren van scripts

EXEC sp_msforeachtable N "DECLARE @command varchar (MAX); DECLARE @name varchar (200); SET @ name =" "?" "; SET @name = SUBSTRING (@name, 8, LEN (@name) -8); SET @command = "" ""; SELECT @ command = SUBSTRING ((SELECT "", "" + QUOTENAME (COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = "" "" + @name + "" "" ORDER OP ORDINALE_POSITIE VOOR XML-pad ("" "")), 3, 200000); SET @command = "" INSERT INTO "" + @name + "" ("" + @command + "") SELECT "" + @command + "" FROM "" + "" LinkedServerAlias.SourceDatabase. "" + ""? ""; SET @ command = "" INDIEN BESTAAT (selecteer * van INFORMATION_SCHEMA.COLUMNS waar (TABLE_NAME = "" "" "" + @Name + "" "" "") AND (COLUMNPROPERTY (object_id ("" "" dbo. "" [e-mail beveiligd]+ "" "" ""), COLUMN_NAME, "" "" IsIdentity "" "") = 1)) SET IDENTITY_INSERT "" + @name + "" AAN; "" [e-mail beveiligd]; SET @ [e-mail beveiligd]+ ""; "" + "" INDIEN BESTAAT (selecteer * uit INFORMATION_SCHEMA.COLUMNS waar (TABLE_NAME = "" "" "" + @Name + "" "" "") AND (COLUMNPROPERTY (object_id ("" "" dbo "" [e-mail beveiligd]+ "" "" ""), COLUMN_NAME, "" "" IsIdentity "" "") = 1)) SET IDENTITY_INSERT "" + @name + "" UIT; ""; AFDRUKKEN (@opdracht); --EXEC (@opdracht); // Als er geen commentaar is, wordt het script onmiddellijk uitgevoerd, niet alleen weergegeven "


5) Voer het gegenereerde script voor gegevensoverdracht uit

6) Voer het script uit om alle Foreign Key Constraints aan te maken (nu kan dat).

7) Klaar! U hebt de database van de nieuwe SQL-server naar de oude gemigreerd, hoewel dit als onmogelijk werd beschouwd. Bovendien verloopt de overdracht slechts anderhalf keer langzamer dan de gegevensoverdrachtsnelheid over het netwerk, d.w.z. vrij snel.

8) We ruimen zelf op (schakel de gekoppelde server uit):

EXEC sp_droplinkedsrvlogin "LinkedServerUser", null; sp_dropserver "LinkedServerAlias";
Beperkingen van de methode.

1) Als u een vergelijkbare methode gebruikt, werkt het niet om tabellen met kolommen van het XML-type over te dragen.
Er zijn zeker veel andere beperkingen, tk. de database die ik op een vergelijkbare manier heb gemigreerd, gebruikte niet veel van de mogelijkheden van de SQL-server. U kunt in de opmerkingen over de beperkingen schrijven en ik zal ze aan het artikel toevoegen.

Dank u voor uw aandacht! Hoop dat het iemand helpt.

Met het overzetten van de database bedoelen we de procedure voor het wijzigen van de server InterBase zowel in de richting van het verhogen van het serienummer als in de richting van het verlagen ervan, als ook het overstappen naar een ander besturingssysteem of hardwareplatform. Sommige bronnen verwijzen naar de procedure voor databaseoverdracht als: migratie.

Momenteel in gebruik versies InterBase van 4.x naar 6.x, en in de zesde versie kan de database worden aangemaakt in dialect 1 of in dialect 3. Over het algemeen is de overgang van de jongere versie InterBase naar de oudere versie vereist geen speciale acties en de databases werken normaal, maar de gebruiker kan geen gebruik maken van de aanvullende diensten die door de oudere versie worden geleverd. Als de procedure voor het overbrengen van de database is voltooid, zijn er aanvullende services beschikbaar. Wat betreft de dialecten van versie 6.x, sommige gegevenstypen worden op verschillende manieren geïnterpreteerd. Bijvoorbeeld, in eerdere versies InterBase en in dialect 1 versie 6.x is één datumtype gedefinieerd Datum, waarvan de waarde eerst de datum en vervolgens de tijd bevat. In dialect 3 versie 6.x zijn drie typen gedefinieerd - Tijdstempel, die precies overeenkomt met het type Datum, gedefinieerd in eerdere versies; een type Datum, die alleen datumwaarden bevat, en het type Tijd, die tijdwaarden bevat.

Bij het uitvoeren van de databaseoverdrachtprocedure wordt de automatische vervanging van het datumtype alleen uitgevoerd in de definities domeinen. Datumtype in metadata is vervangen handmatig.

Elk besturingssysteem interpreteert elk gegevenstype op zijn eigen manier. Bij het installeren van de server InterBase elke versie, is deze geconfigureerd voor het juiste besturingssysteem en de juiste hardwareomgeving.

Elke database is dus "gebonden" aan de serverversie InterBase, aan het besturingssysteem en de hardwareomgeving.

Dit verklaart de noodzaak om de procedure voor het overbrengen van de database uit te voeren.

Uit het bovenstaande wordt duidelijk dat het maken van een reservekopie van de database met de opname van de parameter Verplaatsbaar zorgt ervoor dat versie-informatie wordt opgenomen in het back-upbestand InterBase het besturingssysteem en de hardware-omgeving waarin de database is gemaakt en gebruikt.

Bij het overbrengen van een database naar een andere personal computer, zal de server InterBase leest het back-upbestand en converteert indien nodig gegevenstypen correct en maakt instellingen voor de nieuwe versie InterBase besturingssysteem en hardwareomgeving.

Houd er rekening mee dat het alleen mogelijk is om te upgraden naar de volgende versie in volgorde. InterBase zowel in stijgende als dalende richting.

Bij het overbrengen van een database van twee of drie versies hoger (of lager), moet u de overdrachtsprocedure voor elk uitvoeren tussenliggend versies егВазе.

Om het dialect te wijzigen (bijvoorbeeld van de eerste naar de derde), moet u ofwel de database opnieuw maken of het hulpprogramma gebruiken y / .

Algoritme voor de procedure voor databaseoverdracht

A. Maak een databaseback-upbestand. Het bestand wordt op een van de hierboven besproken manieren gemaakt. Het is raadzaam om te controleren of het back-upbestand correct is gemaakt. Om dit te doen, implementeert u op dezelfde pc de database in een andere map en controleert u de werking ervan.

B. Maak een kopiebestand van geregistreerde gebruikers op de server InterBase. Onthoud dat gebruikersinformatie in het bestand wordt opgeslagen isc4.gdb op server InterBase en in de database zelf. Een bestand kopiëren: iscA.gdb u kunt hetzelfde hulpprogramma gebruiken gbak.

Voorbeeld 12.7. Kopiëren van het bestand van geregistreerde gebruikers van de database.

gbak -b -gebruiker SYSDBA -wachtwoord hoofdsleutel C: IBServeisc4.gdb C: isc4.gdk

v. Server opnieuw installeren InterBase of schakel over naar een andere pc. Na het opnieuw installeren van de server op een pc (of het overschakelen naar een andere pc), hebt u het bestand nodig iscA.gdb herstellen met hetzelfde hulpprogramma gbak.

Het is belangrijk om te onthouden dat bij het upgraden naar een hogere versie InterBase alle klanten geregistreerd in de volgende lagere versie InterBase, zal prima werken (maar zonder extra functies), en in de oudere - onstabiel.

Voor dergelijke clients is het raadzaam om het clientgedeelte opnieuw te installeren InterBase op pc's van klanten.

Voorbeeld 12.8. Overdracht van het bestand van geregistreerde gebruikers van de database.

gbak -с -gebruiker SYSDBA -wachtwoord hoofdsleutel C: isc4.gdk C: isc4.gdb

Voorbeelden 12.7 en 12.8 betekenen dat de versie wordt vervangen InterBase op één computer.

d) Herstel (transfer) van de database met behulp van een van de hierboven beschreven methoden.

Het bovenstaande algoritme werkt betrouwbaar bij het upgraden van de versie InterBase. Als u het versienummer moet verlagen InterBase, om deze bewerking uit te voeren, moet u twee pc's hebben: de eerste - met een werkende database op een oudere versie InterBase, de tweede - met de geïnstalleerde server InterBase lagere versie. We starten de procedure voor het maken van een reservekopie van de database (item "a" van het algoritme) vanaf de tweede computer. Hierdoor wordt een lagere versie van het back-upbestand gemaakt. Maar de volgende opties zijn mogelijk:

  • in de oudere versie InterBase tijdens het maken en bedienen van de database zijn er geen mechanismen gebruikt die in de jongere versie ontbreken InterBase, dan wordt er een volledige werkkopie van de database in de secundaire versie gemaakt InterBase ",
  • de database gebruikte de originele mechanismen van de oudere versie InterBase, dan wordt een kopie van de database en een logboek met gevonden fouten verkregen. En fouten bij het nauwelijks herstellen van de database in de lagere versie InterBase zal moeten repareren handmatig.

Voor een betrouwbare werking van de database is het noodzakelijk om dezelfde versie en hetzelfde dialect van de server op te geven InterBase en de klantzijde InterBase elke klant.

Klanten van alle versies InterBase, in tegenstelling tot klanten die werken met dialect 3 versie 6.x, hebben geen toegang:

Naar trefwoorden:

CURRENTDATE CURRENTTIME CURRENT_ TIMESTAMP KOLUMN

TIJDSTEMPEL

Naar geciteerde identifiers.