Son günlerde mysql replikasyon ve clusterları ile eğlenip duruyorken, ülkemizde çok fazla galere cluster eklentisiyle, master-master mysql cluster/replikasyon kullanılmadığını fark ettim.
Yolu buradan geçen mysql kullanıcılarına, tavsiyem standard replikasyonları bir tarafa bırakıp, percona extradb cluster veya mariadb'yi galere wsrep eklentisiyle kullanmalarını, en azından test etmelerini tavsiye ederim.
percona extradb cluster - master-master yapısında yüzlerce tablo, milyarlarca satır içeren tabloları rahatlıkla kullanabilirsiniz. Şu ana kadar sanal makineler üzerinde 500 milyon civarında satır içeren tablolarla test yaptım. Aktif olarakta kullanılmaktadır. Sorun yok. Yeterki düzgün sql sorgusu yapın.
Ubuntu LTS 16.04 üzerine kurulumuda oldukça basit.
Her hangi ilave repo kullanmadan standart ubuntu reposunu kullanabilirsiniz!
# apt-get install percona-xtradb-cluster-server
Bundan sonra;
/etc/mysql/percona-xtradb-cluster.conf.d/mysqld.cnf
dosyasını kendinize göre düzeltmeniz yeterli.
Aşağıdaki örneği inceleyebilirsiniz;
#cat mysqld.cnf
#
# The Percona XtraDB Cluster 5.6 configuration file.
#
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/percona-xtradb-cluster
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
server-id = 3
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in
# /var/lib/percona-xtradb-cluster.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/percona-xtradb-cluster
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
ssl-ca=/etc/mysql/cert/mysql-cacert.pem
ssl-cert=/etc/mysql/cert/mysql-server-cert.pem
ssl-key=/etc/mysql/cert/mysql-server-key.pem
#
# * Galera
#
# Path to Galera library
wsrep_provider=/usr/lib/libgalera_smm.so
#
# Add address of other cluster nodes here
wsrep_cluster_address=gcomm://10.255.255.51,10.255.255.52,10.255.255.53
#log_bin
# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW
#
# MyISAM storage engine has only experimental support
default_storage_engine=InnoDB
#
# This changes how InnoDB autoincrement locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
#
# Node #3 address
wsrep_node_address=10.255.255.53
wsrep_node_name=10.255.255.53
#
# SST method
wsrep_sst_method=xtrabackup-v2
#
# Cluster name
wsrep_cluster_name=feza
#
# Authentication for SST method
wsrep_sst_auth="sstuser:sK7mlNeXE"
wsrep_certify_nonPK=1
wsrep_debug=1
wsrep_retry_autocommit=1
wsrep_auto_increment_control=1
wsrep_drupal_282555_workaround=0
#wsrep_provider_options="socket.ssl_key=/etc/mysql/cert/mysql-server-key.pem;socket.ssl_cert=/etc/mysql/cert/mysql-server-cert.pem.pem;socket.ssl_ca=/etc/mysql/cert/mysql-cacert.pem"
remzi@tashan:~$
10 Temmuz 2016 Pazar
1 Temmuz 2016 Cuma
Reklam
Bu gün reklam yapmak istiyorum.
Yıllar önce kullandığım
Turbo c++ geliştiren, Borland'ın devam embarcadero firmasını hatırlatayım dedim.
https://www.embarcadero.com/
https://www.idera.com/
Tabi kylix unutmuş değilim.
Linux üzerine uygulama geliştirenler embarcaderoya kylix'i sorabilirler. :-)
Belki soran olunca, Kylix tekrardan canlanır.
Yıllar önce kullandığım
Turbo c++ geliştiren, Borland'ın devam embarcadero firmasını hatırlatayım dedim.
https://www.embarcadero.com/
https://www.idera.com/
Tabi kylix unutmuş değilim.
Linux üzerine uygulama geliştirenler embarcaderoya kylix'i sorabilirler. :-)
Belki soran olunca, Kylix tekrardan canlanır.
23 Haziran 2016 Perşembe
Solaris reklamı - virtualbox da çalışan solaris sisteminin diskinin kapasitesini artırmak
Uzun zamandan beri kullanıdığım solaris sanal makinesinin diskinin dolduğunu görünce, kapasiteyi artırayım diyerek artırdım.
Solaris 10 ve 11 de zfs ile disk kapasitesini artırmak kolay ve 3-5 sn. bir işlem.
Öncelikle fiziksel disk kapasitesini virtualboxtan artırıyoruz.
remzi@tashan:/mnt/arsiv/vbox/solaris-installation-server$ VBoxManage modifyhd export.vdi --resize 250000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Solaris 10 ve 11 de zfs ile disk kapasitesini artırmak kolay ve 3-5 sn. bir işlem.
Öncelikle fiziksel disk kapasitesini virtualboxtan artırıyoruz.
remzi@tashan:/mnt/arsiv/vbox/solaris-installation-server$ VBoxManage modifyhd export.vdi --resize 250000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Fiziksel disk kapasite büyütülmüş ise, solaristen otomatik pool genişletmeyi aktif yaptığımızda zfs diskin büyüdüğünü görüyor ve kendisini yeni boyuta göre ayarlıyor.
Hepsi bu kadar.
Bu özellik raid yapıları içinde geçerlidir.
Örneğin 1 TB ile oluşturulmuş disk havuzlarındaki tüm diskleri sırasıyla 4 TB lik disklerle değiştirdikten sonra disk havuzunun kapasitesini aninda artırabilirsiniz.
Halen Solaris ve zfs test etmediyseniz,
Linkinden solarisi indirerek test edin derim.
28 Mayıs 2016 Cumartesi
Konsoldan ekran kartının durumunu öğrenme
ssh ile bilgisayarımıza veya sunucumuza bağlanarak ekran kartının durumunu öğrenmek istediğimizde;
remzi@i6100:~$ aticonfig --odgt --odgc
aticonfig: This program must be run as root when no X server is active
yukarıdaki gibi hata mesajı alırız. Bundan kurtulmanın yolu, oldukça basit;
Öncelikle ekran çıktısını ekran kartına yönlediriyoruz ve her türlü isteği kabul etmesi için izin veriyoruz.
remzi@i6100:~$ export DISPLAY=:0
remzi@i6100:~$ xhost +
access control disabled, clients can connect from any host
remzi@i6100:~$ aticonfig --odgt --odgc
Default Adapter - AMD Radeon (TM) R9 380 Series
Sensor 0: Temperature - 65.00 C
Default Adapter - AMD Radeon (TM) R9 380 Series
Core (MHz) Memory (MHz)
Current Clocks : 980 1425
Current Peak : 980 1425
Configurable Peak Range : [300-1200] [150-1750]
GPU load : 100%
remzi@i6100:~$
Ekran kartımızın sıcaklığı 65 C derece ve %100 çalışıyor.
remzi@i6100:~$ aticonfig --odgt --odgc
aticonfig: This program must be run as root when no X server is active
yukarıdaki gibi hata mesajı alırız. Bundan kurtulmanın yolu, oldukça basit;
Öncelikle ekran çıktısını ekran kartına yönlediriyoruz ve her türlü isteği kabul etmesi için izin veriyoruz.
remzi@i6100:~$ export DISPLAY=:0
remzi@i6100:~$ xhost +
access control disabled, clients can connect from any host
remzi@i6100:~$ aticonfig --odgt --odgc
Default Adapter - AMD Radeon (TM) R9 380 Series
Sensor 0: Temperature - 65.00 C
Default Adapter - AMD Radeon (TM) R9 380 Series
Core (MHz) Memory (MHz)
Current Clocks : 980 1425
Current Peak : 980 1425
Configurable Peak Range : [300-1200] [150-1750]
GPU load : 100%
remzi@i6100:~$
Ekran kartımızın sıcaklığı 65 C derece ve %100 çalışıyor.
23 Nisan 2016 Cumartesi
Günün komutu - Linux sistemlerinde {2016.04.23} - ls (list directory contents)komutunu anlamak
linux kullanıpta ls komutunu bilmeyen yoktur. Bununla birlikte çıktısını anlamakta zorluk yaşıyoruz. Bu zorluğu gidermek için, ls temel seviyede anlatmaya çalışacağım.
d r w x r - x r - x 2 remzi remzi 6 Nis 23 14:54 dizin
| | | | | | | | | | | | | Tarih İsim
| | | | | | | | | | | | Dosyanın ait olduğu grup.
| | | | | | | | | | | Dosyanın Sahibi
| | | | | | | | | | Dizin/Dosyaya birinci seviyede bağlantıların sayısı
| | | | | | | Dizin/Dosyanın sahibi veya grubu dışındakilere verilen yetkiler
| | | | Dizin/Dosyanın bağlı olduğu gruba verilen yetkiler
| Dizin/Dosyanın Sahibi
Dosyanın Tipi
Dosyanın tipi: Hemen dosyanın dipi olurmu dosya dosyadır demeyin. Linux/Unix sistemlerde oluyor. :)
Linuxteki dosya tipleri;
- : Her hangi bir şey belirtilmemişse, bizim bildiğimiz normal dosyadır.
d : Dizin olduğunu belli eder.
b : Blok tipi dosyadır. Hardisklere baktığınızda görürsünüz.
brw-rw---- 1 root disk 8, 0 Nis 23 13:00 /dev/sda
c : Aygıt dosyalarıdır.
Linuxte, ses kartı, seri portlara bir dosyaya erişildiği gibi erişilir.
remzi@tashan:/tmp/umask$ ls -la /dev/ttyS0 /dev/snd/
crw-rw---- 1 root dialout 4, 64 Nis 23 08:54 /dev/ttyS0
/dev/snd/:
total 0
drwxr-xr-x 3 root root 280 Nis 23 08:54 .
drwxr-xr-x 24 root root 5140 Nis 23 12:53 ..
drwxr-xr-x 2 root root 60 Nis 23 08:54 by-path
crw-rw----+ 1 root audio 116, 2 Nis 23 08:54 controlC0
crw-rw----+ 1 root audio 116, 8 Nis 23 08:54 hwC0D0
crw-rw----+ 1 root audio 116, 9 Nis 23 08:54 hwC0D1
crw-rw----+ 1 root audio 116, 10 Nis 23 08:54 hwC0D3
crw-rw----+ 1 root audio 116, 4 Nis 23 12:40 pcmC0D0c
crw-rw----+ 1 root audio 116, 3 Nis 23 15:28 pcmC0D0p
crw-rw----+ 1 root audio 116, 5 Nis 23 08:54 pcmC0D3p
crw-rw----+ 1 root audio 116, 6 Nis 23 08:54 pcmC0D7p
crw-rw----+ 1 root audio 116, 7 Nis 23 08:54 pcmC0D8p
crw-rw----+ 1 root audio 116, 1 Nis 23 08:54 seq
crw-rw----+ 1 root audio 116, 33 Nis 23 08:54 timer
l : Sembolink link
Böyle bir dosya/dizin vs. gerçekte yoktur, sadece orijinal dosya/kaynağı gösteren bir yol göstericisidir.
remzi@tashan:/tmp/umask$ ls -la
total 4
drwx------ 3 remzi remzi 104 Nis 23 15:31 .
drwxrwxrwt 19 root root 4096 Nis 23 15:28 ..
drwxr-xr-x 2 remzi remzi 6 Nis 23 14:54 dizin
lrwxrwxrwx 1 remzi remzi 5 Nis 23 15:09 dizinlink1 -> dizin
lrwxrwxrwx 1 remzi remzi 5 Nis 23 15:31 dizinlink2 -> dizin
s : Söket tipi dosyalar.
Genelde servisler ve bazı aygıtlar haberleşmede söket tipi dosya kullanılırlar.
En güzel örnegi ise mysql dir. MySql tcp ile erişebileceğimiz gibi, söket ilede erişebiliriz. Yerelde söket kullanmak, tcp göre daha avantajlıdır. Bi zahmet avantajları sizler araştırın. :)
remzi@tashan:~$ ls -la /var/run/mysqld/mysqld.sock
srwxrwxrwx 1 mysql mysql 0 Nis 23 15:39 /var/run/mysqld/mysqld.sock
remzi@tashan:/tmp/umask$ ls -la /dev/okiscand
srw-rw-rw- 1 root root 0 Nis 23 08:54 /dev/okiscand
remzi@tashan:/tmp/umask$ ls -la /var/lib/lxd/unix.socket
srw-rw---- 1 root lxd 0 Nis 23 08:43 /var/lib/lxd/unix.socket
ls komutunu anlatmaya çalıştım. Daha fazla bilgi öğrenmek istiyorsanız, "man ls" "info ls" yardımcı olabilir.
d r w x r - x r - x 2 remzi remzi 6 Nis 23 14:54 dizin
| | | | | | | | | | | | | Tarih İsim
| | | | | | | | | | | | Dosyanın ait olduğu grup.
| | | | | | | | | | | Dosyanın Sahibi
| | | | | | | | | | Dizin/Dosyaya birinci seviyede bağlantıların sayısı
| | | | | | | Dizin/Dosyanın sahibi veya grubu dışındakilere verilen yetkiler
| | | | Dizin/Dosyanın bağlı olduğu gruba verilen yetkiler
| Dizin/Dosyanın Sahibi
Dosyanın Tipi
Dosyanın tipi: Hemen dosyanın dipi olurmu dosya dosyadır demeyin. Linux/Unix sistemlerde oluyor. :)
Linuxteki dosya tipleri;
- : Her hangi bir şey belirtilmemişse, bizim bildiğimiz normal dosyadır.
d : Dizin olduğunu belli eder.
b : Blok tipi dosyadır. Hardisklere baktığınızda görürsünüz.
brw-rw---- 1 root disk 8, 0 Nis 23 13:00 /dev/sda
c : Aygıt dosyalarıdır.
Linuxte, ses kartı, seri portlara bir dosyaya erişildiği gibi erişilir.
remzi@tashan:/tmp/umask$ ls -la /dev/ttyS0 /dev/snd/
crw-rw---- 1 root dialout 4, 64 Nis 23 08:54 /dev/ttyS0
/dev/snd/:
total 0
drwxr-xr-x 3 root root 280 Nis 23 08:54 .
drwxr-xr-x 24 root root 5140 Nis 23 12:53 ..
drwxr-xr-x 2 root root 60 Nis 23 08:54 by-path
crw-rw----+ 1 root audio 116, 2 Nis 23 08:54 controlC0
crw-rw----+ 1 root audio 116, 8 Nis 23 08:54 hwC0D0
crw-rw----+ 1 root audio 116, 9 Nis 23 08:54 hwC0D1
crw-rw----+ 1 root audio 116, 10 Nis 23 08:54 hwC0D3
crw-rw----+ 1 root audio 116, 4 Nis 23 12:40 pcmC0D0c
crw-rw----+ 1 root audio 116, 3 Nis 23 15:28 pcmC0D0p
crw-rw----+ 1 root audio 116, 5 Nis 23 08:54 pcmC0D3p
crw-rw----+ 1 root audio 116, 6 Nis 23 08:54 pcmC0D7p
crw-rw----+ 1 root audio 116, 7 Nis 23 08:54 pcmC0D8p
crw-rw----+ 1 root audio 116, 1 Nis 23 08:54 seq
crw-rw----+ 1 root audio 116, 33 Nis 23 08:54 timer
l : Sembolink link
Böyle bir dosya/dizin vs. gerçekte yoktur, sadece orijinal dosya/kaynağı gösteren bir yol göstericisidir.
remzi@tashan:/tmp/umask$ ls -la
total 4
drwx------ 3 remzi remzi 104 Nis 23 15:31 .
drwxrwxrwt 19 root root 4096 Nis 23 15:28 ..
drwxr-xr-x 2 remzi remzi 6 Nis 23 14:54 dizin
lrwxrwxrwx 1 remzi remzi 5 Nis 23 15:09 dizinlink1 -> dizin
lrwxrwxrwx 1 remzi remzi 5 Nis 23 15:31 dizinlink2 -> dizin
s : Söket tipi dosyalar.
Genelde servisler ve bazı aygıtlar haberleşmede söket tipi dosya kullanılırlar.
En güzel örnegi ise mysql dir. MySql tcp ile erişebileceğimiz gibi, söket ilede erişebiliriz. Yerelde söket kullanmak, tcp göre daha avantajlıdır. Bi zahmet avantajları sizler araştırın. :)
remzi@tashan:~$ ls -la /var/run/mysqld/mysqld.sock
srwxrwxrwx 1 mysql mysql 0 Nis 23 15:39 /var/run/mysqld/mysqld.sock
remzi@tashan:/tmp/umask$ ls -la /dev/okiscand
srw-rw-rw- 1 root root 0 Nis 23 08:54 /dev/okiscand
remzi@tashan:/tmp/umask$ ls -la /var/lib/lxd/unix.socket
srw-rw---- 1 root lxd 0 Nis 23 08:43 /var/lib/lxd/unix.socket
ls komutunu anlatmaya çalıştım. Daha fazla bilgi öğrenmek istiyorsanız, "man ls" "info ls" yardımcı olabilir.
Günün komutu - Linux sistemlerinde {2016.04.23} - umask - oluşturulan bir dosya ve dizinin sahiplik hakkı
Linux sistemlerinizde yeni bir dosya ve dizin oluşturduğunuzda, bunun sahiplik
yetkileri(erişim yetkileri) umask değerine göre verilir. Bu değer varsayılan olarak(genellikle) 022 dir.
umask 022 varsayılan değeriyle oluşturulan dizin ve dosyanın yetkileri;
drwxr-xr-x 2 remzi remzi 6 Nis 23 14:54 dizin
-rw-r--r-- 1 remzi remzi 0 Nis 23 14:54 dosya
022 genel düşünce için iyi bir değer olsada, güvenlik nedeniyle (çoklu sistemlerde benim dosyamı benden ve/veya grubumdan başkası okumasın isteğiniz mevcutsa) tavsiye edilen bir değer değildir.
Sadece dosya/dizini oluşturan kişinin bu dosyaya tam erişmesi istiyorsak, .bash_profile veya .bashrc dosyası içerisine "umask 077" ilave etmemiz gerekiyor. Normalde terminalde "umask 077" komutu verdiğinizde umask değeriniz değişir. Fakat yeni bir oturum/terminal açtığınızda yapmış olduğunuz değişikliğin kaybolduğunu göreceksiniz! Bundan dolayı umask veya benzeri tanımlamaları .bash_profile dosyanızda yapmanızı tavsiye ederim.
umask 077;
-rw------- 1 remzi remzi 0 Nis 23 14:53 dosya
drwx------ 2 remzi remzi 6 Nis 23 14:53 dizin
Sayıların ne anlamını aşağıdaki tablodan görebilirsiniz.
| Umask Değeri | Dosya Yetkileri | Dizin Yetkileri |
|---|---|---|
| 0 | rw- | rwx |
| 1 | rw- | rw- |
| 2 | r-- | r-x |
| 3 | r-- | r-- |
| 4 | -w- | -wx |
| 5 | -w- | -w- |
| 6 | --x | --x |
| 7 | --- (Yetki yok) | --- (yetki yok) |
Linuxle eğlenceli ve güvenli günlere...
(Bilgisiz güvenlik olmaz :-D )
19 Nisan 2016 Salı
Faydalı bir site - linuxcommand
Bu gün gezinirken, faydalı bir site gördüm.
Linux komut satırını merak edip, nasıl kullanılacağını öğrenmek isteyenler için güzel bir başlangıç olabilir.
http://linuxcommand.org/tlcl.php
http://linuxcommand.org/lc3_learning_the_shell.php
https://sourceforge.net/projects/linuxcommand/
http://freefr.dl.sourceforge.net/project/linuxcommand/TLCL/13.07/TLCL-13.07.pdf
İyi eğlenceler.
Remzi
Linux komut satırını merak edip, nasıl kullanılacağını öğrenmek isteyenler için güzel bir başlangıç olabilir.
http://linuxcommand.org/tlcl.php
http://linuxcommand.org/lc3_learning_the_shell.php
https://sourceforge.net/projects/linuxcommand/
http://freefr.dl.sourceforge.net/project/linuxcommand/TLCL/13.07/TLCL-13.07.pdf
İyi eğlenceler.
Remzi
Kaydol:
Kayıtlar (Atom)
Uygulamanın Desteklediği Linux Dağıtımı ve Çekirdek Sertifikasyon Aralığı
Çekirdek Sertifikasyon Aralığı Linux Sistem Yönetimi “Asgarinin üzerindeyiz, sorun olmaz” Çekirdek sertifikasyonu ...
-
Systemd ile Linux Sistem Kaynak Yönetimi: RHEL 7/8/9/10 Kapsamlı Rehberi Giriş Modern Linux dağıtımlarının neredeyse tamamı systemd servis...
-
[root@oel6 ~]# rpm -qf /etc/hosts setup-2.8.14-20.el6_4.1.noarch Redhat tabanlı sistemlerde kullanılabilen grupları listelemek ve yük...
-
🔒 SSH Servisini OOM Killer'dan Koruma Rehberi 📑 İçerik 1. Giriş 2. OOM Killer Nedir? 3. SSH ve OOM Killer İlişkisi 4. Çözü...



