Referenz für benutzerdefinierte Funktionen von Amazon RDS für Db2
Die folgenden benutzerdefinierten Funktionen sind für Amazon-RDS-DB-Instances verfügbar, auf denen die Db2-Engine ausgeführt wird.
rdsadmin.get_task_status
Gibt den Status einer Aufgabe zurück.
Syntax
db2 "select task_id, task_type, database_name, lifecycle, varchar(bson_to_json(task_input_params), 500) as task_params, cast(task_output as varchar(500)) as task_output from table(rdsadmin.get_task_status(task_id,'database_name','task_type'))"
Parameter
Die folgenden Parameter sind optional. Wenn Sie keine Parameter angeben, gibt die benutzerdefinierte Funktion den Status aller Aufgaben für alle Datenbanken zurück. Der Aufgabenverlauf wird in Amazon RDS 35 Tage lang gespeichert.
task_id-
Die ID der Aufgabe, die derzeit ausgeführt wird. Diese ID wird zurückgegeben, wenn Sie eine Aufgabe ausführen. Standard:
0. database_name-
Der Name der Datenbank, für die die Aufgabe derzeit ausgeführt wird.
task_type-
Der Typ der abzufragenden Aufgabe. Zulässige Werte:
ADD_GROUPS,ADD_USER,ALTER_BUFFERPOOL,ALTER_TABLESPACE,CHANGE_PASSWORD,COMPLETE_ROLLFORWARD,CREATE_BUFFERPOOL,CREATE_DATABASE,CREATE_ROLE,CREATE_TABLESPACE,DROP_BUFFERPOOL,DROP_DATABASE,DROP_TABLESPACE,LIST_USERS,REMOVE_GROUPS,REMOVE_USER,RESTORE_DB,ROLLFORWARD_DB_LOG,ROLLFORWARD_STATUS,UPDATE_DB_PARAM.
Nutzungshinweise
Sie können die benutzerdefinierte Funktion rdsadmin.get_task_status verwenden, um den Status der folgenden Aufgaben für Amazon RDS für Db2 zu überprüfen. Diese Liste ist nicht umfassend.
-
Erstellen, Ändern oder Verwerfen eines Pufferpools
-
Erstellen, Ändern oder Verwerfen eines Tablespace
-
Erstellen oder Verwerfen einer Datenbank
-
Wiederherstellen eines Datenbank-Backups aus Amazon S3
-
Ausführen eines Rollforward von Datenbankprotokollen aus Amazon S3
Beispiele
Im folgenden Beispiel werden die Spalten angezeigt, die beim Aufrufen von rdsadmin.get_task_status zurückgegeben werden.
db2 "describe select * from table(rdsadmin.get_task_status())"
Im folgenden Beispiel wird der Status aller Aufgaben angegeben.
db2 "select task_id, task_type, database_name, lifecycle, varchar(bson_to_json(task_input_params), 500) as task_params, cast(task_output as varchar(500)) as task_output from table(rdsadmin.get_task_status(null,null,null))"
Im folgenden Beispiel wird der Status einer bestimmten Aufgabe aufgeführt.
db2 "select task_id, task_type, database_name, varchar(bson_to_json(task_input_params), 500) as task_params from table(rdsadmin.get_task_status(1,null,null))"
Im folgenden Beispiel wird der Status einer bestimmten Aufgabe und Datenbank aufgeführt.
db2 "select task_id, task_type, database_name, varchar(bson_to_json(task_input_params), 500) as task_params from table(rdsadmin.get_task_status(2,'SAMPLE',null))"
Im folgenden Beispiel wird der Status aller Aufgaben von ADD_GROUPS angegeben.
db2 "select task_id, task_type, database_name, varchar(bson_to_json(task_input_params), 500) as task_params from table(rdsadmin.get_task_status(null,null,'add_groups'))"
Im folgenden Beispiel wird der Status aller Aufgaben für eine bestimmte Datenbank aufgeführt.
db2 "select task_id, task_type, database_name, varchar(bson_to_json(task_input_params), 500) as task_params from table(rdsadmin.get_task_status(null,'testdb', null))"
Im folgenden Beispiel werden die JSON-Werte als Spalten ausgegeben.
db2 "select varchar(r.task_type,25) as task_type, varchar(r.lifecycle,10) as lifecycle, r.created_at, u.* from table(rdsadmin.get_task_status(null,null,'restore_db')) as r, json_table(r.task_input_params, 'strict $' columns(s3_prefix varchar(500) null on empty, s3_bucket_name varchar(500) null on empty) error on error ) as U"
Antwort
Die benutzerdefinierte Funktion rdsadmin.get_task_status gibt die folgenden Spalten zurück:
TASK_ID-
Die ID der Aufgabe.
TASK_TYPE-
Hängt von den Eingabeparametern ab.
-
ADD_GROUPS: Fügt Gruppen hinzu. -
ADD_USER: Fügt einen Benutzer hinzu. -
ALTER_BUFFERPOOL: Ändert einen Pufferpool. -
ALTER_TABLESPACE: Ändert ein Tablespace. -
CHANGE_PASSWORD: Ändert das Passwort eines Benutzers. -
COMPLETE_ROLLFORWARD: Schließt die Aufgaberdsadmin.rollforward_databaseab und aktiviert eine Datenbank. -
CREATE_BUFFERPOOL: Erstellt einen Pufferpool. -
CREATE_DATABASE: Erstellt eine Datenbank. -
CREATE_ROLE: Erstellt eine Db2-Rolle für einen Benutzer. -
CREATE_TABLESPACE: Erstellt ein Tablespace. -
DROP_BUFFERPOOL: Verwirft einen Pufferpool. -
DROP_DATABASE: Verwirft eine Datenbank. -
DROP_TABLESPACE: Verwirft ein Tablespace. -
LIST_USERS: Listet alle Benutzer auf. -
REMOVE_GROUPS: Entfernt Gruppen. -
REMOVE_USER: Entfernt einen Benutzer. -
RESTORE_DB: Stellt eine vollständige Datenbank wieder her. -
ROLLFORWARD_DB_LOG: Führt die Aufgaberdsadmin.rollforward_databasefür Datenbankprotokolle aus. -
ROLLFORWARD_STATUS: Gibt den Status der Aufgaberdsadmin.rollforward_databasezurück. -
UPDATE_DB_PARAM: Aktualisiert die Datenparameter.
-
DATABASE_NAME-
Der Name der Datenbank, der die Aufgabe zugeordnet ist.
COMPLETED_WORK_BYTES-
Die Anzahl der von der Aufgabe wiederhergestellten Bytes.
DURATION_MINS-
Die Zeit, die zum Abschließen der Aufgabe benötigt wird.
LIFECYCLE-
Der Status der Aufgabe. Mögliche Status:
-
CREATED: Nachdem eine Aufgabe an Amazon RDS übermittelt wurde, legt Amazon RDS den Status aufCREATEDfest. -
IN_PROGRESS: Nach dem Starten einer Aufgabe legt Amazon RDS den Status aufIN_PROGRESSfest. Es kann bis zu 5 Minuten dauern, bis sich der Status vonCREATEDzuIN_PROGRESSändert. -
SUCCESS: Wenn eine Aufgabe abgeschlossen wurde, legt Amazon RDS den Status aufSUCCESSfest. -
ERROR: Wenn eine Wiederherstellungsaufgabe fehlschlägt, legt Amazon RDS den Status aufERRORfest. Weitere Informationen zum Fehler finden Sie unterTASK_OUPUT.
-
CREATED_BY-
Der Parameter
authid, der den Befehl erstellt hat. CREATED_AT-
Der Zeitpunkt (Datum und Uhrzeit), zu dem die Aufgabe angelegt wurde.
LAST_UPDATED_AT-
Der Zeitpunkt (Datum und Uhrzeit), zu dem die Aufgabe zuletzt aktualisiert wurde.
TASK_INPUT_PARAMS-
Die Parameter unterscheiden sich je nach Aufgabentyp. Alle Eingabeparameter werden als JSON-Objekt dargestellt. Die JSON-Schlüssel für die Aufgabe
RESTORE_DBlauten beispielsweise wie folgt:-
DBNAME -
RESTORE_TIMESTAMP -
S3_BUCKET_NAME -
S3_PREFIX
-
TASK_OUTPUT-
Zusätzliche Informationen über die Aufgabe. Wenn bei der systemeigenen Wiederherstellung ein Fehler auftritt, enthält diese Spalte Informationen zu dem Fehler.
Antwortbeispiele
Das folgende Antwortbeispiel zeigt, dass die Datenbank TESTJP erfolgreich erstellt wurde. Weitere Informationen finden Sie in der gespeicherten Prozedur rdsadmin.create_database.
`1 SUCCESS CREATE_DATABASE RDSDB 2023-10-24-18.32.44.962689 2023-10-24-18.34.50.038523 1 TESTJP { "CODESET" : "IBM-437", "TERRITORY" : "JP", "COLLATION" : "SYSTEM", "AUTOCONFIGURE_CMD" : "", "PAGESIZE" : 4096 } 2023-10-24-18.33.30.079048 Task execution has started. 2023-10-24-18.34.50.038523 Task execution has completed successfully`.
Im folgenden Antwortbeispiel wird erläutert, warum das Verwerfen einer Datenbank fehlgeschlagen ist. Weitere Informationen finden Sie in der gespeicherten Prozedur rdsadmin.drop_database.
1 ERROR DROP_DATABASE RDSDB 2023-10-10-16.33.03.744122 2023-10-10-16.33.30.143797 - 2023-10-10-16.33.30.098857 Task execution has started. 2023-10-10-16.33.30.143797 Caught exception during executing task id 1, Aborting task. Reason Dropping database created via rds CreateDBInstance api is not allowed. Only database created using rdsadmin.create_database can be dropped
Das folgende Antwortbeispiel zeigt die erfolgreiche Wiederherstellung einer Datenbank. Weitere Informationen finden Sie in der gespeicherten Prozedur rdsadmin.restore_database.
1 RESTORE_DB SAMPLE SUCCESS { "S3_BUCKET_NAME" : "amzn-s3-demo-bucket", "S3_PREFIX" : "SAMPLE.0.rdsdb3.DBPART000.20230413183211.001", "RESTORE_TIMESTAMP" : "20230413183211", "BACKUP_TYPE" : "offline" } 2023-11-06-18.31.03.115795 Task execution has started. 2023-11-06-18.31.04.300231 Preparing to download 2023-11-06-18.31.08.368827 Download complete. Starting Restore 2023-11-06-18.33.13.891356 Task Completed Successfully
rdsadmin.list_databases
Gibt eine Liste aller Datenbanken zurück, die auf einer DB-Instance von RDS für Db2 ausgeführt werden.
Syntax
db2 "select * from table(rdsadmin.list_databases())"
Nutzungshinweise
Diese benutzerdefinierte Funktion gibt nicht an, ob sich die Datenbanken in einem aktivierten oder deaktivierten Zustand befinden.
Wenn Ihre Datenbanken nicht in der Liste angezeigt werden, rufen Sie die benutzerdefinierte Funktion rdsadmin.get_task_status auf und suchen Sie nach Fehlermeldungen.
Antwort
Die benutzerdefinierte Funktion rdsadmin.list_databases gibt die folgenden Spalten zurück:
DATABASE_NAME-
Der Name einer Datenbank.
CREATE_TIME-
Der Zeitpunkt (Datum und Uhrzeit), zu dem die Datenbank erstellt wurde.
Antwortbeispiele
Das folgende Antwortbeispiel zeigt eine Liste der Datenbanken und die Zeitpunkte, zu denen sie erstellt wurden. Die Datenbank rdsadmin wird von Amazon RDS verwaltet und stets in der Ausgabe angezeigt.
DATABASE_NAME CREATE_TIME --------------- -------------------------- rdsadmin 2024-10-22-03.37.48.535671 TEST 2024-10-22-03.39.36.818679 TEST1 2024-10-22-03.57.15.218009 TEST2 2024-10-22-03.59.28.029556