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
Topik
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 ')"
LOAD
Perintah 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 MSG
mengembalikan 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.
Topik
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
-
Buat sebuah VPC. Untuk informasi selengkapnya, lihat Membuat VPC di Panduan Pengguna Amazon Virtual Private Cloud.
-
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
-
Masuk ke AWS Management Console dan buka Konsol VPC Amazon di. https://console.aws.amazon.com/vpc
-
Di sudut kanan atas konsol, pilih VPC Wilayah AWS Anda.
-
Pilih VPC yang Anda buat.
-
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.
Kategori | Kesalahan prosedur tersimpan |
---|---|
Basis Data |
|
Basis Data |
|
Basis Data |
|
Basis Data |
|
Basis Data |
|
Ruang Meja |
kesalahan rdsadmin.activate_database
Kesalahan berikut dapat terjadi ketika Anda memanggil prosedur yang rdsadmin.activate_database disimpan.
Kesalahan | Pesan kesalahan |
---|---|
|
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 |
---|---|
|
|
|
|
|
|
|
|
|
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_stop
reduce_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 |
---|---|
|
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 |
---|---|
|
|
|
|
|
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 |
---|---|
|
|
|
|
|
|
Tablespaces 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
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 |
---|---|
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.