Strumento: postgres_upgrade_precheck
Verifica se un'istanza Cloud SQL per PostgreSQL è pronta per un upgrade della versione principale alla versione di destinazione specificata.
target_database_version DEVE essere fornito nella richiesta (ad es. POSTGRES_15).
Questo strumento aiuta a identificare potenziali problemi prima di tentare l'upgrade vero e proprio, riducendo il rischio di errori o tempi di inattività.
Questo strumento è supportato solo per le istanze principali PostgreSQL e non viene eseguito sulle repliche di lettura.
Il precontrollo in genere valuta:
- Compatibilità dello schema del database con la versione di destinazione.
- Limitazioni di Cloud SQL e funzionalità non supportate.
- Vincoli delle risorse dell'istanza (ad es. numero di relazioni).
- Compatibilità delle impostazioni e delle estensioni del database attuali.
- Stato e preparazione complessivi dell'istanza.
Questo strumento restituisce un'operazione a lunga esecuzione. Utilizza lo strumento get_operation con il nome dell'operazione restituito da questa chiamata per verificarne lo stato.
IMPORTANTE: una volta che lo stato dell'operazione è DONE, i risultati dettagliati del controllo preliminare sono disponibili nella risorsa Operation. Dovrai esaminare la risposta di get_operation. I risultati si trovano nel campo pre_check_major_version_upgrade_context.pre_check_response.
I risultati sono strutturati e indicano:
- INFO: informazioni generali.
- AVVISO: potenziali problemi che non bloccano l'upgrade, ma che devono essere esaminati.
- ERRORE: problemi critici che DEVONO essere risolti prima di tentare l'upgrade.
Ogni risultato deve includere un messaggio e le azioni richieste. È fondamentale risolvere i problemi segnalati prima di procedere con l'upgrade della versione principale. Se pre_check_response è vuoto o mancante, indica che non sono stati identificati problemi durante il controllo preliminare.
L'esecuzione di questo controllo preliminare non influisce sulla disponibilità dell'istanza.
Il seguente esempio mostra come utilizzare curl per richiamare lo strumento MCP postgres_upgrade_precheck.
| Curl Request |
|---|
curl --location 'https://sqladmin.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "postgres_upgrade_precheck", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Schema di input
Richiesta di controlli preliminari per MVU
SqlInstancesPreCheckMajorVersionUpgradeRequest
| Rappresentazione JSON |
|---|
{
"instance": string,
"project": string,
"body": {
object ( |
| Campi | |
|---|---|
instance |
Obbligatorio. ID istanza Cloud SQL. L'ID progetto non è incluso. |
project |
Obbligatorio. ID progetto del progetto che contiene l'istanza. |
body |
Obbligatorio. Il contesto della richiesta di esecuzione dell'operazione di upgrade della versione principale di pre-controllo. |
InstancesPreCheckMajorVersionUpgradeRequest
| Rappresentazione JSON |
|---|
{
"preCheckMajorVersionUpgradeContext": {
object ( |
| Campi | |
|---|---|
preCheckMajorVersionUpgradeContext |
Obbligatorio. Contiene dettagli sull'operazione di upgrade della versione principale di pre-controllo. |
PreCheckMajorVersionUpgradeContext
| Rappresentazione JSON |
|---|
{ "targetDatabaseVersion": enum ( |
| Campi | |
|---|---|
targetDatabaseVersion |
Obbligatorio. La versione del database di destinazione di cui eseguire l'upgrade. |
preCheckResponse[] |
Solo output. Le risposte dell'operazione di precontrollo. |
kind |
Facoltativo. Questo valore è sempre |
PreCheckResponse
| Rappresentazione JSON |
|---|
{ "actionsRequired": [ string ], // Union field |
| Campi | |
|---|---|
actionsRequired[] |
Le azioni che l'utente deve intraprendere. Utilizza ripetuto per più azioni. |
Campo unione
|
|
message |
Il messaggio da mostrare all'utente. |
Campo unione
|
|
messageType |
Il tipo di messaggio, che può essere informativo, di avviso o di errore. |
Schema di output
Una risorsa Operation. Per le operazioni riuscite che restituiscono una risorsa Operation, nella risorsa vengono compilati solo i campi pertinenti all'operazione.
Operazione
| Rappresentazione JSON |
|---|
{ "kind": string, "targetLink": string, "status": enum ( |
| Campi | |
|---|---|
kind |
Questo valore è sempre |
targetLink |
|
status |
Lo stato di un'operazione. |
user |
L'indirizzo email dell'utente che ha avviato questa operazione. |
insertTime |
L'ora in cui questa operazione è stata inserita nella coda nel fuso orario UTC in formato RFC 3339, ad esempio Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
startTime |
L'ora in cui è iniziata effettivamente questa operazione nel fuso orario UTC in formato RFC 3339, ad esempio Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
endTime |
L'ora in cui è terminata questa operazione nel fuso orario UTC nel formato RFC 3339, ad esempio Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
error |
Se si sono verificati errori durante l'elaborazione di questa operazione, questo campo verrà compilato. |
apiWarning |
Un messaggio di avviso dell'API Admin. |
operationType |
Il tipo di operazione. I valori validi sono: * |
importContext |
Il contesto per l'operazione di importazione, se applicabile. |
exportContext |
Il contesto dell'operazione di esportazione, se applicabile. |
backupContext |
Il contesto dell'operazione di backup, se applicabile. |
preCheckMajorVersionUpgradeContext |
Questo campo viene compilato solo quando operation_type è PRE_CHECK_MAJOR_VERSION_UPGRADE. Il messaggio PreCheckMajorVersionUpgradeContext contiene i dettagli del controllo preliminare, ad esempio la versione del database di destinazione per l'upgrade e i risultati del controllo (inclusi eventuali avvisi o errori rilevati). |
name |
Un identificatore univoco dell'operazione. Puoi utilizzare questo identificatore per recuperare la risorsa Operations che contiene informazioni sull'operazione. |
targetId |
Nome della risorsa su cui viene eseguita questa operazione. |
selfLink |
L'URI di questa risorsa. |
targetProject |
L'ID progetto dell'istanza di destinazione correlata a questa operazione. |
acquireSsrsLeaseContext |
Il contesto per l'operazione di acquisizione del lease SSRS, se applicabile. |
subOperationType |
Facoltativo. L'operazione secondaria in base al tipo di operazione. |
Timestamp
| Rappresentazione JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campi | |
|---|---|
seconds |
Rappresenta i secondi di tempo UTC dall'epoca di Unix 1970-01-01T00:00:00Z. Deve essere compreso tra -62135596800 e 253402300799 inclusi (corrispondenti a 0001-01-01T00:00:00Z e 9999-12-31T23:59:59Z). |
nanos |
Frazioni di secondo non negative con risoluzione in nanosecondi. Questo campo è la porzione di nanosecondi della durata, non un'alternativa ai secondi. I valori negativi dei secondi con frazioni devono comunque avere valori di nanosecondi non negativi che vengono conteggiati in avanti nel tempo. Deve essere compreso tra 0 e 999.999.999 inclusi. |
OperationErrors
| Rappresentazione JSON |
|---|
{
"kind": string,
"errors": [
{
object ( |
| Campi | |
|---|---|
kind |
Questo valore è sempre |
errors[] |
L'elenco degli errori riscontrati durante l'elaborazione di questa operazione. |
OperationError
| Rappresentazione JSON |
|---|
{ "kind": string, "code": string, "message": string } |
| Campi | |
|---|---|
kind |
Questo valore è sempre |
code |
Identifica l'errore specifico che si è verificato. |
message |
Informazioni aggiuntive sull'errore riscontrato. |
ApiWarning
| Rappresentazione JSON |
|---|
{
"code": enum ( |
| Campi | |
|---|---|
code |
Codice per identificare in modo univoco il tipo di avviso. |
message |
Il messaggio di avviso. |
region |
Il nome della regione per l'avviso REGION_UNREACHABLE. |
ImportContext
| Rappresentazione JSON |
|---|
{ "uri": string, "database": string, "kind": string, "fileType": enum ( |
| Campi | |
|---|---|
uri |
Percorso del file di importazione in Cloud Storage, nel formato |
database |
Il database di destinazione per l'importazione. Se |
kind |
Questo valore è sempre |
fileType |
Il tipo di file per l'URI specificato.`SQL |
csvImportOptions |
Opzioni per importare i dati in formato CSV. |
importUser |
Utente di PostgreSQL per questa operazione di importazione. Solo istanze PostgreSQL. |
bakImportOptions |
Parametri di importazione specifici per i file .BAK di SQL Server |
sqlImportOptions |
Facoltativo. Opzioni per importare i dati dalle istruzioni SQL. |
tdeImportOptions |
Facoltativo. Importa parametri specifici per i certificati TDE di SQL Server |
SqlCsvImportOptions
| Rappresentazione JSON |
|---|
{ "table": string, "columns": [ string ], "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Campi | |
|---|---|
table |
La tabella in cui vengono importati i dati CSV. |
columns[] |
Le colonne in cui vengono importati i dati CSV. Se non specificate, tutte le colonne della tabella del database vengono caricate con i dati CSV. |
escapeCharacter |
Specifica il carattere che deve essere visualizzato prima di un carattere di dati che deve essere sottoposto a escape. |
quoteCharacter |
Specifica il carattere di citazione da utilizzare quando un valore di dati è citato. |
fieldsTerminatedBy |
Specifica il carattere che separa le colonne all'interno di ogni riga (linea) del file. |
linesTerminatedBy |
Viene utilizzato per separare le righe. Se una riga non contiene tutti i campi, le restanti colonne vengono impostate sui valori predefiniti. |
SqlBakImportOptions
| Rappresentazione JSON |
|---|
{ "encryptionOptions": { object ( |
| Campi | |
|---|---|
encryptionOptions |
|
striped |
Indica se il set di backup in fase di ripristino è suddiviso in bande. Si applica solo a Cloud SQL per SQL Server. |
noRecovery |
Indica se l'importazione del backup ripristinerà il database con l'opzione NORECOVERY. Si applica solo a Cloud SQL per SQL Server. |
recoveryOnly |
Indica se la richiesta di importazione del backup porterà online il database senza scaricare i contenuti Bak. Solo uno dei valori "no_recovery" e "recovery_only" può essere true, altrimenti verrà restituito un errore. Si applica solo a Cloud SQL per SQL Server. |
bakType |
Tipo di contenuti bak, FULL o DIFF |
stopAt |
Facoltativo. Il timestamp in cui l'importazione deve interrompersi. Questo timestamp è nel formato RFC 3339 (ad esempio, Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
stopAtMark |
Facoltativo. La transazione contrassegnata in cui deve interrompersi l'importazione. Questo campo è equivalente alla parola chiave STOPATMARK e si applica solo a Cloud SQL per SQL Server. |
EncryptionOptions
| Rappresentazione JSON |
|---|
{ "certPath": string, "pvkPath": string, "pvkPassword": string, "keepEncrypted": boolean } |
| Campi | |
|---|---|
certPath |
Percorso del certificato (.cer) in Cloud Storage, nel formato |
pvkPath |
Percorso della chiave privata del certificato (.pvk) in Cloud Storage, nel formato |
pvkPassword |
Password che cripta la chiave privata |
keepEncrypted |
Facoltativo. Indica se il file importato rimane criptato. |
BoolValue
| Rappresentazione JSON |
|---|
{ "value": boolean } |
| Campi | |
|---|---|
value |
Il valore booleano. |
SqlImportOptions
| Rappresentazione JSON |
|---|
{
"threads": integer,
"parallel": boolean,
"postgresImportOptions": {
object ( |
| Campi | |
|---|---|
threads |
Facoltativo. Il numero di thread da utilizzare per l'importazione parallela. |
parallel |
Facoltativo. Indica se l'importazione deve essere parallela o meno. |
postgresImportOptions |
Facoltativo. Opzioni per l'importazione da un'istanza Cloud SQL per PostgreSQL. |
Int32Value
| Rappresentazione JSON |
|---|
{ "value": integer } |
| Campi | |
|---|---|
value |
Il valore int32. |
PostgresImportOptions
| Rappresentazione JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Campi | |
|---|---|
clean |
Facoltativo. Il flag --clean per l'utilità pg_restore. Questo flag si applica solo se hai abilitato Cloud SQL per importare i file in parallelo. |
ifExists |
Facoltativo. Il flag --if-exists per l'utilità pg_restore. Questo flag si applica solo se hai abilitato Cloud SQL per importare i file in parallelo. |
SqlTdeImportOptions
| Rappresentazione JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Campi | |
|---|---|
certificatePath |
Obbligatorio. Percorso della chiave pubblica del certificato TDE nel formato gs://bucketName/fileName. L'istanza deve disporre dell'accesso in lettura al file. Applicabile solo alle istanze SQL Server. |
privateKeyPath |
Obbligatorio. Il percorso della chiave privata del certificato TDE nel formato gs://bucketName/fileName. L'istanza deve disporre dell'accesso in lettura al file. Applicabile solo alle istanze SQL Server. |
privateKeyPassword |
Obbligatorio. Password che cripta la chiave privata. |
name |
Obbligatorio. Nome del certificato. Applicabile solo alle istanze SQL Server. |
ExportContext
| Rappresentazione JSON |
|---|
{ "uri": string, "databases": [ string ], "kind": string, "sqlExportOptions": { object ( |
| Campi | |
|---|---|
uri |
Il percorso del file in Google Cloud Storage in cui verrà archiviata l'esportazione. L'URI è nel formato |
databases[] |
Database da esportare. |
kind |
Questo valore è sempre |
sqlExportOptions |
Opzioni per l'esportazione dei dati come istruzioni SQL. |
csvExportOptions |
Opzioni per l'esportazione dei dati in formato CSV. Solo istanze |
fileType |
Il tipo di file per l'URI specificato. |
offload |
Indica se eseguire un'esportazione serverless. |
bakExportOptions |
Opzioni per l'esportazione dei dati come file BAK. |
tdeExportOptions |
Facoltativo. Esporta i parametri specifici per i certificati TDE di SQL Server |
SqlExportOptions
| Rappresentazione JSON |
|---|
{ "tables": [ string ], "schemaOnly": boolean, "mysqlExportOptions": { object ( |
| Campi | |
|---|---|
tables[] |
Tabelle da esportare o che sono state esportate dal database specificato. Se specifichi le tabelle, specifica un solo database. Per le istanze PostgreSQL, puoi specificare una sola tabella. |
schemaOnly |
Esporta solo gli schemi. |
mysqlExportOptions |
|
threads |
Facoltativo. Il numero di thread da utilizzare per l'esportazione parallela. |
parallel |
Facoltativo. Indica se l'esportazione deve essere parallela o meno. |
postgresExportOptions |
Facoltativo. Opzioni per l'esportazione da un'istanza Cloud SQL per PostgreSQL. |
MysqlExportOptions
| Rappresentazione JSON |
|---|
{ "masterData": integer } |
| Campi | |
|---|---|
masterData |
Opzione per includere l'istruzione SQL necessaria per configurare la replica. Se impostato su |
PostgresExportOptions
| Rappresentazione JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Campi | |
|---|---|
clean |
Facoltativo. Utilizza questa opzione per includere DROP
istruzioni SQL. Utilizza queste istruzioni per eliminare gli oggetti del database prima di eseguire l'operazione di importazione. |
ifExists |
Facoltativo. Opzione per includere un'istruzione SQL IF EXISTS con ogni istruzione DROP prodotta da clean. |
SqlCsvExportOptions
| Rappresentazione JSON |
|---|
{ "selectQuery": string, "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Campi | |
|---|---|
selectQuery |
La query SELECT utilizzata per estrarre i dati. |
escapeCharacter |
Specifica il carattere che deve essere visualizzato prima di un carattere di dati che deve essere sottoposto a escape. |
quoteCharacter |
Specifica il carattere di citazione da utilizzare quando un valore di dati è citato. |
fieldsTerminatedBy |
Specifica il carattere che separa le colonne all'interno di ogni riga (linea) del file. |
linesTerminatedBy |
Viene utilizzato per separare le righe. Se una riga non contiene tutti i campi, le restanti colonne vengono impostate sui valori predefiniti. |
SqlBakExportOptions
| Rappresentazione JSON |
|---|
{
"striped": boolean,
"stripeCount": integer,
"bakType": enum ( |
| Campi | |
|---|---|
striped |
Indica se l'esportazione deve essere suddivisa in strisce. |
stripeCount |
Opzione per specificare il numero di strisce da utilizzare per l'esportazione. Se è vuoto e il valore del campo a strisce è true, il numero di strisce viene scelto automaticamente. |
bakType |
Il tipo di questo file bak sarà export, FULL o DIFF, solo SQL Server |
copyOnly |
Deprecato: copy_only è deprecato. Usa invece differential_base |
differentialBase |
Indica se il backup può essere utilizzato come backup differenziale di sola copia |
exportLogStartTime |
Facoltativo. Il timestamp di inizio in cui il log delle transazioni verrà incluso nell'operazione di esportazione. Formato RFC 3339 (ad esempio, Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
exportLogEndTime |
Facoltativo. Il timestamp finale in cui il log delle transazioni verrà incluso nell'operazione di esportazione. Formato RFC 3339 (ad esempio, Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
SqlTdeExportOptions
| Rappresentazione JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Campi | |
|---|---|
certificatePath |
Obbligatorio. Percorso della chiave pubblica del certificato TDE nel formato gs://bucketName/fileName. L'istanza deve disporre dell'accesso in scrittura al bucket. Applicabile solo alle istanze SQL Server. |
privateKeyPath |
Obbligatorio. Il percorso della chiave privata del certificato TDE nel formato gs://bucketName/fileName. L'istanza deve disporre dell'accesso in scrittura alla posizione. Applicabile solo alle istanze SQL Server. |
privateKeyPassword |
Obbligatorio. Password che cripta la chiave privata. |
name |
Obbligatorio. Nome del certificato. Applicabile solo alle istanze SQL Server. |
BackupContext
| Rappresentazione JSON |
|---|
{ "backupId": string, "kind": string, "name": string } |
| Campi | |
|---|---|
backupId |
L'identificatore del backup. |
kind |
Questo valore è sempre |
name |
Il nome del backup. Formato: projects/{project}/backups/{backup} |
PreCheckMajorVersionUpgradeContext
| Rappresentazione JSON |
|---|
{ "targetDatabaseVersion": enum ( |
| Campi | |
|---|---|
targetDatabaseVersion |
Obbligatorio. La versione del database di destinazione di cui eseguire l'upgrade. |
preCheckResponse[] |
Solo output. Le risposte dell'operazione di precontrollo. |
kind |
Facoltativo. Questo valore è sempre |
PreCheckResponse
| Rappresentazione JSON |
|---|
{ "actionsRequired": [ string ], // Union field |
| Campi | |
|---|---|
actionsRequired[] |
Le azioni che l'utente deve intraprendere. Utilizza ripetuto per più azioni. |
Campo unione
|
|
message |
Il messaggio da mostrare all'utente. |
Campo unione
|
|
messageType |
Il tipo di messaggio, che può essere informativo, di avviso o di errore. |
AcquireSsrsLeaseContext
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione
|
|
setupLogin |
Il nome utente da utilizzare come accesso di configurazione per connettersi al server di database per la configurazione di SSRS. |
Campo unione
|
|
serviceLogin |
Il nome utente da utilizzare come accesso al servizio per connettersi al database dei report per la configurazione di SSRS. |
Campo unione
|
|
reportDatabase |
Il database dei report da utilizzare per la configurazione di SSRS. |
Campo unione
|
|
duration |
Durata del lease necessaria per la configurazione di SSRS. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
Durata
| Rappresentazione JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campi | |
|---|---|
seconds |
Secondi firmati dell'intervallo di tempo. Deve essere compreso tra -315.576.000.000 e +315.576.000.000 inclusi. Nota: questi limiti vengono calcolati in base a: 60 sec/min * 60 min/ora * 24 ore/giorno * 365,25 giorni/anno * 10.000 anni |
nanos |
Frazioni di secondo con segno con risoluzione di nanosecondi dell'intervallo di tempo. Le durate inferiori a un secondo sono rappresentate con un campo |
SqlSubOperationType
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione sub_operation_details. Dettagli dell'operazione secondaria corrispondenti al tipo di operazione. sub_operation_details può essere solo uno dei seguenti tipi: |
|
maintenanceType |
Il tipo di manutenzione da eseguire sull'istanza. |
Annotazioni dello strumento
Suggerimento distruttivo: ❌ | Suggerimento idempotente: ❌ | Suggerimento di sola lettura: ❌ | Suggerimento open world: ❌