sp_replmonitorsubscriptionpendingcmds (Transact-SQL)
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure
Retorna informações sobre o número de comandos pendentes de uma assinatura de publicação transacional e uma estimativa aproximada de quanto tempo é necessário para processá-las. Esse procedimento armazenado retorna uma linha para cada assinatura retornada. Esse procedimento armazenado, usado para monitorar a replicação, é executado no Distribuidor, no banco de dados de distribuição.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_replmonitorsubscriptionpendingcmds [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @subscriber = ] 'subscriber'
, [ @subscriber_db = ] 'subscriber_db'
, [ @subscription_type = ] subscription_type
, [ @subdb_version = ] subdb_version
Argumentos
@publisher [ = ] 'editor'
O nome do Editor. publisher é sysname, sem padrão.
@publisher_db [ = ] 'publisher_db'
O nome do banco de dados publicado. publisher_db é sysname, sem padrão.
@publication [ = ] 'publicação'
O nome da publicação. publication é sysname, sem padrão.
@subscriber [ = ] 'assinante'
O nome do Assinante. subscriber é sysname, sem padrão.
@subscriber_db [ = ] 'subscriber_db'
O nome do banco de dados de assinatura. subscriber_db é sysname, sem padrão.
@subscription_type [ = ] subscription_type
O tipo de assinatura. subscription_type é int, sem padrão e pode ser um desses valores.
Valor | Descrição |
---|---|
0 |
Assinatura push. |
1 |
Assinatura por pull |
@subdb_version [ = ] subdb_version
O dbversion
do banco de dados de assinatura. subdb_version é um parâmetro opcional do tipo int, com um valor padrão de 0.
Conjunto de resultados
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
pendingcmdcount |
int | O número de comandos pendentes para a assinatura. |
estimatedprocesstime |
int | Estimativa do número de segundos necessários para entregar todos os comandos pendentes ao assinante. |
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Comentários
sp_replmonitorsubscriptionpendingcmds
é usado com replicação transacional.
Antes do SQL Server 2019 (15.x)SQL Server 2019 (15.x)SQL Server 2019 (15.x)CU17, sp_replmonitorsubscriptionpendingcmds
não tinha suporte com replicação ponto a ponto e retornava um número incorreto de comandos pendentes quando usado para consultar a topologia de replicação ponto a ponto. No SQL Server 2019 (15.x) 17, o suporte foi adicionado para tornar sp_replmonitorsubscriptionpendingcmds
compatível com publicações ponto a ponto.
No entanto, mesmo com o SQL Server 2019 (15.x) CU17 ou posterior, sp_replmonitorsubscriptionpendingcmds
pode relatar um número incorreto de comandos pendentes quando usado com replicação ponto a ponto se a tabela MSrepl_originators
contiver uma entrada obsoleta de uma versão incorreta do banco de dados de assinatura. Para corrigir o problema, exclua todas as entradas MSrepl_originators
obsoletas ou passe o correto dbversion
do banco de dados de assinatura ao usar o subdb_version
argumento para o sp_replmonitorsubscriptionpendingcmds
procedimento armazenado.
Consulte KB5017009 para obter detalhes sobre como determinar dbversion
.
Permissões
Somente membros da função de servidor fixa sysadmin no Distribuidor ou membros da função de banco de dados fixa db_owner no banco de dados de distribuição podem executar sp_replmonitorsubscriptionpendingcmds
. Os membros da lista de acesso à publicação de uma publicação que usa o banco de dados de distribuição podem ser executados sp_replmonitorsubscriptionpendingcmds
para retornar comandos pendentes para essa publicação.