팔로워 데이터베이스 기능을 사용하면 다른 클러스터에 있는 데이터베이스를 Azure Data Explorer 클러스터에 연결할 수 있습니다. 팔로워 데이터베이스는 읽기 전용 모드로 연결되므로 데이터를 볼 수 있고 리더 데이터베이스에 수집된 데이터에 대한 쿼리를 실행할 수 있습니다. 팔로워 데이터베이스는 리더 데이터베이스의 변경 내용을 동기화합니다. 동기화 때문에, 데이터 가용성에 몇 초에서 몇 분의 데이터 지연이 있습니다. 시간 지연의 길이는 리더 데이터베이스 메타데이터의 전체 크기에 따라 달라집니다. 리더 및 팔로워 데이터베이스는 동일한 스토리지 계정을 사용하여 데이터를 가져옵니다. 스토리지는 리더 데이터베이스가 소유합니다. 팔로워 데이터베이스는 데이터를 수집할 필요 없이 데이터를 볼 수 있습니다. 연결된 데이터베이스는 읽기 전용 데이터베이스이므로 데이터베이스의 데이터, 테이블 및 정책을 수정할 수 없으며 다만, 캐싱 정책, 보안 주체 및 권한은 제외됩니다. 연결된 데이터베이스는 삭제할 수 없습니다. 리더 또는 팔로워가 분리해야만 삭제할 수 있습니다.
팔로워 기능을 사용하여 다른 클러스터에 데이터베이스를 연결하는 것은 조직과 팀 간에 데이터를 공유하기 위한 인프라로 사용됩니다. 이 기능은 프로덕션 환경을 보호하기 위해 컴퓨팅 리소스를 비프로덕션 사용 사례와 분리하는 데 유용합니다. 팔로워는 Azure Data Explorer 클러스터의 비용을 데이터에 대한 쿼리를 실행하는 파티와 연결하는 데 사용할 수도 있습니다.
리더 및 팔로워를 위한 Azure Data Explorer 클러스터 및 데이터베이스입니다. 클러스터 및 데이터베이스를 만듭니다.
리더 데이터베이스에는 데이터가 포함되어야 합니다. 수집 개요에서 설명하는 방법 중 하나를 사용하여 데이터를 수집할 수 있습니다.
데이터베이스 연결
데이터베이스를 연결하는 데 사용할 수 있는 방법은 다양합니다. 이 문서에서는 C#, Python, PowerShell 또는 Azure Resource Manager 템플릿을 사용하여 데이터베이스를 연결하는 방법에 대해 설명합니다.
데이터베이스를 연결하려면 리더 클러스터 및 팔로워 클러스터에 대한 기여자 역할 이상의 사용자, 그룹, 서비스 주체 또는 관리 ID가 있어야 합니다. Azure Portal, PowerShell, Azure CLI, ARM 템플릿을 사용하여 역할 할당을 추가하거나 제거합니다. Azure RBAC(Azure 역할 기반 액세스 제어) 및 다양한 역할에 대해 자세히 알아보세요.
참고 항목
첨부 파일 프로세스 중에 만들어지기 때문에 팔로워 데이터베이스를 미리 만들 필요는 없습니다.
테이블 수준 공유
데이터베이스를 연결하면 모든 테이블, 외부 테이블 및 구체화된 뷰도 팔로우됩니다. 특정 테이블/외부 테이블/구체화된 뷰는 'TableLevelSharingProperties'를 설정하여 공유할 수 있습니다.
'TableLevelSharingProperties'에는 8개의 문자열 tablesToInclude배열, 즉 , tablesToExclude, externalTablesToInclude, externalTablesToExcludematerializedViewsToInclude, materializedViewsToExcludefunctionsToInclude및 functionsToExclude. 모든 배열의 최대 항목 수는 합쳐서 100개입니다.
참고
모든 데이터베이스 표기법('*')을 사용하는 경우 테이블 수준 공유가 지원되지 않습니다.
구체화된 뷰가 포함되면 원본 테이블도 포함됩니다.
예제
다음 예제에는 모든 테이블이 포함됩니다. 기본적으로 '*' 표기법을 사용하지 않고 모든 테이블이 뒤따릅니다.
tablesToInclude = []
다음 예제에는 모든 함수가 포함됩니다. 기본적으로 모든 함수는 '*' 표기법을 사용하지 않고 따릅니다.
functionsToInclude = []
다음 예제에서는 이름이 "Logs"로 시작하는 모든 테이블을 포함합니다.
tablesToInclude = ["Logs*"]
다음 예제에는 모든 외부 테이블이 포함됩니다.
externalTablesToExclude = ["*"]
다음 예제에는 구체화된 모든 뷰가 포함됩니다.
materializedViewsToExclude=["*"]
데이터베이스 이름 재정의
선택적으로 팔로워 클러스터의 데이터베이스 이름을 리더 클러스터와 다르게 만들 수 있습니다. 예를 들어, 여러 리더 클러스터의 동일한 데이터베이스 이름을 팔로워 클러스터에 연결할 수 있습니다. 다른 데이터베이스 이름을 지정하려면 'DatabaseNameOverride' 또는 'DatabaseNamePrefix' 속성을 구성합니다.
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, followerSubscriptionId);
var followerResourceGroupName = "followerResourceGroup";
var followerClusterName = "follower";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(followerResourceGroupName)).Value;
var cluster = (await resourceGroup.GetKustoClusterAsync(followerClusterName)).Value;
var attachedDatabaseConfigurations = cluster.GetKustoAttachedDatabaseConfigurations();
var attachedDatabaseConfigurationName = "attachedDatabaseConfiguration"
var leaderSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var leaderResourceGroup = "leaderResourceGroup";
var leaderClusterName = "leader";
var attachedDatabaseConfigurationData = new KustoAttachedDatabaseConfigurationData
{
ClusterResourceId = new ResourceIdentifier($"/subscriptions/{leaderSubscriptionId}/resourceGroups/{leaderResourceGroup}/providers/Microsoft.Kusto/Clusters/{leaderClusterName}"),
DatabaseName = "<databaseName>", // Can be a specific database name in a leader cluster or * for all databases
DefaultPrincipalsModificationKind = KustoDatabaseDefaultPrincipalsModificationKind.Union,
Location = AzureLocation.NorthCentralUS
};
// Table level sharing properties are not supported when using '*' all databases notation.
if (attachedDatabaseConfigurationData.DatabaseName != "*")
{
// Set up the table level sharing properties - the following is just an example.
attachedDatabaseConfigurationData.TableLevelSharingProperties = new KustoDatabaseTableLevelSharingProperties();
attachedDatabaseConfigurationData.TableLevelSharingProperties.TablesToInclude.Add("table1");
attachedDatabaseConfigurationData.TableLevelSharingProperties.TablesToExclude.Add("table2");
attachedDatabaseConfigurationData.TableLevelSharingProperties.ExternalTablesToExclude.Add("exTable1");
attachedDatabaseConfigurationData.TableLevelSharingProperties.ExternalTablesToInclude.Add("exTable2");
attachedDatabaseConfigurationData.TableLevelSharingProperties.MaterializedViewsToInclude.Add("matTable1");
attachedDatabaseConfigurationData.TableLevelSharingProperties.MaterializedViewsToExclude.Add("matTable2");
attachedDatabaseConfigurationData.TableLevelSharingProperties.FunctionsToInclude.Add("func1");
attachedDatabaseConfigurationData.TableLevelSharingProperties.FunctionsToExclude.Add("func2");
}
await attachedDatabaseConfigurations.CreateOrUpdateAsync(WaitUntil.Completed, attachedDatabaseConfigurationName, attachedDatabaseConfigurationData);
from azure.mgmt.kusto import KustoManagementClient
from azure.mgmt.kusto.models import AttachedDatabaseConfiguration, TableLevelSharingProperties
from azure.identity import ClientSecretCredential
import datetime
#Directory (tenant) ID
tenant_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
#Application ID
client_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
#Client Secret
client_secret = "xxxxxxxxxxxxxx"
follower_subscription_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
leader_subscription_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
credentials = ClientSecretCredential(
tenant_id=tenant_id,
client_id=client_id,
client_secret=client_secret
)
kusto_management_client = KustoManagementClient(credentials, follower_subscription_id)
follower_resource_group_name = "followerResourceGroup"
leader_resource_group_name = "leaderResourceGroup"
follower_cluster_name = "follower"
leader_cluster_name = "leader"
attached_database_Configuration_name = "uniqueNameForAttachedDatabaseConfiguration"
database_name = "db" # Can be a specific database name in a leader cluster or * for all databases
default_principals_modification_kind = "Union"
location = "North Central US"
cluster_resource_id = "/subscriptions/" + leader_subscription_id + "/resourceGroups/" + leader_resource_group_name + "/providers/Microsoft.Kusto/Clusters/" + leader_cluster_name
table_level_sharing_properties = None
if (database_name != "*"):
#Set up the table level sharing properties - the following is just an example.
tables_to_include = ["table1", "table2", "table3"]
external_tables_to_exclude = ["Logs*"]
table_level_sharing_properties = TableLevelSharingProperties(tables_to_include = tables_to_include, external_tables_to_exclude = external_tables_to_exclude)
attached_database_configuration_properties = AttachedDatabaseConfiguration(cluster_resource_id = cluster_resource_id, database_name = database_name, default_principals_modification_kind = default_principals_modification_kind, location = location, table_level_sharing_properties = table_level_sharing_properties)
#Returns an instance of LROPoller, see https://zcusa.951200.xyz/python/api/msrest/msrest.polling.lropoller?view=azure-python
poller = kusto_management_client.attached_database_configurations.begin_create_or_update(follower_resource_group_name, follower_cluster_name, attached_database_Configuration_name, attached_database_configuration_properties)
PowerShell을 사용하여 데이터베이스 연결
필수 구성 요소 모듈
Install : Az.Kusto
PowerShell 예제
$FollowerClustername = 'follower'
$FollowerClusterSubscriptionID = 'xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx'
$FollowerResourceGroupName = 'followerResourceGroup'
$DatabaseName = "db" ## Can be a specific database name in a leader cluster or * for all databases
$FollowerDatabaseName = 'followerdbname' ## Use this option if the follower database requires a different name than the leader database.
$LeaderClustername = 'leader'
$LeaderClusterSubscriptionID = 'xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx'
$LeaderClusterResourceGroup = 'leaderResourceGroup'
$DefaultPrincipalsModificationKind = 'Union'
##Construct the LeaderClusterResourceId and Location
$getleadercluster = Get-AzKustoCluster -Name $LeaderClustername -ResourceGroupName $LeaderClusterResourceGroup -SubscriptionId $LeaderClusterSubscriptionID -ErrorAction Stop
$LeaderClusterResourceid = $getleadercluster.Id
$Location = $getleadercluster.Location
## Handle the config name if all databases need to be followed. The config name can be given any unique name
if($DatabaseName -eq '*') {
$configname = $FollowerClustername + 'config'
}
else {
$configname = $DatabaseName
}
##Table level sharing is not supported when using '*' all databases notation. If you use the all database notation please remove all table level sharing lines from the powershell command.
New-AzKustoAttachedDatabaseConfiguration -ClusterName $FollowerClustername `
-Name $configname `
-ResourceGroupName $FollowerResourceGroupName `
-SubscriptionId $FollowerClusterSubscriptionID `
-DatabaseName $DatabaseName ` ## Leader database name.
-DatabaseNameOverride $FollowerDatabaseName ` ## Use this option if the follower database requires a different name than the leader database. Otherwise, this parameter can be removed.
-ClusterResourceId $LeaderClusterResourceid `
-DefaultPrincipalsModificationKind $DefaultPrincipalsModificationKind `
-Location $Location `
-TableLevelSharingPropertyTablesToInclude "table1", "table2", "table3" `
-TableLevelSharingPropertyExternalTablesToExclude "Logs*" `
-ErrorAction Stop
포함할 구체화된 뷰 목록입니다. 'Logs'로 시작하는 구체화된 뷰를 모두 포함하려면 ["Logs*"]를 사용합니다.
["Mv1ToInclude", "Mv2ToInclude"]
materializedViewsToExclude
제외할 구체화된 뷰 목록입니다. 구체화된 뷰를 모두 제외하려면 ["*"]를 사용합니다.
["Mv11ToExclude", "Mv22ToExclude"]
functionsToInclude
포함할 함수 목록입니다.
["FunctionToInclude"]
functionsToExclude
제외할 함수 목록입니다.
["FunctionToExclude"]
location
모든 리소스의 위치입니다. 리더와 팔로워는 같은 위치에 있어야 합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"followerClusterName": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "Name of the cluster to which the database will be attached."
}
},
"attachedDatabaseConfigurationsName": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "Name of the attached database configurations to create."
}
},
"databaseName": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The name of the database to follow. You can follow all databases by using '*'."
}
},
"leaderClusterResourceId": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The resource ID of the leader cluster."
}
},
"defaultPrincipalsModificationKind": {
"type": "string",
"defaultValue": "Union",
"metadata": {
"description": "The default principal modification kind."
}
},
"tablesToInclude": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The list of tables to include. Not supported when following all databases."
}
},
"tablesToExclude": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The list of tables to exclude. Not supported when following all databases."
}
},
"externalTablesToInclude": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The list of external tables to include. Not supported when following all databases."
}
},
"externalTablesToExclude": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The list of external tables to exclude. Not supported when following all databases."
}
},
"materializedViewsToInclude": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The list of materialized views to include. Not supported when following all databases."
}
},
"materializedViewsToExclude": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The list of materialized views to exclude. Not supported when following all databases."
}
},
"functionsToInclude": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The list of functions to include."
}
},
"functionsToExclude": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The list of functions to exclude."
}
},
"location": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {},
"resources": [
{
"name": "[concat(parameters('followerClusterName'), '/', parameters('attachedDatabaseConfigurationsName'))]",
"type": "Microsoft.Kusto/clusters/attachedDatabaseConfigurations",
"apiVersion": "2021-01-01",
"location": "[parameters('location')]",
"properties": {
"databaseName": "[parameters('databaseName')]",
"clusterResourceId": "[parameters('leaderClusterResourceId')]",
"defaultPrincipalsModificationKind": "[parameters('defaultPrincipalsModificationKind')]",
"tableLevelSharingProperties":{
"tablesToInclude": "[parameters('tablesToInclude')]",
"tablesToExclude": "[parameters('tablesToExclude')]",
"externalTablesToInclude": "[parameters('externalTablesToInclude')]",
"externalTablesToExclude": "[parameters('externalTablesToExclude')]",
"materializedViewsToInclude": "[parameters('materializedViewsToInclude')]",
"materializedViewsToExclude": "[parameters('materializedViewsToExclude')]",
"functionsToInclude": "[parameters('functionsToInclude')]",
"functionsToExclude": "[parameters('functionsToExclude')]"
}
}
}
]
}
Azure Portal 또는 PowerShell을 사용하여 Azure Resource Manager 템플릿을 배포합니다.
데이터베이스가 연결되었는지 확인
데이터베이스가 성공적으로 연결되었는지 확인하려면 Azure Portal에서 연결된 데이터베이스를 찾습니다. 팔로워 또는 리더 클러스터에서 데이터베이스가 성공적으로 연결되었는지 확인할 수 있습니다.
팔로워 클러스터 확인
팔로워 클러스터를 찾아 데이터베이스를 선택합니다.
데이터베이스 목록에서 새 읽기 전용 데이터베이스를 검색합니다.
데이터베이스 개요 페이지에서 이 목록을 볼 수도 있습니다.
리더 클러스터 확인
리더 클러스터를 찾아 데이터베이스를 선택합니다.
관련 데이터베이스가 다른 사용자와 공유됨>예로 표시되어 있는지 확인합니다.
세부 정보를 보려면 관계 링크를 전환합니다.
데이터베이스 개요 페이지에서도 이를 볼 수 있습니다.
팔로워 데이터베이스 분리
참고
팔로워 또는 리더 측에서 데이터베이스를 분리하려면 데이터베이스를 분리하려는 클러스터에 기여자 역할 이상이 있는 사용자, 그룹, 서비스 주체 또는 관리 ID가 있어야 합니다. 아래 예제에서는 서비스 주체를 사용합니다.
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, followerSubscriptionId);
var followerResourceGroupName = "testrg";
//The cluster and database attached database configuration are created as part of the prerequisites
var followerClusterName = "follower";
var attachedDatabaseConfigurationsName = "attachedDatabaseConfiguration";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(followerResourceGroupName)).Value;
var cluster = (await resourceGroup.GetKustoClusterAsync(followerClusterName)).Value;
var attachedDatabaseConfiguration = (await cluster.GetKustoAttachedDatabaseConfigurationAsync(attachedDatabaseConfigurationsName)).Value;
await attachedDatabaseConfiguration.DeleteAsync(WaitUntil.Completed);
C#을 사용하여 리더 클러스터에서 연결된 팔로워 데이터베이스 분리
리더 클러스터는 연결된 데이터베이스를 다음과 같이 분리할 수 있습니다.
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var leaderSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, leaderSubscriptionId);
var leaderResourceGroupName = "testrg";
var leaderClusterName = "leader";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(leaderResourceGroupName)).Value;
var cluster = (await resourceGroup.GetKustoClusterAsync(leaderClusterName)).Value;
var followerSubscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var followerResourceGroupName = "followerResourceGroup";
//The cluster and attached database configuration that are created as part of the Prerequisites
var followerClusterName = "follower";
var attachedDatabaseConfigurationsName = "attachedDatabaseConfiguration";
var followerDatabaseDefinition = new KustoFollowerDatabaseDefinition(
clusterResourceId: new ResourceIdentifier($"/subscriptions/{followerSubscriptionId}/resourceGroups/{followerResourceGroupName}/providers/Microsoft.Kusto/Clusters/{followerClusterName}"),
attachedDatabaseConfigurationName: attachedDatabaseConfigurationsName
);
await cluster.DetachFollowerDatabasesAsync(WaitUntil.Completed, followerDatabaseDefinition);
Python을 사용하여 팔로워 클러스터에서 연결된 팔로워 데이터베이스 분리
팔로워 클러스터는 연결된 데이터베이스를 다음과 같이 분리할 수 있습니다.
from azure.mgmt.kusto import KustoManagementClient
from azure.common.credentials import ServicePrincipalCredentials
import datetime
#Directory (tenant) ID
tenant_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
#Application ID
client_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
#Client Secret
client_secret = "xxxxxxxxxxxxxx"
follower_subscription_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
credentials = ServicePrincipalCredentials(
client_id=client_id,
secret=client_secret,
tenant=tenant_id
)
kusto_management_client = KustoManagementClient(credentials, follower_subscription_id)
follower_resource_group_name = "followerResourceGroup"
follower_cluster_name = "follower"
attached_database_configurationName = "uniqueName"
#Returns an instance of LROPoller, see https://zcusa.951200.xyz/python/api/msrest/msrest.polling.lropoller?view=azure-python
poller = kusto_management_client.attached_database_configurations.delete(follower_resource_group_name, follower_cluster_name, attached_database_configurationName)
팔로워 데이터베이스 관리자는 호스팅 클러스터에 있는 연결된 데이터베이스 또는 테이블의 캐싱 정책을 수정할 수 있습니다. 기본값은 리더 클러스터 데이터베이스의 원본 데이터베이스와 테이블 수준 캐싱 정책을 데이터베이스 및 테이블 수준 재정의 정책에 정의된 정책과 결합하는 것입니다. 예를 들어, 리더 데이터베이스에는 월간 보고를 실행하기 위한 30일 캐싱 정책을 설정하고 팔로워 데이터베이스에는 문제 해결을 위해 최근 데이터만 쿼리하도록 3일 캐싱 정책을 설정할 수 있습니다. 관리 명령을 사용하여 팔로워 데이터베이스 또는 테이블에서 캐싱 정책을 구성하는 방법에 대한 자세한 내용은 팔로워 클러스터를 관리하기 위한 관리 명령을 참조하세요.
주의
리더/팔로워 클러스터의 데이터베이스 간에 충돌이 있는 경우 모든 데이터베이스 다음에 팔로워 클러스터가 오면 다음과 같이 해결됩니다.
팔로워 클러스터에서 생성된 DB라는 이름의 데이터베이스는 리더 클러스터에서 생성된 동일한 이름의 데이터베이스보다 우선합니다. 따라서 팔로워 클러스터에 있는 데이터베이스인 DB를 제거하거나 이름을 바꿔야 팔로워 클러스터가 리더의 데이터베이스인 DB를 포함할 수 있습니다.
둘 이상의 리더 클러스터에서 팔로우되는 DB라는 데이터베이스는 리더 클러스터 중 하나에서 임의로 선택되며 두 번 이상 팔로우되지 않습니다.
팔로워 클러스터에서 실행되는 클러스터 활동 로그 및 기록을 표시하는 명령은 팔로워 클러스터의 활동 및 기록을 표시하며 리더 클러스터의 결과는 결과 집합에 포함되지 않습니다
예: 팔로워 클러스터에서 실행되는 .show queries 명령은 팔로워 클러스터가 팔로우하는 데이터베이스에 대해 실행된 쿼리만 표시하고 리더 클러스터의 동일한 데이터베이스에 대해 실행된 쿼리는 표시하지 않습니다.
제한 사항
팔로워와 리더 클러스터는 동일한 지역에 있어야 합니다.
팔로우하는 데이터베이스에서 스트리밍 수집을 사용하는 경우 스트리밍 수집 데이터의 팔로우를 허용하도록 스트리밍 수집에 대해 팔로워 클러스터를 사용하도록 설정해야 합니다.
팔로워 클러스터가 CMK를 사용하도록 설정된 리더 클러스터를 따르고 키에 대한 리더의 액세스가 취소되면 리더와 팔로워 클러스터가 모두 일시 중단됩니다. 이 경우 CMK 문제를 해결한 다음 팔로워 클러스터를 다시 시작하거나 팔로워 클러스터에서 팔로워 데이터베이스를 분리하고 리더 클러스터와 독립적으로 다시 시작할 수 있습니다.
다른 클러스터에 연결된 데이터베이스는 연결을 분리하기 전에는 삭제할 수 없습니다.
다른 클러스터에 연결된 데이터베이스가 있는 클러스터는 연결을 분리하기 전에는 삭제할 수 없습니다.
테이블 수준 공유 속성은 모든 데이터베이스를 팔로우할 때 지원되지 않습니다.
팔로워 데이터베이스에서 관리 ID를 인증 방법으로 사용하는 외부 테이블을 쿼리하려면 관리 ID를 팔로워 클러스터에 추가해야 합니다. 이 기능은 리더 및 팔로워 클러스터가 다른 테넌트에 프로비전될 때 작동하지 않습니다.