Taking in new cases now · 9am–5:30pm, weekdays In a rush? Ring 0800 6890668
BHDR Birmingham Data Recovery 0800 6890668 Get it seen
BHDR / Specialist work / Database recovery

Database engines · specialist casework

Birmingham database recovery. Suspect and Dirty Shutdown do not mean the data has gone.

Those flags are the engine being careful. SQL Server and Exchange will turn a store away rather than invent the contents of a page they cannot verify, and that caution leaves your rows and mailboxes intact. The repair switches they ship reach consistency by a blunter road: anything that will not reconcile is dropped. So the work here runs the other way about. MDF, NDF, LDF and EDB files sent in from across Birmingham, with their full log sets, are imaged the moment they arrive, the tools only ever touch the copy, and what you posted is read once and put away.

Nothing recovered, nothing to pay Diagnosed free, then one fixed price From Walsall, Dudley or Coventry, it travels by post

Tell an engineer what it is doing
0800 6890668

Reading the database symptoms, one by one.

No match here? Run the triage →
What you seeWhat is behind itWhat to do
Suspect next to the database nameLog replay did not complete after an unclean stopSecure copies of both files first
Recovery Pending on restartStart-up never finishes; the disk beneath is usually on the way outCheck the storage, not only the file
Errors 823 and 824, or torn pagesA page has failed its own checksum on readStop retrying and take an image
Error 5171 — ‘not a primary database file’Damage to the MDF headerHeader rebuilt against an image
Exchange reports Dirty ShutdownSome log generations never committedRead the header first, repair nothing
Somebody has already forced a repairREPAIR_ALLOW_DATA_LOSS does what it saysGet it to us
Sending it by post: send it tracked and fully insured to our intake lab, and we cover the postage coming back; if you want the packing checked before it goes, an engineer will talk it through with you. Every step is written out on the posting page.

Four things that do not change.

Read-only from the startEvery MDF, NDF, LDF and EDB comes in with its log set and is forensically imaged before any utility is opened. Repair tools write, and they write heavily. Working on an image is what keeps a bad call reversible.
Held back to the lastREPAIR_ALLOW_DATA_LOSS does return a consistent database. It gets there by throwing out everything it cannot read, and the name says so plainly. On this bench it comes last, if it comes at all, and only ever against an image.
Read the store before you repair itReading a header destroys nothing, and it settles the three questions the case turns on: how the store came down, which log generations are absent, and how far into the file the damage has got. None of that comes out of a hard repair. Whatever it cannot parse it deletes, and the job becomes a migration.
The cause is usually below itA good deal of what arrives labelled database corruption is really the storage underneath making itself felt: a member dropped out of an array, a write cut short by a power loss, a snapshot taken mid-transaction. Repair the file, leave the hardware as it stands, and the same fault is back inside a month. That is why the server and RAID work sits alongside this.

From arrival to the files going home.

Recent jobs on record →
01

Case opened, and the diagnosis costs nothing Free

Every item gets a case number of its own the day it lands. An engineer then works out what has actually failed and tells you plainly which files have a real chance of coming back and which do not. Only then does a price follow: one figure, fixed, in writing, and it costs you nothing to see it. Nothing is charged until you say yes.

The diagnosis is freeOne price, put in writingNothing agreed
02

Imaged first, every time

Data files, logs and any backup media you send are copied read-only, once. Where the disks holding them are failing too, the drive and array work comes first; there is no sense repairing an image taken off a dying member.

Imaged before any toolBad drives dealt with first
03

Headers, logs, then pages

All of it on the image, none on your file. Headers are rebuilt, then logs rolled forward no further than they can be trusted. Past that point the work goes down into the page structures themselves, lifting tables, mailboxes and attachments out one at a time.

Logs rolled forward if soundOtherwise, page by page
04

The engine signs it off, not us

A job is not closed on our say-so. It has to attach, mount and answer a query with rows on the bench before anything goes back, and the records you told us were critical get opened one at a time and read.

It attaches and runsNamed records checked by hand
05

Approved by you, then posted back

No invoice is raised until the full list of recovered files has sat in front of you and you have said go ahead. Your data comes back on media we buy new, posted at our expense, and the job is not closed here until every file has opened on your own machine.

Your say-so on the file listYour data on new mediaWe cover the postage back

What the first look turns up

  • Suspect is a state, not a verdict — the flag says the engine stopped part-way through replaying a log and would not invent the rest. That caution works in your favour. The tables underneath are usually whole.
  • The error number narrows it down — 823, 824 and 5171 each land on a different part of the file. Give us the number when you ring and the diagnosis can start while the parcel is still on your desk.
  • Torn pages are a hardware warning — a database that begins failing its own checksums is frequently the first sign you get that the drive beneath it is going.
  • Send the backups as well — an old copy nobody had faith in has saved more than one job here, and a good one has come within minutes of being written over in the rush to restore. Send all of it.

Where the job actually ends: file recovery is finished when the bytes read back. Database recovery is finished only when the engine takes the file back, mounts the store and returns rows to a query without complaint. Between those two points sits consistency, which is why MDF files that someone else has already called recovered arrive here still refusing to attach.

Recent pages of the casebook.

BH · BHD-2026-8851RECORDED ✓

A Bromsgrove practice at 8:55am, with SQL Server calling it Suspect

The practice rang with its database marked Suspect after an overnight power cut, and an emergency slot was already open. Forensic copies came first, and on those copies the transaction log still replayed. Attaching against one worked at the first attempt, so the morning's bookings ran twenty minutes late rather than a week.

Reattached — none lost24 hours in the lab

Before the parcel goes.

Do this first

  • Stop the instance, then copy the data and log files
  • Copy out the error message exactly as shown
  • Hold on to every backup, whatever its age
  • Tell us which software sits over the database

What not to do

  • Reach for REPAIR_ALLOW_DATA_LOSS first
  • Run a hard repair on the live store and hope
  • Keep flipping it offline and online
  • Put an older backup over the top of the damage

The questions that come up every week.

SQL Server has marked the database Suspect. Where do we start?

Stop the instance, then put safe copies of the MDF and its log somewhere else before a single command runs against either. Suspect means the engine gave up part-way through log replay after a bad stop, and that is usually a recoverable state. Databases get lost at the next step, when somebody points a repair at the live files.

The transaction log is gone. Can the database still come back?

Usually, yes. Rows, indexes and page structures all sit inside the data file, so an MDF can generally be worked into a state SQL Server will attach with no log present at all. What you may lose is the tail: any transaction still open at the moment the server died can come back half written, and we tell you precisely where that line falls.

The store says Dirty Shutdown. Is the mail lost?

Rarely. Dirty Shutdown means the store came down with log generations still uncommitted, no more than that. A header read harms nothing and names the missing generations; where they survive, soft recovery folds them back and the store mounts. Mailboxes usually come through. They go when a hard repair is reached for.

Why does the corruption return after every repair?

Because the database is rarely the thing that broke. The disks beneath it are. Damage that comes back after each repair nearly always traces to a disk shedding sectors, an array left running a member down, or a controller cache writing fresh errors into every copy you mend. A fair share of the database work that reaches this bench turns out to be server work, and both are done here.

Nothing more is lost while the power stays off.

Every extra power-up takes something off a drive that is already going. Leave it switched off and let the free diagnosis say what still reads.

0800 6890668