15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
31.10.2024

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 postgres

Adım 2: PostgreSQL CLI’yi Başlatın

psql

Bağ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:

l

Veritabanı 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.conf içinde postgres sü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
  • du ve dp kullanarak 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.sql

Bu, 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.dump

Cron İşi ile Yedeklemeleri Otomatikleştirin

Bir cron girişi ekleyerek günlük yedeklemeleri zamanlayın:

crontab -e
0 2 * * * pg_dump my_database > /var/backups/postgres/my_database_$(date +%F).sql

Bu, 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

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın