REPAIR_ALLOW_DATA_LOSS in replicated databases

predicates
#tsql#predicates

The

option is

an alternative for restoring from a known good

backup. It’s an emergency

option recommended for use only if restoring from a

backup is

possible.

After it rebuilds the log, there’s no full ACID guarantee.

After it rebuilds the log,

is automatically performed and both reports and

corrects physical consistency issues.

Logical data consistency and business logic enforced constraints must be validated manually.

The transaction log size is left to its default size and must be manually adjusted back to its

recent size.

Running the

command with the

option can affect user

databases (publication and subscription databases) and the distribution database used by

replication. Publication and subscription databases include published tables and replication

metadata tables. Be aware of the following potential issues in these databases:

Published tables. Actions performed by the

process to repair corrupt user data

might not be replicated:

Merge replication uses triggers to track changes to published tables. If rows are inserted,

updated, or deleted by the

process, triggers don’t fire; therefore, the change isn’t

replicated.

Transactional replication uses the transaction log to track changes to published tables.

The Log Reader Agent then moves these changes to the distribution database. Some

DBCC repairs, although logged, can’t be replicated by the Log Reader Agent. For example,

if a data page is deallocated by the

process, the Log Reader Agent doesn’t

translate this deallocation to a DELETE statement; therefore, the change isn’t replicated.

Replication metadata tables. Actions performed by the

process to repair corrupt

replication metadata tables require removing and reconfiguring replication.

If you have to run the

command with the

option on a

user database or distribution database:

  1. Quiesce the system: Stop activity on the database and at all other databases in the

replication topology, and then try to synchronize all nodes. For more information, see

REPAIR_ALLOW_DATA_LOSS

DBCC CHECKDB
DBCC CHECKDB

REPAIR_ALLOW_DATA_LOSS

CHECKDB

CHECKDB

CHECKDB

CHECKDB

DBCC CHECKDB

REPAIR_ALLOW_DATA_LOSS