U krijgt fout 7710 als u een partitie in SQL Server probeert te splitsen, maar u geen "volgende gebruikte" bestandsgroep hebt opgegeven.
De hele fout ziet er ongeveer zo uit:
Msg 7710, Level 16, State 1, Line 1 Warning: The partition scheme 'MyPartitionScheme' does not have any next used filegroup. Partition scheme has not been changed.
Waar MyPartitionScheme
is de naam van het partitieschema in kwestie.
Als u deze foutmelding krijgt, moet u een "volgende gebruikte" bestandsgroep toevoegen met behulp van het ALTER PARTITION SCHEME
verklaring.
Het probleem
Hier volgt een kort overzicht van het probleem.
Als ik een partitie probeer te splitsen:
ALTER PARTITION FUNCTION MoviesPartitionFunction()
SPLIT RANGE (500);
Ik krijg de volgende foutmelding:
Msg 7710, Level 16, State 1, Line 1 Warning: The partition scheme 'MoviesPartitionScheme' does not have any next used filegroup. Partition scheme has not been changed.
Dit komt omdat ik geen "volgende gebruikte" bestandsgroep heb gespecificeerd voor MoviesPartitionScheme
, wat in mijn geval het partitieschema is dat ik heb gebruikt om de MoviesPartitionFunction
toe te passen naar de bestandsgroepen die door de partities moeten worden gebruikt.
Hier is hoe ik mijn originele partitiefunctie en partitieschema heb gemaakt:
CREATE PARTITION FUNCTION MoviesPartitionFunction (int)
AS RANGE LEFT FOR VALUES (-1, 100, 10000);
CREATE PARTITION SCHEME MoviesPartitionScheme
AS PARTITION MoviesPartitionFunction
TO (MoviesFg1, MoviesFg2, MoviesFg3, MoviesFg4);
Dus het heeft momenteel vier partities en ik probeer een vijfde toe te voegen.
De oplossing
We kunnen het bovenstaande probleem oplossen door een "volgende gebruikte" bestandsgroep toe te voegen voor het partitieschema.
We kunnen een bestaande bestandsgroep gebruiken of een nieuwe aanmaken.
Laten we een nieuwe maken en proberen de partitie opnieuw te splitsen:
ALTER DATABASE Test ADD FILEGROUP MoviesFg5;
ALTER DATABASE Test
ADD FILE
(
NAME = MoviesFg5dat,
FILENAME = '/var/opt/mssql/data/MoviesFg5dat.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP MoviesFg5;
ALTER PARTITION SCHEME MoviesPartitionScheme
NEXT USED MoviesFg5;
ALTER PARTITION FUNCTION MoviesPartitionFunction()
SPLIT RANGE (500);
Resultaat:
Commands completed successfully.
Uitstekend, dus het werkte en we krijgen de fout niet meer.