Pagine

12 giugno 2011

Duplicare un database PostgreSQL

Continuando tra le funzioni utili vediamo oggi come duplicare un database PostgreSql da riga di comando.
PostgreSql è certamente un database meno utilizzato di MySql, ma ciò non significa che non sia un prodotto di altissimo livello. Mi è capitato molto spesso di utilizzarlo anche in ambito bancario dove i sistemisti lo hanno sempre preferito.
A causa delle sue peculiarità tecniche PostgreSql gestisce in modo particolare i database archiviati e quindi occorre prestare una certa attenzione a concetti quali il proprietario del database.
La procedura è abbastanza semplice e diamo per scontato che si abbia accesso al database server via console terminale. Ecco i passaggi:
  1. Scalare i privilegi dell'utente postgres
    su - postgres
  2. Eseguire il dump del database da duplicare
    pg_dump <nome_db_da_duplicare> > dump.sql
  3. Se non esiste già dobbiamo creare il nuovo utente che sarà proprietario del database duplicato
    createuser -A -D -P <nuovo_utente>
    a seguito di questo comando va inserita due volte la password da assegnare al nuovo utente
  4. Creare il nuovo database e associarlo al nuovo utente appena creato
    createdb <nome_nuovo_db> -O <nuovo_utente>
  5. Tramite l'ottimo editor vim o un qualsiasi editor di testo è necessario eseguire il cerca e sostituisci all'interno del file dump.sql dei riferimenti al vecchio utente proprietario sostituendoli con quelli del nuovo utente
    Se usiamo vim:
    vi dump.sql
    :%s/<vecchio_utente_proprietario>/<nuovo_utente>/g
    :wq
  6. Importare il dump nel nuovo database
    psql <nuovo_database> < dump.sql
Come nota conclusiva se vogliamo procedere alla cancellazione di un database o di un utente posgresql dobbiamo usare uno di questi comandi:
dropdb <nome_database>
dropuser <nome_utente>

Nessun commento:

Posta un commento