PostgreSQL ve Sequence

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

PostgreSQL ve Sequence

Mesaj gönderen kimene »

Merhaba.
PostgreSQL de veritabanının yedeğini PgAdmin den alıyorum. Geri yüklediğimde yazılım sequence leri görmüyor.
Fakat varitabanında sequence ler duruyor. Sequence i silip yeniden oluşturduğumda sorun ortadan kalkıyor.
Delphi ve zeos kullanıyorum.
Neden olabileceği hakkında bir fikriniz var mı?
Ver : PostgreSQL 8.2.4

İyi çalışmalar
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Sanırım triggerları yedeklemiyor. Bunun için bir ayar olduğuna eminim. Postgres'i aktif olarak kullanmıyorum, bu nedenle kontrol edemedim.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

yaklaşık bir yıldan fazla Postgresql üzerinde çalışıyorum, aldığım backup larda bu tarz bir sorun yaşamadım.
Otomatik bir script ile backup alıyorum,
aldığım backup ı pgAdmin ile oluşturduğum yeni db ye restore edince hiçç bir sorun yaşamıyorum.

Backup aldığım script :

Kod: Tümünü seç

REM Backup BAT file script begins here

REM Set these variables to what is appropriate for your system

SET PGPATH="C:\Program Files\PostgreSQL\8.1\bin\"
SET SVPATH=F:\DevranBackup\
SET PRJDB=devrandb
SET DBUSR=postgres
set PGPASSWORD=xxxxxxx


REM This is an ugly solution to get a timestamp for the newly created
REM dump file.

FOR /F "tokens=1-4 delims=/" %%i in ('date/t') do set d=%%i%%j%%k
FOR /F "TOKENS=1,2,3 DELIMS=: " %%i IN ('TIME /T') DO SET t=%%i%%j%%k

SET DBDUMP=%PRJDB%-%d%-%t%.backup

%PGPATH%pg_dump.exe  -i -h 192.168.1.1 -U postgres -F c -b -o -v -f "%SVPATH%%DBDUMP%" %PRJDB%


RAR m "%SVPATH%%DBDUMP%.rar" -df "%SVPATH%%DBDUMP%" %PRJDB%
sıkıştırma için bat dosyasının bulunduğu yerde rar.exe (winrar içinden çıkan) programı da yer almakta.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

iyi çalışmalar ben de 6 aydır postgres ile uğraşıyorum ve aşağıdaki gibi bir yöntem kullanıyorum fakat bahsettiğiniz problemle öncden hiç karşılaşmadım.

Kod: Tümünü seç

procedure PgDump();
var
  execStatement:String;
begin
  if not DirectoryExists('Yedek') then
    MkDir('Yedek');
  execStatement:=pg_path+'\pg_dump.exe -i -h '+pg_host +' -p 5432 -U '+pg_user+' -F c -b -v -f "Yedek\'+DateToStr(Now)+SetStatement(TimeToStr(now),':','.')+'.backup" "'+pg_database+'"';
  WinExec(PChar(execStatement),SW_SHOWNORMAL);
end;
Restore etme işleminde ise
1->orjinal db'nin backup'ı alınır /*ne olur ne olmaz ;)*/,
2->orjinal db drop edilir,
3->orjinal db isminde yeni bir db oluşturulur,
4->aldığınız backup yeni oluşturduğunuz db'ye restore edilir.
bu olay istenirse schema bazında da yapılabilir. var olan bir postgres db'sinin üzerine direkman restore işlemi (only schema olsa bile) problemler çıkartıyor (yeni eklenmiş kolonları eklemiyor, function ve view'deki değişiklikleri görmüyor vs...). Postgres'in kendi sitesinde de yukarıda bahsedilen yöntemlerden bahsediliyor.
@gkimirti hocam client makinalardaki backup olayı için nasıl bir yöntem izliyorsunuz?
Saygılar;
İmam Süleyman Yakub <==> Molla Mustafa Mansur
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

script server üzerinde çalışıyor, client larda backup namına bir işlem yaptırmıyorum, bu script sayesinde saatlik yedek alıyorum
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

Arkadaşlar yaptığım testlerde problemin backup ta olmadığını gördüm.
Yanlış teşhiste bulunmuşum.
Delphi 7 de zeos kullanıyorum.
Problem zeos tan kaynaklanıyor.
İlk başta zeos un update bileşenini kullanmadım ve çalışıyordu.
Daha sonra backuptan geri döndüğümde zeos sequence leri algılamıyor.
Update bileşenini kullanınca sorun ortadan kalkıyor.
Yalnız ben zeostan pek memnun kalmadım.
Siz ne kullanıyorsunuz öğrenebilir miyim?
Daha önce mssql kullanıyordum. projemi pg ye geçirmeye karar verdim.
ama biraz zor oluyor.
İyi çalışmalar.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

ben 1 yıldır postgresdac 2.3.6 versiyon kullanıyorum,
üst versiyonlarda sequenceleri otomatik tetiklemiyor, ayrıca default degerleri algılamıyor. bu versiyon sorunsuz benim işimi görüyor.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

Postgresdac 2.4 trial versiyonunu ben de denedim. Gerçekten default değerleri algılamıyor.
Sitesine baktım ama 2.3.6 yı da indiremiyoruz.
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

benim kullandığım set
ZEOSDBO-6.6.1-beta
sequence'lerin çalışması için zsequence nesnesini kullanmak gerekiyor.
sequence
-->database nesnesi
-->hangi sequence oldğu
query
-->database nesnesi
-->sequence nesnesi
-->hangi alanın sequence uğrayacağı
Zeos'un bu versiyonunda pek problem yaşamadım şu ana kadar. default değerler vs.. de de sıkıntı yok benim karşılaştığım gayet de hızlı hatta
pdac vs zeos şeklinde bir karşılaştırma yapmıştım. Çok ciddi karşılaştırmalar olmasa da sonuç itibariyle zeos'un daha hızlı çalıştığını gördüm. isterseniz kendi bilgisayarınızda da deneyebilirsiniz.
Saygılar;
İmam Süleyman Yakub <==> Molla Mustafa Mansur
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

Ben de Zeos 6.6.1 kullanıyorum.
Dediklerinizi yaptım.
bir kayıt eklemeye kalktığımda
"SQL Error: ERROR:Relation""kullanicilar_kayitno_sql" does no exist" hatasını alıyorum.

sequence.connection:connection1
sequence.sequencename:kullanicilar_kayitno_seq

zquery1.connection:connection1
zquery1.sequence:sequence
zquery1.sequencefield:kayitno
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Hocam zeosun gıcık kaptıgım bir tarafı alan isimlerinin başına tablo adını ekliyor, yani id isimli bir alan "table1".id yada table1.id şeklinde ekleniyor (updatesql den bahsediyorum). her seferinde (sql değişince) generatesql yapınca bu tablo isimlerini silmem gerekiyor.
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla