Sauvegarde, restauration et synchronisation de bases de données (XMLA)

XML for Analysis propose trois commandes qui permettent de sauvegarder, restaurer et synchroniser des bases de données :

  • La commande Backup permet de sauvegarder une base de données Microsoft SQL Server Analysis Services à l'aide d'un fichier de sauvegarde Analysis Services (.abf), comme expliqué dans la section Sauvegarde de bases de données.

  • La commande Restore permet de restaurer une base de données Analysis Services à partir d'un fichier .abf, comme expliqué dans la section Restauration de bases de données.

  • La commande Synchronize permet de synchroniser une base de données Analysis Services avec les données et les métadonnées d'une autre base de données, comme expliqué dans la section Synchronisation de bases de données.

Sauvegarde de bases de données

Comme nous l'avons mentionné précédemment, la commande Backup permet de sauvegarder une base de données Analysis Services dans un fichier de sauvegarde. La commande Backup possède plusieurs propriétés qui permettent de spécifier la base de données à sauvegarder, le fichier de sauvegarde à utiliser, le mode de sauvegarde des définitions de sécurité, ainsi que les partitions distantes à sauvegarder.

Remarque relative à la sécuritéRemarque relative à la sécurité

Pour chaque fichier de sauvegarde, l'utilisateur qui exécute la commande de sauvegarde doit avoir l'autorisation d'écrire dans l'emplacement de sauvegarde spécifié pour chaque fichier. L'utilisateur doit également avoir l'un des rôles suivants : être membre d'un rôle serveur pour l'instance Analysis Services ou membre d'un rôle de base de données avec les autorisations de contrôle total (Administrateur) sur la base de données à sauvegarder.

Spécification de la base de données et du fichier de sauvegarde

Pour spécifier la base de données à sauvegarder, vous devez définir la propriété Object de la commande Backup. La propriété Object doit contenir un identificateur d'objet pour une base de données. Sinon, une erreur se produit.

Pour spécifier le fichier qui doit être créé et utilisé par le processus de sauvegarde, vous devez définir la propriété File de la commande Backup. La propriété File doit indiquer le chemin d'accès UNC et le nom du fichier de sauvegarde à créer.

En plus de spécifier le fichier à utiliser pour la sauvegarde, vous pouvez définir les options suivantes pour ce même fichier :

  • Si vous définissez la propriété AllowOverwrite à true, la commande Backup remplace le fichier de sauvegarde si le fichier spécifié existe déjà. Si vous définissez la propriété AllowOverwrite à false, une erreur se produit si le fichier de sauvegarde spécifié existe déjà.

  • Si vous définissez la propriété ApplyCompression à true, le fichier de sauvegarde est compressé après avoir été créé.

  • Si vous affectez à la propriété Password une valeur non vierge, le fichier de sauvegarde est chiffré avec le mot de passe spécifié.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Si les propriétés ApplyCompression et Password ne sont pas spécifiées, le fichier de sauvegarde stocke les noms et mots de passe utilisateur contenus dans les chaînes de connexion en texte clair. Les données stockées en texte en clair peuvent être récupérées. Pour plus de sécurité, utilisez les paramètres ApplyCompression et Password pour à la fois compresser et chiffrer le fichier de sauvegarde.

Sauvegarde des paramètres de sécurité

La propriété Security détermine si la commande Backup sauvegarde les définitions de sécurité, telles que les rôles et les autorisations, définies dans une base de données Analysis Services. La propriété Security détermine également si le fichier de sauvegarde inclut les comptes et groupes d'utilisateurs Windows définis comme membres des définitions de sécurité.

La valeur de la propriété Security est limitée à l'une des chaînes répertoriées dans le tableau suivant.

Valeur

Description

SkipMembership

Inclut les définitions de sécurité dans le fichier de sauvegarde mais exclut les informations d'appartenance.

CopyAll

Inclut les définitions de sécurité et les informations d'appartenance dans le fichier de sauvegarde.

IgnoreSecurity

Exclut les définitions de sécurité du fichier de sauvegarde.

Sauvegarde de partitions distantes

Pour sauvegarder des partitions distantes de la base de données Analysis Services, vous devez définir la propriété BackupRemotePartitions de la commande Backup à true. Ce paramètre ordonne à la commande Backup de créer un fichier de sauvegarde distant pour chaque source de données distante utilisée pour stocker les partitions distantes de la base de données.

Pour chaque source de données distante à sauvegarder, vous pouvez spécifier son fichier de sauvegarde correspondant en incluant un élément Location dans la propriété Locations de la commande Backup. La propriété File de l'élément Location doit indiquer le chemin d'accès UNC et le nom du fichier de sauvegarde distant, et sa propriété DataSourceID doit indiquer l'identificateur de la source de données distante définie dans la base de données.

Restauration de bases de données

La commande Restore permet de restaurer une base de données Analysis Services spécifiée à partir d'un fichier de sauvegarde. La commande Restore comporte plusieurs propriétés qui permettent de spécifier la base de données à restaurer, le fichier de sauvegarde à utiliser, le mode de restauration des définitions de sécurité, les partitions distantes à stocker, ainsi que le déplacement d'objets ROLAP (Relational OLAP).

Remarque relative à la sécuritéRemarque relative à la sécurité

Pour chaque fichier de sauvegarde, l'utilisateur qui exécute la commande de restauration doit avoir l'autorisation de lire à partir de l'emplacement de sauvegarde spécifié pour chaque fichier. Pour restaurer une base de données Analysis Services qui n'est pas installée sur le serveur, l'utilisateur doit également être un membre du rôle serveur pour cette instance d'Analysis Services. Pour remplacer une base de données Analysis Services, l'utilisateur doit avoir l'un des rôles suivants : être membre du rôle serveur pour l'instance Analysis Services ou membre d'un rôle de base de données avec les autorisations de contrôle total (Administrateur) sur la base de données à restaurer.

Notes

Après la restauration d'une base de données existante, l'utilisateur qui a restauré la base de données peut perdre l'accès à la base de données restaurée. Cette perte d'accès peut se produire si, au moment de la sauvegarde, l'utilisateur n'était pas membre du rôle serveur ou membre du rôle de base de données avec les autorisations de contrôle total (Administrateur).

Spécification de la base de données et du fichier de sauvegarde

La propriété DatabaseName de la commande Restore doit contenir un identificateur d'objet pour une base de données. Sinon, une erreur se produit. Si la base de données spécifiée existe déjà, la propriété AllowOverwrite détermine si la base de données existante est remplacée. Si la propriété AllowOverwrite est définie à false et que la base de données spécifiée existe déjà, une erreur se produit.

La propriété File de la commande Restore doit indiquer le chemin d'accès UNC et le nom du fichier de sauvegarde à restaurer dans la base de données spécifiée. Vous pouvez également définir la propriété Password pour le fichier de sauvegarde spécifié. Si la propriété Password indique une valeur non vierge, le fichier de sauvegarde est déchiffré avec le mot de passe spécifié. Si le fichier de sauvegarde n'a pas été chiffré ou si le mot de passe spécifié ne correspond pas au mot de passe utilisé pour chiffrer le fichier de sauvegarde, une erreur se produit.

Restauration des paramètres de sécurité

La propriété Security détermine si la commande Restore restaure les définitions de sécurité, telles que les rôles et les autorisations, définies dans une base de données Analysis Services. La propriété Security détermine également si la commande Restore inclut les comptes et les groupes d'utilisateurs Windows définis comme membres des définitions de sécurité dans le cadre du processus de restauration.

La valeur de cet élément est limitée à l'une des chaînes répertoriées dans le tableau suivant.

Valeur

Description

SkipMembership

Inclut les définitions de sécurité dans la base de données mais exclut les informations d'appartenance.

CopyAll

Inclut les définitions de sécurité et les informations d'appartenance dans la base de données.

IgnoreSecurity

Exclut les définitions de sécurité de la base de données.

Restaration de partitions distantes

Pour chaque fichier de sauvegarde distant créé par une commande Backup précédente, vous pouvez restaurer sa partition distante associée en incluant un élément Location dans la propriété Locations de la commande Restore. La propriété DataSourceType de chaque élément Location doit être exclue ou explicitement définie à Remote.

Pour chaque élément Location spécifié, l'instance Analysis Services contacte la source de données distante spécifiée dans la propriété DataSourceID pour restaurer les partitions définies dans le fichier de sauvegarde distant spécifié dans la propriété File. Outre les propriétés DataSourceID et File, les propriétés suivantes sont disponibles pour chaque élément Location utilisé pour restaurer une partition distante :

  • Pour remplacer la chaîne de connexion de la source de données distante spécifiée dans DataSourceID, vous pouvez définir une chaîne de connexion différente dans la propriété ConnectionString de l'élément Location. La commande Restore utilise alors la chaîne de connexion contenue dans la propriété ConnectionString. Si la propriété ConnectionString n'est pas spécifiée, la commande Restore utilise la chaîne de connexion stockée dans le fichier de sauvegarde pour la source de données distante spécifiée. Vous pouvez utiliser le paramètre ConnectionString pour déplacer une partition distante vers une autre instance distante. Toutefois, vous ne pouvez pas utiliser le paramètre ConnectionString pour restaurer une partition distante dans l'instance qui contient la base de données restaurée. En d'autres termes, vous ne pouvez pas utiliser la propriété ConnectionString pour transformer une partition distante en partition locale.

  • Pour chaque dossier d'origine utilisé pour stocker les partitions distantes de la source de données distante, vous pouvez spécifier un élément Folder pour désigner le nouveau dossier dans lequel toutes les partitions distantes stockées dans le dossier d'origine seront restaurées. Si aucun élément Folder n'est spécifié, la commande Restore utilise les dossiers d'origine spécifiés pour les partitions distantes contenues dans le fichier de sauvegarde distant.

Déplacement d'objets ROLAP

La commande Restore ne peut pas restaurer les agrégations ou les données d'objets qui utilisent le stockage ROLAP, car ces informations sont stockées dans des tables de source de données relationnelle sous-jacente. Toutefois, les métadonnées d'objets ROLAP peuvent être restaurés. Pour restaurer les métadonnées d'un objet ROLAP, la commande Restore recrée la structure des tables d'une source de données relationnelle.

Vous pouvez utiliser l'élément Location dans une commande Restore pour déplacer des objets ROLAP. Pour chaque élément Location utilisé pour déplacer une source de données, la propriété DataSourceType doit être explicitement définie à Local. Vous devez également définir la chaîne de connexion du nouvel emplacement dans la propriété ConnectionString de l'élément Location. Au cours de la restauration, la commande Restore remplace la chaîne de connexion de la source de données identifiée par la propriété DataSourceID de l'élément Location par la valeur de la propriété ConnectionString de l'élément Location.

Synchronisation de bases de données

La commande Synchronize permet de synchroniser les données et les métadonnées d'une base de données Analysis Services spécifiée avec une autre base de données. La commande Synchronize possède plusieurs propriétés qui vous permettent de spécifier la base de données source, le mode de synchronisation des définitions de sécurité, les partitions distantes à synchroniser, ainsi que la synchronisation des objets ROLAP.

Notes

La commande Synchronize ne peut être exécutée que par les administrateurs de serveur et les administrateurs de base de données.

Spécification de la base de données source

La propriété Source de la commande Synchronize contient deux propriétés : ConnectionString et Object. La propriété ConnectionString contient la chaîne de connexion de l'instance qui contient la base de données source, tandis que la propriété Object contient l'identificateur d'objet de la base de données source.

La base de données de destination est la base de données active de la session dans laquelle s'exécute la commande Synchronize.

Si la propriété ApplyCompression de la commande Synchronize est définie à true, les informations destinées à être envoyées de la base de données source vers la base de données de destination sont compressées avant d'être envoyées.

Synchronisation des paramètres de sécurité

La propriété SynchronizeSecurity détermine si la commande Synchronize synchronise les définitions de sécurité, telles que les rôles et les autorisations, définies dans la base de données source. La propriété SynchronizeSecurity détermine également si la commande Sychronize inclut les comptes et groupes d'utilisateurs Windows définis comme membres des définitions de sécurité.

La valeur de cet élément est limitée à l'une des chaînes répertoriées dans le tableau suivant.

Valeur

Description

SkipMembership

Inclut les définitions de sécurité dans la base de données de destination mais exclut les informations d'appartenance.

CopyAll

Inclut les définitions de sécurité et les informations d'appartenance dans la base de données de destination.

IgnoreSecurity

Exclut les définitions de sécurité de la base de données de destination.

Synchronisation de partitions distantes

Pour chaque source de données distante qui existe dans la base de données source, vous pouvez synchroniser chaque partition distante associée en incluant un élément Location dans la propriété Locations de la commande Synchronize. Pour chaque élément Location, la propriété DataSourceType doit être exclue ou explicitement définie à Remote.

Pour définir et se connecter à une source de données distante dans la base de données de destination, la commande Synchronize utilise la chaîne de connexion définie dans la propriété ConnectionString de l'élément Location. La commande Synchronize utilise alors la propriété DataSourceID de l'élément Location pour identifier les partitions distantes à synchroniser. La commande Synchronize synchronise les partitions distantes de la source de données distante spécifiée dans la propriété DataSourceID de la base de données source avec la source de données distante spécifiée dans la propriété DataSourceID de la base de données de destination.

Pour chaque dossier d'origine utilisé pour stocker les partitions distantes de la source de données distante de la base de données source, vous pouvez également spécifier un élément Folder dans l'élément Location. L'élément Folder indique le nouveau dossier de la base de données de destination dans lequel seront synchronisées toutes les partitions distantes stockées dans le dossier d'origine de la source de données distante. Si aucun élément Folder n'est spécifié, la commande Synchronize utilise les dossiers d'origine spécifiés pour les partitions distantes contenues dans la base de données source.

Synchronisation d'objets ROLAP

La commande Synchronize ne peut pas synchroniser les agrégations ou les données d'objets qui utilisent le stockage ROLAP, car ces informations sont stockées dans des tables de source de données relationnelle sous-jacente. Toutefois, les métadonnées d'objets ROLAP peuvent être synchronisées. Pour synchroniser les métadonnées, la commande Synchronize recrée la structure des tables d'une source de données relationnelle.

Vous pouvez utiliser l'élément Location dans une commande Synchronize pour synchroniser des objets ROLAP. Pour chaque élément Location utilisé pour déplacer une source de données, la propriété DataSourceType doit être explicitement définie à Local. . Vous devez également définir la chaîne de connexion du nouvel emplacement dans la propriété ConnectionString de l'élément Location. Au cours de la synchronisation, la commande Synchronize remplace la chaîne de connexion de la source de données identifiée par la propriété DataSourceID de l'élément Location par la valeur de la propriété ConnectionString de l'élément Location.