Compartilhar via


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.