Tengo una base de datos SQL Server 2008 R2 Express que ejecuta Kaspersky Security Center, y no tengo idea en qué circunstancias ocurrió la instalación, pero la base de datos parece pensar que se está replicando y no liberará espacio del registro de transacciones. p.ej:
USE master;
SELECT
name, log_reuse_wait, log_reuse_wait_desc, is_cdc_enabled
FROM
sys.databases
WHERE
name = 'KAV';
SELECT DATABASEPROPERTYEX('KAV', 'IsPublished');
devoluciones:
name | log_reuse_wait | log_reuse_wait_desc | is_cdc_enabled
-----|----------------|---------------------|---------------
KAV | 6 | REPLICATION | 0
DATABASEPROPERTYEX('KAV', 'IsPublished')
----------------------------------------
0 [not published]
Además, no hay nada en la Replication
sección de SSMS.
Hasta ahora he probado un par de declaraciones obtenidas de los resultados de Google:
USE KAV;
EXEC sp_repldone null, null, 0,0,1;
EXEC sp_removedbreplication KAV;
Pero no he tenido suerte en hacer que este DB deje de pensar que está siendo replicado.
sys.databases
Información completa :
+-----------------------------------+------------------------------------------------------------+
| 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 |
+-----------------------------------+------------------------------------------------------------+
También:
DBCC OPENTRAN;
No active open transactions.
DBCC SQLPERF(LOGSPACE);
KAV 171066 99.55339 0
EXEC sp_replcounters;
KAV 0 0 0 0x00000000000000000000 0x00000000000000000000
También acabo de realizar copias de seguridad completas de datos y registros.
Me he encontrado con algunas publicaciones con situaciones muy similares, y la solución dada fue configurar la publicación y distribución de replicación y luego eliminarla nuevamente. Sin embargo, al tratarse de la Edición Express, estas opciones ni siquiera aparecen para mí.
Somos principalmente una tienda de Linux y esta es la única instancia de SQL Server que tenemos. Si todo lo demás falla, obtener una licencia real podría ser nuestro único recurso: restaurar una copia de seguridad en una instancia que no sea Express e intentar configurar, luego eliminar una Publicación y finalmente restaurar nuevamente a Express.
fuente
¿Has intentado configurar la base de datos para que no se publique?
y luego haciendo una copia de seguridad del registro para ver qué sucede?
Edición 1: ¿Qué devuelve el siguiente t-sql?
fuente
Yo tuve exactamente el mismo problema. El SQL Express DB nunca fue parte de una replicación. En el pasado fue reparado con algunos comandos DBCC checkdb. Y en algún momento descubrimos que
ha mostrado "REPLICACIÓN" como razón y el archivo de registro está creciendo.
Eliminamos la replicación usando este tsql:
Eso lo resolvió y pudimos reducir el registro.
fuente
Intentaría lo siguiente:
Después de lo cual podría intentar agregar una replicación y eliminar una replicación para una tabla individual en la base de datos como se sugiere en la publicación más abajo.
Tuvimos una base de datos que cambió al modo de replicación a pesar de que la distribución y la replicación no se habían configurado en el servidor SQL.
No pude encontrar el script original que había usado para mi problema, así que realicé una búsqueda y encontré esta entrada en MSDN:
log_reuse_wait_desc = replicación, el registro de transacciones no dejará de crecer
Hay una causa raíz inespecífica para este problema y ocurre en todo el mundo.
¡Buena caza!
fuente
Si ha intentado todo lo demás, entonces quizás sea posible (¡asegúrese de tener una buena copia de seguridad primero!) Para separar la base de datos, cambiar el nombre del archivo de registro (para que SQL Server no pueda encontrarlo) y luego volver a adjuntar la base de datos. Creo que esto obligará a SQL Server a crear un nuevo archivo de registro. No sé si también dejará de pensar que la base de datos está replicada, pero al menos parece posible.
fuente