SqlServer 2005 copie de base **************************** Sauvegarde / copie ================== Il est souvent utile de pouvoir restaurer une base sous un autre nom, sur un autre serveur. Nous allons pour cela utiliser une sauvegarde complète d’une base et l’utilisé pour créer (via une restaure) dans une autre base. Prenons comme pré-requis * sur un serveur X, nous avons une base KAPPA * sur un serveur Y, nous souhaitons avec une base KAPPAPP, copie extacte de la base KAPPA Tout d’abord sur le serveur X, connecté sur la base master nous allons réalisé un backup de la base KAPPA .. code-block:: bash BACKUP DATABASE DBFRED TO DISK='C:\SVG\KAPPA_SQL.back' Nous déplaçons cette sauvegarde du serveur X sur le Serveur Y. Nous avons maintenant un fichier C:/KAPPA_SQL.back sur le serveur Y contenant la sauvegarde de la base KAPPA. Sur le serveur X nous récupérons, via l’outil SQL Server Express, le code de création de la base. Seul le début du code nous intéresse: .. code-block:: bash CREATE DATABASE [KAPPA] ON PRIMARY ( NAME = N'KAPPA_Data', FILENAME = N'D:\MSSQL\DATA\KAPPA_Data.mdf' , SIZE = 40960KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%), FILEGROUP [Data Filegroup 1] ( NAME = N'KAPPA_1_Data', FILENAME = N'D:\MSSQL\DATA\KAPPA_1_Data.ndf' , SIZE = 163840KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%) LOG ON ( NAME = N'KAPPA_Log', FILENAME = N'D:\MSSQL\DATA\KAPPA_Log.ldf' , SIZE = 181504KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) La base KAPPA utilise 3 fichiers: * mdf * ndf * ldf Sur le serveur Y nous voulons que ces fichiers ce trouve dans C:/Data. restaurons donc maintenant notre base, sous le nom de KAPPAPP .. code-block:: bash RESTORE DATABASE KAPPAPP FROM DISK = N'C:\KAPPA_SQL.back' -- lieu ou se trouve le fichier de backup de KAPPA -- sur le serveur Y WITH FILE = 1, -- on deplace les fichiers log MOVE 'KAPPA_1_Data' TO N'C:\Data\KAPPAPP_1_Data.ndf', MOVE 'KAPPA_Data' TO N'C:\Data\KAPPAPP_Data.mdf', MOVE 'KAPPA_Log' TO N'C:\Data\KAPPAPP_Data.ldf' NOUNLOAD, STATS = 10; Nous avons maintenant sur le serveur Y une base KAPPAPP image de la base KAPPA sur le serveur X Copie Directe ============= Nous avons sur un serveur une base * nom KAPPA * log dans D:/MSQLDATA (un fichier ndf, mdf et ldf) * sauvegarde full dans D:/SVGKAPPA_SQL.back Nous souhaitons avoir sur le même serveur un copie de cette base avec * pour nom KAPPAPP * log dans D:/MSQLDATAPP .. code-block:: bash -- DROP DATABASE KAPPAPP RESTORE DATABASE KAPPAPP FROM DISK = N'D:\SVG\KAPPA_SQL.back' WITH FILE = 1, MOVE 'KAPPA_1_Data' TO N'D:\MSSQL\DATAPP\KAPPAPP_1_Data.ndf', MOVE 'KAPPA_Data' TO N'D:\MSSQL\DATAPP\KAPPAPP_Data.mdf', MOVE 'KAPPA_Log' TO N'D:\MSSQL\DATAPP\KAPPAPP_Data.ldf', NOUNLOAD, STATS =