エクスポート (0) 印刷
すべて展開

SQL Database Federations のチュートリアル -- DBA

更新日: 2014年4月

フェデレーションは、Microsoft Azure SQL データベース でスケールアウト データベース ソリューションを構築するための方法の 1 つです。フェデレーションはデータベース内のオブジェクトであり、アプリケーションがデータの一部またはすべてをスケール アウトすることを可能にします。

Important重要
フェデレーションの現在の実装は、Web およびビジネス サービス層と共に提供が終了します。最大限のスケーラビリティ、柔軟性、およびパフォーマンスを実現するためには、カスタム シャーディングの展開を検討してください。カスタム シャーディングの詳細については、「Azure SQL データベースのスケール アウト」を参照してください。

このチュートリアルでは、Azure SQL データベース フェデレーションの作成プロセス、テーブルの作成と表示、SQL Server Management Studio (SSMS) を使用した分割操作について説明します。主な手順を完了するごとに、メタデータをレビューして各操作の結果を確認できます。

このチュートリアルを開始する前に、次の手順を完了しておく必要があります。

このチュートリアルでは SSMS を使用した手順を説明しますが、別のオプションとして、Azure 管理ポータル を使用する方法もあります。

SQL データベース サーバーに接続するには

  1. SQL Server Management Studio を開きます。

  2. [データベース エンジンへの接続] ダイアログで、次の値を入力するか、選択します。

     

    名前

    [サーバー名]

    <サーバー名を入力>

    認証

    [SQL Server 認証]

    Login

    <ユーザー ID を入力>

    [パスワード]

    <パスワードを入力>

  3. [接続] をクリックします。

フェデレーションを作成するには、先にフェデレーション ルート データベースとして機能するデータベースを作成します。フェデレーション ルートは、フェデレーション ディレクトリを格納する初期データベースです。

フェデレーション ルート データベースを作成するには

  1. オブジェクト エクスプローラーで、[データベース][システム データベース] の順に展開し、[master] をクリックします。

  2. [新しいクエリ] をクリックします。

  3. SQL エディター ツール バーの [使用できるデータベース][master] が表示されていることを確認します。

  4. 次の T-SQL ステートメントをコピーしてクエリ エディターに貼り付けます。

    -- Create federation root database
    CREATE DATABASE [AdventureWorks1] 
    GO
    
    
  5. SQL エディター コマンド バーで [実行] をクリックします。メッセージ ペインに "コマンドは正常に完了しました" と表示されることを確認します。

  6. オブジェクト エクスプローラーで [データベース] を右クリックし、[最新の情報に更新] をクリックします。新しいデータベースが表示されます。

フェデレーションは、フェデレーション スキームによって定義されるデータベース パーティションのコレクションです。フェデレーション スキームは、フェデレーション内でパーティション分割されるデータの配分を決定するフェデレーション ディストリビューション キーを定義します。1 つのフェデレーション ルート内に複数のフェデレーションを作成することはできますが、各フェデレーションで使用できるスキームは 1 つだけです。フェデレーション スキームを作成するには、まずフェデレーション ルート データベースに接続し、CREATE FEDERATION コマンドを実行する必要があります。このチュートリアルでは、cid の後に BIGINTRANGE パーティション型が続くディストリビューション名を持つ、「CustomerFederation」という名前のフェデレーションを作成します。フェデレーションの詳細については、「Azure SQL データベースでのフェデレーション」を参照してください。

フェデレーション スキームを作成するには

  1. SSMS で、クエリ エディター (中央のペイン) の任意の場所をクリックします。SQL エディター ツール バーの各種ボタンが有効になります。

  2. [使用できるデータベース] で、前の手順で作成したフェデレーション ルートを選択します。既定の名前は AdventureWorks1 です。

  3. クエリ エディターでテキストをすべてクリアします。

  4. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    -- Create federation scheme
    CREATE FEDERATION CustomerFederation(cid BIGINT RANGE)
    GO
    
    
  5. SQL エディター コマンド バーで [実行] をクリックします。メッセージ ペインに "コマンドは正常に完了しました" と表示されることを確認します。

  6. オブジェクト エクスプローラーで [データベース] を右クリックし、[最新の情報に更新] をクリックします。[AdventureWorks1] を展開して、[フェデレーション]を展開します。「CustomerFederation」という名前の新しいフェデレーション オブジェクトが表示されます。

スキームについて正確に把握するには、フェデレーション ルートとフェデレーション メンバーに接続し、メタデータを確認してください。

フェデレーション ルート メタデータを表示するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルートが表示されていることを確認します。

  3. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    -- Route connection to the federation root
    USE FEDERATION ROOT WITH RESET
    GO
    -- View the federation root metadata
    SELECT db_name() [db_name]
    SELECT * FROM sys.federations
    SELECT * FROM sys.federation_distributions
    SELECT * FROM sys.federation_member_distributions ORDER BY federation_id, range_low;
    GO
    
    
  4. SQL エディター コマンド バーで [実行] をクリックします。



    フェデレーションに対する USE ステートメントにより、接続がフェデレーション ルートまたはいずれかのフェデレーション メンバーに変更されます。この USE ステートメントにより、接続はフェデレーション ルートにルーティングされます。

    最初の SELECT ステートメントには、フェデレーション ルート データベース名が表示されます。フェデレーションは 1 つ、フェデレーション メンバーも 1 つです。最初のフェデレーション メンバーはフェデレーションと同じ ID を共有します。SPLIT 操作で作成されたフェデレーション メンバーには、新しい一意のフェデレーション ID が割り当てられます。

    ご覧のように、フェデレーション メンバーの範囲は -9223372036854775808 (range_low) から NULL (range_high) です。SPLIT 操作を実行すると、その範囲は 2 つに分割されます。フェデレーション ディストリビューションは 1 つで、cid という名前です。後でフェデレーション キーをフェデレーション ディストリビューションと照合します。

フェデレーション メンバー メタデータを表示するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルートが表示されていることを確認します。

  3. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    -- Route connection to the one federation member (aka shard)
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    -- View the federation member metadata
    SELECT db_name() [db_name]
    SELECT * FROM sys.federations
    SELECT * FROM sys.federation_distributions
    SELECT * FROM sys.federation_member_distributions
    -- Federatation ranges
    SELECT f.name, fmc.federation_id, fmc.member_id, fmc.range_low, fmc.range_high 
    FROM sys.federations f
    JOIN sys.federation_member_distributions fmc
    ON f.federation_id=fmc.federation_id
    ORDER BY fmc.federation_id, fmc.range_low;
    GO
    
    
    注: FILTERING=ON 句を使用すると、特定のアトミック ユニットに接続できます。FILTERING=OFF 句を使用すると、範囲内の特定のキー値を含むフェデレーション メンバーに接続できます。

  4. SQL エディター コマンド バーで [実行] をクリックします。



    この USE ステートメントにより、接続はフェデレーション メンバーにのみルーティングされます。cid=100 は範囲内の値です。

    データベース名が "system_" と GUID の数値で始まっていることに注目してください。SPLIT 操作の完了後、同じクエリを実行します。SPLIT 操作を実行するたびに、2 つの新しいフェデレーション メンバーが作成され、既存のフェデレーション メンバーを置き換えます。SPLIT 操作の詳細については、「フェデレーション再分割操作: 実際のデータベース SPLIT」を参照してください。

これまでの手順でフェデレーションは作成済みです。次の手順では、フェデレーション テーブルを作成し、そのテーブルにデータを挿入して、SPLIT 操作を実行します。フェデレーション テーブルを作成するには、まず接続をフェデレーション メンバーに接続を変更する必要があります。

フェデレーションのテーブルを作成するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルート データベースが表示されていることを確認します。

  3. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    -- Route connection to the one federation member
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    -- Table [dbo].[Customer]
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Customer](
    [CustomerID] [bigint] NOT NULL,
    [Title] [nvarchar](8) NULL,
    [FirstName] [nvarchar](50) NOT NULL,
    [MiddleName] [nvarchar](50) NULL,
    [LastName] [nvarchar](50) NOT NULL,
    [Suffix] [nvarchar](10) NULL,
    [CompanyName] [nvarchar](128) NULL,
    [SalesPerson] [nvarchar](256) NULL,
    [EmailAddress] [nvarchar](50) NULL,
    [Phone] [nvarchar](25) NULL,
     CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED 
    (
    [CustomerID] ASC
    ) 
    )FEDERATED ON (cid=CustomerID)
    GO
    
    
  4. SQL エディター コマンド バーで [実行] をクリックします。メッセージ ペインに "コマンドは正常に完了しました" と表示されることを確認します。

USE ステートメント内の cid=100 は、有効な BIGINT 値です。CREATE TABLE ステートメントで、CustomerID 列をフェデレーション ディストリビューション キーにマップします。

テーブルにデータを挿入するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルート データベースが表示されていることを確認します。

  3. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    -- Route connection to the federation member
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    -- Insert data
    INSERT INTO [dbo].[Customer]
               ([CustomerID]
               ,[Title]
               ,[FirstName]
               ,[MiddleName]
               ,[LastName]
               ,[Suffix]
               ,[CompanyName]
               ,[SalesPerson]
               ,[EmailAddress]
               ,[Phone])
         VALUES
    (56, 'Mr.', 'Brian', '', 'Groth', '', 'Latest Accessories Sales', 'adventure-works\david8', 'brian5@adventure-works.com', '461-555-0118'),
    (57, 'Ms.', 'Judy', 'R.', 'Lundahl', '', 'Leading Sales & Repair', 'adventure-works\jillian0', 'judy1@adventure-works.com', '260-555-0130'),
    (58, 'Mr.', 'Peter', '', 'Kurniawan', '', 'Largest Bike Store', 'adventure-works\jillian0', 'peter4@adventure-works.com', '436-555-0160'),
    (59, 'Mr.', 'Douglas', '', 'Groncki', '', 'Locks Company', 'adventure-works\shu0', 'douglas2@adventure-works.com', '385-555-0140'),
    (60, 'Mr.', 'Sean', 'J.', 'Lunt', '', 'Main Bicycle Services', 'adventure-works\linda3', 'sean4@adventure-works.com', '183-555-0111'),
    (61, 'Mr.', 'Jeffrey', '', 'Kurtz', '', 'Many Bikes Store', 'adventure-works\shu0', 'jeffrey3@adventure-works.com', '452-555-0179'),
    (64, 'Mr.', 'Vamsi', '', 'Kuppa', '', 'Metal Clearing House', 'adventure-works\jos‚1', 'vamsi1@adventure-works.com', '290-555-0196'),
    (65, 'Ms.', 'Jane', 'P.', 'Greer', '', 'Metro Manufacturing', 'adventure-works\jos‚1', 'jane2@adventure-works.com', '737-555-0163'),
    (66, 'Mr.', 'Alexander', 'J.', 'Deborde', '', 'Neighborhood Store', 'adventure-works\garrett1', 'alexander1@adventure-works.com', '394-555-0176'),
    (70, 'Mr.', 'Deepak', '', 'Kumar', '', 'Outdoor Aerobic Systems Company', 'adventure-works\jae0', 'deepak0@adventure-works.com', '1 (11) 500 555-0122'),
    (73, 'Ms.', 'Margaret', 'T.', 'Krupka', '', 'Outdoor Sports Supply', 'adventure-works\pamela0', 'margaret1@adventure-works.com', '107-555-0132'),
    (74, 'Mr.', 'Christopher', 'M.', 'Bright', '', 'Parcel Express Delivery Service', 'adventure-works\david8', 'christopher2@adventure-works.com', '162-555-0166'),
    (75, 'Ms.', 'Aidan', '', 'Delaney', '', 'Paint Supply', 'adventure-works\jillian0', 'aidan0@adventure-works.com', '358-555-0188'),
    (76, 'Mr.', 'James', 'J.', 'Krow', '', 'Out-of-the-Way Hotels', 'adventure-works\jillian0', 'james11@adventure-works.com', '265-555-0190'),
    (77, 'Mr.', 'Michael', '', 'Brundage', '', 'Mechanical Products Ltd.', 'adventure-works\shu0', 'michael13@adventure-works.com', '128-555-0148'),
    (78, 'Mr.', 'Stefan', '', 'Delmarco', '', 'Preferred Bikes', 'adventure-works\linda3', 'stefan0@adventure-works.com', '819-555-0186'),
    (79, 'Mr.', 'Mitch', '', 'Kennedy', '', 'Reasonable Bicycle Sales', 'adventure-works\shu0', 'mitch0@adventure-works.com', '996-555-0192'),
    (82, 'Mr.', 'James', 'D.', 'Kramer', '', 'Refined Department Stores', 'adventure-works\jos‚1', 'james10@adventure-works.com', '814-555-0130'),
    (83, 'Mr.', 'Eric', 'J.', 'Brumfield', '', 'Requisite Part Supply', 'adventure-works\jos‚1', 'eric3@adventure-works.com', '644-555-0114'),
    (84, 'Ms.', 'Della', 'F.', 'Demott Jr', '', 'Rewarding Activities Company', 'adventure-works\garrett1', 'della0@adventure-works.com', '752-555-0185'),
    (88, 'Ms.', 'Pamala', 'M.', 'Kotc', '', 'Closest Bicycle Store', 'adventure-works\jae0', 'pamala0@adventure-works.com', '1 (11) 500 555-0173'),
    (91, 'Ms.', 'Joy', 'R.', 'Koski', '', 'Scooters and Bikes Store', 'adventure-works\pamela0', 'joy0@adventure-works.com', '810-555-0198'),
    (92, 'Ms.', 'Jovita', 'A.', 'Carmody', '', 'Sports Commodities', 'adventure-works\david8', 'jovita0@adventure-works.com', '646-555-0137'),
    (93, 'Mr.', 'Prashanth', '', 'Desai', '', 'Stationary Bikes and Stands', 'adventure-works\jillian0', 'prashanth0@adventure-works.com', '138-555-0156'),
    (94, 'Mr.', 'Scott', '', 'Konersmann', '', 'Specialty Sports Store', 'adventure-works\jillian0', 'scott6@adventure-works.com', '556-555-0192'),
    (96, 'Ms.', 'Jane', 'N.', 'Carmichael', '', 'Rural Department Store', 'adventure-works\shu0', 'jane0@adventure-works.com', '716-555-0167'),
    (97, 'Ms.', 'Bonnie', 'B.', 'Lepro', '', 'More Bikes!', 'adventure-works\linda3', 'bonnie2@adventure-works.com', '354-555-0130'),
    (99, 'Mr.', 'Eugene', '', 'Kogan', '', 'Mountain Bike Center', 'adventure-works\shu0', 'eugene2@adventure-works.com', '136-555-0134'),
    (100, 'Mr.', 'Kirk', 'T', 'King', '', 'Up-To-Date Sports', 'adventure-works\jos‚1', 'kirk2@adventure-works.com', '979-555-0163'),
    (101, 'Mr.', 'William', 'J.', 'Conner', '', 'Urban Sports Emporium', 'adventure-works\jos‚1', 'william1@adventure-works.com', '383-555-0111'),
    (102, 'Ms.', 'Linda', '', 'Leste', '', 'National Manufacturing', 'adventure-works\garrett1', 'linda7@adventure-works.com', '493-555-0134'),
    (106, 'Ms.', 'Andrea', 'A.', 'Thomsen', '', 'West Side Mart', 'adventure-works\jae0', 'andrea1@adventure-works.com', '1 (11) 500 555-0120'),
    (109, 'Mr.', 'Daniel', 'P.', 'Thompson', '', 'Travel Sports', 'adventure-works\pamela0', 'daniel2@adventure-works.com', '247-555-0197'),
    (110, 'Ms.', 'Kendra', 'N.', 'Thompson', '', 'Vintage Sport Boutique', 'adventure-works\david8', 'kendra0@adventure-works.com', '464-555-0188'),
    (111, 'Mr.', 'Scott', 'A.', 'Colvin', '', 'Westside Cycle Store', 'adventure-works\jillian0', 'scott1@adventure-works.com', '119-555-0144'),
    (168, 'Sr.', 'Luis', '', 'Bonifaz', '', 'Economy Bikes Company', 'adventure-works\linda3', 'luis0@adventure-works.com', '688-555-0113'),
    (169, 'Ms.', 'Brenda', '', 'Diaz', '', 'Downtown Hotel', 'adventure-works\shu0', 'brenda2@adventure-works.com', '147-555-0192'),
    (172, 'Ms.', 'Gabriele', '', 'Dickmann', '', 'Certified Sports Supply', 'adventure-works\jos‚1', 'gabriele0@adventure-works.com', '835-555-0116'),
    (173, 'Mr.', 'Rudolph', 'J.', 'Dillon', 'Sr.', 'Sundry Sporting Goods', 'adventure-works\jos‚1', 'rudolph0@adventure-works.com', '722-555-0169'),
    (174, 'Mr.', 'Michael', 'L.', 'Bohling', '', 'Toy Manufacturing Inc', 'adventure-works\garrett1', 'michael12@adventure-works.com', '838-555-0147'),
    (178, 'Mr.', 'Dick', '', 'Dievendorff', '', 'Rampart Amusement Company', 'adventure-works\jae0', 'dick1@adventure-works.com', '1 (11) 500 555-0193'),
    (180, 'Ms.', 'Nicky', 'E.', 'Chesnut', '', 'Full-Service Bike Store', 'adventure-works\michael9', 'nicky0@adventure-works.com', '264-555-0164'),
    (181, 'Mr.', 'Michael', 'J.', 'Lee', '', 'Family Entertainment Center', 'adventure-works\pamela0', 'michael18@adventure-works.com', '396-555-0139'),
    (182, 'Mr.', 'Stanley', 'A.', 'Alan', 'Jr.', 'Another Bicycle Company', 'adventure-works\david8', 'stanley0@adventure-works.com', '156-555-0126'),
    (183, 'Mr.', 'Yao-Qiang', '', 'Cheng', '', 'This Area Sporting Goods', 'adventure-works\jillian0', 'yao-qiang0@adventure-works.com', '344-555-0181'),
    (184, 'Ms.', 'Marjorie', 'M.', 'Lee', '', 'Go-cart and Bike Specialists', 'adventure-works\jillian0', 'marjorie0@adventure-works.com', '306-555-0166'),
    (185, 'Mr.', 'Sandeep', '', 'Kaliyath', '', 'Weekend Bike Tours', 'adventure-works\shu0', 'sandeep1@adventure-works.com', '495-555-0113'),
    (186, 'Mr.', 'Pei', '', 'Chow', '', 'Thrilling Bike Tours', 'adventure-works\linda3', 'pei0@adventure-works.com', '789-555-0184'),
    (187, 'Mr.', 'Frank', '', 'Campbell', '', 'Trailblazing Sports', 'adventure-works\shu0', 'frank4@adventure-works.com', '491-555-0132'),
    (190, 'Mr.', 'Mark', '', 'Lee', '', 'Racing Partners', 'adventure-works\jos‚1', 'mark5@adventure-works.com', '371-555-0112'),
    (191, 'Ms.', 'Sandra', 'T.', 'Kitt', '', 'Non-Slip Pedal Company', 'adventure-works\jos‚1', 'sandra2@adventure-works.com', '303-555-0117'),
    (192, 'Mr.', 'Hao', '', 'Chen', '', 'Nuts and Bolts Mfg.', 'adventure-works\garrett1', 'hao1@adventure-works.com', '117-555-0173'),
    (196, 'Ms.', 'Jolie', '', 'Lenehan', '', 'Exhibition Showroom', 'adventure-works\jae0', 'jolie0@adventure-works.com', '1 (11) 500 555-0126'),
    (197, 'Ms.', 'Diane', 'F.', 'Krane', '', 'Fabrikam Inc., West', 'adventure-works\michael9', 'diane4@adventure-works.com', '224-555-0126'),
    (198, 'Mr.', 'Payton', 'P.', 'Benson', '', 'Field Trip Inc', 'adventure-works\michael9', 'payton0@adventure-works.com', '528-555-0183'),
    (199, 'Mr.', 'Roger', '', 'Lengel', '', 'Authorized Bike Sales and Rental', 'adventure-works\pamela0', 'roger1@adventure-works.com', '947-555-0143'),
    (200, 'Ms.', 'Peggy', 'J.', 'Justice', '', 'Basic Bike Company', 'adventure-works\david8', 'peggy0@adventure-works.com', '170-555-0189'),
    (201, 'Ms.', 'Edna', 'J.', 'Benson', '', 'Unsurpassed Bikes', 'adventure-works\jillian0', 'edna0@adventure-works.com', '789-555-0189'),
    (202, '', 'A.', 'Francesca', 'Leonetti', '', 'Two-Seater Bikes', 'adventure-works\jillian0', 'a0@adventure-works.com', '645-555-0193'),
    (203, 'Ms.', 'Jean', '', 'Jordan', '', 'Separate Parts Corporation', 'adventure-works\shu0', 'jean3@adventure-works.com', '207-555-0129'),
    (204, 'Mr.', 'Ido', '', 'Ben-Sachar', '', 'Traction Tire Company', 'adventure-works\linda3', 'ido0@adventure-works.com', '973-555-0112'),
    (205, 'Mr.', 'Frank', '', 'Martnez', '', 'Rally Master Company Inc', 'adventure-works\shu0', 'frank5@adventure-works.com', '171-555-0147'),
    (208, 'Mr.', 'Steve', '', 'Masters', '', 'Professional Cyclists', 'adventure-works\jos‚1', 'steve2@adventure-works.com', '154-555-0115'),
    (209, 'Mr.', 'Robert', 'E.', 'Jones', '', 'Purple Bicycle Company', 'adventure-works\jos‚1', 'robert6@adventure-works.com', '595-555-0131'),
    (210, 'Mr.', 'Josh', '', 'Barnhill', '', 'Gasless Cycle Shop', 'adventure-works\garrett1', 'josh0@adventure-works.com', '584-555-0192');
    GO
    
    
  4. SQL エディター コマンド バーで [実行] をクリックします。メッセージ ペインに「65 行処理されました」と表示されることを確認します。

フェデレーション データのクエリを実行するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルート データベースが表示されていることを確認します。

  3. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    -- Route connection to the 1 federation member
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    -- Query customer table for high/low Federated Keys
    SELECT MIN(CustomerID) [CustomerID Low], MAX(CustomerID) [CustomerID High] FROM Customer
    select count(*) from Customer
    SELECT * FROM Customer order by customerid
    GO
    
    
  4. SQL エディター コマンド バーで [実行] をクリックします。

CustomerID の範囲は 56 ~ 210 です。Customer テーブルには合計で 65 件のレコードがあります。

フェデレーションでは、オンラインの再分割操作を行うことができます。SPLIT 操作を使用すると、1 つのフェデレーション メンバーを複数のフェデレーション メンバーにまたがってパーティション分割できます。この SPLIT 操作は、データベースを停止しなくても実行できます。フェデレーション メンバーを分割するには、まずフェデレーション メンバーに接続し、ALTER FEDERATION コマンドを実行します。フェデレーション メンバーを分割する場所を指定する必要があります。次のサンプルでは、cid=100 が使用されています。

フェデレーション メンバーを分割するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルート データベースが表示されていることを確認します。

  3. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    --Perform federations SPLIT operation
    USE FEDERATION ROOT WITH RESET
    GO
    ALTER FEDERATION CustomerFederation SPLIT AT (cid=100)
    GO
    
    
  4. SQL エディター コマンド バーで [実行] をクリックします。メッセージ ペインに "コマンドは正常に完了しました" と表示されることを確認します。

フェデレーション ルート メタデータを表示するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルート データベースが表示されていることを確認します。

  3. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    -- Route connection to the federation root database
    USE FEDERATION ROOT WITH RESET
    GO
    SELECT * FROM sys.federation_member_distributions ORDER BY federation_id, range_low;
    GO
    
    
  4. SQL エディター コマンド バーで [実行] をクリックします。federation_member_distributions テーブルに、フェデレーション メンバーごとに 1 つ、合計 2 つのレコードが表示されます。

フェデレーション メンバー メタデータを表示するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルート データベースが表示されていることを確認します。

  3. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    -- Route connection to the first federation member
    USE FEDERATION CustomerFederation(cid=0) WITH RESET, FILTERING=OFF
    GO
    SELECT db_name() [db_name]
    SELECT * FROM sys.federation_member_distributions
    -- Query customer table for high/low Federated Keys
    SELECT MIN(CustomerID) [CustomerID Low], MAX(CustomerID) [CustomerID High] FROM Customer
    GO
    
    
  4. SQL エディター コマンド バーで [実行] をクリックします。データベース名が、SPLIT 操作を実行する前とは異なっています。cid=0 を使用した場合、CustomerID Low は 56、CustomerID High は 99 です。

その他のフェデレーション メンバー メタデータを表示するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルート データベースが表示されていることを確認します。

  3. 次のステートメントをコピーし、クエリ エディターに貼り付けます。

    -- Route connection to the second federation member
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    SELECT db_name() [db_name]
    SELECT * FROM sys.federation_member_distributions
    -- Query customer table for high/low Federated Keys
    SELECT MIN(CustomerID) [CustomerID Low], MAX(CustomerID) [CustomerID High] FROM Customer
    GO
    
    
  4. SQL エディター コマンド バーで [実行] をクリックします。メッセージ ペインに "クエリが正常に実行されました" と表示されることを確認します。CustomerID Low は 100、CustomerID High は 210 です。

フェデレーションとそれに関連付けられているデータベースを削除するには、DROP FEDERATION ステートメントを使用します。

フェデレーションを削除するには

  1. クエリ エディターでテキストをすべてクリアします。

  2. [使用できるデータベース] にフェデレーション ルート データベースが表示されていることを確認します。

  3. 次の T-SQL ステートメントをコピーしてクエリ エディターに貼り付けます。

    USE FEDERATION ROOT WITH RESET
    GO
    DROP FEDERATION CustomerFederation
    GO
    
    
  4. SQL エディター コマンド バーで [実行] をクリックします。

  5. オブジェクト エクスプローラーで、[フェデレーション] を右クリックし、[最新の情報に更新] をクリックします。フェデレーション メンバーが削除されます。

関連項目

表示:
© 2014 Microsoft