Esporta (0) Stampa
Espandi tutto

Come utilizzare un disco dati collegato per archiviare i file di database

Aggiornamento: febbraio 2014

Per le istanze di SQL Server in esecuzione in una macchina virtuale di Azure, è consigliabile utilizzare i dischi dati collegati per archiviare i file aziendali, di dati, di log e di backup. Come illustrato nell'articolo Procedure consigliate per le prestazioni per SQL Server nelle macchine virtuali di Azure, per migliorare le prestazioni si consiglia di archiviare i database più grandi di 10 GB nei dischi dati collegati.

In base all'immagine utilizzata per il provisioning di un'istanza di SQL Server in una macchina virtuale di Azure, SQL Server e i database possono essere installati nell'unità C: . Per la rilocazione dei file di database nei dischi dati collegati e la modifica del percorso predefinito per i file di database sono richiesti lo spostamento di questi ultimi e la modifica delle impostazioni delle proprietà del server.

Di seguito sono riportati scenari comuni per i quali sono richiesti lo spostamento del database e, talvolta, la riconfigurazione delle impostazioni del percorso del file di database predefinito.

 

Scenario

Azione richiesta

Si esegue il provisioning di una macchina virtuale di Azure utilizzando un'immagine della raccolta di Azure in cui è incluso SQL Server. Quest'ultimo è preinstallato nell'unità C: e tutti i file di database del sistema sono archiviati in questa unità . Questo scenario è anche simile all'utilizzo di un'immagine personalizzata per cui SQL Server è installato nell'unità C: .

Si desidera spostare tutti i file di database, inclusi i database di sistema, in un disco dati collegato, nonché configurare le impostazioni predefinite di SQL Server, in modo che tutti i nuovi database vengano installati nel disco dati collegato.

Spostare i file di database

Configurare il percorso predefinito del database

In SQL Server in esecuzione in una macchina virtuale di Azure è presente un database utente installato nell'unità C: . Le dimensioni del database sono ora maggiori di 10 GB. Si desidera spostare i file di database dall'unità C: a un disco dati collegato in base alle linee guida fornite nell'argomento Procedure consigliate per le prestazioni per SQL Server nelle macchine virtuali di Azure.

Spostare i file di database

Si desidera installare un database specifico in un disco dati collegato a causa delle dimensioni o di altri requisiti.

Selezionare il disco dati collegato per il percorso del file di database

Si desidera ripristinare un database e rilocarlo in un disco dati collegato.

Eseguire il ripristino nel disco dati collegato

Nelle sezioni seguenti vengono descritti gli strumenti e le attività utilizzabili per spostare i file di database, configurare le impostazioni di SQL Server per installare i database in un disco dati collegato, selezionare un disco dati collegato per un nuovo database e ripristinare un database in un disco dati collegato.

In questo esempio, l'unità F: fa riferimento a un disco dati collegato, inizializzato ed etichettato con la lettera dell'unità F. Per informazioni su come collegare i dischi a una macchina virtuale di Azure, vedere la pagina relativa al collegamento di un disco dati a una macchina virtuale.

Per spostare i file di database dal disco del sistema operativo all'unità F:, effettuare i seguenti passaggi:

  1. Creare una cartella nell'unità F: per l'istanza di SQL Server e denominarla con l'ID dell'istanza. Questa rappresenta la directory radice per tutti i file di database. Ad esempio, se si stanno spostando file da un'istanza predefinita di SQL Server, creare una cartella denominata MSSQL11.MSSQLSERVER. Se si stanno spostando file di database in più istanze, creare una cartella per ogni istanza.

  2. Ottenere un elenco di tutti i file di dati e di log utilizzando la query seguente:

    SELECT      db.name AS [DatabaseName]
    ,f.name AS [LogicalFileName]
    ,f.physical_name AS [PhysicalFileName]
    FROM        sys.databases db, sys.master_files f
    WHERE       db.database_id = f.database_id
    AND         f.type_desc IN (N'ROWS', N'LOG')
    ORDER BY    db.name
    
    
  3. Aggiornare i percorsi per tutti i file di dati e di log delle transazioni in modo che puntino all'unità F: . Per effettuare gli aggiornamenti per tutti i database, ad eccezione di quello di sistema master, è possibile utilizzare l'istruzione ALTER DATABASE.

    I nuovi percorsi devono corrispondere a quelli delle directory precedenti. Ad esempio, se il percorso precedente è C:\Programmi\Microsoft SQL Server\MSSQL11.MSSQLSERVER\ MSSQL\DATA\master.mdf, il percorso nuovo deve essere F:\ MSSQL11.MSSQLServer\MSSQL\DATA\master.mdf. Creare le sottocartelle necessarie nella directory radice.

    1. Aggiornamento del percorso del file di database master: in Gestione configurazione SQL Server fare clic su Servizi di SQL Server. Selezionare l'istanza di SQL Server e fare clic con il pulsante destro del mouse per selezionare Proprietà. Selezionare la scheda Parametri di avvio e aggiornare i valori per i parametri –d e -l.

    2. Aggiornamento del percorso del file per tutti gli altri database: per modificare il percorso del file, utilizzare l'istruzione ALTER DATABASE. Eseguire l'istruzione seguente per ogni file di dati e di log in corso di spostamento.

      ALTER DATABASE <DatabaseName> MODIFY FILE (NAME='<LogicalFileName>', FILENAME='<Path/OSFileName>')
      
      
      
      Per ulteriori informazioni, vedere Spostare file del database.

  4. Arrestare il servizio SQL Server.

  5. Per tutti i database con percorsi aggiornati, copiare i file nel nuovo percorso nell'unità F: . Configurare le autorizzazioni del file system per l'accesso al motore di database Di seguito sono riportate due modalità di configurazione delle autorizzazioni del file system:

    1. Utilizzando Esplora risorse, impostare le autorizzazioni per la directory dei dati e per tutti i file in essa contenuti. Per ulteriori informazioni, vedere la pagina relativa alla configurazione delle autorizzazioni del file system per l'accesso al motore di database.

    2. Utilizzare icacls utility per impostare le autorizzazioni. Tramite i seguenti comandi di esempio l'elenco ACL viene copiato dalla directory di dati precedente e ripristinato nella directory e nei file nuovi.

      Tramite il primo comando l'elenco ACL viene copiato per la directory di dati e salvato in un file denominato ACLFile_Dir. Tramite il secondo comando l'elenco ACL viene copiato per tutti i file della directory di dati in un file denominato ACLFile_Files.

      icacls "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA" /save ACLFile_Dir 
      icacls "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\*" /save ACLFile_Files
      
      Tramite i due comandi seguenti viene ripristinato l'elenco ACL copiato nel passaggio precedente; questo elenco viene inoltre applicato alla directory e ai file nuovi.

      icacls "F:\mssql11.mssqlserver\mssql" /restore AClFile_Dir 
      icacls "F:\mssql11.mssqlserver\mssql\data" /restore ACLFile_Files
      
      Per ulteriori informazioni sull'utilità icacls, vedere la pagina relativa a Icacls.

  6. Riavviare il servizio SQL Server. I database devono ora puntare al nuovo percorso.

Per modificare il percorso di installazione predefinito dei file di database, modificare le voci relative al percorso predefinito del database in Proprietà server. Nel database creato dopo questa modifica viene utilizzato il nuovo percorso per archiviare i file. Per ulteriori informazioni, vedere Proprietà server (pagina Impostazioni database)

Quando si crea un database, utilizzare l'istruzione CREATE DATABASE e specificare il nuovo percorso nel disco dati collegato con l'argomento FILENAME. Per ulteriori informazioni, vedere Create Database (Transact-SQL).

Per rilocare i file di dati e di log durante il ripristino del backup di un database in un disco dati collegato, utilizzare l'argomento WITH MOVE per specificare il nuovo percorso. Per ulteriori informazioni, vedere Restore (Transact-SQL).

Mostra:
© 2014 Microsoft