Pemecahan masalah untuk Amazon RDS untuk Db2 - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemecahan masalah untuk Amazon RDS untuk Db2

Konten berikut dapat membantu Anda memecahkan masalah yang Anda temui dengan RDS untuk Db2.

Untuk informasi selengkapnya tentang masalah pemecahan masalah Amazon RDS umum, lihat. Pemecahan Masalah untuk Amazon RDS

Kesalahan koneksi database

Pesan galat berikut menunjukkan bahwa database gagal terhubung karena server tidak memiliki memori yang cukup.

SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.

Tingkatkan memori untuk instans DB Anda dan kemudian coba sambungkan ke database Anda lagi. Untuk informasi tentang penggunaan memori dan rekomendasi untuk database, lihatBeberapa database di Amazon RDS untuk instans Db2 DB. Untuk informasi tentang cara memperbarui memori untuk database RDS untuk Db2, lihat. rdsadmin.update_db_param

Kesalahan file I/O

Anda mungkin mengalami kesalahan I/O file karena alasan yang berbeda, seperti ketika Anda menggunakan LOAD perintah atau memanggil prosedur yang rdsadmin.restore_database disimpan.

Dalam contoh ini, Anda menjalankan LOAD perintah berikut.

db2 "call sysproc.admin_cmd('load from "DB2REMOTE://s3test//public/datapump/t6.del" of del lobs from "DB2REMOTE://s3test/public/datapump/" modified by lobsinfile MESSAGES ON SERVER insert INTO RDSDB.t6 nonrecoverable ')"

LOADPerintah mengembalikan pesan berikut:

Result set 1 -------------- ROWS_READ ROWS_SKIPPED ROWS_LOADED ROWS_REJECTED ROWS_DELETED ROWS_COMMITTED ROWS_PARTITIONED NUM_AGENTINFO_ENTRIES MSG_RETRIEVAL MSG_REMOVAL -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - - - - - - - SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSG CALL SYSPROC.ADMIN_REMOVE_MSGS('1594987316_285548770') 1 record(s) selected. Return Status = 0 SQL20397W Routine "SYSPROC.ADMIN_CMD" execution has completed, but at least one error, "SQL1652", was encountered during the execution. More information is available. SQLSTATE=01H52

Untuk melihat pesan kesalahan, Anda menjalankan perintah SQL seperti yang disarankan dalam respons sebelumnya. SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSGmengembalikan pesan berikut:

SQLCODE MSG --------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SQL2025N An I/O error occurred. Error code “438”. Media on which this error occurred: “DB2REMOTE://s3test//public/datapump/t6.del” SQL3500W The utility is beginning the LOAD phase at time “07/05/2024 21:21:48.082954” SQL1652N File I/O error occurred

Log diagnostik Db2 berisi file log yang mirip dengan yang berikut:

2024-07-05-21.20.09.440609+000 I1191321E864 LEVEL: Error PID : 2710 TID : 139619509200640 PROC : db2sysc 0 INSTANCE: rdsdb NODE : 000 DB : NTP APPHDL : 0-12180 APPID: xxx.xx.x.xxx.xxxxx.xxxxxxxxxxxx UOWID : 5 ACTID: 1 AUTHID : ADMIN HOSTNAME: ip-xx-xx-x-xx EDUID : 147 EDUNAME: db2lmr 0 FUNCTION: DB2 UDB, oper system services, sqloS3Client_GetObjectInfo, probe:219 MESSAGE : ZRC=0x870F01B6=-2029059658=SQLO_FAILED "An unexpected error is encountered" DATA #1 : String, 29 bytes S3:HeadObject request failed. DATA #2 : signed integer, 4 bytes 99 DATA #3 : String, 0 bytes Object not dumped: Address: 0x00007EFC08A9AE38 Size: 0 Reason: Zero-length data DATA #4 : String, 33 bytes curlCode: 28, Timeout was reached

Kesalahan I/O file ini dapat dihasilkan dari sejumlah skenario yang berbeda. Misalnya, VPC yang terkait dengan grup keamanan yang digunakan untuk membuat instans RDS untuk Db2 DB mungkin tidak memiliki titik akhir gateway Amazon S3. Titik akhir ini penting untuk mengaktifkan RDS untuk Db2 mengakses Amazon S3. Jika instans RDS untuk Db2 DB Anda ada di subnet pribadi, maka titik akhir gateway Amazon S3 diperlukan. Anda dapat menentukan apakah instans DB Anda menggunakan subnet pribadi atau publik dengan mengonfigurasi grup subnet Amazon RDS. Untuk informasi selengkapnya, lihat Menggunakan grup subnet DB.

Langkah 1: Buat titik akhir gateway VPC untuk Amazon S3

Agar instans RDS untuk Db2 DB berinteraksi dengan Amazon S3, buat VPC dan kemudian titik akhir gateway Amazon S3 untuk subnet pribadi yang akan digunakan.

Untuk membuat titik akhir gateway VPC untuk S3
  1. Buat sebuah VPC. Untuk informasi selengkapnya, lihat Membuat VPC di Panduan Pengguna Amazon Virtual Private Cloud.

  2. Buat titik akhir gateway Amazon S3 untuk subnet pribadi yang akan digunakan. Untuk informasi selengkapnya, lihat titik akhir Gateway di AWS PrivateLink Panduan.

Langkah 2: Konfirmasikan bahwa titik akhir gateway VPC Anda untuk Amazon S3 ada

Konfirmasikan bahwa Anda berhasil membuat titik akhir gateway Amazon S3 dengan menggunakan atau. AWS Management Console AWS CLI

Untuk mengonfirmasi titik akhir gateway Amazon S3
  1. Masuk ke AWS Management Console dan buka Konsol VPC Amazon di. https://console.aws.amazon.com/vpc

  2. Di sudut kanan atas konsol, pilih VPC Wilayah AWS Anda.

  3. Pilih VPC yang Anda buat.

  4. Pada tab Peta sumber daya, di bawah Koneksi jaringan, konfirmasikan bahwa titik akhir gateway Amazon S3 terdaftar.

Untuk mengonfirmasi titik akhir gateway Amazon S3, jalankan describe-vpc-endpointsperintah. Dalam contoh berikut, ganti vpc_id dengan ID VPC, region dengan nama Anda Wilayah AWS, dan profile dengan nama profil Anda.

Untuk Linux, macOS, atau Unix:

aws ec2 describe-vpc-endpoints \ --filters "Name=vpc-id,Values=$vpc_id" \ "Name=service-name,\ Values=com.amazonaws.${region}.s3" \ --region $region --profile=$profile \ --query "VpcEndpoints[*].VpcEndpointId" --output text

Untuk Windows:

aws ec2 describe-vpc-endpoints ^ --filters "Name=vpc-id,Values=$vpc_id" ^ "Name=service-name,^ Values=com.amazonaws.${region}.s3" ^ --region $region --profile=$profile ^ --query "VpcEndpoints[*].VpcEndpointId" --output text

Perintah ini menghasilkan output yang mirip dengan contoh berikut jika titik akhir gateway Amazon S3 ada.

[ "vpce-0ea810434ff0b97e4" ]

Perintah ini menghasilkan output yang mirip dengan contoh berikut jika titik akhir gateway Amazon S3 tidak ada.

[]

Jika Anda tidak melihat titik akhir gateway Amazon S3 terdaftar, maka. Langkah 1: Buat titik akhir gateway VPC untuk Amazon S3

Memecahkan masalah kesalahan dari prosedur yang disimpan

Topik ini menjelaskan berbagai kesalahan yang dikembalikan saat memanggil prosedur tersimpan dan cara mengatasinya.

kesalahan rdsadmin.activate_database

Kesalahan berikut dapat terjadi ketika Anda memanggil prosedur yang rdsadmin.activate_database disimpan.

Kesalahan Pesan kesalahan

Failed to allocate shared memory

SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.

Gagal mengalokasikan memori bersama

Pesan galat berikut menunjukkan bahwa prosedur tersimpan gagal mengaktifkan database karena instans DB tidak memiliki memori yang cukup.

SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.

Tingkatkan memori untuk instans DB Anda dan kemudian panggil prosedur yang rdsadmin.activate_database disimpan lagi. Untuk informasi tentang penggunaan memori dan rekomendasi untuk database, lihatBeberapa database di Amazon RDS untuk instans Db2 DB.

kesalahan rdsadmin.alter_tablespace

Kesalahan berikut dapat terjadi ketika Anda memanggil prosedur yang rdsadmin.alter_tablespace disimpan.

Kesalahan Pesan kesalahan

Statement not valid

DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned:

SQL1763N Invalid ALTER TABLESPACE statement for table space "TBSP_TEST" due to reason "12"

tablespace_prefetch_size value not valid

Invalid tablespace_prefetch_size. Set value to AUTOMATIC or to a non-zero positive numerical value.

tablespace_prefetch_size numerical value not valid

Invalid tablespace_prefetch_size. The number of pages can't be greater than 32767.

Parameter can't be used with tablespace_prefetch_size

You can't use tablespace_prefetch_size with {parameter}.

Tablespace change failed

The change to tablespace {tablespace_name} failed because you can only alter LARGE or REGULAR tablespaces.

Pernyataan tidak valid

Pesan kesalahan berikut menunjukkan bahwa prosedur yang disimpan menggabungkan parameter opsional yang saling eksklusif dengan parameter opsional lainnya. Parameter opsional reduce_max, reduce_stopreduce_value,lower_high_water,lower_high_water_stop,, dan switch_online untuk prosedur yang rdsadmin.alter_tablespace disimpan saling eksklusif. Anda tidak dapat menggabungkannya dengan parameter opsional lainnya, sepertibuffer_pool_name, dalam prosedur rdsadmin.alter_tablespace tersimpan. Jika Anda menggabungkannya, maka ketika Anda memanggil fungsi yang rdsadmin.get_task_status ditentukan pengguna, Db2 akan mengembalikan pesan kesalahan ini.

DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL1763N Invalid ALTER TABLESPACE statement for table space "TBSP_TEST" due to reason "12"

Panggil prosedur yang rdsadmin.alter_tablespace disimpan lagi tanpa menggabungkan parameter opsional yang saling eksklusif dengan parameter opsional lainnya. Kemudian panggil fungsi yang rdsadmin.get_task_status ditentukan pengguna. Untuk informasi selengkapnya, lihat rdsadmin.alter_tablespace dan rdsadmin.get_task_status.

nilai tablespace_prefetch_size tidak valid

Pesan galat berikut menunjukkan bahwa Anda tidak menyetel tablespace_prefetch_size ke AUTOMATIC atau nilai numerik non-positif. Misalnya, Anda mencoba mengaturnyatestinput.

Invalid tablespace_prefetch_size. Set value to AUTOMATIC or to a non-zero positive numerical value.

Panggil prosedur yang rdsadmin.alter_tablespace disimpan lagi dan atur tablespace_prefetch_size ke AUTOMATIC atau nilai numerik non-positif.

tablespace_prefetch_size nilai numerik tidak valid

Pesan galat berikut menunjukkan bahwa Anda menyetel tablespace_prefetch_size ke nilai numerik yang lebih besar dari 32767.

Invalid tablespace_prefetch_size. The number of pages can't be greater than 32767.

Panggil prosedur yang rdsadmin.alter_tablespace disimpan lagi dan atur tablespace_prefetch_size ke nilai numerik positif bukan nol kurang dari atau sama dengan 32767.

Parameter tidak dapat digunakan dengan tablespace_prefetch_size

Pesan galat berikut menunjukkan bahwa Anda mencoba menggunakan tablespace_prefetch_size dengan parameter yang tidak kompatibel.

You can't use tablespace_prefetch_size with {parameter}.

Panggil prosedur yang rdsadmin.alter_tablespace disimpan lagi dan hanya gunakan tablespace_prefetch_size dengan parameter yang kompatibel. Untuk informasi tentang parameter yang dapat Anda gunakantablespace_prefetch_size, lihatrdsadmin.alter_tablespace.

Perubahan tablespace gagal

Pesan galat berikut menunjukkan bahwa Anda mencoba mengubah tablespace.

The change to tablespace {tablespace_name} failed because you can only alter LARGE or REGULAR tablespaces.

kesalahan rdsadmin.create_database

Kesalahan berikut dapat terjadi ketika Anda memanggil prosedur yang rdsadmin.create_database disimpan.

Kesalahan Pesan kesalahan

Failed to allocate shared memory

SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.

Gagal mengalokasikan memori bersama

Pesan galat berikut menunjukkan bahwa prosedur tersimpan gagal membuat database karena instans DB tidak memiliki memori yang cukup.

SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.

Tingkatkan memori untuk instans DB Anda dan kemudian panggil prosedur yang rdsadmin.create_database disimpan lagi. Untuk informasi tentang penggunaan memori dan rekomendasi untuk database, lihatBeberapa database di Amazon RDS untuk instans Db2 DB.

Untuk mengonfirmasi bahwa database telah dibuat, panggil fungsi rdsadmin.list_databases yang ditentukan pengguna dan periksa apakah database baru terdaftar.

kesalahan rdsadmin.drop_database

Kesalahan berikut dapat terjadi ketika Anda memanggil prosedur yang rdsadmin.drop_database disimpan.

Kesalahan Pesan kesalahan

Database name doesn't exist

SQL0438N Application raised error or warning with diagnostic text: "Cannot drop database. Database with provided name does not exist". SQLSTATE=99993

Return status = 0

Return Status = 0

Dropping database not allowed

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

Nama database tidak ada

Pesan galat berikut menunjukkan bahwa Anda meneruskan nama database yang salah dalam prosedur yang rdsadmin.drop_database disimpan.

QL0438N Application raised error or warning with diagnostic text: "Cannot drop database. Database with provided name does not exist". SQLSTATE=99993

Panggil prosedur yang rdsadmin.drop_database disimpan lagi dengan nama database yang benar. Untuk mengonfirmasi bahwa database dijatuhkan, panggil fungsi yang rdsadmin.list_databases ditentukan pengguna dan periksa apakah database yang dijatuhkan tidak terdaftar.

Status pengembalian = 0

Pesan galat berikut menunjukkan bahwa prosedur yang disimpan tidak dapat diselesaikan.

Return Status = 0

Setelah Anda menerimaReturn Status = 0, panggil fungsi yang ditentukan pengguna rdsadmin.get_task_status.

Menjatuhkan database tidak diizinkan

Pesan galat berikut menunjukkan bahwa Anda membuat database dengan menggunakan konsol Amazon RDS atau. AWS CLI Anda hanya dapat menggunakan prosedur rdsadmin.drop_database tersimpan jika Anda membuat database dengan memanggil prosedur rdsadmin.create_database tersimpan.

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

Untuk menjatuhkan database yang Anda buat dengan menggunakan konsol Amazon RDS atau AWS CLI, gunakan klien untuk terhubung ke database dan kemudian jalankan perintah yang sesuai.

kesalahan rdsadmin.restore_database

Kesalahan berikut dapat terjadi ketika Anda memanggil prosedur yang rdsadmin.restore_database disimpan:

Kesalahan Pesan kesalahan

Insufficient disk space

Aborting task. Reason Restoring your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.restore_database stored procedure.

Internal error

Caught exception during executing task id 104, Aborting task. Reason Internal Error

Non-fenced routines not allowed

Caught exception during executing task id 2, Aborting task. Reason Non fenced routines are not allowed. Please delete the routines and retry the restore.

Tablespaces not restored

Reason SQL0970N The system attempted to write to a read-only file. Reason SQL2563W The Restore process has completed successfully. However one or more table spaces from the backup were not restored.

Ruang disk tidak mencukupi

Pesan galat berikut menunjukkan bahwa instans DB Anda memiliki ruang disk yang tidak mencukupi untuk memulihkan database Anda:

Aborting task. Reason Restoring your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.restore_database stored procedure.

Ruang kosong pada instans DB Anda harus lebih dari dua kali lipat ukuran gambar cadangan Anda. Jika gambar cadangan Anda dikompresi, ruang kosong pada instans DB Anda harus lebih dari tiga kali lipat ukuran gambar cadangan Anda. Untuk informasi selengkapnya, lihat Meningkatkan kapasitas penyimpanan instans DB.

Tingkatkan ruang disk Anda dan kemudian panggil prosedur yang rdsadmin.restore_database disimpan lagi. Untuk mengonfirmasi bahwa database dipulihkan, panggil fungsi yang rdsadmin.list_databases ditentukan pengguna dan periksa apakah database yang dipulihkan terdaftar.

Kesalahan internal

Pesan kesalahan berikut menunjukkan bahwa prosedur yang disimpan mengalami kesalahan internal:

Caught exception during executing task id 104, Aborting task. Reason Internal Error

Hubungi AWS Support.

Rutinitas yang tidak dipagari tidak diizinkan

Pesan galat berikut menunjukkan bahwa database Anda berisi rutinitas yang tidak dipagari:

Caught exception during executing task id 2, Aborting task. Reason Non fenced routines are not allowed. Please delete the routines and retry the restore.

RDS untuk Db2 tidak mendukung rutinitas yang tidak berpagar. Hapus rutinitas yang tidak dipagari dari database sumber, lalu panggil lagi. rdsadmin.restore_database Untuk mengonfirmasi bahwa database dipulihkan, panggil fungsi yang rdsadmin.list_databases ditentukan pengguna dan periksa apakah database yang dipulihkan terdaftar. Untuk informasi selengkapnya, lihat Rutinitas yang tidak dipagari.

Ruang meja tidak dipulihkan

Pesan galat berikut menunjukkan bahwa RDS untuk Db2 berhasil memulihkan database Anda, tetapi tidak dapat memulihkan satu atau beberapa ruang tabel:

Reason SQL0970N The system attempted to write to a read-only file. Reason SQL2563W The Restore process has completed successfully. However one or more table spaces from the backup were not restored.

RDS untuk Db2 tidak mendukung penyimpanan non-otomatis. Ubah penyimpanan non-otomatis ke penyimpanan otomatis dan kemudian panggil rdsadmin.restore_database lagi. Untuk informasi selengkapnya, lihat Mengonversi database penyimpanan nonotomatis untuk menggunakan penyimpanan otomatis di IBM Db2 dokumentasi.

Database dengan penyimpanan SMS non-otomatis memerlukan pemulihan manual. Jika database Anda memiliki penyimpanan SMS non-otomatis, hubungi AWS Support.

Untuk informasi tentang penyimpanan non-otomatis dan migrasi satu kali, lihat. Ruang meja penyimpanan non-otomatis selama migrasi

kesalahan rdsadmin.update_db_param

Kesalahan berikut dapat terjadi ketika Anda memanggil prosedur yang rdsadmin.update_db_param disimpan.

Kesalahan Pesan kesalahan

Parameter not supported or modifiable

QL0438N Application raised error or warning with diagnostic text: "Parameter is either not supported or not modifiable to customers". SQLSTATE=99993

Parameter tidak didukung atau dimodifikasi

Pesan galat berikut menunjukkan bahwa Anda mencoba mengubah parameter konfigurasi database yang tidak didukung atau tidak dapat dimodifikasi.

SQL0438N Application raised error or warning with diagnostic text: "Parameter is either not supported or not modifiable to customers". SQLSTATE=99993

Anda dapat melihat parameter mana yang dapat dimodifikasi dengan melihat grup parameter Anda. Untuk informasi selengkapnya, lihat Melihat nilai parameter untuk grup parameter DB di Amazon RDS Amazon.