다음을 통해 공유


jobs.sp_add_target_group_member(Azure 탄력적 작업)(Transact-SQL)

적용 대상: Azure SQL Database

Azure SQL Database용 Azure Elastic Jobs 서비스의 대상 그룹에 데이터베이스 또는 데이터베이스 그룹을 추가합니다.

Transact-SQL 구문 표기 규칙

구문

[jobs].sp_add_target_group_member [ @target_group_name = ] 'target_group_name'
         [ @membership_type = ] 'membership_type' ]
        [ , [ @target_type = ] 'target_type' ]
        [ , [ @refresh_credential_name = ] 'refresh_credential_name' ]
        [ , [ @server_name = ] 'server_name' ]
        [ , [ @database_name = ] 'database_name' ]
        [ , [ @elastic_pool_name = ] 'elastic_pool_name' ]
        [ , [ @target_id = ] 'target_id' OUTPUT ]

인수

@target_group_name

멤버를 추가할 대상 그룹의 이름입니다. target_group_name 기본값이 없는 nvarchar(128)입니다.

@membership_type

대상 그룹 멤버가 포함되거나 제외되는지 여부를 지정합니다. membership_type nvarchar(128)이며 기본값은 'Include'입니다. membership_type 유효한 값은 'Include' 또는 'Exclude'입니다.

@target_type

Azure SQL Database 논리 서버의 모든 데이터베이스, 탄력적 풀의 모든 데이터베이스 또는 개별 데이터베이스를 포함한 대상 데이터베이스 또는 데이터베이스 컬렉션의 유형입니다. target_type nvarchar(128)이며 기본값은 없습니다.

target_type 유효한 값은 SqlServer, . SqlDatabaseSqlElasticPool

@refresh_credential_name

데이터베이스 범위 자격 증명의 이름입니다. refresh_credential_name 기본값이 없는 nvarchar(128)입니다.

Microsoft Entra 인증(이전의 Azure Active Directory)을 사용하는 경우 @refresh_credential_name 매개 변수를 생략합니다. 자격 증명 기반 인증에만 사용됩니다.

@server_name

지정된 대상 그룹에 추가해야 하는 Azure SQL Database 논리 서버의 이름입니다. target_type 경우 server_name SqlServer지정해야 합니다. server_name 기본값이 없는 nvarchar(128)입니다.

@server_name .database.windows.net일부로 포함합니다.

@database_name

지정된 대상 그룹에 추가해야 하는 데이터베이스의 이름입니다. target_type 때 SqlDatabasedatabase_name 지정해야 합니다. database_name 기본값이 없는 nvarchar(128)입니다.

@elastic_pool_name

지정된 대상 그룹에 추가해야 하는 Azure SQL Database 탄력적 풀의 이름입니다. target_type 경우 elastic_pool_name SqlElasticPool지정해야 합니다. elastic_pool_name 기본값이 없는 nvarchar(128)입니다.

@target_id 출력

만들어지면 대상 그룹에 추가되는 대상 그룹 멤버에 할당된 대상 ID 번호입니다. target_id 기본값NULL인 uniqueidentifier 형식의 출력 변수입니다.

반환 코드 값

0(성공) 또는 1(실패).

설명

서버 또는 탄력적 풀이 대상 그룹에 포함되는 경우 작업은 실행 시 서버 내의 모든 단일 데이터베이스 또는 탄력적 풀에서 실행됩니다.

탄력적 작업에 대한 모든 대상에 대해 하나의 메서드를 선택합니다. 예를 들어 단일 탄력적 작업의 경우 데이터베이스 범위 자격 증명을 사용하도록 대상 서버 하나와 Microsoft Entra ID 인증을 사용하도록 다른 대상 서버를 구성할 수 없습니다. 자세한 내용은 인증을 참조하세요.

사용 권한

sysadmin 고정 서버 역할의 멤버는 기본적으로 이 저장 프로시저를 실행할 수 있습니다. sysadmin의 멤버만 이 저장 프로시저를 사용하여 다른 사용자가 소유한 작업의 특성을 편집할 수 있습니다.

예제

대상 그룹에 데이터베이스 하나 추가

다음 예제에서는 Microsoft Entra(이전의 Azure Active Directory) 인증을 사용하여 서버의 데이터베이스 하나를 대상 ElasticJobGroup그룹에 추가하는 방법을 보여 줍니다.

job_database 에 연결하고 다음 명령을 실행하여 데이터베이스를 master 대상 ElasticJobGroup그룹에 추가합니다.

-- Connect to the job database specified when creating the job agent

-- Create a target group containing elastic job database
EXEC jobs.sp_add_target_group 'ElasticJobGroup';

-- Add a server target member
EXEC jobs.sp_add_target_group_member
@target_group_name = 'ElasticJobGroup',
@target_type = 'SqlDatabase',
@server_name = 'server1.database.windows.net',
@database_name = 'master';

--View the recently created target group and target group members
SELECT * FROM jobs.target_groups
WHERE target_group_name='ServerGroup1';
GO
SELECT * FROM jobs.target_group_members
WHERE target_group_name='ServerGroup1';
GO

대상 그룹에 여러 데이터베이스 추가

다음 예제에서는 그룹에 Servers Maintaining Customer Information서버 및 NewYork 모든 데이터베이스 London 를 추가합니다. 이 경우 ElasticJobs작업 에이전트를 만들 때 지정된 작업 데이터베이스에 연결해야 합니다.

Microsoft Entra 인증(이전의 Azure Active Directory)을 사용하는 경우 데이터베이스 범위 자격 증명을 사용하는 경우에만 제공해야 하는 @refresh_credential_name 매개 변수를 생략합니다. 다음 예제에서는 @refresh_credential_name 매개 변수를 주석으로 처리합니다.

--Connect to the jobs database specified when creating the job agent.

-- Create a target group containing server(s)
EXEC jobs.sp_add_target_group @target_group_name =  N'Servers Maintaining Customer Information';
GO

-- Add a server target member
EXEC jobs.sp_add_target_group_member
@target_group_name = N'Servers Maintaining Customer Information',
@target_type = N'SqlServer',
--@refresh_credential_name=N'refresh_credential', --database-scoped credential
@server_name=N'London.database.windows.net';
GO

-- Add a server target member
EXEC jobs.sp_add_target_group_member
@target_group_name = N'Servers Maintaining Customer Information',
@target_type = N'SqlServer',
--@refresh_credential_name=N'refresh_credential', --database-scoped credential
@server_name=N'NewYork.database.windows.net';
GO

--View the recently added members to the target group
SELECT * FROM [jobs].target_group_members
WHERE target_group_name= N'Servers Maintaining Customer Information';
GO

논리 서버에서 데이터베이스 제외

다음 예제에서는 명명된 데이터베이스 또는 명명 MappingDB MappingDB2된 데이터베이스를 제외하고 논리 서버server1.database.windows.net의 모든 데이터베이스에 대해 작업을 실행하는 방법을 보여 줍니다.

job_database에 연결하고 다음 명령을 실행합니다:

--Connect to the job database specified when creating the job agent

-- Create a target group containing server(s)
EXEC [jobs].sp_add_target_group N'ServerGroup';
GO

-- Add a server target member
EXEC jobs.sp_add_target_group_member
@target_group_name = N'ServerGroup',
@target_type = N'SqlServer',
@server_name=N'server1.database.windows.net';
GO

--Exclude one database from a server target group
EXEC [jobs].sp_add_target_group_member
@target_group_name = N'ServerGroup',
@membership_type = N'Exclude',
@target_type = N'SqlDatabase',
@server_name = N'server1.database.windows.net',
@database_name = N'MappingDB';
GO

--Exclude another database from a server target group
EXEC [jobs].sp_add_target_group_member
@target_group_name = N'ServerGroup',
@membership_type = N'Exclude',
@target_type = N'SqlDatabase',
@server_name = N'server1.database.windows.net',
@database_name = N'MappingDB2';
GO

--View the recently created target group and target group members
SELECT * FROM [jobs].target_groups
WHERE target_group_name = N'ServerGroup';
GO
SELECT * FROM [jobs].target_group_members
WHERE target_group_name = N'ServerGroup';
GO

대상 그룹(풀) 만들기

다음 예제에서는 하나 이상의 탄력적 풀에 있는 모든 데이터베이스를 대상으로 지정하는 방법을 보여줍니다.

job_database에 연결하고 다음 명령을 실행합니다:

--Connect to the job database specified when creating the job agent

-- Create a target group containing pool(s)
EXEC jobs.sp_add_target_group 'PoolGroup';

-- Add an elastic pool(s) target member
EXEC jobs.sp_add_target_group_member
@target_group_name = 'PoolGroup',
@target_type = 'SqlElasticPool',
@server_name = 'server1.database.windows.net',
@elastic_pool_name = 'ElasticPool1';

-- View the recently created target group and target group members
SELECT * FROM jobs.target_groups
WHERE target_group_name = N'PoolGroup';
GO
SELECT * FROM jobs.target_group_members
WHERE target_group_name = N'PoolGroup';
GO