среда, 7 июня 2017 г.

MySQL DB: attaching new vol + moving mysql files to a new vol

  1.  Create volume in AWS console (doublecheck Availability Zone! should be the same as instance!)

  2.  Attach volume ( xvdf, for example)

  3. Check that volume was attached and that it has no filesystem. (/dev/xvdf:  data - means no FS)
    check
    sudo lsblk
     
    NAME  MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda1 202:1    0   8G  0 disk /
    xvdf  202:80   0  50G  0 disk
     
    sudo file -s /dev/xvdf
    /dev/xvdf: data
  4. Create FS:
    create fs
    sudo mkfs -t ext4 /dev/xvdf
  5. Create dir and mount the new volume:
    sudo mkdir /vol
    sudo mount /dev/xvdf /vol
  6. get UUID of the new vol:
    sudo blkid
    /dev/xvda1: LABEL="cloudimg-rootfs" UUID="c0f60de5-22bb-4ef2-bbee-e181f2781d7d" TYPE="ext4"
    /dev/xvdf: UUID="619fb6a2-4efb-400c-9fde-5325c82dd43f" TYPE="ext4"
  7. Change fstab, add the new line:
    sudo vi /etc/fstab
    LABEL=cloudimg-rootfs / ext4 defaults 0 0
    /dev/xvda3 none swap sw,comment=cloudconfig 0 0
    UUID=619fb6a2-4efb-400c-9fde-5325c82dd43f /vol ext4 defaults 0 1
  8. Stop service mysql, copy datafiles
    sudo service mysql stop
    sudo chown mysql:mysql /vol
    sudo chown -R mysql:mysql /vol
    sudo cp -rap /var/lib/mysql /vol
  9. Create log dir for logs and errors
    sudo mkdir /vol/log
    sudo mkdir /vol/log/mysql
    sudo touch /vol/log/mysql/error.log
    sudo chown -R mysql:mysql /vol/log
  10. Edit config files: 
    sudo vi  /etc/mysql/my.cnf
    sudo vi /etc/apparmor.d/usr.sbin.mysqld
    with this: 
    /etc/apparmor.d/usr.sbin.mysqld
    /vol/mysql/ r,
      /vol/mysql/** rwk,
      /vol/mysql-files/ r,
      /var/lib/mysql-files/** rwk,
      /vol/log/mysql/ r,
      /vol/log/mysql/* rw,
    my.cnf
    datadir         = /vol/mysql
    log_error = /vol/log/mysql/error.log
  11. Restart services
    sudo /etc/init.d/apparmor reload
     sudo service mysql restart
  12. Check for errors:
    sudo tail -f /vol/log/mysql/error.log

Комментариев нет:

Отправить комментарий

Bash: MySql backup (file per db), restore+ users and privileges

Backup Mysql DB (file per db) #!/bin/bash USER="root" databases=`mysql -u $USER -e "SHOW DATABASES;" | tr -d "|...