Perché è un tale missione per il backup di un database di SQL Server 2008 Express?
-
11-10-2019 - |
Domanda
Non vorrei descrivere me stesso come paura del cambiamento - ma ha paura delle nuove tecnologie? SI CERTAMENTE! Tecnologie di sistemi operativi, ai server di database solo sembrano diventare spiati, inefficiente e indietro l'ulteriore loro "progresso"
MSDE 2000 (quello che potremmo definire "SQL 2000 Express" nel mondo di oggi)
BACKUP [MyDatabase] TO FILE 'c:\backups\mybackup.backup'
SQL 2008 Express
Aspetta! Il suo un 'istanza di utente' - una copia di backup abbiamo bisogno di collegarlo a un'istanza del server
Aspetta! Per fissarlo abbiamo bisogno SQL Management Studio Express (78MB download)
Aspetta! Quando abbiamo accedere per la nostra istanza del server SQLEXPRESS \ e cercare di collegare la nostra banca dati ci dà un errore che letteralmente appare come un bug nel nostro progetto dev homebrew:.
TITOLO: Microsoft SQL Server Management Studio
Non posso mostrare dialogo richiesto.
------------------------------ ULTERIORI INFORMAZIONI:
Nome di parametro: nColIndex Valore reale era -1. (Microsoft.SqlServer.GridControl)
Qualcuno può spiegare come fare il backup di un'istanza utente di un database di SQL Server 2008 Express in codice T-SQL?
(scusate se questa si imbatte come una fiamma a ummmm, Microsoft -.! In realtà sono un grande fan di loro Proprio veramente arrabbiato di cose come questo si prega di non votare me down ...)
Soluzione 2
qualche chiave CONSIGLI PER NOTA QUANDO cercando di raggiungere istanza utente BACKUP
a.) Collegamento
La stringa di connessione dovrebbe essere simile a questo:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;User Instance=True;Database=MyDatabaseAlias
È essenziale che la stringa di connessione dà il collegamento un alias Database=MyDatabaseAlias
-. Questo alias non può essere duplicato in concomitanza sulla stessa macchina o la connessione potrebbe non riuscire
b.) Backup
Come sottolineato in precedenza, il Transact SQL per il backup di un database è la stessa su SQL MSDE / 2000/2005/2008 / R2 - una volta che avete il vostro database collegato e alias
BACKUP DATABASE MyDatabaseAlias TO DISK = 'c:\backups\mydatabase_20101117.backup'
Che cosa è veramente sorprendente è il toro $ h! T errori si può ottenere perché la stringa di connessione doesnt hanno la parte alias Database=MyDatabaseAlias
.
es. Impossibile aprire il file fisico 'c: \ Codice \ MyProject \ App_Data \ MyDatabase.mdf' Errore di sistema operativo. 32: "32 (. Il processo non può accedere al file perché è utilizzato da un altro processo)" DATABASE BACKUP è di terminazione in modo anomalo.
c.) Ripristino
USE [master]; RESTORE DATABASE MyDatabaseAlias FROM DISK = 'c:\backups\mydatabase_20101117.backup' WITH REPLACE
Non dimenticate il tutto USE [master];
essenziale all'inizio di questa dichiarazione (e nota che il suo tutto su una riga per chi eseguire il comando da un DataContext
o simili) Se lo fai, non sarà in grado di sovrascrivere il database esistente, perché ci si può comunque essere collegati ad esso.
Ancora una volta, l'assortimento di totalmente fuorviante errori si potrebbe ricevere qui, a causa di una stringa di connessione non valida, è senza fine.
Altri suggerimenti
Um, se si tratta di un'istanza utente, allora la strategia di backup semplice è quello di copiare il file. (Anche se non è connesso a SQL Server).
Se avete bisogno di una strategia di backup più completa (ad esempio i backup transazionale), allora davvero dovrebbe guardare un database più completo (ad esempio, una "normale" uno attaccato a un'istanza di SQL Server completa)