Comment planifier les sauvegardes de la base de données standard de SOLIDWORKS PDM ?
Article par Andrew Lidstone, CSWE mis à jour le 14 juin 2017
Article
SOLIDWORKS PDM Professional fonctionne sur Microsoft SQL Standard, ce qui permet de mettre en place des plans de maintenance qui créeront automatiquement des fichiers de sauvegarde pour les bases de données PDM. En revanche, SOLIDWORKS PDM Standard fonctionne sous Microsoft SQL Express, qui ne comprend pas l'agent SQL Server et ne permet donc pas de créer des sauvegardes automatiques.
Ilest TRÈS important que les bases de données de la chambre forte SOLIDWORKS PDM Standard soient sauvegardées quotidiennement. Si vous n'avez pas encore mis en place un processus de sauvegarde des bases de données, faites-le sans tarder, car vos données sont menacées tant que vous ne l'avez pas fait (même si vous sauvegardez le dossier d'archives contenant les fichiers de la chambre forte, vous avez toujours besoin d'une sauvegarde de la base de données à restaurer en cas de défaillance du système).
Il existe deux options pour configurer des sauvegardes planifiées d'une base de données Microsoft SQL Server Express.
Option 1 : Utilitaires de troisième partie
Il existe plusieurs utilitaires, payants ou gratuits, qui peuvent faire un excellent travail de sauvegarde des bases de données. Certains de ces outils offrent même la possibilité de télécharger les sauvegardes vers un stockage en nuage ou d'envoyer des notifications par courriel si vous le souhaitez.
Quelques options sont possibles :
Remarque : ces utilitaires ne sont pas des produits SOLIDWORKS ou Javelin, cette liste est donc fournie à titre d'information uniquement. Javelin ne recommande pas spécifiquement un de ces utilitaires plutôt qu'un autre et ne peut pas garantir leur efficacité.
Lorsque vous utilisez ces utilitaires, assurez-vous que la base de données de SOLIDWORKS PDM Vault ET la base de données ConisioMasterDB sont sauvegardées.
Option 2 : Utilisation de SQL Server Management Studio et du planificateur de tâches de Windows
Une sauvegarde peut être scriptée via le SQL Server Management Studio, puis configurée pour être effectuée quotidiennement à l'aide d'un fichier batch exécuté par le planificateur de tâches intégré à Windows.
Les étapes de la création d'une sauvegarde planifiée d'une base de données hébergée dans Microsoft SQL Server Express sont expliquées dans l'article KB2019698 de la base de connaissances Microsoft.
Vous trouverez ci-dessous une légère modification de ces instructions, y compris un fichier batch un peu plus simple à configurer qui effectuera également un nettoyage des sauvegardes, en supprimant celles qui datent de plus d'un certain nombre de jours.
Pour utiliser cette méthode, l'outil SQL Server Management Studio doit être installé.
Voici les étapes :
Étape 1 : Lancez le SQL Server Management Studio et connectez-vous à l'instance nommée "SWPDM" en utilisant le compte et le mot de passe sa.
Étape 2 : Cliquez sur "Nouvelle requête".
Étape 3 : Copiez et collez le script de l'article KB2019698 de la base de connaissances Microsoft dans la fenêtre de requête (le texte de la requête est ci-dessous pour faciliter la référence). Assurez-vous que la base de données "master" est spécifiée dans la liste déroulante, puis cliquez sur "Execute". Cela créera la procédure stockée "sp_BackupDatabases" que le fichier batch déclenchera pour créer les sauvegardes.
Voici le script de 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 : Ouvrez un éditeur de texte tel que Notepad puis copiez et collez le texte suivant.
::Spécifier l'emplacement du dossier pour les sauvegardes des bases de données SQL set BACKUPPATH=c:\SQL Backup ::Spécifier le nom de la base de données PDM Vault set PDMDATABASE=PDMVault ::Spécifier le nombre de jours de sauvegardes à conserver 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"
Remplacez "c:\SQL Backup" par le chemin d'accès du dossier dans lequel les fichiers de sauvegarde de la base de données SQL seront stockés (il doit s'agir d'un emplacement sur le disque dur local).
Remplacez "PDMVault" par le nom de la base de données de la chambre forte PDM. VEUILLEZ NOTER que ce nom peut être différent du nom de la chambre forte. Pour vérifier le nom de la base de données, développez la liste des bases de données dans le SQL Management Studio et utilisez le nom qui y figure.
Remplacez "14" par le nombre de jours pendant lesquels vous souhaitez conserver les fichiers de sauvegarde.
Étape 5 : Effectuez un enregistrement sous et changez le "Type d'enregistrement" en "Tous les fichiers". Nommez le fichier "Sqlbackup.bat" et enregistrez le fichier.
Étape 6 : Lancez le planificateur de tâches et cliquez sur "Créer une tâche de base" pour lancer l'assistant.
Étape 7 : Attribuez un nom à la tâche.
Étape 8 : Définissez la tâche à déclencher quotidiennement.
Étape 9 : Définissez l'heure à laquelle la sauvegarde doit être effectuée. Elle doit être effectuée à un moment où aucun utilisateur ne travaille dans la chambre forte.
Étape 10 : Définissez l'action de la tâche comme étant "Démarrer un programme".
Étape 11 : Cliquez sur "Browse" et sélectionnez le fichier batch créé à l'étape 5. Cliquez sur Suivant puis sur Terminer pour finaliser la création de la tâche.
Liens connexes
Vous voulez en faire plus avec SOLIDWORKS PDM ?
Nos experts certifiés SOLIDWORKS PDM peuvent vous aider :