Planifier les sauvegardes de base de données de SOLIDWORKS PDM Standard

epdm-webinar-image

C’est très important que les bases de données soient sauvegardées régulièrement. Même si vous sauvegardez le dossier des archives, vous devez tout de même sauvegarder la base de données pour pouvoir restaurer en cas de panne.
Pour ce faire, vous pouvez utiliser SQL Management Studio et le  planificateur de tâches de Windows.

La sauvegarde peut être créée en tant que script dans SQL Management Studio puis ajouté dans les sauvegardes quotidiennes en utilisant un fichier Batch qui sera executé par le planificateur de Tâches de Windows.

Les étapes pour créer une sauvegarde planifiée d’une base de données hébergée dans SQL Express sont expliquées dans le KB 20119698.

 Ci-dessous une modification simple des étapes :

  • Étape 1 :  Lancer SQL Management Studio et identifiez-vous en utilisant le compte sa et le mot de passe :SQL1
  • Étape 2 : cliquer sur « New Query »SQL2
  • Étape 3 :
    Copier et coller le script provenant de Microsoft Knowledge Base article KB2019698 dans la fenêtre de requête. Assurez-vous que la base de données « master » est spécifiée dans la liste, puis cliquez sur « Exécuter ». Cela va créer la procédure « sp_BackupDatabases » que le file Batch va activer pour créer les backups.SQL3

Ci-dessous la requête :

USE [master]
GO
/****** Object:  StoredProcedure [dbo].[sp_BackupDatabases] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

— =============================================

— Author: Microsoft
— Create date: 2010-02-06
— Description: Backup Databases for SQLExpress
— Parameter1: databaseName
— Parameter2: backupType F=full, D=differential, L=log
— Parameter3: backup file location

— =============================================

CREATE PROCEDURE [dbo].[sp_BackupDatabases]

@databaseName sysname = null,
@backupType CHAR(1),
@backupLocation nvarchar(200)

AS

SET NOCOUNT ON;
DECLARE @DBs TABLE
(
ID int IDENTITY PRIMARY KEY,
DBNAME nvarchar(500)
)
— Pick out only databases which are online in case ALL databases are chosen to be backed up
— If specific database is chosen to be backed up only pick that out from @DBs

INSERT INTO @DBs (DBNAME)
SELECT Name FROM master.sys.databases
where state=0
AND name=@DatabaseName
OR @DatabaseName IS NULL
ORDER BY Name

— Filter out databases which do not need to backed up

IF @backupType=’F’

BEGIN
DELETE @DBs where DBNAME IN (‘tempdb’,’Northwind’,’pubs’,’AdventureWorks’)
END
ELSE IF @backupType=’D’
BEGIN
DELETE @DBs where DBNAME IN (‘tempdb’,’Northwind’,’pubs’,’master’,’AdventureWorks’)
END

ELSE IF @backupType=’L’
BEGIN
DELETE @DBs where DBNAME IN (‘tempdb’,’Northwind’,’pubs’,’master’,’AdventureWorks’)
END

ELSE
BEGIN
RETURN
END

— Declare variables

DECLARE @BackupName varchar(100)
DECLARE @BackupFile varchar(100)
DECLARE @DBNAME varchar(300)
DECLARE @sqlCommand NVARCHAR(1000)
DECLARE @dateTime NVARCHAR(20)
DECLARE @Loop int

— Loop through the databases one by one

SELECT @Loop = min(ID) FROM @DBs
WHILE @Loop IS NOT NULL
BEGIN

— Database Names have to be in [dbname] format since some have – or _ in their name

SET @DBNAME = ‘[‘+(SELECT DBNAME FROM @DBs WHERE ID = @Loop)+’]’

— Set the current date and time n yyyyhhmmss format

SET @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),101),’/’, ») + ‘_’ +  REPLACE(CONVERT(VARCHAR, GETDATE(),108),’:’, »)

— Create backup filename in path\filename.extension format for full,diff and log backups

IF @backupType = ‘F’
SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, ‘[‘, »),’]’, »)+ ‘_FULL_’+ @dateTime+ ‘.BAK’
ELSE IF @backupType = ‘D’
SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, ‘[‘, »),’]’, »)+ ‘_DIFF_’+ @dateTime+ ‘.BAK’
ELSE IF @backupType = ‘L’
SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, ‘[‘, »),’]’, »)+ ‘_LOG_’+ @dateTime+ ‘.TRN’

— Provide the backup a name for storing in the media

IF @backupType = ‘F’
SET @BackupName = REPLACE(REPLACE(@DBNAME,'[‘, »),’]’, ») +’ full backup for ‘+ @dateTime
IF @backupType = ‘D’
SET @BackupName = REPLACE(REPLACE(@DBNAME,'[‘, »),’]’, ») +’ differential backup for ‘+ @dateTime
IF @backupType = ‘L’
SET @BackupName = REPLACE(REPLACE(@DBNAME,'[‘, »),’]’, ») +’ log backup for ‘+ @dateTime

— Generate the dynamic SQL command to be executed

IF @backupType = ‘F’
BEGIN
SET @sqlCommand = ‘BACKUP DATABASE ‘ +@DBNAME+  ‘ TO DISK =  »’+@BackupFile+  »’ WITH INIT, NAME=  »’ +@BackupName+ »’, NOSKIP, NOFORMAT’
END

IF @backupType = ‘D’
BEGIN
SET @sqlCommand = ‘BACKUP DATABASE ‘ +@DBNAME+  ‘ TO DISK =  »’+@BackupFile+  »’ WITH DIFFERENTIAL, INIT, NAME=  »’ +@BackupName+ »’, NOSKIP, NOFORMAT’
END

IF @backupType = ‘L’
BEGIN
SET @sqlCommand = ‘BACKUP LOG ‘ +@DBNAME+  ‘ TO DISK =  »’+@BackupFile+  »’ WITH INIT, NAME=  »’ +@BackupName+ »’, NOSKIP, NOFORMAT’
END

— Execute the generated SQL command

EXEC(@sqlCommand)

— Goto the next database

SELECT @Loop = min(ID) FROM @DBs where ID>@Loop

END

  • Étape 4 :  Ouvrir un éditeur de texte tel que Notepad et copier et coller le texte suivant :

——————————-

::Specify Folder Location For SQL Database Backups

set BACKUPPATH=c:\SQL Backup

::Specify Name of PDM Vault Database

set PDMDATABASE=PDMVault

::Specify How Many Days Of Backups To Keep

set numbackups=14

sqlcmd -S .\SWPDM -E -Q »EXEC sp_BackupDatabases @backupLocation=’%BACKUPPATH%\’, @databaseName=%PDMDATABASE%, @backupType=F »

sqlcmd -S .\SWPDM -E -Q »EXEC sp_BackupDatabases @backupLocation=’%BACKUPPATH%\’, @databaseName=ConisioMasterDB, @backupType=F »

forfiles /P « %BACKUPPATH% » /S /M *.BAK /D -%numbackups% /C « cmd /c del @PATH »

——————————–

Remplacer “C:\SQL Backup” avec le chemin du fichier dans lequel les fichiers de sauvegarde la base de données SQL seront enregistrés (ça doit être un emplacement sur le disque dur local)

Remplacer « PDMVault » avec le nom de la base de données de la voûte PDM. Celui-ci peut être différent du nom de la voûte.

Remplacer « 14 » avec le nombre de jours que vous avez définis pour garder les fichiers de sauvegarde.

  • Étape 5 :
    Sauvegarder le fichier en choisissant « All files » pour le type de sauvegarde, puis nommez le fichier « Sqlbackup.bat » et enregistrer le fichier.

sql4

  • Étape 6 :
    Démarrer le planificateur de tâches et cliquer sur « Créer une tâche de base » pour lancer l’assistant.

sql5

sql6

  • Étape 7 :  Régler la tâche sur démarrage tous les jourssql7
  • Étape 8 : Régler le temps de la sauvegarde.
  • sql8Étape 9 : Réglez l’action de tâche sur « Démarrer un programme »

sql9

  • Étape 10 : Cliquez sur “Parcourir”  et sélectionner le fichier Batch de l’étape 5. Puis, cliquer sur suivant pour finir la tâche.

sql10

sql11

twitterlinkedinmail

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *