내보내기(0) 인쇄
모두 확장

SQL 데이터베이스 페더레이션 자습서 -- DBA

업데이트 날짜: 2014년 4월

페더레이션은 Microsoft Azure SQL 데이터베이스에서 확장 데이터베이스 솔루션을 제작하기 위한 방법 중 하나로, 응용 프로그램에서 데이터의 일부 또는 전체를 확장할 수 있도록 하는 데이터베이스의 개체입니다.

Important중요
현재 페더레이션 구현은 Web 및 Business와 함께 사용이 중지될 예정입니다. 확장성, 유동성 및 성능을 최대화하려면 사용자 지정 분할 솔루션을 배포하는 것이 좋습니다. 사용자 지정 분할에 대한 자세한 내용은 Azure SQL 데이터베이스 확장을 참조하십시오.

이 자습서에서는 Azure SQL 데이터베이스(SSMS)를 사용하여 SQL Server Management Studio 페더레이션을 만들고, 테이블을 만들고 채우며, 분할 작업을 수행하는 프로세스에 대해 설명합니다. 각각의 주요 절차를 완료한 후 메타데이터를 검토하고 각 작업의 결과를 확인합니다.

이 자습서를 시작하기 전에 다음 단계를 완료해야 합니다.

이 자습서에서는 SSMS 사용 지침을 제공하지만 다른 옵션으로는 Azure 관리 포털을 사용하는 것입니다.

SQL 데이터베이스 서버에 연결하려면

  1. SQL Server Management Studio를 엽니다.

  2. 데이터베이스 엔진에 연결 대화 상자에서 다음 값을 입력하거나 선택합니다.

     

    Name

    서버 이름

    <서버 이름 입력>

    인증

    SQL Server 인증

    로그인

    <사용자 ID 입력>

    Password

    <암호 입력>

  3. 연결을 클릭합니다.

페더레이션을 만들려면 먼저 페더레이션 루트 데이터베이스로 사용되는 데이터베이스를 만듭니다. 페더레이션 루트는 페더레이션 디렉터리를 저장하는 초기 데이터베이스입니다.

페더레이션 루트 데이터베이스를 만들려면

  1. 개체 탐색기에서 데이터베이스, 시스템 데이터베이스를 차례로 확장한 다음 master를 클릭합니다.

  2. 새 쿼리를 클릭합니다.

  3. SQL 편집기 도구 모음의 사용 가능한 데이터베이스master가 표시되는지 확인합니다.

  4. 쿼리 편집기에서 다음 T-SQL 문을 복사하여 붙여넣습니다.

    -- Create federation root database
    CREATE DATABASE [AdventureWorks1] 
    GO
    
    
  5. SQL 편집기 명령 모음에서 실행을 클릭합니다. 메시지 창에 명령이 완료되었습니다.가 표시되는지 확인합니다.

  6. 개체 탐색기에서 데이터베이스를 마우스 오른쪽 단추로 클릭한 다음 새로 고침을 클릭합니다. 나열된 새 데이터베이스가 표시되어야 합니다.

페더레이션은 페더레이션 구성표로 정의된 데이터베이스 파티션의 컬렉션입니다. 페더레이션 구성표는 페더레이션 내의 파티션에 대한 데이터 배포를 결정하는 페더레이션 배포 키를 정의합니다. 하나의 페더레이션 루트 내에서 여러 페더레이션을 만들 수 있지만 각 페더레이션에는 구성표가 하나만 있을 수 있습니다. 페더레이션 구성표를 만들려면 먼저 페더레이션 루트 데이터베이스에 연결한 다음 CREATE FEDERATION 명령을 실행해야 합니다. 이 자습서에서는 배포 이름 cid 뒤에 RANGE 파티션 유형 BIGINT가 붙는 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 문은 페더레이션 루트 데이터베이스 이름을 표시합니다. 페더레이션 하나와 페더레이션 멤버 하나가 있습니다. 첫 번째 페더레이션 멤버는 페더레이션으로 동일한 ID를 공유합니다. SPLIT 작업으로 만든 페더레이션 멤버는 고유한 새 페더레이션 ID를 갖게 됩니다.

    페더레이션 멤버의 범위는 -9223372036854775808(range_low)에서 NULL(range_high) 사이여야 합니다. SPLIT 작업을 수행하면 범위가 두 부분으로 분할됩니다. 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 작업을 수행할 때마다 새로운 두 페더레이션 멤버가 생성되어 기존 페더레이션 멤버를 대체합니다. 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 작업을 수행하여 한 페더레이션 멤버를 여러 페더레이션 멤버로 분할할 수 있습니다. 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. 사용 가능한 데이터베이스에 페더레이션 루트 데이터베이스가 표시되는지 확인합니다.

  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