Meilleur auteur de réponses
Sauvegarde anciennes données avec une planification

Question
-
Bonjour,
Ne connaissant pas très bien les nouvelles versions de SQL Server (2014) je ne sais pas si ce que je souhaite est possible :
Problème : J'ai une base de données qui grossit (~ 1 To) mais pour des raisons strictement internes je ne dois avoir dans la base de données QUE les données 'utiles' (~ 15 jours) le "reste" devant "aller ailleurs" mais rapidement accessible si nécessaire.
A mon niveau de connaissance, je peux créer une sauvegarde automatique de la base entière vers une seconde base de données, puis supprimer les données plus anciennes que x jours dans la base "live".
Ceci étant j'aurai aimé quelque chose de plus "propre" qui ne "déplacerait" QUE les données devenues 'inutiles'. Et que la procédure puisse être planifiée. Ceci permettrait de minimiser les transferts entre les 2 bases (2 servers différents qui, à terme, pourraient être sur 2 sites distincts)Sachant qu'il existe des solutions SQL "toutes prêtes" je me demandais si l'une d'elle pourrait m'aider en tout ou partie ?
(always on, replica, etc...)
Merci d'avance. Et désolé si cela semble redondant avec une autre question... Ne sachant pas vraiment ce que je recherche je n'ai pas su trouver de réponse à mon besoin.
Réponses
-
Bonjour
J'ai la sensation que la réponse se trouve dans le partitionnement.
- Vous partitionnez votre grosse base sur une clé de type date sur une granularité jour ou semaine (que j'appelle : Base_Source)
- Si votre base source est en recovery FULL vous pourrez réaliser les opérations suivantes pour rafraîchir le 2nd environnement :
- Backup de la partition de la base source que vous voulez migrer
- Restaurer juste le filegroup et donc la partition
- Réaliser l'opération de donner sur la base source (dans l'idéal via table de staging, switch de partition et drop de la table)
- Merge de partition
- Drop du filegroup qui n'est plus utilisé$
Cette opération nécessite comme prérequis :
- D'avoir restauré en mode partiel la base source sur le 2nd envirionnement
- D'avoir la base en recovery full (si simple dans ce cas il ne sera pas possible de restaurer petit à petit sur le 2nd environnement tout en laissant les données accessible)
Je pense que cette méthode pourrait marché, je ne l'ai pas détaillé complétement mais l'approche est là.
- Marqué comme réponse MuadhDhib lundi 24 juillet 2017 08:42
-
Bonjour ,
Si vous avez la possibilité de migrer votre serveur à la version SQL Server 2016, étudiez l'apport de la fonctionnalité Stretch database
https://docs.microsoft.com/fr-fr/sql/sql-server/stretch-database/stretch-database.
ça peut répondre à votre besoin avec le minimum d'effort administratif.
par contre faite attention aux limites de la fonctionnalité
https://docs.microsoft.com/fr-fr/sql/sql-server/stretch-database/limitations-for-stretch-database
AlwaysOn ou la réplication ne peuvent pas répondre à votre besoin.
Cordialement
J.K
- Marqué comme réponse MuadhDhib lundi 24 juillet 2017 08:42
Toutes les réponses
-
Bonjour
J'ai la sensation que la réponse se trouve dans le partitionnement.
- Vous partitionnez votre grosse base sur une clé de type date sur une granularité jour ou semaine (que j'appelle : Base_Source)
- Si votre base source est en recovery FULL vous pourrez réaliser les opérations suivantes pour rafraîchir le 2nd environnement :
- Backup de la partition de la base source que vous voulez migrer
- Restaurer juste le filegroup et donc la partition
- Réaliser l'opération de donner sur la base source (dans l'idéal via table de staging, switch de partition et drop de la table)
- Merge de partition
- Drop du filegroup qui n'est plus utilisé$
Cette opération nécessite comme prérequis :
- D'avoir restauré en mode partiel la base source sur le 2nd envirionnement
- D'avoir la base en recovery full (si simple dans ce cas il ne sera pas possible de restaurer petit à petit sur le 2nd environnement tout en laissant les données accessible)
Je pense que cette méthode pourrait marché, je ne l'ai pas détaillé complétement mais l'approche est là.
- Marqué comme réponse MuadhDhib lundi 24 juillet 2017 08:42
-
Bonjour ,
Si vous avez la possibilité de migrer votre serveur à la version SQL Server 2016, étudiez l'apport de la fonctionnalité Stretch database
https://docs.microsoft.com/fr-fr/sql/sql-server/stretch-database/stretch-database.
ça peut répondre à votre besoin avec le minimum d'effort administratif.
par contre faite attention aux limites de la fonctionnalité
https://docs.microsoft.com/fr-fr/sql/sql-server/stretch-database/limitations-for-stretch-database
AlwaysOn ou la réplication ne peuvent pas répondre à votre besoin.
Cordialement
J.K
- Marqué comme réponse MuadhDhib lundi 24 juillet 2017 08:42
-
Bonsoir
Il ne me semble pas qu'avec les stretch database qu'on puisse exporter une partie de la base sur une 2nd instance, hors il me semble que c'est l'objectif ici (ou alors j'ai mal compris le problème de base).
Stretch database permet de migrer vos données dans le cloud mais dans la même instance et le moteur SQL gère de lui-même s'il est nécessaire d'aller lire/écrire dans le cloud et/ou sur votre serveur. -
Bonsoir
C'est exacte et les données dites accessible à froid restent visible pour l'application et il n'y a pas d'effort administratif spécifique pour répondre au besoin.
Le besoin comme il est décrit dans le paragraphe Problème, consiste à garder 15 jours de données chaudes et le reste devient des données froides , donc une Stretch database peut répondre au besoin.
Le partitionnement et comme vous l'avez présenter peut répondre au besoin par contre ceci impliquera des tâches de split , sauvegarde de groupes de fichier et restauration sur l'autre serveur et des merge de partitions.... et il ne faut pas oublier qu'on aura besoin de l'édition Enterprise.
J.K
-
-