PostgreSQL’de Veritabanlarını Yönetme: Linux VPS Kullanıcıları için Tam Rehber
PostgreSQL (yaygın olarak Postgres olarak adlandırılır), günümüzde mevcut olan en güçlü, özellik açısından zengin, açık kaynaklı ilişkisel veritabanı yönetim sistemlerinden biridir. Startuplar ve kurumsal ekipler tarafından güvenilen PostgreSQL, karmaşık sorguları, büyük veri setlerini ve ölçeklenebilir uygulama mimarilerini işlemede mükemmeldir. Bir SaaS platformu, bir e-ticaret mağazası veya veri yoğun bir API arka ucu oluşturuyor olsanız da, PostgreSQL projenizin talep ettiği güvenilirlik ve performansı sunar.
PostgreSQL’i yüksek performanslı bir VPS Hosting ortamında çalıştırmak — NVMe SSD depolama, tam root erişimi ve yerleşik DDoS koruması ile — yönetilen bulut çözümlerinin ek yükü olmadan veritabanı altyapınız üzerinde tam kontrol sağlar. Bu kılavuz, ilk erişimden ve veritabanı oluşturmadan kullanıcı izinlerine, yedeklemelere ve güvenlik sertleştirmesine kadar her temel PostgreSQL yönetim görevinde size rehberlik eder.
—
Ön Koşullar
Devam etmeden önce aşağıdakilere sahip olduğunuzdan emin olun:
- PostgreSQL yüklü Ubuntu, Debian veya CentOS çalıştıran bir Linux VPS
- Sunucunuza root veya sudo erişimi
- Linux komut satırı hakkında temel bilgi
Henüz sunucu ortamınızı kurmadıysanız, AlexHost’un VPS Kontrol Panelleri yığın yapılandırmanızı hızlı bir şekilde ayarlamayı kolaylaştırır.
—
1. PostgreSQL Komut Satırı Arayüzüne Erişim
Tüm PostgreSQL yönetim görevleri komut satırı arayüzünde (CLI) başlar; bu aynı zamanda psql olarak da bilinir. Varsayılan olarak, PostgreSQL kurulum sırasında postgres adında bir sistem kullanıcısı oluşturur ve bu hesap veritabanı motoruyla kimlik doğrulamak için kullanılır.
Adım 1: PostgreSQL Sistem Kullanıcısına Geçin
sudo -i -u postgresAdım 2: PostgreSQL CLI’yi Başlatın
psqlBağlandıktan sonra etkileşimli istemi göreceksiniz:
postgres=#Bu, PostgreSQL ortamının içinde olduğunuzu ve SQL komutları ve meta-komutları yürütmeye hazır olduğunuzu doğrular.
> Pro İpucu: Ayrıca normal shell oturumunuzdan sudo -u postgres psql çalıştırarak kullanıcıları değiştirmeden doğrudan bağlanabilirsiniz.
—
2. Yeni Bir Veritabanı Oluşturma
Veritabanları, tüm tablolarınız, dizinleriniz ve depolanan verileriniz için en üst düzey kapsayıcılardır. Yeni bir veritabanı sağlamak için CREATE DATABASE ifadesini kullanın.
Sözdizimi
CREATE DATABASE database_name;Örnek
CREATE DATABASE my_database;Bu, my_database adında ve şu anda etkin olan PostgreSQL rolü tarafından sahip olunan bir veritabanı oluşturur.
Veritabanının Oluşturulduğunu Doğrulayın
Sunucudaki tüm veritabanlarını listelemek için l meta-komutunu kullanın:
lVeritabanı adlarını, sahiplerini, kodlamaları ve erişim ayrıcalıklarını gösteren bir tablo göreceksiniz.
—
3. Veritabanı Kullanıcılarını Oluşturma ve Yönetme
Uygun kullanıcı yönetimi, veritabanı güvenliği için kritiktir. Tüm uygulamalara postgres süper kullanıcı hesabı altında erişim izni vermek yerine, kapsamlı izinlere sahip adanmış kullanıcılar oluşturmalısınız.
Yeni Bir Kullanıcı Oluşturun
CREATE USER username WITH PASSWORD 'your_secure_password';Örnek
CREATE USER dbuser WITH PASSWORD 'StrongP@ssword123';Belirli Bir Veritabanına Tam Erişim İzni Verin
GRANT ALL PRIVILEGES ON DATABASE database_name TO username;Örnek
GRANT ALL PRIVILEGES ON DATABASE my_database TO dbuser;Bu, dbuser öğesine my_database üzerinde tablo oluşturma ve silme yeteneği de dahil olmak üzere tam okuma ve yazma erişimi verir.
Tüm Kullanıcıları Listeleyin
Tüm mevcut rolleri ve kullanıcıları görmek için:
du—
4. Bir Veritabanına Bağlanma
Bir veritabanı oluşturulduktan sonra, ona karşı tablolar oluşturmadan veya sorgular çalıştırmadan önce ona bağlanmanız gerekir.
Bir Veritabanına Geçin
c my_databaseİstem, etkin veritabanını yansıtacak şekilde güncellenecektir:
my_database=#Artık my_database içinde çalışıyorsunuz ve ona karşı tüm DDL ve DML ifadelerini yürütebilirsiniz.
—
5. Tabloları Oluşturma ve Yönetme
Tablolar, herhangi bir ilişkisel veritabanının temel yapı birimidir. Her tablo bir şema tanımlar — belirli veri türleri ve kısıtlamaları olan adlandırılmış sütunlar kümesi.
Bir Tablo Oluşturun
CREATE TABLE table_name (
column1 data_type PRIMARY KEY,
column2 data_type,
column3 data_type
);Pratik Örnek: Çalışan Kayıtları Tablosu
CREATE TABLE employees (
employee_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
department VARCHAR(50),
salary NUMERIC(10, 2)
);Burada, SERIAL her yeni satırda employee_id öğesini otomatik olarak artırır ve NOT NULL her çalışanın bir ada sahip olması gerektiğini zorunlu kılar.
—
6. Veri Ekleme, Sorgulama, Güncelleme ve Silme
Bir Kayıt Ekleyin
INSERT INTO employees (name, department, salary)
VALUES ('Jane Smith', 'Engineering', 72000);Tüm Kayıtları Sorgulayın
SELECT * FROM employees;WHERE Yan Tümcesiyle Sonuçları Filtreleyin
SELECT name, salary FROM employees WHERE department = 'Engineering';Mevcut Bir Kaydı Güncelleyin
UPDATE employees
SET salary = 78000
WHERE name = 'Jane Smith';Belirli Bir Kaydı Silin
DELETE FROM employees
WHERE name = 'Jane Smith';> En İyi Uygulama: Her zaman WHERE yan tümcesini UPDATE ve DELETE ifadeleriyle kullanın. Bunu atlarsanız tablodaki her satırı etkileyecektir.
—
7. Veritabanı Erişimini ve Güvenliğini Yönetme
Güvenlik, herhangi bir üretim PostgreSQL dağıtımında birinci sınıf bir kaygıdır. En az ayrıcalık ilkesi — kullanıcılara yalnızca ihtiyaç duydukları izinleri verme — saldırı yüzeyinizi önemli ölçüde azaltır.
Bir Kullanıcıdan Tüm Ayrıcalıkları İptal Edin
REVOKE ALL PRIVILEGES ON DATABASE my_database FROM dbuser;Belirli Bir Tabloya Salt Okunur Erişim İzni Verin
GRANT SELECT ON TABLE employees TO dbuser;Bu, dbuser öğesinin employees tablosunu sorgulamasına izin verir ancak herhangi bir ekleme, güncelleme veya silmeyi engeller.
Belirli DML İzinleri Verin
GRANT SELECT, INSERT, UPDATE ON TABLE employees TO dbuser;Ek Güvenlik Önerileri
- Her veritabanı kullanıcısı için güçlü, benzersiz parolalar kullanın
pg_hba.confiçindepostgressüper kullanıcısı için uzaktan erişimi devre dışı bırakın- SSL bağlantılarını etkinleştirin — aktarım sırasında verileri şifrelemek için bunu sunucunuzdaki güvenilir bir SSL Sertifikası ile eşleştirin
duvedpkullanarak kullanıcı ayrıcalıklarını düzenli olarak denetleyin- PostgreSQL’i güncelleyin — bilinen güvenlik açıklarını yamalamak için
—
8. Veritabanlarını Yedekleme ve Geri Yükleme
Düzenli yedeklemeler, herhangi bir üretim veritabanı için vazgeçilmezdir. PostgreSQL, basit yedekleme ve geri yükleme iş akışları için pg_dump ve psql yardımcı programlarını sağlar.
Bir Veritabanını SQL Dosyasına Yedekleyin
pg_dump my_database > my_database_backup.sqlBu, tüm veritabanı şemasını ve verilerini düz metin SQL betiği olarak dışa aktarır.
Sıkıştırılmış Biçimde Yedekleyin (Büyük Veritabanları İçin Önerilir)
pg_dump -Fc my_database > my_database_backup.dumpÖzel biçim (-Fc) sıkıştırılmış bir ikili dosya üretir ve paralel geri yüklemeyi destekler.
SQL Yedeklemesinden Bir Veritabanını Geri Yükleyin
psql my_database < my_database_backup.sqlÖzel Biçim Yedeklemesinden Geri Yükleyin
pg_restore -d my_database my_database_backup.dumpCron İşi ile Yedeklemeleri Otomatikleştirin
Bir cron girişi ekleyerek günlük yedeklemeleri zamanlayın:
crontab -e0 2 * * * pg_dump my_database > /var/backups/postgres/my_database_$(date +%F).sqlBu, her gün saat 02:00’de bir yedekleme çalıştırır ve kolay sürüm oluşturma için dosya adına tarihi ekler.
—
9. Tabloları ve Veritabanlarını Silme
Bir tablo veya veritabanı artık gerekli olmadığında, onu kalıcı olarak kaldırmak için DROP komutunu kullanın.
Bir Tabloyu Silin
DROP TABLE table_name;Örnek
DROP TABLE employees;Bir Tabloyu Yalnızca Varsa Silin (Daha Güvenli Sözdizimi)
DROP TABLE IF EXISTS employees;Bir Veritabanını Silin
Hedef veritabanını silmeden önce ondan bağlantıyı kesmelisiniz. Önce varsayılan postgres veritaban
