Migrazione degli utenti Oracle® a Cloud SQL per PostgreSQL: sicurezza, operazioni, monitoraggio e logging

Questo documento fa parte di una serie che fornisce informazioni e indicazioni chiave relative alla pianificazione e all'esecuzione di migrazioni dei database Oracle® 11g/12c verso Cloud SQL per PostgreSQL alla versione 12. Oltre alla sezione nella parte introduttiva della configurazione, La serie è composta dalle seguenti parti:

Sicurezza

Questa sezione fornisce indicazioni su crittografia, controllo e accesso.

Crittografia

Sia Oracle che Cloud SQL per PostgreSQL offrono meccanismi di crittografia dei dati per aggiungere un ulteriore livello di protezione oltre all'autenticazione utente di base e la gestione dei privilegi utente.

Crittografia dei dati inattivi

I dati che non si spostano attraverso le reti (archiviati) sono noti come "dati at-rest". Oracle offre il meccanismo TDE (Transparent Data Encryption) per aggiungere un livello di crittografia a livello di sistema operativo. In Cloud SQL, i dati vengono È criptato con Advanced Encryption Standard (AES-256) a 256 bit o superiore. Queste chiavi di dati vengono criptate utilizzando una chiave principale archiviata in un keystore sicuro e modificata regolarmente. Per ulteriori informazioni sulla crittografia at-rest, consulta Crittografia at-rest in Google Cloud.

Crittografia dei dati in transito

Oracle offre Advanced Security per la gestione della crittografia dei dati su in ogni rete. Cloud SQL cripta e autentica tutti i dati in transito uno o più livelli di rete quando i dati si spostano fuori dai confini fisici non controllati da Google o per conto di Google. Dati in transito all'interno di un sistema confine controllato da o per conto di Google è generalmente autenticato, potrebbero non essere criptati per impostazione predefinita. Puoi scegliere quali funzionalità di sicurezza misure da applicare in base al modello di minaccia. Ad esempio, puoi configurare SSL per le connessioni all'interno della zona a Cloud SQL. Per informazioni su la crittografia dei dati in transito, consulta Crittografia dei dati in transito in Google Cloud.

Controllo

Oracle fornisce diversi metodi di controllo (ad esempio, controllo standard e granulare). Al contrario, il controllo in Cloud SQL per PostgreSQL può essere ottenuta nei seguenti modi:

  • pgAudit . Registra e monitora le operazioni SQL eseguite su una determinata istanza di database.
  • Audit log di Cloud. Controlla le operazioni amministrative e di manutenzione eseguite su un'istanza Cloud SQL per PostgreSQL.

Controllo degli accessi

Gli utenti possono connettersi all'istanza Cloud SQL per PostgreSQL utilizzando un client PostgreSQL con un indirizzo IP statico autorizzato o utilizzando il proxy Cloud SQL, come qualsiasi altra connessione al database. Per altre origini di connessione come App Engine o Compute Engine, gli utenti hanno a disposizione diverse opzioni, ad esempio l'utilizzo di Cloud SQL Proxy. Per ulteriori informazioni su queste opzioni, consulta Controllo dell'accesso alle istanze.

Cloud SQL per PostgreSQL si integra con Identity and Access Management (IAM) e fornisce un insieme di ruoli predefiniti progettati per aiutarti a controllare l'accesso alle risorse Cloud SQL. Questi ruoli consentono agli utenti IAM di avviare varie operazioni amministrative, come riavvii delle istanze, backup e failover. Consulta: controllo dell'accesso al progetto per ulteriori informazioni.

Operazioni

Questa sezione offre indicazioni sulle operazioni di esportazione e importazione a livello di istanza backup e ripristino e istanze in standby per operazioni di sola lettura e il ripristino dell'implementazione.

Esporta e importa

Il metodo principale di Oracle per eseguire operazioni di esportazione e importazione logica è l'utilità Data Pump, che utilizza i comandi EXPDP/IMPDP (una versione precedente della funzionalità di esportazione/importazione di Oracle includeva i comandi exp/imp). I comandi equivalenti di Cloud SQL per PostgreSQL sono le utilità pg_dump e pg_restore, che generano file di dump e poi li importano a livello di database o di oggetto (inclusa l'esportazione e l'importazione solo dei metadati).

Non esiste una soluzione diretta di Cloud SQL per PostgreSQL equivalente per Utilità Oracle DBMS_DATAPUMP (il metodo Oracle per applicare EXPDP/IMPDP che interagisce direttamente con il pacchetto DBMS_DATAPUMP). Per eseguire la conversione da codice PL/SQL di Oracle DBMS_DATAPUMP, utilizza codice alternativo (ad esempio Bash e Python) per implementare elementi logici e i programmi Cloud SQL per PostgreSQL pg_dump e pg_restore per eseguire operazioni di esportazione/importazione.

Oracle SQL*Loader può essere utilizzato per caricare file esterni nelle tabelle di database. SQL*Loader può utilizzare un file di configurazione (detto file di controllo), che contiene Metadati utilizzati da SQL*Loader per determinare il modo in cui i dati devono essere analizzati e caricati nel database Oracle. SQL*Loader supporta origini sia fisse che variabili .

Le utilità pg_dump e pg_restore vengono eseguite a livello di client e si connettono da remoto all'istanza Cloud SQL per PostgreSQL. I file dump vengono creati sul lato client. Per caricare file esterni in Cloud SQL per PostgreSQL, utilizza il comando COPY dall'interfaccia del client psql oppure utilizza Dataflow o Dataproc. Questa sezione si concentra principalmente sui Comando COPY di Cloud SQL per PostgreSQL, che è un equivalente più diretto all'utilità SQL*Loader di Oracle.

Per caricamenti di dati più complessi nel tuo database Cloud SQL per PostgreSQL, prendi in considerazione l'utilizzo di Dataflow o Dataproc, comporta la creazione di un processo ETL.

Per ulteriori informazioni su Dataflow, consulta la documentazione di Dataflow e per ulteriori informazioni su Dataproc, consulta la documentazione di Dataproc.

pg_dump

L'utilità client pg_dump esegue backup e output coerenti in formati di file di script o di archivio. Il dump dello script è un insieme di istruzioni SQL che possono essere eseguite riprodurre le definizioni originali degli oggetti di database e i dati della tabella. Queste query SQL le istruzioni possono essere inviate a qualsiasi client PostgreSQL per il ripristino. Backup nell'archivio è necessario utilizzare formati file con pg_restore durante le operazioni di ripristino, ma i backup consentono di ripristinare oggetti selettivi e sono progettati per essere portabili in più architetture.

Utilizzo:

-- Single database backup & specific tables backup
# pg_dump database_name > outputfile.sql
# pg_dump -t table_name database_name > outputfile.sql

-- Dump all tables in a given schema with a prefix and ignore a given table
# pg_dump -t 'schema_name.table_prefixvar>*' -T schema_name.ignore_table database_name > outputfile.sql

-- Backup metadata only - Schema only
# pg_dump -s database_name > metadata.sql

-- Backup in custom-format archive
pg_dump -Fc database_name > outputfile.dump

pg_restore

La pg_restore il programma client ripristina un database PostgreSQL da un archivio creato pg_dump. Se il nome di un database non viene specificato, pg_restore genera uno script contenente i comandi SQL necessari per ricreare il database in modo simile pg_dump.

Utilizzo:

-- Connect to an existing database and restore the backup archive
pg_restore -d database_name outputfile.dump

-- Create and restore the database from the backup archive
pg_restore -C -d database_name outputfile.dump

Comando psql COPY

psql è un'interfaccia client a riga di comando per Cloud SQL per PostgreSQL. Con il COPY psql legge il file specificato negli argomenti del comando e instrada i dati tra il server e il file system locale.

Utilizzo:

-- Connect to an existing database and restore the backup archive
psql -p 5432 -U username -h cloud_sql_instance_ip -d database_name -c "\copy emps from '/opt/files/inputfile.csv' WITH csv;" -W

Esportazione/importazione di Cloud SQL per PostgreSQL:

I seguenti link alla documentazione illustrano come utilizzare l'interfaccia a riga di comando gcloud per interagire con l'istanza Cloud SQL e con Cloud Storage al fine di applicare le operazioni di esportazione e importazione.

Backup e ripristino a livello di istanza

In Cloud SQL, le attività di backup e recupero vengono gestite tramite backup automatici e on demand dei database.

I backup consentono di ripristinare l'istanza Cloud SQL per recuperare i dati persi o risolvere un problema con l'istanza. Ti consigliamo di e abilitare i backup automatici per qualsiasi istanza contenente dati di cui devi eseguire proteggere da perdite o danni.

Puoi creare un backup in qualsiasi momento, il che è utile se stai per eseguire un'operazione rischiosa sul database o se hai bisogno di un backup e non vuoi attendere la finestra di backup. Puoi creare backup on demand per qualsiasi istanza, che si tratti di un'istanza con backup automatici attivati o meno.

I backup on demand non vengono eliminati automaticamente come sono i backup automatici. Rimangono visibili finché non li elimini o finché la loro istanza non viene eliminata. Poiché non vengono eliminati automaticamente, i backup on demand possono avere effetto sugli addebiti se non li elimini

Quando attivi i backup automatici, specifichi una finestra di backup di 4 ore. Il backup inizia durante questo intervallo di tempo. Se possibile, pianifica i backup con l'attività minore. Se i dati non sono cambiati dall'ultimo backup, non viene eseguito alcun backup.

Cloud SQL conserva fino a 7 backup automatici per ogni istanza. La lo spazio di archiviazione utilizzato dai backup viene addebitato a una tariffa ridotta in base alla regione in cui sono archiviati i backup. Per saperne di più sul listino prezzi, consulta Prezzi di Cloud SQL per PostgreSQL.

Puoi utilizzare il ripristino delle istanze di database Cloud SQL per PostgreSQL ripristinare nella stessa istanza, sovrascrivere i dati esistenti o ripristinare in un'altra in esecuzione in un'istanza Compute Engine. Cloud SQL per PostgreSQL ti consente anche di ripristinare un database PostgreSQL a un momento specifico con l'opzione di backup automatico abilitata.

Per ulteriori informazioni su come creare o gestire i backup on demand e automatici, consulta Creare e gestire i backup on demand e automatici.

La tabella seguente elenca le operazioni comuni di backup e ripristino in Oracle e l'equivalente in Cloud SQL per PostgreSQL:

Descrizione Oracle (Recovery Manager - RMAN) Cloud SQL per PostgreSQL
Backup automatici pianificati Crea un job DBMS_SCHEDULER che eseguirà lo script RMAN in base a una pianificazione. gcloud sql instances patch INSTANCE_NAME --backup-start-time HH:MM
Backup manuali completi del database BACKUP DATABASE PLUS ARCHIVELOG; gcloud sql backups create --async --instance INSTANCE_NAME
Ripristina database RUN
{
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;
}
gcloud sql backups list --instance INSTANCE_NAME
gcloud sql backups restore BACKUP_ID --restore-instance=INSTANCE_NAME
Differenziale incrementale BACKUP INCREMENTAL LEVEL 0 DATABASE;
BACKUP INCREMENTAL LEVEL 1 DATABASE;
Tutti i backup sono incrementali e non è possibile sceglierli in modo incrementale di testo.
Incrementale cumulativo BACKUP INCREMENTAL LEVEL 0 CUMULATIVE DATABASE;
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
Tutti i backup sono incrementali e non è possibile sceglierli in modo incrementale di testo.
Ripristina il database a un momento specifico RUN
{
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
SET UNTIL TIME "TO_DATE('19-SEP-2017 23:45:00','DD-MON-YYYY HH24:MI:SS')";
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS;
}
gcloud sql instances clone SOURCE_INSTANCE_NAME NEW_INSTANCE_NAME \
--point-in-time TIMESTAMP
Log di archivio del database di backup BACKUP ARCHIVELOG ALL; Non supportati.

Istanze di standby per operazioni di sola lettura e implementazione del ripristino di emergenza

Oracle Active Data Guard consente a un'istanza di standby di fungere da endpoint di sola lettura mentre i nuovi dati vengono ancora applicati tramite i log di reintegrazione e di archivio. Puoi anche utilizzare Oracolo GoldenGate per abilitare un'istanza aggiuntiva a scopo di lettura, mentre le modifiche dei dati applicati in tempo reale, fungendo da soluzione Change Data Capture (CDC).

Cloud SQL per PostgreSQL utilizza un'istanza di standby per l'alta disponibilità. Questa istanza viene mantenuta sincronizzata con l'istanza principale a livello di disco la replica dei dati. A differenza di Active Data Guard, non è aperto per operazioni di lettura o scrittura. Quando principale smette di funzionare o non risponde per circa 60 secondi, principale esegue automaticamente il failover sull'istanza in standby. Entro pochi secondi, i ruoli vengono scambiati e il nuovo account principale prende il controllo.

Cloud SQL per PostgreSQL offre anche repliche di lettura per scalare le richieste di lettura. Sono progettate per scaricare le letture dall'istanza principale, non per fungere da istanza di riserva per il ripristino di emergenza. A differenza del in standby, le repliche di lettura sono sincronizzate con l'istanza principale in modo asincrono. Possono trovarsi in una zona diversa da quella principale e anche in regione diversa. Puoi creare una replica di lettura utilizzando la console Google Cloud o la CLI gcloud. Tieni presente che alcune operazioni richiedono riavviare l'istanza (ad esempio, aggiungendo l'alta disponibilità a un ).

Logging e monitoraggio

Il file del log degli avvisi di Oracle è la fonte principale per identificare gli eventi di sistema e gli eventi di errore generali al fine di comprendere il ciclo di vita di qualsiasi istanza del database Oracle (principalmente la risoluzione dei problemi relativi agli eventi di errore e di errore).

Il log degli avvisi Oracle mostra informazioni su quanto segue:

  • Errori e avvisi relativi alle istanze del database Oracle (ORA- + numero di errore).
  • Eventi di avvio e arresto delle istanze di database Oracle.
  • Problemi relativi alla rete e alla connessione.
  • Eventi di cambio dei log di ripetizione del database.
  • I file di traccia Oracle potrebbero essere menzionati con un link per ulteriori dettagli riguardo a uno specifico evento del database.

Oracle fornisce file di log dedicati per diversi servizi come LISTENER, ASM ed Enterprise Manager (OEM), che non hanno componenti equivalenti in Cloud SQL per PostgreSQL.

Visualizzazione dei log delle operazioni di Cloud SQL per PostgreSQL

Cloud Logging è la piattaforma principale per visualizzare tutte le voci di log in postgres.log (l'equivalente di alert.log in Oracle). Puoi filtrare in base al livello dell'evento del log (ad es. Grave, Errore o Avviso). anche il periodo di tempo degli eventi e il filtro del testo libero disponibili.

Visualizzazione dei log nella console.

Monitoraggio delle istanze di database Cloud SQL per PostgreSQL

Le principali dashboard di monitoraggio dell'interfaccia utente di Oracle fanno parte degli OEM e di Grid/Cloud Controllare i prodotti (ad esempio, Grafici delle attività principali) e sono utili per i dati di database a livello di sessione o di istruzione SQL. Cloud SQL per PostgreSQL offre funzionalità di monitoraggio simili utilizzando la console Google Cloud. Puoi visualizzare informazioni riepilogative sulle istanze di database Cloud SQL per PostgreSQL con più metriche di monitoraggio, come utilizzo della CPU, utilizzo dello spazio di archiviazione, utilizzo della memoria, operazioni di lettura/scrittura, byte in entrata/in uscita, connessioni attive e altro ancora.

Cloud Logging supporta metriche di monitoraggio aggiuntive per Cloud SQL per PostgreSQL. Lo screenshot seguente mostra un grafico delle query di Cloud SQL per PostgreSQL per le ultime 12 ore.

Grafico delle query per le ultime 12 ore.

Monitoraggio delle repliche di lettura di Cloud SQL per PostgreSQL

Puoi monitorare le repliche di lettura nello stesso modo in cui monitori l'istanza principale, utilizzando le metriche di monitoraggio della console Google Cloud (come descritto in precedenza). Inoltre, è disponibile una metrica di monitoraggio dedicata per monitorare la replica ritardo: determina il tempo che intercorre tra l'istanza principale e la replica di lettura istanza in byte (può essere monitorata dalla scheda Panoramica dell'istanza di replica di lettura nella console Google Cloud).

Puoi utilizzare gcloud CLI per recuperare stato della replica:

gcloud sql instances describe REPLICA_NAME

Puoi anche eseguire il monitoraggio della replica utilizzando i comandi di un client PostgreSQL, che fornisce lo stato dei database principale e di standby.

Puoi usare la seguente istruzione SQL per verificare lo stato della replica di lettura:

postgres=> select * from pg_stat_replication;

Monitoraggio di Cloud SQL per PostgreSQL

Questa sezione descrive i metodi di monitoraggio di base di Cloud SQL per PostgreSQL considerati attività di routine eseguite da un amministratore di database (DBA) come Oracle o Cloud SQL per PostgreSQL.

Monitoraggio della sessione

Il monitoraggio delle sessioni Oracle viene eseguito eseguendo query sulle visualizzazioni dinamiche del rendimento, note come visualizzazioni "V$". Le visualizzazioni V$SESSION e V$PROCESS sono di uso comune per ottenere insight in tempo reale sull'attività corrente dei database, utilizzando SQL istruzioni. Per monitorare l'attività della sessione, puoi eseguire query pg_stat_activity visualizzazione dinamica:

postgres=> select * from pg_stat_activity;

Monitoraggio delle transazioni lunghe

Puoi identificare le query in esecuzione da molto tempo applicando filtri appropriati a colonne come query_start e state nella visualizzazione dinamica pg_stat_activity.

Monitoraggio della serratura

Puoi monitorare i blocchi del database utilizzando la visualizzazione dinamica pg_locks, che fornisce informazioni in tempo reale sulle occorrenze di blocco che potrebbero causare problemi di prestazioni.

Passaggi successivi