Николай Николов
Posts by Николай Николов:
MyISAM migrate to InnoDB
Привет,
В MySQL има много начини да се мигрира една таблица от MyISAM към InnoDB.
В този пост ще споделя, как се прави това чрез mysqldump. Този тип миграция се нарича offline, тъй като има downtime. Разбира се, ако имаме повече от един MySQL сървър, този downtime може да бъде избегнат. А като цяло, главната идята на тази схема, е rebuild-ване на индексите на таблицата(те) – тоест оптимизирането им.
Стъпките са следните :
- Бекъп на структурата на таблиците в базата.
- Бекъп на данните на самата база.
- Конвертиране на бекъпа със структурата от MyISAM към InnoDB.
- Изтриване и създаване на базата, и наливане на данните й на ново (постигайки така желаната оптимизация)
Стъпка едно:
Базата ни се казва crm – правим й два бекъпа – на структурата и на данните :
mysqldump -uroot -p --no-data -R --triggers crm > crm_schema.sql
и на данните :
mysqldump -uroot -p --no-create-info -R --triggers crm > crm_data.sql
Следва конвертирането към InnoDB:
sed -i.bak 's#MyISAM#InnoDB#g' crm_schema.sql
И последната стъпка : създаване на база на ново и наливане на информацията от двата бекъпа :
mysql -uroot -p -e "create database crm" mysql -uroot -p crm < crm_schema.sql mysql -uroot -p crm < crm_data.sql
Това е!
PS. Намерих много полезен линк за MySQL репликация без downtime. 10х BRYAN KENNEDY
How To Log Your Bash History With Syslog
Привет,
В този пост ще пиша, как бързо и лесно можем да логваме bash history-то на всички потребители в linux машина със syslog.
За целта трябва да добавим следното в /etc/bash.bashrc :
function log2syslog { declare COMMAND COMMAND=$(fc -ln -0) logger -p local1.notice -t bash -i -- "${USER}:${COMMAND}" } trap log2syslog DEBUG
Излизаме и влизаме през SSH и резултата е на лице :
tail -f /var/log/syslog Aug 5 11:44:05 Server bash[12765]: root:#011 w Aug 5 11:44:08 Server bash[12790]: root:#011 cd /etc/mysql/ Aug 5 11:44:08 Server bash[12792]: root:#011 ls Aug 5 11:44:11 Server bash[12825]: root:#011 ls -lah Aug 5 11:44:14 Server bash[12860]: root:#011 cat my.cnf
Това е!
Convert OpenVZ to LXC
Привет,
В продължение на поста ми Чао OpenVZ, Здравей LXC , днес ще пиша как точно направих конвертирането от OpenVZ към LXC.
Първото което трябва да спомена е, че бях събрал всички OpenVZ виртуалки от сървърите в един CentOS 6 с vzkernel ( тук целта ми беше миграцията на Proxmox-a към 4, и OpenVZ-тата бяха оставени на заден план).
Та.. на CentOS-а ми трябваше vzdump , обаче по подразбиране тази команда я няма. Добавих следното репо:
[soluslabs] name=Soluslab Repo #baseurl=http://repo.soluslabs.com/centos/$releasever/os/$basearch mirrorlist=http://repo.soluslabs.com/centos/mirrors-soluslabs gpgcheck=0 enabled=1
във файла : /etc/yum.repos.d/solusvm.repo и инсталирах vzdump чрез :
yum install vzdump
После последва самия бекъп на виртуалката:
[root@Alien ~]# vzdump 138 INFO: Starting new backup job - vzdump 138 INFO: Starting Backup of VM 138 (openvz) INFO: status = CTID 138 exist unmounted down INFO: creating archive '/vz/dump/vzdump-138.dat' (/var/lib/vz/private/138) INFO: Total bytes written: 34812764160 (33GiB, 9.6MiB/s) INFO: file size 32.42GB INFO: Finished Backup of VM 138 (00:58:33) [root@Alien ~]#
И накрая го преместих от /var/dump/vzdump-138.tar в proxmox сървъра и стартирах процеса на мигриране от OpenVZ към LXC (Convert OpenVZ to LXC) :
sun:~# pct restore 138 vzdump-138.tar -storage nas-nfs Formatting '/mnt/pve/nas-nfs/images/138/vm-138-disk-1.raw', fmt=raw size=85899345920 mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 20971520 4k blocks and 5242880 inodes Filesystem UUID: 06aa1619-d508-421d-a966-e32eeac47442 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Multiple mount protection is enabled with update interval 5 seconds. Writing superblocks and filesystem accounting information: done extracting archive '/root/vzdump-138.tar' Total bytes read: 34812764160 (33GiB, 69MiB/s) Detected container architecture: amd64 ########################################################### Converting OpenVZ configuration to LXC. Please check the configuration and reconfigure the network. ###########################################################
Тук е важно да отбележа, че избрах за storage nas-nfs (това е монтирания по nfs nas сървър). Списък с монтираните storage дялове може да се види така :
sun:~# pvesm status local dir 1 15321089528 1724523996 13596565532 11.76% mysql-ssd-sun dir 1 114723368 61060 108811584 0.56% nas-nfs nfs 1 29098686272 17879096416 11219589856 61.94%
И не на последно място, е нужно да се добави мрежов интерфейс на ново от proxmox уеб интерфейса, със съответните IP адреси и тн..
Ами това е… след като го пуснах всичко си беше 6 точки! 🙂
Същата процедура направих и с останалите 10 OpenVZ виртуалки.
Снимки на плаж болата
Ето и няколко снимки на плаж Болата от вчера, направени с дрона 🙂 Мисля, че станаха доста добри! Приятно гледане!