এসকিউএল সার্ভার ২০০ R আর পার্টিশন - একই ফাইলগ্রুপ, ১ টি ফাইল, ২ বিভাজন_নাম - সহায়তা


10

এটি এসকিউএল সার্ভারে বিভাজনে আমার প্রথমবারের মতো, আমি ব্রেন্ট ওজার গাইড থেকে শিখেছি যা দুর্দান্ত :)

কয়েকবার আমি এক অদ্ভুত দৃশ্যে দৌড়েছি; যখন আমি দৌড়:

SELECT *
FROM ph.FileGroupDetail
ORDER BY partition_number
Go

একই ফাইলগ্রুপটি 2 টি পৃথক বিভাজন_সংখ্যার সাথে দুবার প্রদর্শিত হচ্ছে, 1 টি সঠিকভাবে একটি পরিসরের মান সহ, অন্যটি শুরুর দিকে শূন্য_মূল্যের সাথে শুরুতে রয়েছে।

ইমেজ বড় করার জন্য এখানে ক্লিক করুন

এখানে চিত্র বর্ণনা লিখুন

কয়েকটি প্রশ্ন:

  1. এটি কীভাবে ঘটছে, আমি কোথায় ভুল করেছি?

  2. আমি কীভাবে সমস্যাটি সমাধান করব, এর অর্থ এটি শুরুতে কীভাবে পরিত্রাণ পাবে কারণ ইতিমধ্যে শুরুতে আমার খালি বিভাজন রয়েছে।

আমি ফাইলটি মুছে ফেলার চেষ্টা করেছি (যখন এটি খালি ছিল তখন কাজ করা হয়েছিল) এবং ফাইলগ্রুপ, তবে ফাইলগ্রুপ বলেছিল এটি মুছতে পারে না।

কেউ কীভাবে এটি ব্যাখ্যা করতে পারেন কীভাবে এটি ঘটেছে এবং পার্টিশন 2 এন্ট্রি থেকে কীভাবে মুক্তি পাবেন?


3
স্টিভ, আপনি কি আপনার পার্টিশন স্কিম এবং ফাংশন পোস্ট করতে পারেন?
সিউডোডোড

@ ধীরে ধীরে - এই পার্টিশন স্কিম পোস্ট করতে এবং গিজমোর অনুরোধ অনুসারে কাজ করতে আপনার পক্ষে সত্যই দরকারী।
Thrk

1
Sys.partitions থেকেও আপনি পার্টিশন_আইডি প্রকাশ করতে পারেন?
ব্যবহারকারী_0

উত্তর:


3

ফলাফলগুলি ইঙ্গিত দেয় যে পার্টিশন স্কিম NEXT USEDফাইলগ্রুপটি ডেইলি অ্যালবার্টএফজি 30 তে সেট করার সময় ফাংশনটিতে একটি সুস্পষ্ট NULL পার্টিশন সীমানা যুক্ত করা হয়েছিল। এছাড়াও, আমি ডেইলিআবার্টএফজি 2 ব্যবহার করা দেখতে পাচ্ছি না। সম্ভবত সেই ফাইলগ্রুপে একবারে একটি বিভাজন ছিল যা পরবর্তীতে একীভূত হয়েছিল।

নীচে একটি স্ক্রিপ্ট রয়েছে যা দেখায় NUL সীমানা সহ একটি FG30 পার্টিশন তৈরি করা যায়। NUL সীমানাটি দুর্ঘটনাক্রমে যুক্ত হতে পারে।

CREATE PARTITION FUNCTION DailyAlbertPF1 (datetime2(3)) AS RANGE RIGHT FOR VALUES();
GO
CREATE PARTITION SCHEME DailyAlbertPS1 AS PARTITION DailyAlbertPF1 ALL TO ([DailyAlbertFG1]);
GO
CREATE TABLE dbo.FactAgentAlbertPortalSessionEntries
    (
      DateTimeColumn datetime2(3)
    )
ON  DailyAlbertPS1(DateTimeColumn);
GO

DECLARE @FileGroupNumber int = 1;
DECLARE @DateTimeBoundary datetime2(3) = '2015-04-15T00:00:00.000';
DECLARE @SQL nvarchar(MAX);
WHILE @DateTimeBoundary <= '2015-05-14T00:00:00.000'
BEGIN
    SET @SQL = N'ALTER PARTITION SCHEME DailyAlbertPS1 NEXT USED DailyAlbertFG' + CAST(@FileGroupNumber AS nvarchar(5)) + N';';
    EXEC(@SQL);
    ALTER PARTITION FUNCTION DailyAlbertPF1() SPLIT RANGE(@DateTimeBoundary);
    SET @DateTimeBoundary = DATEADD(day, 1, @DateTimeBoundary);
    SET @FileGroupNumber += 1;
END;
--add NULL boundary on DailyAlbertFG30
SET @DateTimeBoundary = NULL;
ALTER PARTITION SCHEME DailyAlbertPS1 NEXT USED DailyAlbertFG30;
ALTER PARTITION FUNCTION DailyAlbertPF1() SPLIT RANGE(@DateTimeBoundary);
GO

0
  1. আমি জানি না। এটি প্রতি-সেয়ে কোনও অস্বাভাবিক ঘটনা নয়। আপনি অবাধে ফাইলগ্রুপগুলিতে পার্টিশন বরাদ্দ করতে পারেন। এটি 1: 1 হতে হবে না। হতে পারে আপনি দুর্ঘটনাক্রমে ভুল এফজি তে পুনর্নির্মাণ করেছেন বা অল্প সময়ের জন্য আপনার একটি খারাপ কনফিগারেশন রয়েছে। এই অনিয়ম উদ্বিগ্ন হওয়ার কিছু নয় তবে অবশ্যই আপনি এটি পরিষ্কার করতে পারেন।
  2. এগুলির একটিতে অন্যটিতে মিশ্রিত করে আপনি খালি পার্টিশনগুলির একটি থেকে মুক্তি পেতে পারেন। কীভাবে এটি করা যায় সে সম্পর্কে ওয়েবে দুর্দান্ত গাইড রয়েছে। এই ক্ষেত্রে এটি করা সহজ এবং তাত্ক্ষণিক। আপনি পার্টিশনগুলি পুনর্নির্মাণের মাধ্যমে পছন্দসই এফজিতে স্থানান্তর করতে পারেন। খালি পার্টিশন পুনর্নির্মাণ তাত্ক্ষণিক।

আপনি পরিস্কার করা শেষ হয়ে গেলে এবং খালি এফজিগুলি পেয়ে গেলে আপনি সেগুলিও ফেলে দিতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.