MySQL不中断在线添加从库

  1. #全备份(这数据不能直接用的,或许有未提交的事务或者事务还在日志里并未写入硬盘)
  2. $Master: innobackupex --user='root' --password='$Password' --defaults-file=/etc/my.cnf /data/test/fulltest --socket=/tmp/mysql.sock 
  3.  
  4. #apply-log(apply log后的数据才可直接使用)
  5. $Master: innobackupex --apply-log /data/test/fulltest/2015-06-04_16-41-51/
  6.  
  7. #恢复
  8. $Slave:清空New_Slavedatadir
  9.  
  10. #移动ib_logfile文件到MySQL的log文件夹
  11. $Slavemv ib_logfile* /path/to/mysql/log/
  12.  
  13. #修改my.cnf
  14. 修改server-id=xx
  15.  
  16. #启动mysql服务
  17. $Slaveservice mysqld start
  18.  
  19. #查看文件xtrabackup_binlog_info查看binlog位置并change master;
  20. $SlaveCHANGE MASTER TO MASTER_HOST='$masterip', MASTER_PORT=3306,MASTER_USER='$repl_user',MASTER_PASSWORD='$slavepass',MASTER_LOG_FILE='$bin.000001',MASTER_LOG_POS=481;
  21.  
  22. #启动从库服务
  23. $Slaveslave start

参考:percona-xtrabackup-setting_up_replication

fail2ban解封IP

fail2ban可以解封或者添加IP到白名单,但网上基本都是写的直接改iptables

  1. 错误提示:
  2. ERROR  NOK: ('Invalid Action name',)
  3. 'Invalid Action name'
  4.  
  5. 日志提示:
  6. May 11 17:12:32 localhost fail2ban.comm[132096]: WARNING Command ['get', 'JAIL', 'actionban', 'x.x.x.x'] has failed. Received KeyError('Invalid Action name',)
  7.  
  8. fail2ban解封命令:
  9. fail2ban-client set [$JAIL_Name] unbanip [xx.xx.xx.xx]

Linux强制重启关机

  1. 如果Linuxreboot或者shutdown失效时,可以打开sysrq然后强制重启或关机
  2.  
  3. #开启sysrq
  4. echo 1 > /proc/sys/kernel/sysrq 
  5.  
  6. #强制把内存缓存数据刷到硬盘上
  7. echo s > /proc/sysrq-trigger
  8.  
  9. #强制立即重启
  10. echo b > /proc/sysrq-trigger 
  11.  
  12. #强制立即关机
  13. echo o > /proc/sysrq-trigger
  14.  
  15. #Docs
  16. https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s3-proc-sys-kernel.html

openssl生成公钥私钥

  1. 生成RSA私钥
  2. [root@localhost ]# openssl genrsa -out rsa_private_key.pem 1024
  3. Generating RSA private key, 1024 bit long modulus
  4. ...................................................++++++
  5. ................................++++++
  6. e is 65537 (0x10001)
  7.  
  8. RSA私钥转换成PKCS8格式
  9. [root@localhost ]# openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt >>PKCS8
  10. -----BEGIN PRIVATE KEY-----
  11. MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAK3yRORPFpdAroGb
  12. zf8fZSJk+W4FUJKOwtFuiFYb/U1IpcRwHIZOILOPHsMPxoKY26rS2Ou12NRv7Un+
  13. xdWV71237Bxch3lC8BgxYOOPW0Kf/Coz0nqQH6t8z74MI5M+lUn8wleYUVGnZpzC
  14. qiAIn/eAQCeN8TN+UacU6Tt8rtFBAgMBAAECgYAskky219EpFqjgiyTgv5Gxm4AS
  15. ggggVbZz5cfHkMp6OChJypR0kaZtfDncr7klE7gN8JMm6uTRopCCCmd1EENSKtYx
  16. dMrNyTKJfy+ZaApmAn1ecRXuIbsTSfpILy1RSBv9kJFY1ZQs8NBLM62V8u5SM7YJ
  17. g1elwFLQmccF2bmE5QJBAOYptj2dPyUsxEzpreCMnlH8FZE4Nf50alcISwEkWSN3
  18. cul2NNCt2Zn/mId0e9Fj15z/khHIWZsaCxe9WXUv3H8CQQDBeQnFJtSDEpp+Yyti
  19. EdLFfupa+oCywvGtbkRTtJFjnXDt19hXoy/HUfLOrBybyHpoozZK+oGvAviucIjK
  20. yXI/AkEA3oyMm20VppNvx9LX/tzZJPrzu7Q3eTAFttvc8mC8FDAmm5lhnjnLwz1C
  21. tg8qvh+lVzhDfBBWnEOFYFIFUuuRbwJBAK4ha0q3dSN3VfeU+BHvKr24SeOSfMzn
  22. qi9HBFY2OXjn1iErWLsf07vYpOmgfKs1V/7fjtkS+C91RC90d5nUj28CQQCmmgdJ
  23. xn10l0N4iQ4co0UclmGYKNkYd+BXLrvPzaSx0v8FlQgcggOOqpDUuSR0Qq3XEhqI
  24. vKnLReXzcEEJuv55
  25. -----END PRIVATE KEY-----
  26.  
  27. 生成公钥
  28. [root@localhost ]# openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
  29. writing RSA key
  30.  
  31.  
  32. [root@localhost 1]# ls -1
  33. PKCS8 #PKCS8格式的私钥,从RSA私钥来的
  34. rsa_private_key.pem #RSA私钥
  35. rsa_public_key.pem #RSA公钥

keepalived双机热备服务高可用

keepalived+nginx,场景适用于非高并发,但又偏核心业务

VIP: 192.168.3.111
Node1: 192.168.3.171
Node2: 192.168.3.175

  1. 用户
  2.                         ||
  3.                         ISP
  4.                         ||
  5.                 Virtual IP [192.168.3.111]
  6.                 |                |
  7. Node1[192.168.3.171]        Node2[192.168.3.175]
  1. Node1配置文件:
  2. [root@localhost ~]# cat /etc/keepalived/keepalived.conf
  3. vrrp_script check_nginx {              
  4.         script "/usr/bin/killall -0 nginx"
  5.         interval 1 #每秒钟检查一次
  6.         weight 2 #每次priority增加2 如果状态正常的话
  7. }                                        
  8. vrrp_instance VI_1 {
  9.         interface eth1
  10.         state MASTER
  11.         virtual_router_id 51
  12.         priority 101 #Master为101,Slave为100
  13.         authentication {
  14.             auth_type PASS
  15.             auth_pass 123456
  16.         }
  17.         track_script {
  18.                 check_nginx
  19.         }
  20.         virtual_ipaddress {
  21.                 192.168.3.111 dev eth1
  22.         }
  23. }
  24.  
  25. Node2配置文件:
  26. [root@localhost ~]# cat /etc/keepalived/keepalived.conf
  27. vrrp_script check_nginx {
  28.         script "/usr/bin/killall -0 nginx"
  29.         interval 1
  30.         weight 2
  31. }
  32. vrrp_instance VI_1 {
  33.         interface eth1
  34.         state BACKUP
  35.         virtual_router_id 51
  36.         priority 100
  37.         authentication {
  38.             auth_type PASS
  39.             auth_pass 123456
  40.         }
  41.         track_script {
  42.                 check_nginx
  43.         }
  44.         virtual_ipaddress {
  45.                 192.168.3.111 dev eth1
  46.         }
  47. }
  1. Note:
  2. 停止NginxKeepalived本身,两台都会切换;
  3. 在负载较高的服务器上,如果没有对“服务”进行冗余而频繁切换IP是不严谨的,nopreempt可以防止来回抢占IP
  4. nopreempt需要stateBACKUP模式下才允许,并且给它们相同的route_id,两台间优先级较高的将优先取得VIP
  5.  
  6. /etc/sysctl.conf
  7. net.ipv4.ip_nonlocal_bind=1