Ich habe eine SQL Server 2008 R2 Express-Datenbank, in der Kaspersky Security Center ausgeführt wird, und ich habe keine Ahnung, unter welchen Umständen die Installation durchgeführt wurde, aber die Datenbank scheint zu glauben, dass sie repliziert wird, und gibt keinen Speicherplatz aus dem Transaktionsprotokoll frei. z.B:
USE master;
SELECT
name, log_reuse_wait, log_reuse_wait_desc, is_cdc_enabled
FROM
sys.databases
WHERE
name = 'KAV';
SELECT DATABASEPROPERTYEX('KAV', 'IsPublished');
kehrt zurück:
name | log_reuse_wait | log_reuse_wait_desc | is_cdc_enabled
-----|----------------|---------------------|---------------
KAV | 6 | REPLICATION | 0
DATABASEPROPERTYEX('KAV', 'IsPublished')
----------------------------------------
0 [not published]
Auch im ist nichts verzeichnet Replication
Abschnitt in SSMS .
Bisher habe ich ein paar Aussagen aus Google-Ergebnissen ausprobiert:
USE KAV;
EXEC sp_repldone null, null, 0,0,1;
EXEC sp_removedbreplication KAV;
Aber ich hatte kein Glück, dass diese DB aufhörte zu glauben, dass sie repliziert wird.
Vollständige sys.databases
Informationen:
+-----------------------------------+------------------------------------------------------------+
| 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 |
+-----------------------------------+------------------------------------------------------------+
Ebenfalls:
DBCC OPENTRAN;
No active open transactions.
DBCC SQLPERF(LOGSPACE);
KAV 171066 99.55339 0
EXEC sp_replcounters;
KAV 0 0 0 0x00000000000000000000 0x00000000000000000000
Ich habe auch gerade vollständige Daten- und Protokollsicherungen durchgeführt.
Ich bin mit sehr ein paar Posts gestoßen ähnlichen Situationen gestoßen. Die Lösung bestand darin, die Replikation Publishing and Distributing einzurichten und sie dann wieder zu entfernen. Da es sich jedoch um Express Edition handelt, werden diese Optionen für mich nicht einmal angezeigt.
Wir sind hauptsächlich ein Linux-Shop und dies ist die einzige SQL Server-Instanz, die wir haben. Wenn alles andere fehlschlägt, um eine echte Lizenz zu erhalten, ist dies möglicherweise unsere einzige Möglichkeit: Um ein Backup auf einer Nicht-Express-Instanz wiederherzustellen und zu versuchen, eine Publikation einzurichten, zu entfernen und schließlich wieder in Express wiederherzustellen.
quelle
Haben Sie versucht, die Datenbank so einzustellen, dass sie nicht veröffentlicht wird?
und dann das Protokoll sichern, um zu sehen, was passiert?
Edit 1: Was gibt der folgende t-sql zurück?
quelle
Ich hatte genau das gleiche Problem. Die SQL Express-Datenbank war nie Teil einer Replikation. In der Vergangenheit wurde es mit einigen DBCC-checkdb-Befehlen repariert. Und irgendwann haben wir das entdeckt
hat als Grund "REPLICATION" angegeben und die Logdatei wächst.
Wir haben die Replikation mit folgendem tsql entfernt:
Das löste es und wir konnten das Protokoll verkleinern.
quelle
Ich würde folgendes versuchen:
Anschließend können Sie versuchen, eine Replikation hinzuzufügen und eine Replikation für eine einzelne Tabelle in der Datenbank zu entfernen.
Wir hatten zu einer Zeit eine Datenbank, die in den Replikationsmodus wechselte, obwohl Verteilung und Replikation nicht auf dem SQL Server eingerichtet worden waren.
Ich konnte das ursprüngliche Skript, das ich für mein Problem verwendet hatte, nicht finden. Daher führte ich eine Suche durch und stieß auf diesen Eintrag bei MSDN:
log_reuse_wait_desc = Replikation, das Transaktionsprotokoll hört nicht auf zu wachsen
Es gibt eine unspezifische Ursache für dieses Problem, die weltweit auftritt.
Gute Jagd!
quelle
Wenn Sie alles andere versucht haben, ist es möglicherweise möglich (stellen Sie sicher, dass Sie zuerst eine gute Sicherung haben!), Die Datenbank zu trennen, die Protokolldatei umzubenennen (sodass SQL Server sie nicht finden kann) und die Datenbank erneut anzuhängen. Ich glaube, dies wird SQL Server zwingen, eine neue Protokolldatei zu erstellen. Ob es auch aufhören wird zu denken, dass die Datenbank repliziert wird, weiß ich nicht, aber es scheint zumindest möglich.
quelle