Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan tabel yang tidak tercatat di Aurora PostgreSQL
Amazon Aurora PostgreSQL mendukung tabel yang tidak tercatat yang aman untuk crash dan menjaga integritas data bahkan setelah kegagalan atau kegagalan instance penulis. Dalam PostgreSQL standar, tabel yang tidak tercatat melewati Write-Ahead Log (WAL) selama operasi penulisan, menghasilkan kecepatan tulis yang lebih cepat. Namun, ini datang dengan biaya mengurangi daya tahan, karena tabel yang tidak tercatat tidak aman untuk crash dan dapat kehilangan data setelah kegagalan sistem atau shutdown yang tidak bersih. Tabel yang tidak tercatat ini secara otomatis terpotong setelah crash atau shutdown yang tidak bersih. Konten dan indeksnya juga tidak direplikasi ke server siaga.
Sebaliknya, Aurora PostgreSQL menangani tabel yang tidak tercatat secara berbeda karena arsitektur penyimpanan terdistribusi. Ini karena sistem penyimpanan Aurora tidak bergantung pada PostgreSQL WAL tradisional untuk daya tahan. Namun, manfaat kinerja yang biasanya terkait dengan tabel yang tidak tercatat di PostgreSQL standar mungkin tidak begitu signifikan di Aurora. Hal ini disebabkan arsitektur penyimpanan terdistribusi Aurora, yang dapat memperkenalkan overhead tambahan dibandingkan dengan penyimpanan lokal yang digunakan dalam PostgreSQL standar.
Saat menggunakan tabel yang tidak tercatat di Aurora PostgreSQL, pertimbangkan hal berikut:
-
Anda dapat mengakses tabel yang tidak tercatat hanya dari node penulis di cluster Aurora DB.
-
Node pembaca dapat mengakses tabel yang tidak tercatat hanya ketika dipromosikan ke status penulis.
-
Ketika Anda mencoba mengakses tabel yang tidak tercatat dari node pembaca, itu akan menghasilkan kesalahan berikut:
cannot access temporary or unlogged relations during recovery.
Membuat tabel yang tidak tercatat
Untuk membuat tabel yang tidak tercatat di Aurora PostgreSQL, tambahkan kata kunci UNLOGGED dalam pernyataan CREATE TABLE Anda:
CREATE UNLOGGED TABLE staging_sales_data ( transaction_id bigint, customer_id bigint, product_id bigint, transaction_date date, amount NUMERIC );
Tabel yang tidak tersumbat dan replikasi logis
Tabel yang tidak tercatat umumnya tidak termasuk dalam replikasi logis karena replikasi logis bergantung pada WAL untuk menangkap dan mentransfer perubahan. Secara default, perubahan pada tabel yang tidak tercatat tidak dicatat oleh WAL dan dikecualikan dari aliran replikasi, membuatnya tidak cocok untuk kasus penggunaan di mana replikasi logis diperlukan. Namun, Aurora PostgreSQL menyediakan parameter yang disebut rds.logically_replicate_unlogged_tables
yang memungkinkan Anda mengontrol perilaku ini:
-
Ketika
rds.logically_replicate_unlogged_tables
diatur ke 0 (off) tabel yang tidak tercatat dikecualikan dari replikasi logis. -
Ketika
rds.logically_replicate_unlogged_tables
diatur ke 1 (on) tabel yang tidak tercatat disertakan dalam replikasi logis.
catatan
Di Aurora PostgreSQL, rds.logically_replicate_unlogged_tables
parameter diatur secara default ke 1 (on) di versi 14 dan sebelumnya, dan ke 0 (off) di versi 15 dan yang lebih baru.