Impossibile connettersi al database DB2 dopo il ripristino di un backup non in linea

dba.stackexchange https://dba.stackexchange.com/questions/15809

  •  22-10-2019
  •  | 
  •  

Domanda

Questo è per DB2 9.7 Enterprise Server Edition su AIX.

Ho avuto un backup completo non in linea presa di diverse basi di dati all'interno del nostro esempio, in un ambiente di prestazioni.

Ho voluto ripristinare questi database per il nostro ambiente di integrazione.

ho incontrato il comando

db2 restore database database_name from 
/bkp/instance_name/OfflineBackups/RestorePoint/my_restore_point 
taken at 20120321103846 into database_name without prompting;

per ciascuno dei miei database (modificando il nome del database e timestamp in modo appropriato, naturalmente).

Ogni database ripristinato correttamente in base a DB2. Tuttavia, ora quando voglio per verificare se il database ha effettivamente ripristinare quello che ho pensato, provo a connettersi a un database e ottengo l'errore

    SQL1117N  A connection to or activation of database "database_name" cannot be made 
because of ROLL-FORWARD PENDING.  SQLSTATE=57019

Non ha avuto alcun nelle operazioni di processo nel database precedente, perché tutti i collegamenti sono stati costretti al largo e il database è stato premuto per un backup non in linea. Cosa devo fare?

È stato utile?

Soluzione

Trovato la risposta qui .

ho bisogno di eseguire il comando

db2 rollforward db database_name to end of backup and complete;

Questo impegna tutto ai registri e luoghi il database in uno stato non è più sospeso, permettendo così il collegamento ad esso. Avevo bisogno di fare questo per ogni database ripristinato.

Modifica Abbiamo trovato questo pepita nifty per partecipare ad una DB2NightShow episodio. Con 9,7 FP2, hanno introdotto una variabile di Registro di sistema denominata DB2_RESTORE_GRANT_ADMIN_AUTHORITY. Questo è utile se si ripristinano un backup da un'istanza all'altra, in cui concede automaticamente esempio proprietario SECADM, DBADM, DataAccess, e ACCESSCTRL sulla database ripristinati. Con 9,7 5PQ, l'ambiente è dinamico e non lo fa richiedono rimbalzare dell'istanza. Mi rendo conto la mia domanda originale aveva niente a che fare con la sicurezza, ma può essere incontrato e pensato che questo sarebbe un bocconcino a portata di mano messo qui.


Modifica # 2: di recente ho scoperto che se il backup è un backup non in linea sulla base di una banca dati di archiviazione connesso, ho potuto includere la Clausola WITHOUT ROLLING FORWARD nel mio comando RESTORE. Questo sarebbe hanno preso il fuori banca dati del rotolo in avanti in attesa immediatamente Stato sul successo di ripristino, il che significherebbe che non avrei dovuto quindi eseguire il comando ROLLFORWARD DB.

Altri suggerimenti

Se il tipo di backup può essere in linea di backup.

Usa percorso Log ( "/ db2logtarget")

Ad esempio: - db2 => rollforward db userdb alla fine dei registri e completo percorso di registro di troppo pieno ( "/ home / utente / target")

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