Nagios Return code of 127 is out of bounds – plugin may be missing hatası
Nagios’ta aşağıdaki hatayı alıyorsanız eğer;
Return code of 127 is out of bounds - plugin may be missing
Çözüm olarak
resource.cfg dosyasına
$USER2$=/etc/nagios3/libexec
eklemeniz gerekmektedir. Ekledikten sonra nagios u kapatıp açarsanız sorun düzelecektir.
Buradaki /etc/nagios3/plugins benim pluginlerimin bulunduğu dizin. Sizin eklediğiniz script nerde ise orayı yazmanız gerekir.
Posted in Linux, Nagios on December 20th, 2012 by Kürşad DARA | | 0 Comments
mysql de alırken tabloları lock etmeden dump alma
–single-transaction parametresi ile bunu yapabilirsiniz.
mysqldump -q --single-transaction veritabani_ismi > mysqldump.sql
Posted in Linux, MySQL, Veritabanları on December 15th, 2012 by Kürşad DARA | | 0 Comments
mysqldump: Got error: 1556: You can’t use locks with log tables. when using LOCK TABLES hatası
mysqldump ile backup alırken aşağıdaki hata ile karşılaşıyorsanız tabloları lock etmesini kaldırıp devam edebilirsiniz veya mysql veritabanını yedeklemezsiniz.
mysqldump: Got error: 1556: You can't use locks with log tables. when using LOCK TABLES
lock etmesini kaldırmak için dump parametreleri arasına –lock-tables=0 eklemelisiniz.
--lock-tables=0
Posted in Linux, MySQL, Veritabanları on December 6th, 2012 by Kürşad DARA | | 0 Comments
linux sunucusunun maksimum kac gb ram desteklediğini ve kaç slot un boş olduğunu bulmak için
Linux sunucunuzun desteklediği maksimum ram ve slot sayısını bulmak icab ederse;
[root@xxx ~]# dmidecode -t 16 # dmidecode 2.11 SMBIOS 2.5 present. Handle 0x002A, DMI type 16, 15 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Single-bit ECC Maximum Capacity: 288 GB Error Information Handle: Not Provided Number Of Devices: 18
Ayrıca kaç adet slot boşta görebilmek için http://www.4schmidts.com/unix/memconf.gz adresinden memconf u indirin ve sisteminize kurun.
dmidecode ile uğraşırsanız scripte gerek kalmadan bulabilirsiniz.
Daha sonra;
[root@xxx ~]# perl memconf -v memconf: V3.02 02-Oct-2012 http://www.4schmidts.com/unix.html hostname: xxx manufacturer: FUJITSU model: PRIMERGY RX300 S6 (Quad-Core Hyper-Threaded Intel(R) Xeon(R) E5620 2400MHz) CentOS release 6.3 (Final), 64-bit kernel, Linux 2.6.32-279.11.1.el6.x86_64 CPU 1: Intel(R) Xeon(R) E5620 2400MHz cpu CPU 2: Unpopulated Memory Error Correction: Single-bit ECC Maximum Memory: 294912MB (288GB) DIMM-1A n/a: 4096MB 1066MHz Synchronous DDR3 DIMM, n/a n/a DIMM-2A n/a: 8192MB 1066MHz Synchronous DDR3 DIMM, n/a n/a DIMM-1B n/a: 4096MB 1066MHz Synchronous DDR3 DIMM, n/a n/a DIMM-1C n/a: 8192MB 1066MHz Synchronous DDR3 DIMM, n/a n/a empty memory sockets: DIMM-3A n/a, DIMM-2B n/a, DIMM-3B n/a, DIMM-2C n/a, DIMM-3C n/a, DIMM-1D n/a, DIMM-2D n/a, DIMM-3D n/a, DIMM-1E n/a, DIMM-2E n/a, DIMM-3E n/a, DIMM-1F n/a, DIMM-2F n/a, DIMM-3F n/a total memory = 24576MB (24GB)
Posted in Console, Linux on November 27th, 2012 by Kürşad DARA | | 0 Comments
mysql ile dump alırken bazı tabloları dahil etmemek için
–ignore-table parametresini kullanabilirsiniz.
mysqldump --ignore-table=db_ismi.table1 --ignore-table=db_ismi.table2 db_ismi > dump.sql
Posted in Linux, MySQL, Veritabanları on November 23rd, 2012 by Kürşad DARA | | 0 Comments
Innodb veritabanları için ibdata1’in dosyasının boyutunu küçültme (shrink edilmesi )
Innodb veritabanı kullanıyorsanız bir süre sonra ibdata1 dosyanızın çok fazla büyüdüğünü göreceksiniz.
Bu dosyanın büyümesi performans ve disk kullanımı açısından problem yaratacaktır. MySQL üstünde bu dosyanın küçültülmesi ile ilgili direk bir komut yok. O yüzden biraz çetrefilli bir yöntemle bu dosyanın boyutunu küçültmek gerekiyor.
Kısaca;
1. MySQL sunucuyu durdurun,
2. MySQL data dizinini komple yedekleyin,
3. MySQL sunucuyu tekrar başlatın,
4. Veritabanının yedeğini mysqldump ile alın,
5. Veritabanlarını silin,
6. MySQL sunucuyu tekrar durdurun,
7. ibdata1, ib_logfile0 ve ib_logfile1 dosyalarını silin,
8. MySQL sunucuyu tekrar çalıştırın,
9. Aldığınız yedeği tekrar yükleyin ( import )
bu adımlarla bu işlemi yapıyoruz.
Detaylara gelirsek;
1. MySQL sunucuyu durdurun.
2. MySQL data dizininin tamamını yedekleyin. Böylece herhangi bir sorun halinde geri dönmemiz kolay olacaktır.
3. MySQL sunucuyu tekrar başlatın.
4. Öncelikle veritabanının yedeğini alıyoruz.
/usr/bin/mysqldump --opt --routines --triggers --all-databases > all.sql
Yedeğin sağlık ve hatasız bir şekilde alındığından emin olun.
5. Veribanlarını drop ile silin.
6. MySQL sunucuyu tekrar durdurun.
7. MySQL data dizininde bulunan ibdata1, ib_logfile0 ve ib_logfile1 dosyalarını silin.
8. MySQL sunucuyu tekrar başlatın. MySQL sunucusunu çalıştırmadan önce. Konfigürasyon dosyanıza ( my.cnf )
innodb_file_per_table
parametresini ekleyin. Böylece artık her tablo için daha küçük bir ibd oluşmasını sağlayacaktır. Bu sayede ilerde çok büyüyen tabloları dump ve restore edip downtime yaşanmadan bu işlemleri yapabilir olursunuz.
Detaylı bilgi için : http://dev.mysql.com/doc/refman/5.6/en/innodb-multiple-tablespaces.html
9. Şimdi mysqldump ile aldığımız dosyayı tekrar import edip veritabanlarını tekrar yükleyin.
/usr/bin/mysql < all.sql
Posted in Linux, MySQL on November 21st, 2012 by Kürşad DARA | | 0 Comments
MySQL’de fragmented olmuş tabloları bulma ve optimize etme
Aşağıdaki query ile fragmented tabloları bulabilirsiniz.
mysql> select TABLE_NAME,Data_free from information_schema.TABLES where TABLE_SCHEMA NOT IN ('information_schema','mysql') and Data_free > 0;
mysql> OPTIMIZE TABLE tablo_adi
şeklinde optimize edebilirsiniz. Bu işlem performansı artıracaktır.
Aşağıdaki script te otomatize edilmiş halde yapabilirsiniz. ( Google search )
#!/bin/sh echo -n "MySQL username: " ; read username echo -n "MySQL password: " ; stty -echo ; read password ; stty echo ; echo mysql -u $username -p"$password" -NBe "SHOW DATABASES;" | grep -v 'lost+found' | while read database ; do mysql -u $username -p"$password" -NBe "SHOW TABLE STATUS WHERE engine='MyISAM';" $database | while read name engine version rowformat rows avgrowlength datalength maxdatalength indexlength datafree autoincrement createtime updatetime checktime collation checksum createoptions comment ; do if [ "$datafree" -gt 0 ] ; then fragmentation=$(($datafree * 100 / $datalength)) echo "$database.$name is $fragmentation% fragmented." mysql -u "$username" -p"$password" -NBe "OPTIMIZE TABLE $name;" "$database" fi done done
Posted in Linux, MySQL on November 20th, 2012 by Kürşad DARA | | 0 Comments
Kullandığınız MySQL sunucunun 32 bit mi 64 bit mi olduğunu anlamak
Bunu anlamak için 2 yöntem var aslında ikisi de aynı kapıya çıkıyor.
1. Komut satırından
[root@mgw03 ~]# mysql -V mysql Ver 14.14 Distrib 5.5.16, for Linux (x86_64) using readline 5.1
2. MySQL konsolundan
mysql> \s ( veya status ) -------------- mysql Ver 14.14 Distrib 5.5.16, for Linux (x86_64) using readline 5.1 Connection id: 9 Current database: Current user: kursad@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.5.16-log MySQL Community Server (GPL) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 2 min 42 sec Threads: 1 Questions: 134612 Slow queries: 0 Opens: 136 Flush tables: 1 Open tables: 129 Queries per second avg: 830.938 --------------
Posted in Linux, MySQL on November 19th, 2012 by Kürşad DARA | | 0 Comments
mySQL Too many open files hatası
MySQL loglarında aşağıdaki hatayla karşılaşabilirsiniz.
121117 23:21:03 InnoDB: Operating system error number 24 in a file operation. InnoDB: Error number 24 means 'Too many open files'.
Çözüm için my.cnf dosyanıza;
innodb_open_files=24000 open-files-limit=96000
Burada dikkat edilecek nokta open-files-limit parametresinin değeri innodb_open_files parametresinin yaklaşık 4-5 katı olarak set etmeniz.
MySQL i yeniden başlattığınızda sorun çözülecektir.
Detay için : http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_open-files-limit
Posted in Linux, MySQL on November 17th, 2012 by Kürşad DARA | | 0 Comments
[Warning] IP address ‘xxx.xxx.xxx.xxx’ could not be resolved: Name or service not known hatası
MySQL log dosyasında aşağıdaki gibi bir hata alıyorsanız. Çözümü basit.
[Warning] IP address 'xxx.xxx.xxx.xxx' could not be resolved: Name or service not known
Muhtelemen sisteminizde username@xxx.xxx.xxx.xxx şeklinde bir kullanıcınız var.
Ve eğer MySQL skip-name-resolve parametresi ile açılmamış ise girdiğiniz xxx.xxx.xxx.xxx ipsinin dns kaydını sorgulayacaktır.
Bu açıdan my.cnf dosyanıza skip-name-resolve parametresi girip bu sorunu çözebilirsiniz.
skip-name-resolve
Tercihim skip-name-resolve kullanmaktan yana. Böylece MySQL dns sorgulaması ile uğraşmamış olur.
Posted in Linux, MySQL on November 17th, 2012 by Kürşad DARA | | 0 Comments
« Previous Page — Next Page »