Cloud SQL consente di creare, elencare ed eliminare database SQL Server su un'istanza. La gestione di singoli database ti aiuta ad archiviare e organizzare i dati delle applicazioni, isolando al contempo i workload tra i servizi.
Un'istanza appena creata ha un database sqlserver.
Per informazioni sull'impostazione di un valore predefinito per il tipo di regole di confronto utilizzate per i database in un'istanza, consulta Creazione di istanze.
Prima di iniziare
Prima di completare le attività in questa pagina, devi avere:
- Creare un'istanza Cloud SQL. Per saperne di più, consulta Creazione di istanze.
Se prevedi di utilizzare il client sqlcmd per creare o gestire i tuoi database, devi disporre di:
- Configurato l'accesso e connesso all'istanza con un client
sqlcmd.
Crea un database nell'istanza Cloud SQL
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Seleziona Database dal menu di navigazione SQL.
- Fai clic su Crea database.
- Nella finestra di dialogo Nuovo database, specifica il nome del database.
- Fai clic su Crea.
gcloud
Per informazioni di riferimento, consulta gcloud
sql databases create.
Per informazioni sulle regole di confronto in SQL Server, consulta Supporto di regole di confronto e Unicode nella documentazione di SQL Server.
gcloud sql databases create DATABASE_NAME \ --instance=INSTANCE_NAME \ [--charset=CHARSET] \ [--collation=COLLATION]
Terraform
Per creare un database, utilizza una risorsa Terraform.
Applica le modifiche
Per applicare la configurazione Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo principale).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade:terraform init -upgrade
Applica le modifiche
-
Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Elimina le modifiche
Per eliminare le modifiche:
- Per disattivare la protezione da eliminazione, imposta l'argomento
deletion_protectionsufalsenel file di configurazione Terraform.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform destroy
REST v1
La seguente richiesta utilizza il metodo databases:insert per creare un nuovo database nell'istanza specificata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- database-name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases
Corpo JSON della richiesta:
{
"project": "project-id",
"instance": "instance-id",
"name": "database-name"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
La seguente richiesta utilizza il metodo databases:insert per creare un nuovo database nell'istanza specificata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- database-name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases
Corpo JSON della richiesta:
{
"project": "project-id",
"instance": "instance-id",
"name": "database-name"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Elenca i tuoi database
Per elencare tutti i database di un'istanza:
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Database nel menu a sinistra. La pagina Database elenca i database insieme al tipo di confronto, al set di caratteri e al tipo di database.
gcloud
Per informazioni di riferimento, consulta gcloud
sql databases list.
gcloud sql databases list \ --instance=INSTANCE_NAME
REST v1
La seguente richiesta utilizza il metodo databases:list per elencare i database di un'istanza.
Quando elenchi i database utilizzando l'API, vengono visualizzati database di modelli aggiuntivi e un database di sistema che non vengono visualizzati dalla console. Non puoi eliminare o gestire il database di sistema.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
La seguente richiesta utilizza il metodo databases:list per elencare i database di un'istanza.
Quando elenchi i database utilizzando l'API, vengono visualizzati database di modelli aggiuntivi e un database di sistema che non vengono visualizzati dalla console. Non puoi eliminare o gestire il database di sistema.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Cambia il proprietario di un database
Se vuoi eliminare l'accesso utente associato a un proprietario del database non più attivo, devi prima assegnare un nuovo proprietario del database.
Per aggiungere un nuovo proprietario del database, completa i seguenti passaggi:
gcloud
- Connettiti al tuo database e crea due account demo:
create login TEST_LOGIN with password='TEST_PASSWORD' create login REPORT_USER with password='REPORT_USER_PASSWORD' GRANT CREATE ANY DATABASE TO TEST_LOGIN AS [CustomerDbRootRole]
Effettua le seguenti sostituzioni:
- TEST_LOGIN: il nome dell'account di test, ad esempio
test-login. - TEST_PASSWORD: la password dell'account di test.
- REPORT_USER: il nome di un secondo account utente, ad esempio
report-user. Questo account diventa il nuovo proprietario del database. - REPORT_USER_PASSWORD: la password del secondo account utente.
- TEST_LOGIN: il nome dell'account di test, ad esempio
- Connettiti al database utilizzando l'account di test appena creato. Poi, crea un database di test utilizzando il seguente comando:
CREATE DATABASE TEST_DB
Effettua le seguenti sostituzioni:
- TEST_DB: il nome del database di test che vuoi creare, ad esempio
test-database - TEST_LOGIN: il nome dell'account di test, ad esempio
test-login.
Il proprietario del database viene impostato automaticamente sull'account di test.
- TEST_DB: il nome del database di test che vuoi creare, ad esempio
- Connettiti al database utilizzando l'accesso SQL Server. Quindi, esegui questo comando per provare a eliminare l'accesso
TEST_LOGIN:drop login TEST_LOGIN
Sostituisci TEST_LOGIN con il nome dell'account di test, ad esempio
test-login.L'operazione non va a buon fine e viene restituito il seguente errore:
- Connettiti al database
TEST_DBcome accountREPORT_USERe concedi le autorizzazioni dell'account in modo che corrispondano al proprietario esistente.GRANT IMPERSONATE on LOGIN::REPORT_USER to TEST_LOGIN
- Connettiti al database con l'account di test. Quindi, esegui questo comando per autorizzare il secondo account come proprietario del database:
ALTER AUTHORIZATION ON DATABASE::TEST_DB TO REPORT_USER
- Connettiti al database come
REPORT_USERe rimuovi tutte le autorizzazioni concesse.REVOKE IMPERSONATE on LOGIN::REPORT_USER to TEST_LOGIN
- Connettiti al database con l'account SQL Server. Poi, esegui questo comando per eliminare l'accesso
TEST_LOGIN: Al termine, viene restituito il seguente messaggio:DROP LOGIN TEST_LOGIN
DROP LOGIN for TEST_LOGIN by sqlserver(sqlserver) is successful.
Elimina un database
Per eliminare un database nell'istanza Cloud SQL:
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Database nel menu a sinistra.
- Nell'elenco dei database, trova il database che vuoi eliminare e fai clic sull'icona del cestino.
- Nella finestra di dialogo Elimina database, inserisci il nome del database e fai clic su Elimina.
gcloud
Per informazioni di riferimento, consulta gcloud
sql databases delete.
gcloud sql databases delete DATABASE_NAME \ --instance=INSTANCE_NAME
REST v1
La seguente richiesta utilizza il metodo databases:delete per eliminare il database specificato.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- database-name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
La seguente richiesta utilizza il metodo databases:delete per eliminare il database specificato.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- database-name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Risoluzione dei problemi
Se un database ha la funzionalità Change Data Capture (CDC) abilitata e provi a eliminarlo dall'istanza, l'operazione non va a buon fine. Potresti anche ricevere un messaggio di errore sconosciuto. In questo caso, completa i seguenti passaggi:
- Utilizza la stored procedure
msdb.dbo.gcloudsql_cdc_disable_dbper disabilitare CDC per il database. - Controlla se è configurato un linked server per il database. Se esiste, eliminalo.
- Esegui di nuovo l'operazione di eliminazione.
Per saperne di più, consulta Elimina un database CDC.
Passaggi successivi
- Gestisci gli utenti della tua istanza.
- Importa i dati nell'istanza.
- Create Tables (Database Engine).