Published on

March 4, 2015

Comprendre les groupes de fichiers en lecture seule dans SQL Server

La semaine dernière, nous avons discuté du concept de marquer un groupe de fichiers en lecture seule dans SQL Server. Cela a suscité des questions intéressantes sur le comportement des sauvegardes et ce qui se passe lors de la restauration d’une base de données avec des groupes de fichiers en lecture seule. Dans cet article de blog, nous explorerons ces questions et éclairerons le comportement des groupes de fichiers en lecture seule dans SQL Server.

Création d’une base de données avec un groupe de fichiers en lecture seule

Commençons par créer une base de données avec un groupe de fichiers en lecture seule. Voici le script T-SQL pour créer la base de données :

CREATE DATABASE [ReadOnlyDB]
CONTAINMENT = NONE ON PRIMARY ( NAME = N'ReadOnlyDB' , FILENAME = N'C:\Temp\ReadOnlyDB.mdf' , SIZE = 4024KB , FILEGROWTH = 1024KB ) , FILEGROUP [ReadOnlyDB_FG] ( NAME = N'ReadOnlyDB_FG' , FILENAME = N'C:\Temp\ReadOnlyDB_FG.ndf' , SIZE = 4096KB , FILEGROWTH = 1024KB ) LOG ON ( NAME = N'ReadOnlyDB_log' , FILENAME = N'C:\Temp\ReadOnlyDB_log.ldf' , SIZE = 20480KB , FILEGROWTH = 10 %) 
GO

-- Marquer le groupe de fichiers en lecture seule
ALTER DATABASE ReadOnlyDB MODIFY FILEGROUP ReadOnlyDB_FG READ_ONLY ;
GO

Dans le script ci-dessus, nous créons une base de données appelée “ReadOnlyDB” avec un groupe de fichiers nommé “ReadOnlyDB_FG”. Nous marquons ensuite le groupe de fichiers en lecture seule à l’aide de l’instruction ALTER DATABASE.

Comportement des sauvegardes et des restaurations

Maintenant, explorons le comportement des sauvegardes et des restaurations lorsqu’il s’agit de groupes de fichiers en lecture seule. Nous commencerons par prendre une sauvegarde complète de la base de données :

BACKUP DATABASE [ReadOnlyDB] TO DISK = N'C:\Temp\ReadOnlyDB.bak' WITH NOFORMAT , INIT , NAME = N'ReadOnlyDB-Full Database Backup' , SKIP , NOREWIND , NOUNLOAD , STATS = 10 , CHECKSUM
GO

Ensuite, nous supprimerons la base de données et la restaurerons à partir de la sauvegarde :

USE MASTER
GO

DROP DATABASE ReadOnlyDB
GO

USE [master]
RESTORE DATABASE [ReadOnlyDB] FROM DISK = N'C:\Temp\ReadOnlyDB.bak' WITH FILE = 1 , NOUNLOAD , STATS = 5
GO

Après avoir restauré la base de données, vérifions les paramètres du groupe de fichiers pour l’attribut en lecture seule :

USE ReadOnlyDB

-- Vérifier l'état
SELECT type_desc , physical_name , is_read_only FROM sys.database_files
GO

En vérifiant les paramètres du groupe de fichiers, nous pouvons voir que notre groupe de fichiers secondaire est toujours marqué en lecture seule. Cette expérience révèle un point d’apprentissage important – lorsque vous sauvegardez une base de données avec des groupes de fichiers en lecture seule, ces paramètres sont conservés. Par conséquent, lors de la restauration de telles sauvegardes, l’attribut en lecture seule est transmis à la base de données restaurée.

Nous espérons que cette expérience vous a fourni des informations précieuses sur le comportement des groupes de fichiers en lecture seule dans SQL Server. Si vous utilisez actuellement ces concepts dans vos environnements, nous aimerions connaître vos expériences. Veuillez partager vos réflexions et vos commentaires ci-dessous.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.