Sayfalar

27 Ağustos 2020 Perşembe

ASSERT: [025]: working path 'X' is not the same path as 'X'

Merhabalar Eğer loglarınızda aşağıdaki hatayı alıyorsanız muhtemel pgbackrest config dosyanız da uyuşmayan bir yer var demektir.

 ASSERT: [025]: working path 'X'  is not the same path as 'X'


primary de pgbackrest için tanımlı pgbackrest.conf dosyasında ayarlama yapıcağız. master instance da aşağıdaki path lerin doğru olduğuna emin olunuz.

checking the pgbackrest.conf of your primary instance

 [root_primary_instance]# cat /etc/pgbackrest.conf

[global]
repo1-path=/pgdata/backrest
repo1-retention-full=2
repo1-host=10.150.153.169
repo1-host-user=postgres

archive-async=y
log-level-file=detail

[global:archive-get]
process-max=8

[global:archive-push]
process-max=8

[pgtest1]
#pg1-path=/var/lib/pgsql/12/data
pg1-path=/pgdata/data
pg1-port=543


servisimizi restart edip hatanın kaybolduğunu göreceksiniz..
 
[root_primary_instance]# systemctl restart postgres-12

The transaction has already committed locally, but might not have been replicated to the standby

 Merhabalar Postgres de eğer aşağıdaki hatayı alıyorsanız;  muhtemelen bu sorun sizin Replication name'iniz yanlış olduğu anlamına geliyor.

DETAIL: The transaction has already committed locally, but might not have been replicated to the standby


 

Öncelikle check edelim.

primary DBde;
>postgres=# show synchronous_commit;
 synchronous_commit
--------------------
 on
(1 row)

senkronizasyonumuz açık görünüyor.. değilse off durumunda ise  postgres.conf dosyasından off kısmı on yapalım.

postgres=#
postgres=# select * from pg_stat_replication ;
 pid     usesysid     usename     application_name     client_addr     client_hostname     client_port     backend_start                  backend_xmin     state      sent_lsn     write_lsn     flush_lsn     replay_lsn     write_lag     flush_lag     replay_lag     sync_priority     sync_state     reply_time                    
 ------  -----------  ----------  -------------------  --------------  ------------------  --------------  -----------------------------  ---------------  ---------  -----------  ------------  ------------  -------------  ------------  ------------  -------------  ----------------  -------------  ----------------------------- 
 24330   16388        replikaci   walreceiver          10.150.153.167  (null)              42554           2020-08-27 11:43:52.374787+03  (null)           streaming  0/19010C88   0/19010C88    0/19010C88    0/19010C88     (null)        (null)        (null)         1                 sync           2020-08-27 13:43:42.137884+03 


postgres=# select application_name, sync_state from pg_stat_replication;
 application_name | sync_state
------------------+------------
 walreceiver      | async
(1 row)



postgres=# show synchronous_standby_names;
 synchronous_standby_names
---------------------------
 pgdbtest1

replication application name walreceiver  ise synchronous_standby_names inde aynı isim olması gerekir.  pgdbtest1 ismini değiştireceğiz.

Standby da 

postgres=# show synchronous_commit;
 synchronous_commit
--------------------
 local


olmasını bekleriz.

değişiklik için 

[root@pg_primary_instance]# vi postgresql.conf
#synchronous_standby_names = 'pgdbtest1'
synchronous_standby_names = 'walreceiver'

kayıt edip çıkıyoruz.
[root@pg_primary_instance]# systemctl restart postgresql-12

şimdi işlemlerinize devam edebilirsiniz.. /pgdata/log/ yada İnstance ınızı nereye kurduysanız oradan da log ları kontrol edebilirsiniz?

17 Ağustos 2019 Cumartesi

SanDisk SSD PLUS 120 GB hız sorunu ve çözümü

Merhabalar,

elinizde SanDisk SSD PLUS 120 GB ssd diskiniz var ama yazma hızı çok mu düşük.
Sorunu Diskin güncellemelerini yaparak düzeltebilirsiniz.. Bendeki SSD disk üzerine Windows kurulu ve bu işlemleri kurulu windows üzerinde yaptım.Ben Veri kaybı yaşamadım ama siz yine de önemli dosyalarını isterseniz yedekleyebilirsiniz. İşlemleri Fotoğraflarla anlatıyorum.

1. Öncelikli olarak SanDisk SSD güncellemelerini yapabilmeniz için programımızı SanDiskin kendi sitesinden indiriyoruz.
https://kb-tr.sandisk.com/app/answers/detail/a_id/15607/~/sandisk-ssd-dashboard-destek-bilgileri

2. Programı yükledikten sonra ayarlar sekmesinden Güncelleştirmeleri Denetle seçeneğine tıklayalım ve son güncelleştirmeleri alalım.(Merak etmeyin tüm bu işlemler fazla internet harcamıyor program boyutu da çok küçük)

3. Araçlar Sekmesine geçerek  Güncelleştirmeleri Denetle seçeneğine tıklayalım. Bu işlemden sonra Bilgisayarı yeniden başlatmanızı isteyecektir. Tekrar başlatıp programı tekrar açınız.
4. Son aşamada Performans ekmesine geçin ve  iyileştirme kısmından TRIM i Secin ve Trimi Şimdi çalıştır'ı tıklayınız ve işlem bu kadar..


5. Bendeki Eski ve yeni sonuclar ekrandaki gibi. Benim Bilgisayarım eski(data yolu eski teknoloji) olduğu için yazma hızı max 300Mb lara çıkabildi.Ancak siz  500Mb lara ulaşırsınız.

 


SanDisk SSD PLUS 120 GB, hız sorunu

19 Mart 2019 Salı

unix de büyük yada coklu dosyalarda ilk satırları silme

Delete first and (OR) last line on files(s)


aşağıdaki gibi verimiz olsun

K|ACTCTTT|TXEC|123|TEMPCOLUMN|COLUMN|
18494002|448|1208004|1
18493007|228|1208004|1
ASDFTT|234342
 
<><>BU komutla ilk ve son satrıları silebiliriz.
sed '$d' > file1.txt | sed "1d"
 
<><>bu komutlada coklu dosyalarda çalıştırabilirsiniz.ilk satırı siler.
  for f in  *.txt ;do sed '1d' $f > tmpfile; mv tmpfile $f;done
 
<><>Çoklu dosyalarda baştan iki satır silinecekse
 for f in  *.txt ;do sed '1,2d' $f > tmpfile; mv tmpfile $f;done
 
 
unix,aix,linux,sed,multiplefiles 

18 Mart 2019 Pazartesi

power shell yada cmd ekranında dummy file oluşturma

windowsta bazen istediğimiz kadar büyüklükte bir dosya create etmek isteriz. Bunu komutlarla cok rahat yapabiliriz.


önce istediğimiz dizine aşağıdaki komutla gidiyoruz.
C:\>cd /d Z:\

 Z:\>cd DENEMEFILE

35 bytle lık dummy adında bir dosya oluşturur.
Z:\DENEMEFILE>fsutil file createnew dummy 35

14 Şubat 2019 Perşembe

AlwaysOndan çıkarılmış database'i second (ikinci) note da AlwayOn'a alma

Merhabalar,

Eğer Database'iniz daha önceden ikinci yada diğer notlarda ise çıkartmışsanız yada bir şekilde AlwaysOn listenerdan cıkarmışsanız. Aşağıdaki adımlarla ve benim gibi görsel değilde komutlarla çalışmaya alışmışsanız hızlı bir şekilde alwayson'a alabilirsiniz..


1Adım:
A) eğer Dblerinizin sürekli full ve log backupları alınıyorsa aşağıdaki komutla backuplarınız alındığı pathleri çıkarın..

SELECT          physical_device_name,
                backup_start_date,
                backup_finish_date,
                backup_size/1024.0 AS BackupSizeKB
FROM msdb.dbo.backupset b
JOIN msdb.dbo.backupmediafamily m ON b.media_set_id = m.media_set_id
WHERE database_name = 'DATABASE_NAME'
ORDER BY backup_finish_date DESC
 
 Çıkan sonuc ".bak" ile biten dosya pathlerinden itibaren full backuptan sıra ile yukarıya restore edilecek(şuanki zamana kadar alınan backupları).
  
B)Eğer hazırda backupınız yoksa bu komutlarla full ve log backuplar alınır..(ilk note da çalıştırılacak.)
BACKUP DATABASE DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME.bak'
WITH COPY_ONLY;
GO

BACKUP LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME.trn'
WITH COPY_ONLY;
GO

2Adım: ikinci notda çalıştırılacak restore işlemleri(elimizde backuplar var şimdi eşitlemeye geldi)
RESTORE DATABASE DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME.bak' 
  WITH NORECOVERY, REPLACE, 
   MOVE 'vdk' TO 'W:\DATA\DATABASE_NAME.mdf',
   MOVE 'vdk_log' TO 'X:\LOG\DATABASE_NAME_log.ldf';
GO

RESTORE LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME4.trn' WITH NORECOVERY;
GO
   
RESTORE LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME3.trn' WITH NORECOVERY;
GO
RESTORE LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME2.trn' WITH NORECOVERY;
GO
RESTORE LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME1.trn' WITH NORECOVERY;
GO


3ADIM:Eşitleme tamamlandı şimdi sıra lsn'eri eşitlemek kaldı..
--->>eğer daha önce hiç gruba alınmadısya alttaki komuıtla gruba alabilirsin.
  ALTER AVAILABILITY GROUP [AO_GROUPNAME] ADD DATABASE [DATABASE_NAME]
go

--gruba alınmışsa zaten aşagıdaki komutla eşitlemeyi başlatabilir ve AlwaysOna alabilirsin.
ALTER DATABASE [vdk] SET HADR AVAILABILITY GROUP = AO_GROUPNAME;
go
 
4.ADIM:Eğer backupı alınmış db içeriğine bakmak istersen  aşağıdaki komutla detaylarını listeleyebilirsin.
RESTORE FILELISTONLY FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME1.bak'


MSSQL,SQL,SQL SERVER, SQL BACKUP, ALWAYSON