Topik ini menjelaskan cara mengaktifkan dan menggunakan fitur penyimpanan bertingkat untuk data dingin.
Batasan
Fitur penyimpanan bertingkat untuk data dingin hanya didukung pada PolarDB for PostgreSQL (Kompatibel dengan Oracle) 2.0 dengan versi revisi 2.0.14.21.0 atau yang lebih baru.
Setelah mengaktifkan fitur penyimpanan bertingkat untuk data dingin, Anda tidak dapat menonaktifkannya. Namun, Anda dapat menghapus data dingin. Jika tidak ada data dingin yang tersimpan, Anda tidak akan dikenakan biaya untuk fitur ini.
Anda tidak dapat mengaktifkan fitur penyimpanan bertingkat untuk data dingin pada kluster PolarDB for PostgreSQL (Kompatibel dengan Oracle) yang telah mengaktifkan hot standby.
CatatanJika Anda ingin mengaktifkan fitur ini dalam skenario di atas, hubungi kami.
Setelah mengaktifkan fitur penyimpanan bertingkat untuk data dingin pada kluster PolarDB for PostgreSQL (Kompatibel dengan Oracle) yang telah mengaktifkan hot standby, Anda tidak dapat mengubah zona utama dari kluster tersebut.
CatatanJika Anda ingin mengubah zona utama dalam skenario di atas, hubungi kami.
Pernyataan DDL berikut tidak didukung:
CREATE DATABASE dbnameTABLESPACE OSS: membuat database di dalam Bucket Object Storage Service (OSS).ALTER DATABASE dbnameSET TABLESPACE OSS: memindahkan database yang ada ke dalam Bucket OSS.
Aktifkan penyimpanan bertingkat untuk data dingin
Kluster PolarDB akan restart setelah Anda mengaktifkan penyimpanan bertingkat untuk data dingin. Lanjutkan dengan hati-hati.
Masuk ke Konsol PolarDB. Di panel navigasi sebelah kiri, klik Clusters. Di pojok kiri atas, pilih wilayah kluster. Di daftar kluster, temukan kluster dan klik ID-nya untuk masuk ke halaman Basic Information.
Di panel navigasi sebelah kiri, pilih Settings and Management > Cold Data Tiered Storage untuk masuk ke halaman Cold Data Tiered Storage.
Klik Enable untuk masuk ke halaman Archive List.

Di halaman Daftar Arsip, lihat bagian Basic Information dan Archive List. Di bagian Daftar Arsip, lihat tab Full Table Archive List dan Partitioned Table Archive List.
Jika tidak ada data dingin yang disimpan, tidak ada data yang ditampilkan di bagian Archive List.
Secara default, data disimpan di medium penyimpanan berkecepatan tinggi dari drive cloud terintegrasi setelah fitur penyimpanan bertingkat untuk data dingin diaktifkan. Data dapat dipindahkan ke OSS setelah pemrosesan sederhana. Untuk informasi lebih lanjut, lihat Mode penyimpanan dingin.
Mode penyimpanan dingin
Penyimpanan dingin merujuk pada pemindahan tabel data, indeks, atau materialized view ke OSS. Setelah pemindahan, tabel, indeks, atau materialized view tersebut tidak lagi memakan ruang disk atau hanya memakan sedikit ruang disk, yang secara signifikan mengurangi biaya penyimpanan. Anda dapat menjalankan pernyataan SQL untuk mengelola data di penyimpanan dingin dengan cara yang sama seperti Anda mengelola data di penyimpanan biasa.
Penyimpanan dingin untuk tabel data, indeks, atau materialized view
Pindahkan tabel data, indeks, atau materialized view yang sudah ada ke OSS.
ALTER TABLE tblname SET TABLESPACE OSS; ALTER INDEX idxname SET TABLESPACE OSS; ALTER Materialized View mvname SET TABLESPACE OSS;CatatanSecara default, ketika Anda menjalankan pernyataan
ALTER TABLE tblname SET TABLESPACE OSSpada sebuah tabel, hanya data dalam tabel yang dipindahkan ke OSS. Untuk memindahkan indeks dalam tabel ke OSS, jalankan pernyataanALTER INDEXpada tabel tersebut.Buat tabel data, indeks, atau materialized view di dalam Bucket OSS. Metode berikut didukung:
Metode 1: Tambahkan klausa TABLESPACE OSS dalam pernyataan CREATE.
CREATE TABLE tblname (...) TABLESPACE OSS; CREATE TABLE tblname(...) TABLESPACE OSS as SELECT ...; CREATE INDEX idxname ON tblname(columnname) TABLESPACE OSS; CREAE INDEX idxname ON tblename USING GiST(columnname) TABLESPACE OSS; CREATE MATERIALIZED VIEW table_name TABLESPACE OSS AS query [ WITH [ NO ] DATA ];Metode 2: Atur tablespace default ke Bucket OSS.
SET default_tablespace = 'oss'; CREATE TABLE tblname (...) ; CREATE INDEX idxname ON tblname(columnname); CREAE INDEX idxname ON tblename USING GiST(columnname); CREATE MATERIALIZED VIEW table_name AS query [ WITH [ NO ] DATA ];CatatanSetelah menggunakan metode ini, tabel data, indeks, atau materialized view dibuat di dalam OSS. Jika Anda tidak ingin membuat objek data dingin, Anda harus mengatur ulang tablespace default.
RESET default_tablespace;
Penyimpanan dingin individual untuk bidang LOB besar
Bidang LOB adalah tipe data blob, text, json, jsonb, array, atau spatio-temporal di PolarDB for PostgreSQL(Kompatibel dengan Oracle). Sebuah bidang LOB tunggal berukuran besar, memakan banyak ruang penyimpanan, dan tidak sering diperbarui. Untuk informasi tentang data spatio-temporal, lihat Ikhtisar. Untuk mengurangi biaya penyimpanan bidang LOB, fitur penyimpanan bertingkat untuk data dingin dari PolarDB for PostgreSQL(Kompatibel dengan Oracle) mendukung penyimpanan dingin individual untuk bidang LOB dan menyimpan bidang lainnya di disk database. Anda dapat menjalankan pernyataan berikut untuk memindahkan bidang LOB ke OSS:
-- Buat tabel yang berisi bidang LOB.
CREATE TABLE test_large_object(id serial, val text);
-- Implementasikan penyimpanan dingin hanya untuk bidang LOB.
ALTER TABLE test_large_object alter column val set (storage_type='oss');
-- Masukkan data LOB ke dalam tabel. Data disimpan di OSS.
INSERT INTO test_large_object(val) VALUES((SELECT string_agg(random()::text, ':') FROM generate_series(1, 10000)));Anda harus menentukan bahwa bidang LOB disimpan di OSS terlebih dahulu. Setelah Anda menyelesaikan konfigurasi, data yang ditulis kemudian akan disimpan di OSS.
Penyimpanan dingin untuk tabel terpartisi
Dalam kebanyakan kasus, penyimpanan dingin digunakan untuk tabel terpartisi.
Penyimpanan dingin untuk semua tabel terpartisi
Metode 1: Pindahkan tabel anak terpartisi yang ada dalam tabel induk terpartisi ke OSS secara berurutan.
-- prt1 adalah tabel terpartisi (tabel induk). -- prt1_p1 adalah tabel anak dari tabel prt1. -- prt2_p2 adalah tabel anak lain dari tabel prt1. -- Jalankan pernyataan ALTER pada tabel prt1_p1 dan prt2_p2. ALTER TABLE prt1_p1 SET TABLESPACE OSS; ALTER TABLE prt1_p2 SET TABLESPACE OSS;Metode 2: Buat tabel induk terpartisi di dalam Bucket OSS.
CREATE TABLE prt1 (a int, b int) PARTITION BY RANGE(a) TABLESPACE OSS; -- Secara default, semua tabel anak mewarisi atribut tabel induk dan dibuat di dalam Bucket OSS. CREATE TABLE prt1_p1 PARTITION OF prt1 FOR VALUES FROM (0) TO (250); CREATE TABLE prt1_p2 PARTITION OF prt1 FOR VALUES FROM (250) TO (500);Metode 3: Atur tablespace default ke Bucket OSS sebelum membuat tabel terpartisi.
SET default_tablespace = 'oss'; CREATE TABLE prt1 (a int, b int) PARTITION BY RANGE(a); CREATE TABLE prt1_p1 PARTITION OF prt1 FOR VALUES FROM (0) TO (250); CREATE TABLE prt1_p2 PARTITION OF prt1 FOR VALUES FROM (250) TO (500);
Penyimpanan dingin untuk beberapa tabel terpartisi
Jika Anda ingin memindahkan hanya tabel anak terpartisi yang kedaluwarsa dan jarang diakses ke OSS, Anda dapat mengubah tablespace tabel anak tersebut. Tabel anak terpartisi yang tidak kedaluwarsa dan sering diakses tetap disimpan di disk database. Hal ini tidak memengaruhi kinerja akses tabel terpartisi dan mengurangi biaya penyimpanan.
-- prt1 adalah tabel terpartisi (tabel induk). -- prt1_p1 adalah tabel anak yang belum kedaluwarsa dari tabel prt1. -- prt2_p2 adalah tabel anak yang kedaluwarsa dari tabel prt1. -- Jalankan pernyataan ALTER pada tabel prt2_p2. ALTER TABLE prt1_p2 SET TABLESPACE OSS;
Penyimpanan bertingkat untuk data dingin dan panas
Cache material untuk data dingin
Anda dapat mengubah nilai parameter polar_smgrcache_size untuk menentukan ukuran cache material untuk data dingin. Lakukan langkah-langkah berikut:
Masuk ke Konsol PolarDB. Di panel navigasi sebelah kiri, klik Clusters. Di pojok kiri atas, pilih wilayah kluster. Di daftar kluster, temukan kluster dan klik ID-nya untuk masuk ke halaman Basic Information.
Di panel navigasi sebelah kiri, pilih Settings and Management > Parameters. Kemudian, temukan parameter
polar_smgrcache_sizedan klik Modify Parameter.Konfigurasikan parameter
polar_smgrcache_size. Tabel berikut menjelaskan nilai valid dari parameter tersebut.Nilai
Ukuran cache
0
0 GB (Cache material untuk data dingin dinonaktifkan.)
1
1 GB
2
2 GB
128
128 GB (nilai maksimum)
Klik Submit Changes di pojok kiri atas. Kemudian, klik OK di pesan Save Changes. Setelah Anda mengubah nilai parameter, kluster akan direstart.
Setelah mengaktifkan fitur penyimpanan bertingkat untuk data dingin di kluster PolarDB for PostgreSQL(Kompatibel dengan Oracle), sejumlah kecil ruang cache material dibuat di disk database untuk menyimpan metadata dan penggabungan I/O. Jika Anda memerlukan performa yang lebih tinggi, Anda dapat mengubah ukuran cache material untuk data dingin di Konsol PolarDB berdasarkan volume data dan skenario. Anda harus me-restart database agar perubahan tersebut berlaku.
Setelah mengaktifkan dan menggunakan fitur penyimpanan bertingkat untuk data dingin, jika nilai baru parameter
polar_smgrcache_sizeadalah 0, cache material untuk data dingin dinonaktifkan. Dalam hal ini, pemulihan dari kegagalan mungkin lambat dan parameter mungkin tidak tersedia selama restart. Anda dapat menghubungi dukungan teknis untuk mengaktifkan kembali cache material untuk data dingin agar pemulihan dari kegagalan lebih cepat.
Setelah mengaktifkan cache material untuk data dingin, Anda dapat menjalankan pernyataan berikut untuk menanyakan penggunaan cache:
-- Instal ekstensi polar_monitor.
CREATE extension polar_monitor;
-- Tanyakan penggunaan cache material.
SELECT * FROM polar_smgrcaches;
-- Deskripsi field:
-- smgrcache: ID cache.
-- relfilenode: file tabel yang sesuai dengan cache.
-- relchunknumber: lokasi cache dalam file tabel.
-- nblocks: ukuran cache.
-- dirty: apakah cache berisi blok kotor.
-- usagecount: jumlah kali cache diakses atau dimanfaatkan.
-- pinning_backends: jumlah proses backend yang terikat atau bergantung pada cache untuk operasi mereka.
-- Paksa flush cache material ke OSS.
SELECT polar_flush_smgrcache();
-- Paksa eliminasi cache material.
SELECT polar_evict_smgrcache(); Akses ke data dingin
Tambah, hapus, ubah, dan tanyakan data dingin
Anda dapat menjalankan pernyataan SQL untuk menambah, menghapus, mengubah, dan menanyakan data dingin dengan cara yang sama seperti Anda mengelola data di penyimpanan biasa. Tidak diperlukan modifikasi tambahan.
Pulihkan data dingin
Data yang dipindahkan ke OSS dikompresi. Jika Anda ingin memulihkan data yang disimpan di OSS ke disk cloud, pastikan bahwa disk cloud memiliki ruang penyimpanan yang cukup. Dalam kebanyakan kasus, ruang penyimpanan yang diperlukan sekitar 1,4 hingga 4 kali ukuran ruang penyimpanan OSS.
Hapus data dingin
Anda dapat menjalankan pernyataan SQL untuk menghapus tabel, indeks, atau materialized view dingin dengan cara yang sama seperti Anda menghapus objek yang sama di penyimpanan biasa.
DELETE FROM tblname WHERE ...;
TRUNCATE TABLE tblname;
DROP TABLE tblname;
...