Экспорт (0) Печать
Развернуть все

Учебник по федерациям баз данных SQL — администраторы баз данных

Обновлено: Апрель 2014 г.

Федерации — один из способов построения горизонтально масштабируемых решений в База данных SQL Microsoft Azure. Федерации — это объекты в базе данных, позволяющие приложениям масштабировать часть или все свои данные.

ImportantВажно!
Текущая реализация федераций будет упразднена вместе с уровнями служб Web и Business. Рекомендуется развернуть решения пользовательского сегментирования для обеспечения максимального уровня масштабируемости, гибкости и производительности. Дополнительные сведения о настраиваемом сегментировании см. в разделе Горизонтальное масштабирование баз данных SQL Azure.

В этом учебнике показан процесс создания федерации База данных SQL Azure, создание и заполнение таблицы, а также выполнение операции разделения с помощью Среда SQL Server Management Studio (SSMS). После каждой важной процедуры проводится просмотр метаданных, чтобы увидеть результаты каждой из операций.

Прежде чем начать работу с учебником, необходимо выполнить следующие шаги.

Хотя данный учебник содержит инструкции по использованию SSMS, также можно использовать портал управления Azure.

Соединение с сервером базы данных SQL

  1. Откройте среду Среда SQL Server Management Studio.

  2. В диалоговом окне «Подключение к компоненту «Ядро СУБД» введите или выберите следующие значения:

     

    Название

    Значение

    Имя сервера

    <ВведитеИмяСервера>

    Проверка подлинности

    Проверка подлинности SQL Server

    Имя входа

    <ВведитеИдентификаторПользователя>

    Пароль

    <ВведитеПароль>

  3. Нажмите кнопку Соединить.

Чтобы создать федерацию, сначала создайте базу данных, служащую корневой базой данных федерации. Корень федерации — первоначальная база данных, в которой находятся каталоги федерации.

Создание корневой базы данных федерации

  1. В обозревателе объектов разверните Базы данных, разверните Системные базы данных и выберите базу данных master.

  2. Нажмите кнопку Создать запрос.

  3. Убедитесь, что в поле Доступные базы данных на панели инструментов редактора SQL отображается база данных master.

  4. В окно редактора запросов скопируйте следующие инструкции SQL:

    -- Create federation root database
    CREATE DATABASE [AdventureWorks1] 
    GO
    
    
  5. На панели команд редактора SQL нажмите кнопку Выполнить. Убедитесь, что в области сообщений отображается сообщение Выполнение команд успешно завершено.

  6. В обозревателе объектов щелкните правой кнопкой мыши Базы данных и выберите пункт Обновить. В списке отобразятся новые базы данных.

Федерация — это коллекция секций базы данных, определенных схемой федерации. Схема федерации определяет ключ распределения федерации, от которого зависит распределение данных по секциям федерации. Можно создать несколько федераций в одном корне федерации, но у каждой федерации может быть только одна схема. Чтобы создать схему федерации, необходимо сначала установить соединение с корневой базой данных федерации, а затем выполнить команду CREATE FEDERATION. В этом учебнике создается федерация с именем CustomerFederation и именем распределения cid, за которым следует секция RANGE типа BIGINT. Дополнительные сведения о федерациях см. в разделе Федерации в базе данных SQL Azure.

Создание схемы федерации

  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 отображает имя корневой базы данных федерации. Имеется одна федерация и один член федерации. Идентификатор первого члена федерации совпадает с идентификатором самой федерации. Члены федерации, созданные операцией SPLIT, будут иметь новые уникальные идентификаторы федерации.

    Обратите внимание, что диапазон члена федерации — от -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 см. в разделе Federation Repartitioning Operations: Database SPLIT in Action (Операции изменения секционирования федераций: использование 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 отобразится 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. Нижнее значение CustomerID равно 56, а верхнее значение CustomerID равно 99 (если используется cid=0).

Просмотр других метаданных члена федерации

  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 равно 100, а верхнее значение CustomerID равно 210.

Для удаления федерации и связанных с ней баз данных используется инструкция DROP FEDERATION.

Удаление федерации

  1. Удалите весь текст в редакторе запросов.

  2. Убедитесь, что в разделе Доступные базы данных отображается корневая база данных федерации.

  3. В окно редактора запросов скопируйте следующие инструкции SQL:

    USE FEDERATION ROOT WITH RESET
    GO
    DROP FEDERATION CustomerFederation
    GO
    
    
  4. На панели команд редактора SQL нажмите кнопку Выполнить.

  5. В обозревателе объектов щелкните правой кнопкой мыши Федерации и выберите пункт Обновить. Члены федерации будут удалены.

См. также

Корпорация Майкрософт проводит интернет-опрос, чтобы выяснить ваше мнение о веб-сайте MSDN. Если вы желаете принять участие в этом интернет-опросе, он будет отображен при закрытии веб-сайта MSDN.

Вы хотите принять участие?
Показ:
© 2014 Microsoft