Bạn sẽ gặp lỗi 7710 nếu bạn cố gắng chia một phân vùng trong SQL Server, nhưng bạn chưa chỉ định nhóm tệp “được sử dụng tiếp theo”.
Toàn bộ lỗi trông giống như sau:
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.
Nơi MyPartitionScheme
là tên của lược đồ phân vùng được đề cập.
Nếu gặp lỗi này, bạn cần thêm nhóm tệp “được sử dụng tiếp theo” bằng cách sử dụng ALTER PARTITION SCHEME
tuyên bố.
Vấn đề
Dưới đây là tóm tắt nhanh về vấn đề.
Khi tôi cố gắng chia một phân vùng:
ALTER PARTITION FUNCTION MoviesPartitionFunction()
SPLIT RANGE (500);
Tôi gặp lỗi sau:
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.
Điều này là do tôi chưa chỉ định nhóm tệp “được sử dụng tiếp theo” cho MoviesPartitionScheme
, trong trường hợp của tôi, là lược đồ phân vùng mà tôi đã sử dụng để áp dụng MoviesPartitionFunction
vào nhóm tệp được phân vùng sử dụng.
Đây là cách tôi tạo hàm phân vùng ban đầu và lược đồ phân vùng:
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);
Vì vậy, nó hiện có bốn phân vùng và tôi đang cố gắng thêm phân vùng thứ năm.
Giải pháp
Chúng tôi có thể giải quyết vấn đề trên bằng cách thêm nhóm tệp “được sử dụng tiếp theo” cho lược đồ phân vùng.
Chúng tôi có thể sử dụng một nhóm tệp hiện có hoặc tạo một nhóm mới.
Hãy tạo một phân vùng mới và thử chia lại phân vùng:
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);
Kết quả:
Commands completed successfully.
Tuyệt vời, vì vậy nó đã hoạt động và chúng tôi không còn gặp lỗi nữa.