Referenz für benutzerdefinierte Funktionen von Amazon RDS für Db2 - Amazon Relational Database Service

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 Aufgabe rdsadmin.rollforward_database ab 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 Aufgabe rdsadmin.rollforward_database für Datenbankprotokolle aus.

  • ROLLFORWARD_STATUS : Gibt den Status der Aufgabe rdsadmin.rollforward_database zurü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 auf CREATED fest.

  • IN_PROGRESS: Nach dem Starten einer Aufgabe legt Amazon RDS den Status auf IN_PROGRESS fest. Es kann bis zu 5 Minuten dauern, bis sich der Status von CREATED zu IN_PROGRESS ändert.

  • SUCCESS: Wenn eine Aufgabe abgeschlossen wurde, legt Amazon RDS den Status auf SUCCESS fest.

  • ERROR: Wenn eine Wiederherstellungsaufgabe fehlschlägt, legt Amazon RDS den Status auf ERROR fest. Weitere Informationen zum Fehler finden Sie unter TASK_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_DB lauten 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