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:
- Migrazione degli utenti Oracle a Cloud SQL per PostgreSQL: terminologia e funzionalità
- Migrazione degli utenti Oracle a Cloud SQL per PostgreSQL: tipi di dati, utenti e tabelle
- Migrazione degli utenti Oracle a Cloud SQL per PostgreSQL: query, stored procedure, funzioni e trigger
- Migrazione degli utenti Oracle a Cloud SQL per PostgreSQL: sicurezza, operazioni, monitoraggio e registrazione (questo documento)
- Migrazione di utenti e schemi di Oracle Database a Cloud SQL per PostgreSQL
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
|
gcloud sql backups list --instance INSTANCE_NAME
|
Differenziale incrementale | BACKUP INCREMENTAL LEVEL 0 DATABASE;
|
Tutti i backup sono incrementali e non è possibile sceglierli in modo incrementale di testo. |
Incrementale cumulativo | BACKUP INCREMENTAL LEVEL 0 CUMULATIVE DATABASE;
|
Tutti i backup sono incrementali e non è possibile sceglierli in modo incrementale di testo. |
Ripristina il database a un momento specifico | RUN
|
gcloud sql instances clone SOURCE_INSTANCE_NAME NEW_INSTANCE_NAME \
|
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.
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.
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
- Scopri di più su Cloud SQL per PostgreSQL account utente.
- Esplora le architetture di riferimento, i diagrammi e le best practice su Google Cloud. Consulta il nostro Cloud Architecture Center.