Архив автора: skeletor

rssh — разрешить scp/sftp, но не ssh

rssh is a restricted shell for use with OpenSSH, allowing only scp and/or sftp. It now also includes support for rdist, rsync, and cvs. For example, if you have a server which you only want to allow users to copy files off of via scp, without providing shell access, you can use rssh to do that. For a list of platforms on which rssh is known to work, see the Platform Support Page.

Небольшой пример использования можно найти здесь

[mysql] Fast shutdown

Если нужно быстро перезагрузить базу, можно воспользоваться хаком: сбросить грязный кешь (на самом деле мы просто выставляем лимит грязного кеша в 0) и потом просто restart. И так:

mysql>set global innodb_max_dirty_pages_pct=0;

Теперь дожидаемся, пока весь кеш сбросится (раз в 10 секунд проверяем размер грязного кеша):

Читать далее

[mysql] Multi source replication

И так, представим себе ситуацию: есть GTID репликация и нужно подключить ещё один канал с другого мастера. Вроде бы и тривиальная задача: change master to … channel master2, но при запуске репликации на новом канале master2 она свалится с ошибкой:

The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.', Error_code: 1236

Как же быть? Опишу по шагам, как это исправить.

Читать далее

[mysql] skip replication with GTID

Смотрим в

mysql>show slave status\G;
...
Executed_Gtid_Set: 1136d9c4-0ecf-11e5-be7e-28d2445d8ed0:1-373587249,
53d58b0f-eb6f-11e6-9215-392e3ca483a1:1-1081544,
bcdd5c11-9d7b-11e2-8070-49715e847bda:1-40596661
...

В данном случае ID-шник непосредственного мастера bcdd5c11-9d7b-11e2-8070-49715e847bda. Значит увеличим его счётчик транзакций на 1 (40596661, стало 40596662, обратите внимание, что gtid_next задаётся в формате ID:position, а в executed_gtid_set оно выглядит как ID:1-position, то есть отличаются на ‘-1’):

Читать далее

[MacOSX] Ускоряем terminal.app

Со временем, если у вас открыто много сеансов и вы их не закрываете, terminal.app начинает сильно притормаживать. Вот несколько советов, как можно его ускорить:

1) удалить файл ~/Library/Preferences/com.apple.Terminal.plist

2) периодически удалять asl-логи:

$ cd /private/var/log/asl && sudo rm *.asl

3) использовать «тихий вход»:

$ touch ~/.hushlogin

4) В настройках в параметре «Прокрутка вниз» установите лимит, например, в 1000 строк. Там же, рядом, отключите «Восстанавливать текст при повторном открытии окна»

[Solaris] non global zone sync time

Как не глобальная зона синхронизирует время? По дефолту — берёт время из global зоны. Но этим можно управлять через параметр global-time (задаётся в конфигурационном файле зоны)

  • true — означает синхронизировать время из global зоны
  • false — означает, что время будет установлено через ntpdate/ntpd (при этом на зону должны быть выданы привилегии sys_time, без этого нельзя будет синхронизировать время)

Путём экспериментов выяснил, что изменения данного параметра влияют только после ребута зоны: простое выполнение zoneadm -z ZONE apply по факту не применяется.

ПС. Статья является вольным переводом этой

[postgresql] pglogical — логическая репликация

pglogical — это логическая репликация, реализованная в виде дополнения к PostgreSQL (доступна начиная с 9.4). Это альтернатива физической репликации, в которой, например, есть ограничения (в pglogical такого ограничения нет) репликации только в пределах одной минорной ветки.

Официальный сайт https://2ndquadrant.com/en/resources/pglogical/

[mysql] Got fatal error 1236 from master when reading data from binary log

Got fatal error 1236 from master when reading data from binary log: 'Cannot replicate anonymous transaction when AUTO_POSITION = 1, at file /database/mysql/mysql-bin.030053, position 154.; the first event '' at 4, the last event read from 'mysql-bin.030053' at 219, the last byte read from '/database/mysql/mysql-bin.030053' at 219.'

Такую ошибку получили при попытке переключиться по инструкции online migration to GTID replication. Решение не очевидное и нашлось методом гугления, проб.

Читать далее