We have an urgent problem and need expert advise. Our DBMS server has a disk read error 1117 and this happen when reading the 355 - ledger entry dimension table. We’re enable to make a hot copy nor do a backup of the database (we have around 20 companies in this dbms which is native.It gave the error only for a particular company on this table,
The table has 120 Million records…I’ve tested the primary key for the table and got the same read error.
We suspect a physical error on the disk where the data is stored.I have several queries:
How can I read the data in the table up to the error, skip the error and read the rest?!
How can I know which tables are remaining for backup after the table 355, is it done in order of table ID?
Do you think I can read the table from top to bottom up to the error, then from bottom to to up to the error (I could use an SSIS DTS to do that), delete the original table and try my backup again? I ready to loose a few records if necessary? my latest backup is dated 10 day (since inception of the error)
How important is that table apart from reporting by dimensions?
Is it possible to do a backup table by table? How?
We do not/can’t repair the disk array until we have a secure backup! I plan to move the physical dbms on another server.
Any suggestion is most welcome
You need to do one of three things:
Create The same table (Just copy this one…) → create report with transferfields(true) to fill this table → delete corrupted table with deleteall command → create report to move data back…
Create Dataport and export all data → delete corrupted table with deleteall command → Run the same Dataport to move data back…most likly you will have get error message that some data has wrong type - just go to the line and fix it.
I do not remember when works first and when second method but one of them should work.
- Create Report and Save Each record to the file (just override) → at some point you will have error… Look at file and you will know what is the last good record…->in OnPreReport Trigger fill in primary key for variable from table 355 and use DELETE command to delete bad record (do not use GET or FIND -just fill primary key). → Repeat until all bad record deleted → Try to find documents and restore deleted records
Thanks for you tips
Since I have a backup dated 03/07/09 I have created a dataport to export the difference from my live to my backup, this is only 70,000 records, so I can have the table 355 with all records fine on one side. Do you think I can delete the table 355 from my live with no risk? I mean without doing a backup of all other tables? because my last full backup is dated 030709…if this work it will save me a lot of trouble (backing table by table all other data)
Yes, use command deleteall(false)… and then reimport data from other database.