Hej, Det beror på vad du har för version av SQL. Det är så att den Lokala Databasen kör Microsoft SQL Server Desktop Engine version 8.00.760 Då har du nog följande att välja på. Jag bugar och tackar. Ska försöka göra en backup via TSQL för att sedan återställa den i fjärrdatabasen. Hej! Ursäkta om jag blandar mig i... Det går säker att lösa med SMO och jag kanske hamnar där till slut. Tillsvidare kör jag med en .bat-fil som jag kör från min VB-applikation. Den ser ut som följer:Kopiera Databaser...
Sitter och funderar på hur man ska gå till väga om man vill ha två databaser synkade mot varandra?
Upplägget ser ut som följer:
En lokal MS SQL-databas uppdateras kontinuerligt med data via en VB-snutt.
En fjärr MS SQL-databas finns också och denna ska innehålla samma data som den lokala databasen.
Då till mitt lilla dilemma. Som det är nu skriver jag till bägge databaserna samtidigt och det funkar bra.
Men ibland så faller nätverket mot fjärrdatabasen och genast blir innehåller i de båda databaserna olika.
Jag har en fundering på att varje natt radera fjärrdatabasen och sedan kopiera den lokala databasen till fjärrdatabasen. Då har man samma innehåll varje morgon i alla fall. Då till min fråga:
Kan man i VB via en SQL-sats kopiera en hel databas eller måste jag ta rad för rad när jag kopierar?
Finns det några färdiga funktioner i MS SQL för att synka eller spegla databaser och därmed endast uppdatera min lokala databas med VB och låta MS SQL sköta resten?
Mvh JörgenSv: Kopiera Databaser...
I SQL 2000 har du logshipping och replikering som alternativ.
I SQL 2005 finns förutom detta även mirroring och peer to peer replikering allt beroende på vilken version du använder.
Logshipping fungerar så att en sql server "skeppar" sina loggfiler till en annan som läser in dessa i en databas och på det sättet hålls båda uppdaterade.
Replikering sker genom att datat replikeras alltingen kontinuerligt eller efter ett schema. Man kan replikera samma data eller bara vald data till flera sql servrar. Man kan även (om man vill) göra ändringar på de "mottagande" servrarna som replikeras tillbaka till orginal servern.
När det gäller att manuellt ta backup och kopiera filen till annan server samt att köra en restore kan jag rekommendera BooksOnline. Sök efter BACKUP DATABASE och RESTORE DATABASE.
.ÖSv:Kopiera Databaser...
och Fjärrdatabasen kör MS SQL Server 2005. Går det att kombinera dessa två?
Vilket alternativ är lättast att få igång?Sv: Kopiera Databaser...
- Utöka din VBsnutt till att hantera dessa nätavbrott
eller
- Köra schemalagd backup på din MSDE via TSQL och sedan kopiera denna till fjärrdatabasen och där lägga upp ett jobb som importerar/restore:ar databasen.
Lite info: http://support.microsoft.com/kb/241397
.ÖSv:Kopiera Databaser...
Sv: Kopiera Databaser...
SMO kanske kunde vara ett alternativ, SQL server Management Objects, se http://msdn2.microsoft.com/en-us/library/ms162169.aspx
Har för mig det finns både till COM och .net
mvh Johan KarlssonSv:Kopiera Databaser...
@Echo Off
Echo *** Delete Old Backupfile ***
Echo.
Echo DEL \\server\public\db.bak
Echo.
Echo *** Backup Local Database ***
Echo.
osql -E -S server07 -n -Q "BACKUP DATABASE dbCtcEco TO DISK = '\\server\public\db.bak'"
Echo.
Echo *** Restore Remote Database ***
Echo.
osql -E -S server06 -n -Q "RESTORE DATABASE db FROM DISK = '\\server\public\db.bak' WITH REPLACE"
Pause
Behöver jag ta backup på LOG-filerna också eller klarar det sig bara med DATABASE-filerna?
Går det att köra ovanstående från VB på något annat sätt än via shell och en .bat-fil?
/Jörgen