Merhabalar, bu yazımızda Linux Mint 19 kurulu sanal bilgisayarımızda terminal üzerinden PostgreSQL 11 ‘e dvdrental adlı örnek bir veritabanı eklemeyi göstereceğiz.
DVD Rental veritabanında bulunan nesneler;
- 15 tablo
- 1 trigger
- 7 view
- 8 fonksiyon
- 1 domain
- 13 sequence
DVD Rental veritabanında bulunan 15 tablo :
- actor – aktörlerin isim ve soyisimlerini içerir.
- film – başlık, yayın yılı, uzunluk, puanlama, vb. gibi film verilerini içerir.
- film_actor – filmler ve aktörler arasındaki ilişkileri içerir.
- category – filmlerin kategori bilgilerini içerir.
- film_category– filmler ve kategoriler arasındaki ilişkileri içerir.
- store – yönetici kadrosu ve adres dahil olmak üzere mağaza verilerini içerir.
- inventory – envanter bilgilerini içerir.
- rental – kiralama bilgilerini içerir.
- payment – müşterin ödemelerini içerir.
- staff – kadro bilgilerini içerir.
- customer – müşteri bilgilerini içerir.
- address – personel ve müşteriler için adres verilerini içerir.
- city – şehir isimlerini içerir.
- country – ülke isimlerini içerir.
DVD Rental adlı veritabanını indirmek için buraya tıklayabilirsiniz. İndirdiğimiz zip dosyasını sanal makinamiza kopyalıyoruz. Sonrasında bir terminal açıp sırayla komutlarımızı çalıştırıyoruz.
ls10@LingoSoft:~$ cd Masaüstü/ ls10@LingoSoft:~/Masaüstü$ ls -l toplam 540 -rwxrw-rw- 1 ls10 ls10 551437 Oca 7 12:44 dvdrental.zip ls10@LingoSoft:~/Masaüstü$ unzip dvdrental.zip Archive: dvdrental.zip inflating: dvdrental.tar ls10@LingoSoft:~/Masaüstü$ sudo su - [sudo] password for ls10: root@LingoSoft:~#
Şimdi /usr/local/ dizinin altında pgsql adında bir klasör oluşturuyoruz. Oluşturduğumuz klasöre erişebilmesi için chown komutu ile klasörün sahibini postgres olarak tanımlıyoruz. Ardından cp komutu ile masaüstünde bulunan dvdrental.tar dosyamızı pgsql klasörünün içerisine kopyalıyoruz.
root@LingoSoft:~# mkdir /usr/local/pgsql root@LingoSoft:~# chown postgres /usr/local/pgsql/ root@LingoSoft:~# cp /home/ls10/Masaüstü/dvdrental.tar /usr/local/pgsql/ root@LingoSoft:~# cd /usr/local/pgsql/ root@LingoSoft:/usr/local/pgsql# ls -l toplam 2772 -rw-r--r-- 1 root root 2838016 Oca 7 15:00 dvdrental.tar
Halihazırda arkaplanda çalışan postgre servisi varsa onları service komutu ile durduruyoruz. Ardından postgres kullanıcısına geçiş yapıyoruz. PostgreSQL servisini yeniden başlatmak için /usr/lib/postgresql/11/bin/ dizini altında bulunan initdb dosyasını çalıştırıyoruz. Sonrasında initdb ile aynı dizin altında bulunan pg_ctl dosyasını çalıştıracağız. Bir önceki komutun sonucunda bize veritabanı sunucusunu başlatmak için bir link sunacak, oradan kopyalayarak doğrudan çalıştırabiliriz.
Not: Bu yazımızda, bir önceki yazıyı takip ederek PostgreSQL 11 üzerinden devam ettik, sizde PostgreSQL 10 gibi farklı bir sürüm varsa sizin dizin adresiniz büyük ihtimalle şu şekilde olacaktır. –> /usr/lib/postgresql/10/bin/
root@LingoSoft:~# service postgresql stop root@LingoSoft:~# su - postgres postgres@LingoSoft:~$ /usr/lib/postgresql/11/bin/initdb -D /usr/local/pgsql/data postgres@LingoSoft:~$ /usr/lib/postgresql/11/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start sunucunun başlaması bekleniyor.... tamam sunucu başlatıldı
Şimdi terminalden tar dosyamız ile birebir aynı olacak şekilde, dvdrental adında bir veritabanı oluşturuyoruz. Sonrasında /usr/local/pgsql/data/ dizinine geçiyoruz.
postgres@LingoSoft:~$ psql psql (11.1 (Ubuntu 11.1-1.pgdg18.04+1)) Yardım için "help" yazınız. postgres=# CREATE DATABASE dvdrental; CREATE DATABASE postgres=# \q postgres@LingoSoft:~$ cd /usr/local/pgsql/data/ postgres@LingoSoft:/usr/local/pgsql/data$ ls -l
Son olarak oluşturduğumuz dvdrental veritabanını pg_restore komutu ile yeniden yapılandırıyoruz. Yapılandırırken referans olarak tar dosyamızı adres gösteriyoruz. Komutu çalıştırdığımız sırada bize bir hata dönecek, public şemasının önceden oluşturulmuş olduğu için ” CREATE SCHEMA public; “ komutunun verdiği zararsız bir hatadır.
postgres@LingoSoft:/usr/local/pgsql/data$ pg_restore -U postgres -d dvdrental /usr/local/pgsql/dvdrental.tar pg_restore: [arşivleyici (db)] PROCESSING TOC sırasında hata: pg_restore: [arşivleyici (db)] TOC girişte hata 6; 2615 2200 SCHEMA public postgres pg_restore: [arşivleyici (db)] could not execute query: HATA: "public" şeması zaten mevcut Komut şuydu: CREATE SCHEMA public; UYARI: yükleme sırasında hata es geçildi: 1
Son olarak PgAdmin‘i çalıştırıyoruz. Sol tarafta Databases sekmesinin altında dvdrental adında bir veritabanı belirecektir. İlk göründüğünde üzerinde kırmızı bir çarpı olabilir. Üzerine tıkladığınızda sarıya dönecektir.
Faydalı bir yazı olması dileğiyle,
iyi çalışmalar dileriz. 🙂
Kaynak: