Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So beheben Sie „Das Partitionsschema ‚…‘ hat keine nächste verwendete Dateigruppe“ in SQL Server

Sie erhalten Fehler 7710, wenn Sie versuchen, eine Partition in SQL Server zu teilen, aber keine „nächste verwendete“ Dateigruppe angegeben haben.

Der gesamte Fehler sieht in etwa so aus:

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.

Wobei MyPartitionScheme ist der Name des betreffenden Partitionsschemas.

Wenn Sie diesen Fehler erhalten, müssen Sie mithilfe von ALTER PARTITION SCHEME eine „nächste verwendete“ Dateigruppe hinzufügen Aussage.

Das Problem

Hier ist ein kurzer Überblick über das Problem.

Wenn ich versuche, eine Partition aufzuteilen:

ALTER PARTITION FUNCTION MoviesPartitionFunction()
SPLIT RANGE (500);

Ich erhalte die folgende Fehlermeldung:

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.

Das liegt daran, dass ich keine „nächste verwendete“ Dateigruppe für MoviesPartitionScheme angegeben habe , was in meinem Fall das Partitionsschema ist, das ich verwendet habe, um die MoviesPartitionFunction anzuwenden zu den Dateigruppen, die von den Partitionen verwendet werden sollen.

So habe ich meine ursprüngliche Partitionsfunktion und mein Partitionsschema erstellt:

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);

Es hat also derzeit vier Partitionen und ich versuche, eine fünfte hinzuzufügen.

Die Lösung

Wir können das obige Problem lösen, indem wir eine „nächste verwendete“ Dateigruppe für das Partitionsschema hinzufügen.

Wir können eine vorhandene Dateigruppe verwenden oder eine neue erstellen.

Lassen Sie uns eine neue erstellen und versuchen, die Partition erneut zu teilen:

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);

Ergebnis:

Commands completed successfully.

Ausgezeichnet, es hat also funktioniert und wir erhalten den Fehler nicht mehr.