Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Uso di backup e ripristino nativi
Dopo aver abilitato e configurato backup e ripristino nativi, puoi iniziare a utilizzarli. Innanzitutto, ti connetti al tuo database di Microsoft SQL Server, quindi richiami una procedura RDS memorizzata di Amazon per eseguire il lavoro. Per istruzioni sulla connessione al tuo database, consulta Connessione a un'istanza DB che esegue il motore di database Microsoft SQL Server.
Alcune delle stored procedure richiedono l'immissione di un Amazon Resource Name (ARN) al bucket e al file Amazon S3. Il formato per il tuo ARN è. arn:aws:s3:::
Amazon S3 non richiede un numero di account o una AWS regione in. ARNsbucket_name
/file_name.extension
Se fornisci anche una KMS chiave opzionale, il formato ARN della chiave èarn:aws:kms:
. Per ulteriori informazioni, consulta Amazon resource names (ARNs) e AWS service namespaces. È necessario utilizzare una KMS chiave di crittografia simmetrica per crittografare i backup. Amazon RDS non supporta le chiavi asimmetricheKMS. Per ulteriori informazioni, consulta Creazione di KMS chiavi di crittografia simmetriche nella Guida per gli sviluppatori.AWS Key Management Service region
:account-id
:key/key-id
Nota
Indipendentemente dall'utilizzo o meno di una KMS chiave, le attività di backup e ripristino native abilitano la crittografia Advanced Encryption Standard (AES) a 256 bit lato server per impostazione predefinita per i file caricati su S3.
Per istruzioni su come chiamare ciascuna stored procedure, consulta i seguenti argomenti:
Backup di un database
Per eseguire il backup del tuo database, utilizza la stored procedure rds_backup_database
.
Nota
Non puoi eseguire il backup di un database durante la finestra di manutenzione o mentre Amazon RDS sta scattando un'istantanea.
Utilizzo
exec msdb.dbo.rds_backup_database @source_db_name='
database_name
', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name
/file_name.extension
', [@kms_master_key_arn='arn:aws:kms:region
:account-id
:key/key-id
'], [@overwrite_s3_backup_file=0|1
], [@type='DIFFERENTIAL|FULL
'], [@number_of_files=n
];
I parametri seguenti sono obbligatori:
-
@source_db_name
– Nome del database di cui eseguire il backup. -
@s3_arn_to_backup_to
— L'ARNindicazione del bucket Amazon S3 da utilizzare per il backup, più il nome del file di backup.Il file può avere qualsiasi estensione, ma di norma è
.bak
.
I parametri seguenti sono facoltativi:
-
@kms_master_key_arn
— ARN Per la KMS chiave di crittografia simmetrica da utilizzare per crittografare l'elemento.-
Non è possibile utilizzare la chiave di crittografia predefinita. Se si utilizza la chiave predefinita, non verrà eseguito il backup del database.
-
Se non si specifica un identificatore di KMS chiave, il file di backup non verrà crittografato. Per ulteriori informazioni, consulta Encrypting Amazon RDS resources.
-
Quando si specifica una KMS chiave, viene utilizzata la crittografia lato client.
-
Amazon RDS non supporta le chiavi asimmetricheKMS. Per ulteriori informazioni, consulta Creazione di KMS chiavi di crittografia simmetriche nella Guida per gli sviluppatori.AWS Key Management Service
-
-
@overwrite_s3_backup_file
– Un valore che indica se sovrascrivere un file di backup esistente.-
0
– Il file esistente non viene sovrascritto. Questo è il valore predefinito.L'impostazione di
@overwrite_s3_backup_file
su 0 restituisce un errore se il file esiste già. -
1
– Il file esistente con il nome specificato viene sovrascritto, anche se non è un file di backup.
-
-
@type
– Tipo di backup.-
DIFFERENTIAL
– Viene eseguito un backup differenziale. -
FULL
– Viene eseguito un backup completo. Questo è il valore predefinito.
Il backup differenziale si basa sull'ultimo backup completo. Per completare i backup differenziali non puoi effettuare una snapshot tra l'ultimo backup completo e il backup differenziale. Per effettuare un backup differenziale ed esiste uno snapshot, effettua un altro backup completo prima di procedere con il backup differenziale.
È possibile cercare l'ultimo backup o istantanea completo utilizzando la seguente query di esempio: SQL
select top 1 database_name , backup_start_date , backup_finish_date from msdb.dbo.backupset where database_name='
mydatabase
' and type = 'D
' order by backup_start_date desc; -
-
@number_of_files
– Numero di file in cui verrà diviso il backup (blocchi). Il numero massimo è 10.-
Il backup a più file è supportato per backup completi e differenziali.
-
Se immetti un valore pari a 1 o ometti il parametro, viene creato un singolo file di backup.
Fornisci il prefisso in comune dei file, quindi il suffisso con un asterisco (
*
). L'asterisco può trovarsi in qualsiasi punto delfile_name
parte della ARN S3. L'asterisco viene sostituito da una serie di stringhe alfanumeriche nei file generati, a partire da1-of-
.number_of_files
Ad esempio, se i nomi di file in S3 ARN sono
backup*.bak
e tu li hai impostati@number_of_files=4
, i file di backup generati sonobackup1-of-4.bak
,backup2-of-4.bak
backup3-of-4.bak
, e.backup4-of-4.bak
-
Se uno dei nomi di file esiste già e
@overwrite_s3_backup_file
è 0, viene restituito un errore. -
I backup con più file possono avere un solo asterisco nella
file_name
parte del sistema S3. ARN -
I backup a file singolo possono avere un numero qualsiasi di asterischi nel
file_name
parte del sistema S3. ARN Gli asterischi non vengono rimossi dal nome file generato.
-
Esempi
Esempio di backup differenziale
exec msdb.dbo.rds_backup_database @source_db_name='
mydatabase
', @s3_arn_to_backup_to='arn:aws:s3:::mybucket
/backup1.bak
', @overwrite_s3_backup_file=1
, @type='DIFFERENTIAL
';
Esempio di backup completo con crittografia
exec msdb.dbo.rds_backup_database @source_db_name='
mydatabase
', @s3_arn_to_backup_to='arn:aws:s3:::mybucket
/backup1.bak
', @kms_master_key_arn='arn:aws:kms:us-east-1
:123456789012
:key/AKIAIOSFODNN7EXAMPLE
', @overwrite_s3_backup_file=1
, @type='FULL
';
Esempio di backup di più file
exec msdb.dbo.rds_backup_database @source_db_name='
mydatabase
', @s3_arn_to_backup_to='arn:aws:s3:::mybucket
/backup*.bak
', @number_of_files=4
;
Esempio di backup differenziale di più file
exec msdb.dbo.rds_backup_database @source_db_name='
mydatabase
', @s3_arn_to_backup_to='arn:aws:s3:::mybucket
/backup*.bak
', @type='DIFFERENTIAL
', @number_of_files=4
;
Esempio di backup di più file con crittografia
exec msdb.dbo.rds_backup_database @source_db_name='
mydatabase
', @s3_arn_to_backup_to='arn:aws:s3:::mybucket
/backup*.bak
', @kms_master_key_arn='arn:aws:kms:us-east-1
:123456789012
:key/AKIAIOSFODNN7EXAMPLE
', @number_of_files=4
;
Esempio di backup di più file con sovrascrittura S3
exec msdb.dbo.rds_backup_database @source_db_name='
mydatabase
', @s3_arn_to_backup_to='arn:aws:s3:::mybucket
/backup*.bak
', @overwrite_s3_backup_file=1, @number_of_files=4
;
Esempio di backup di file singolo con il parametro @number_of_files
Questo esempio genera un file di backup denominato backup*.bak
.
exec msdb.dbo.rds_backup_database @source_db_name='
mydatabase
', @s3_arn_to_backup_to='arn:aws:s3:::mybucket
/backup*.bak
', @number_of_files=1;
Ripristino di un database
Per eseguire il ripristino del tuo database devi chiamare la stored procedure rds_restore_database
. Amazon RDS crea uno snapshot iniziale del database dopo il completamento dell'attività di ripristino e l'apertura del database.
Utilizzo
exec msdb.dbo.rds_restore_database @restore_db_name='
database_name
', @s3_arn_to_restore_from='arn:aws:s3:::bucket_name
/file_name.extension
', @with_norecovery=0|1
, [@kms_master_key_arn='arn:aws:kms:region
:account-id
:key/key-id
'], [@type='DIFFERENTIAL|FULL
'];
I parametri seguenti sono obbligatori:
-
@restore_db_name
– Il nome del database da ripristinare. I nomi dei database sono univoci. Non è possibile ripristinare un database se esiste già un database con lo stesso nome. -
@s3_arn_to_restore_from
— L'ARNindicazione del prefisso Amazon S3 e dei nomi dei file di backup utilizzati per ripristinare il database.-
Per il backup di un file singolo, fornisci l'intero nome file.
-
Per eseguire un backup a più file, fornisci il prefisso in comune dei file, quindi il suffisso con un asterisco (
*
). -
Se
@s3_arn_to_restore_from
è vuoto, viene restituito il seguente messaggio di errore: IlARNprefisso S3 non può essere
vuoto.
-
Il seguente parametro è obbligatorio per i ripristini differenziali, ma facoltativo per i ripristini completi:
-
@with_norecovery
– La clausola di ripristino da utilizzare per l'operazione di ripristino.-
Impostalo su per
0
ripristinare con. RECOVERY In questo caso, il database è online dopo il ripristino. -
Impostalo
1
su ripristinare conNORECOVERY. In questo caso, il database rimane nello RESTORING stato dopo il completamento dell'attività di ripristino. Con questo approccio puoi eseguire ripristini differenziali successivi. -
Per i DIFFERENTIAL ripristini, specificare
0
o1
. -
Per i ripristini
FULL
, per impostazione predefinita questo valore è0
.
-
I parametri seguenti sono facoltativi:
-
@kms_master_key_arn
— Se è stato crittografato il file di backup, la KMS chiave da utilizzare per decrittografare il file.Quando si specifica una KMS chiave, viene utilizzata la crittografia lato client.
-
@type
– Tipo di ripristino. I tipi validi sonoDIFFERENTIAL
eFULL
. Il valore predefinito èFULL
.
Nota
Per i ripristini differenziali, il database deve essere nello RESTORING stato o deve già esistere un'operazione con cui eseguire il ripristino. NORECOVERY
Non è possibile ripristinare i backup differenziali successivi mentre il database è online.
Non è possibile inviare un'attività di ripristino per un database che ha già un'attività di ripristino in sospeso con. RECOVERY
I ripristini completi con NORECOVERY e i ripristini differenziali non sono supportati sulle istanze Multi-AZ.
Il ripristino di un database in un'istanza Multi-AZ con repliche di lettura è simile al ripristino di un database in un'istanza Multi-AZ. Non è necessario eseguire ulteriori azioni per ripristinare un database in una replica.
Esempi
Esempio di ripristino di un singolo file
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
Esempio di ripristino di più file
Per evitare errori durante il ripristino di più file, assicurati che tutti i file di backup abbiano lo stesso prefisso e che nessun altro file utilizzi tale prefisso.
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*';
Esempio di ripristino completo del database con RECOVERY
I tre esempi seguenti eseguono la stessa operazione, ripristino completo conRECOVERY.
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', [@type='
DIFFERENTIAL|FULL
'];
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='FULL', @with_norecovery=0;
Esempio di ripristino completo del database con crittografia
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
Esempio del ripristino completo del database con NORECOVERY
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='FULL', @with_norecovery=1;
Esempio di ripristino differenziale con NORECOVERY
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='DIFFERENTIAL', @with_norecovery=1;
Esempio di ripristino differenziale con RECOVERY
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='DIFFERENTIAL', @with_norecovery=0;
Ripristino di un log
Per ripristinare il log chiama la stored procedure rds_restore_log
.
Utilizzo
exec msdb.dbo.rds_restore_log @restore_db_name='
database_name
', @s3_arn_to_restore_from='arn:aws:s3:::bucket_name
/log_file_name.extension
', [@kms_master_key_arn='arn:aws:kms:region
:account-id
:key/key-id
'], [@with_norecovery=0|1
], [@stopat='datetime
'];
I parametri seguenti sono obbligatori:
-
@restore_db_name
– Il nome del database di cui vuoi ripristinare il log. -
@s3_arn_to_restore_from
— L'ARNindicazione del prefisso Amazon S3 e del nome del file di registro utilizzato per ripristinare il registro. Il file può avere qualsiasi estensione, ma di norma è.trn
.Se
@s3_arn_to_restore_from
è vuoto, viene restituito il seguente messaggio di errore: ilARNprefisso S3
non può essere vuoto.
I parametri seguenti sono facoltativi:
-
@kms_master_key_arn
— Se hai crittografato il registro, la KMS chiave da usare per decrittografare il registro. -
@with_norecovery
– La clausola di ripristino da utilizzare per l'operazione di ripristino. Il valore predefinito è1
.-
Impostalo su
0
per il ripristino con. RECOVERY In questo caso, il database è online dopo il ripristino. Non è possibile ripristinare i backup di log successivi mentre il database è online. -
Impostalo
1
su ripristinare conNORECOVERY. In questo caso, il database rimane nello RESTORING stato dopo il completamento dell'attività di ripristino. Con questo approccio puoi eseguire ripristini di log successivi.
-
-
@stopat
– Un valore che specifica che lo stato del database viene ripristinato alla data e all'ora specificate (nel formato datetime). Solo i record del log delle transazioni scritti prima della data e dell'ora specificate vengono applicati al database.Se questo parametro non è specificato (lo èNULL), viene ripristinato il registro completo.
Nota
Per i ripristini dei log, il database deve essere in stato di ripristino o deve già esistere un'attività con cui eseguire il ripristino. NORECOVERY
Non è possibile ripristinare i backup di log mentre il database è online.
Non è possibile inviare un'attività di ripristino del registro su un database che ha già un'attività di ripristino in sospeso con. RECOVERY
I ripristini di log non sono supportati nelle istanze Multi-AZ.
Esempi
Esempio di ripristino di log
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
Esempio di ripristino di log con crittografia
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
Esempio di ripristino del registro con NORECOVERY
I due esempi seguenti eseguono la stessa operazione, log restore withNORECOVERY.
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @with_norecovery=1;
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
Esempio di log restore con RECOVERY
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @with_norecovery=0;
Esempio di log restore con STOPAT clausola
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @with_norecovery=0, @stopat='2019-12-01 03:57:09';
Completamento di un ripristino del database
Se l'ultima operazione di ripristino sul database è stata eseguita utilizzando@with_norecovery=1
, il database è ora nello RESTORING stato. Apri il database per il normale funzionamento utilizzando la stored procedure rds_finish_restore
.
Utilizzo
exec msdb.dbo.rds_finish_restore @db_name='
database_name
';
Nota
Per utilizzare questo approccio, il database deve trovarsi RESTORING nello stato in cui si trova senza alcuna operazione di ripristino in sospeso.
La procedura rds_finish_restore
non è supportata nelle istanze Multi-AZ.
Per completare il ripristino del database, utilizza l'accesso master. Oppure usa il login dell'utente con cui è stato ripristinato il database o con NORECOVERY cui è stato effettuato il login per ultimo.
Utilizzo di database parzialmente ripristinati
Rimozione di un database parzialmente ripristinato
Per eliminare un database parzialmente ripristinato (rimasto nello RESTORING stato), utilizzate la rds_drop_database
stored procedure.
exec msdb.dbo.rds_drop_database @db_name='
database_name
';
Nota
Non è possibile inviare una richiesta di DROP database per un database che ha già un'attività di ripristino o di completamento del ripristino in sospeso.
Per rimuovere il database, utilizza l'accesso master. Oppure usa il login dell'utente che ha ripristinato il database o con NORECOVERY cui è stato effettuato il login per ultimo.
Comportamento di ripristino e point-in-time ripristino delle istantanee per database parzialmente ripristinati
I database parzialmente ripristinati nell'istanza di origine (lasciati nello RESTORING stato) vengono eliminati dall'istanza di destinazione durante il ripristino e point-in-time il ripristino delle istantanee.
Annullamento di un'attività
Per annullare un'attività di backup o ripristino, chiama la stored procedure rds_cancel_task
.
Nota
Non è possibile annullare un'RESTOREattività FINISH _.
Utilizzo
exec msdb.dbo.rds_cancel_task @task_id=
ID_number
;
Il parametro seguente è obbligatorio:
-
@task_id
– L'ID dell'attività da annullare. L'ID attività si ottiene chiamandords_task_status
.
Monitoraggio dello stato delle attività
Per monitorare lo stato delle tue attività di backup e ripristino, chiama la stored procedure rds_task_status
. Se non fornisci alcun parametro, la stored procedure restituisce lo stato di tutte le attività. Lo stato delle attività viene aggiornato all'incirca ogni due minuti. La cronologia delle operazioni viene conservata per 36 giorni.
Utilizzo
exec msdb.dbo.rds_task_status [@db_name='
database_name
'], [@task_id=ID_number
];
I parametri seguenti sono facoltativi:
-
@db_name
– Il nome del database per il quale visualizzare lo stato dell'attività. -
@task_id
– L'ID dell'attività per la quale visualizzare lo stato.
Esempi
Esempio di elenco dello stato per un'attività specifica
exec msdb.dbo.rds_task_status @task_id=5;
Esempio di elenco dello stato per un'attività e un database specifici
exec msdb.dbo.rds_task_status @db_name='my_database', @task_id=5;
Esempio di elenco di tutte le attività e relativi stati per un database specifico
exec msdb.dbo.rds_task_status @db_name='my_database';
Esempio di elenco di tutte le attività e relativi stati per l'istanza corrente
exec msdb.dbo.rds_task_status;
Risposta
La stored procedure rds_task_status
restituisce le seguenti colonne.
Colonna | Descrizione |
---|---|
|
L'ID dell'attività. |
|
Tipo di attività in base ai parametri di input, come segue:
Amazon RDS crea uno snapshot iniziale del database dopo l'apertura al termine delle seguenti attività di ripristino:
|
|
Il nome del database al quale l'attività è associata. |
|
L'avanzamento dell'attività espresso in percentuale. |
|
La quantità di tempo dedicato all'attività, in minuti. |
|
Lo stato dell'attività. I possibili stati sono i seguenti:
|
|
Ulteriori informazioni sull'attività. Se si verifica un errore durante il backup o il ripristino di un database, questa colonna contiene informazioni sull'errore. Per l'elenco dei possibili errori e le strategie di mitigazione, consulta Risoluzione dei problemi. |
|
La data e l'ora dell'ultimo aggiornamento dello stato dell'attività. Lo stato viene aggiornato dopo ogni 5% di avanzamento. |
|
La data e l'ora di creazione dell'attività. |
S3_object_arn |
ARNIndica il prefisso Amazon S3 e il nome del file di cui viene eseguito il backup o il ripristino. |
|
Il valore del parametro |
KMS_master_key_arn |
Il ARN per la KMS chiave utilizzata per la crittografia (per il backup) e la decrittografia (per il ripristino). |
filepath |
Non applicabile ad attività di backup e ripristino nativi. |
overwrite_file |
Non applicabile ad attività di backup e ripristino nativi. |