Partager via


Moving Database Files on the secondary server in Log Shipping

Moving Database Files on the secondary server in Log Shipping

You are using Microsoft SQL Server Logshipping for one of your VLDB (very large database). You would like to move data files on another disk on the secondary server without reconfiguring log shipping.

As you cannot use the detach/attach database, you could follow the way below :

This solution is inspired of the documentation "Moving Database Files" https://technet.microsoft.com/en-us/library/ms345483.aspx

Step 1 : If your secondary is with the option "Standby Mode", you must change by "no recovery mode". And perform a transaction (insert, delete or update)
After, you have to manually run the job of backup, Then the jog of copy and the restore job.

Step 2 : Collect the logical name :

SELECT
  name as logicalname, physical_name as filename
FROM 
  sys.master_files
WHERE
  database_id = DB_ID('yourDatabaseName');

Step 3 : Move the file on the path expected :

ALTER DATABASE yourDatabaseName

MODIFY FILE( NAME = logicalname, FILENAME = 'M:\newpath.mdf')

Step 4 : Stop SQL server service, move the database file and start SQL server Service

Step 5 : Check that the update is ok with the query below :

SELECT
  name as logicalname, physical_name as filename
FROM 
  sys.master_files
WHERE
  database_id = DB_ID('yourDatabaseName');

You can follow the same way to add a file to a log shipped database.

Déplacer les fichiers de données d'une base de données en Log Shipping

Vous utilisez Microsoft SQL server Logshipping pour une de vos bases de données VLDB (very large database). Vous souhaiteriez déplacer les fichiers de données SQL Server sur un autre disque du serveur secondaire sans avoir à reconfigurer le Log Shipping.

Comme vous ne pouvez pas utiliser la méthode attache/détache, you pouvez suivre le scénario ci-dessous :

Cette solution s'inspire de la documentation "Déplacement des bases de données utilisateur" https://technet.microsoft.com/fr-fr/library/ms345483.aspx

Etape 1 : Si vous êtes en mode "Stand By", vous devez repasser en mode "no recovery mode". Pour que le modification soit prise en compte, vous devez lancer une transaction (insert, delete ou update).
Ensuite, vous devez manuellement lancer le job de backup, copy et restaure afin que la modification soit prise en compte sur le serveur secondaire.

Etape 2 : Collecter le nom logique du fichier :

SELECT
name as logicalname, physical_name as filename
FROM
sys.master_files
WHERE
database_id = DB_ID('NomDeVotreBaseDeDonnées');

Etape 3 : Modifier l'emplacement du fichier. Vous devez mettre le nom logique et le nom du nouveau chemin :

ALTER DATABASE votreDatabase

MODIFY FILE( NAME = logicalname, FILENAME = 'M:\newpath.mdf')

 

Etape 4 : Arrêter le service SQL, déplacer le fichier et démarrer le service

Etape 5 : Vérifier le résultat avec la requête suivante
SELECT
  name as logicalname, physical_name as filename
FROM 
  sys.master_files
WHERE
  database_id = DB_ID('NomDeVotreBaseDeDonnées');

Vous pouvez suivre le même chemin pour ajouter un fichier à votre base de données en log shipping.

Mover archivos de base de datos en el servidor secundario en Log Shipping

Puede utilizar Microsoft SQL Server Logshipping para una de sus bases de datos VLDB (very large database). Que desea mover los archivos de datos de SQL Server a otro disco en el servidor secundario sin tener que reconfigurar el Log Shipping.

Puesto que usted no puede utilizar la adjunto / separados, puede seguir el siguiente escenario:

Esta solución se basa en la documentación "Mover bases de datos de usuario" https://technet.microsoft.com/es-es/library/ms345483.aspx

Paso 1 : Si el secundario es con la opción "Stand By", debe cambiar por "no recovery mode". Y realizar una transacción (insert, delete ou update).
Entonces usted debe iniciar manualmente el trabajo de copia de seguridad, copiar y restaurar de manera que el cambio surta efecto en el servidor secundario.

Paso 2 : Encontrar el nombre lógico del archivo :

SELECT
  name as logicalname, physical_name as filename
FROM 
  sys.master_files
WHERE
  database_id = DB_ID('suBaseDeDatos');

Paso 3 : Cambiar la ubicación del archivo. Se necesita el nombre lógico y el nombre de la nueva ruta :

ALTER DATABASE suBaseDeDatos
MODIFY FILE( NAME = logicalname, FILENAME = 'M:\newpath.mdf')

Paso 4 : Detenga el servicio de SQL, mover el archivo y iniciar el servicio

Paso 5 : Comprobar el resultado con la siguiente consulta :

SELECT
  name as logicalname, physical_name as filename
FROM 
  sys.master_files
WHERE
  database_id = DB_ID('suBaseDeDatos');

Usted puede seguir el mismo camino para agregar un archivo a su base de datos en el Log Shipping

Michel Degremont | Microsoft EMEA
Product Support Services Developer - SQL Server Core Engineer |