Sposta il file di registro senza portare offline il database


Risposte:


16

Non è possibile farlo con un database online.

Quando sposti un file di database ( ALTER DATABASE ... MODIFY FILE), ricevi persino il seguente messaggio:

Il file "YourFile" è stato modificato nel catalogo di sistema. Il nuovo percorso verrà utilizzato al successivo avvio del database .


Il modo normale per farlo sarebbe quello di staccare il DB, spostare il file di registro e ricollegare il db.

Non è il modo "normale" o accettato in cui lo farei. Per spostare i file di database, faccio quanto segue:

  1. Esegui un comando ALTER DATABASE per modificare la posizione dei file
  2. Porta offline il database
  3. Spostare fisicamente i file nella nuova posizione specificata nel passaggio 1
  4. Porta il database online

Vedi questo riferimento su TechNet: Sposta database utenti


3

Secondo il riferimento su TechNet Sposta database utente dalla risposta di Thomas Stringer , se si desidera spostare i file senza arrestare l'intera istanza di SQL Server (seguendo la "Procedura di trasferimento pianificato"), l'ordine dovrebbe essere:

ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;

Nota prima la OFFLINE; successivamente spostare i file e comunicare a SQL Server le nuove posizioni.

Se è necessario rimuovere l'intera istanza di SQL Server (consultare la procedura "Rilocazione per la manutenzione programmata del disco"), è consigliabile modificare prima i percorsi dei file in modo che quando l'istanza viene riavviata, non vi siano problemi a trovare i file nelle nuove posizioni.


1

So che questa è una vecchia domanda, ma non puoi semplicemente aggiungere un secondo file di registro (che viene quindi utilizzato dal DB anziché dall'originale) nella nuova posizione, quindi ridurre / rimuovere l'originale?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.