Domanda

Ho trovato avviso sul blocco corrotto nel registro di avviso. Il blocco corrotto apparteneva alla tabella denominata docs. A causa del fatto che non ho alcun backup di questo database, ho deciso di ricreare la tabella DOCS per risolvere la corruzione. Ed ecco un problema.

Generato tutti gli script:

1. DDL for table.
2. DDL for constraints,triggers,indexes on the table.
3. DDL for the constraints that references this table.
4. Saved grants on this table.

Ora voglio lasciare cadere il tavolo, ma ho lasciato le sue dipendenze e quindi ricreare la tabella con i suoi vincoli, innesco, indici.

Come lo posso fare?

------------------------Modificare

Sembra essere molto semplice.

  1. Salva i dati di questa tabella

    Crea tabella new_table come select * da my_table;

  2. Salva DDL per la tabella e i suoi commenti
  3. DDL per gli indici in questa tabella
  4. DDL per vincoli su questa tabella
  5. DDL per Key-S straniere che riferisce in questa tabella
  6. Salva sovvenzioni su questo tavolo
  7. Drop Table Purge
  8. Ricreare tabella, commenti, vincoli, indici, chiavi estere che riferimenti a questa tabella
  9. Dare sovvenzioni
  10. Inserire i dati

    inserire in my_table come seleziona * da new_table

Questa soluzione funziona per la ricostruzione della tabella (è un modo corretto per ricreare una tabella). Ma la corruzione non è stata risolta, durante l'inserimento nella tabella in Alert.log ha sollevato lo stesso errore sulla corruzione del blocco.

Nei commenti @Mindaugas Riauba ha scritto una soluzione e ha funzionato. Voglio solo sapere perché la mia soluzione sulla tabella di ricostruzione non ha funzionato e il lavoro di soluzione di @mindaugas Riauba?

Grazie ancora @mindaugas Riauba!

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top