Eu tenho um banco de dados SQL Server 2008 R2 Express executando o Kaspersky Security Center e não tenho idéia de quais circunstâncias a instalação ocorreu, mas o banco de dados parece pensar que está sendo replicado e não liberará espaço no log de transações. por exemplo:
USE master;
SELECT
name, log_reuse_wait, log_reuse_wait_desc, is_cdc_enabled
FROM
sys.databases
WHERE
name = 'KAV';
SELECT DATABASEPROPERTYEX('KAV', 'IsPublished');
retorna:
name | log_reuse_wait | log_reuse_wait_desc | is_cdc_enabled
-----|----------------|---------------------|---------------
KAV | 6 | REPLICATION | 0
DATABASEPROPERTYEX('KAV', 'IsPublished')
----------------------------------------
0 [not published]
Também não há nada listado na Replication
seção no SSMS.
Até agora, tentei algumas declarações obtidas nos resultados do Google:
USE KAV;
EXEC sp_repldone null, null, 0,0,1;
EXEC sp_removedbreplication KAV;
Mas não tive sorte em fazer com que esse banco de dados pare de pensar que está sendo replicado.
sys.databases
Informações completas :
+-----------------------------------+------------------------------------------------------------+
| name | KAV |
| database_id | 5 |
| source_database_id | NULL |
| owner_sid | 0x0105000000000005150000004EB006B0C3554AB049CEA01BE8030000 |
| create_date | 2013-07-04 10:31:28.947 |
| compatibility_level | 90 |
| collation_name | Latin1_General_CI_AS |
| user_access | 0 |
| user_access_desc | MULTI_USER |
| is_read_only | 0 |
| is_auto_close_on | 0 |
| is_auto_shrink_on | 0 |
| state state_desc | ONLINE |
| is_in_standby | 0 |
| is_cleanly_shutdown | 0 |
| is_supplemental_logging_enabled | 0 |
| snapshot_isolation_state | 1 |
| snapshot_isolation_state_desc | ON |
| is_read_committed_snapshot_on | 1 |
| recovery_model | 1 |
| recovery_model_desc | FULL |
| page_verify_option | 2 |
| page_verify_option_desc | CHECKSUM |
| is_auto_create_stats_on | 1 |
| is_auto_update_stats_on | 1 |
| is_auto_update_stats_async_on | 0 |
| is_ansi_null_default_on | 1 |
| is_ansi_nulls_on | 1 |
| is_ansi_padding_on | 1 |
| is_ansi_warnings_on | 1 |
| is_arithabort_on | 1 |
| is_concat_null_yields_null_on | 1 |
| is_numeric_roundabort_on | 0 |
| is_quoted_identifier_on | 1 |
| is_recursive_triggers_on | 0 |
| is_cursor_close_on_commit_on | 0 |
| is_local_cursor_default | 1 |
| is_fulltext_enabled | 1 |
| is_trustworthy_on | 0 |
| is_db_chaining_on | 0 |
| is_parameterization_forced | 0 |
| is_master_key_encrypted_by_server | 0 |
| is_published | 0 |
| is_subscribed | 0 |
| is_merge_published | 0 |
| is_distributor | 0 |
| is_sync_with_backup | 0 |
| service_broker_guid | 19C05AF5-8686-4C27-BF7E-93E240DA953B |
| is_broker_enabled | 0 |
| log_reuse_wait | 6 |
| log_reuse_wait_desc | REPLICATION |
| is_date_correlation_on | 0 |
| is_cdc_enabled | 0 |
| is_encrypted | 0 |
| is_honor_broker_priority_on | 0 |
+-----------------------------------+------------------------------------------------------------+
Além disso:
DBCC OPENTRAN;
No active open transactions.
DBCC SQLPERF(LOGSPACE);
KAV 171066 99.55339 0
EXEC sp_replcounters;
KAV 0 0 0 0x00000000000000000000 0x00000000000000000000
Também realizei backups completos de dados e log.
Eu me deparei com alguns posts com muito situações semelhantes, e a solução fornecida foi configurar a Publicação e Distribuição de replicação e removê-la novamente. No entanto, sendo esta Express Edition, essas opções nem aparecem para mim.
Somos principalmente uma loja Linux e essa é a única instância do SQL Server que temos. Se tudo mais falhar ao obter uma licença real, pode ser o nosso único recurso: restaurar um backup para uma instância não Express e tentar configurar e remover uma Publicação e, finalmente, restaurar de volta para o Express.
fonte
Você já tentou configurar o banco de dados para não publicar?
e depois fazer backup do log para ver o que acontece?
Edit 1: O que o seguinte t-sql retorna?
fonte
Eu tinha exatamente o mesmo problema. O banco de dados SQL Express nunca fez parte de uma replicação. No passado, ele era reparado com alguns comandos DBCC checkdb. E em algum momento descobrimos que
mostrou "REPLICATION" como razão e o arquivo de log está crescendo.
Removemos a replicação usando este tsql:
Isso resolveu o problema e pudemos reduzir o log.
fonte
Eu tentaria o seguinte:
Após o qual você pode tentar adicionar uma replicação e remover uma replicação para uma tabela individual no banco de dados, conforme sugerido na publicação mais abaixo.
Tivemos um banco de dados ao mesmo tempo que mudou para o modo de replicação, mesmo que a distribuição e a replicação não tivessem sido configuradas no SQL Server.
Não consegui encontrar o script original que havia usado para o meu problema, então fiz uma pesquisa e me deparei com esta entrada no MSDN:
log_reuse_wait_desc = replicação, o log de transações não para de crescer
Existe uma causa raiz inespecífica para esse problema e ocorre em todo o mundo.
Boa caçada!
fonte
Se você já tentou de tudo, talvez seja possível (certificando-se de ter um bom backup primeiro!) Desanexar o banco de dados, renomear o arquivo de log (para que o SQL Server não possa encontrá-lo) e reconectá-lo. Acredito que isso forçará o SQL Server a criar um novo arquivo de log. Se ele também deixará de pensar que o banco de dados é replicado, não faço ideia, mas parece pelo menos possível.
fonte