mysql innodb extra backup 스크립트

#엑스트라 백업 설치
rpm -Uhv https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm

#yum 으로 설치
yum install xtrabackup

#디렉토리 확인
ll /backup
ll /backup/full_backup
ll /backup/incre_backup

#디렉토리 생성
mkdir /backup
mkdir /backup/full_backup
mkdir /backup/incre_backup

#crontab 에 설정
* */1 * * * root /root/bin/mysql_innodb_backup.sh


crontab 와 db_full_backup_time 은 중요합니다.스크립스트는 crontab 실행될때 백업이 되며, db_full_backup_time이 아닐경우 차등백업을 실행합니다.


따라서 1시간마다 백업을하며 db_full_backup_time이 있을경우에 full 백업을 합니다.

아래의 스크립트에서 03 15을 변수로 줄경우 배열로 받아서 참일경우 full 백업 거짓일경우 차등백업을 진행합니다.따라서 새벽 3시 오후3시에 백업을 진행 합니다. 

!/bin/bash

DB Backup

BAK_DIR=/backup;
TODAY=$(date +%Y%m%d --date '12 hours ago')

TODAY=$(date +%Y%m%d)

RMTODAY=$(date +%Y%m%d --date '10 days ago')

Delete DB File

rm -rf $BAK_DIR/full_backup/$RMTODAY*
rm -rf $BAK_DIR/incre_backup/$RMTODAY*

Backup Time

db_full_backup_time=("03 15")

Now Time & Time Check

TOTIME=$(date +%H)

TOTIME=$(date +%H)

echo $TOTIME
in_array() {
local needle array value
needle="${1}"; shift; array=("${@}")
for value in ${array[@]}; do [ "${value}" == "${needle}" ] && echo "true" && return; done
echo "false"
}

db_full_backup_check=in_array $TOTIME ${db_full_backup_time[@]}

if [ "$db_full_backup_check" == "true" ]; then
# full backup
/bin/nice -n 10 /usr/bin/ionice -c2 -n 7 /usr/bin/innobackupex --defaults-file=/etc/my.cnf \
--user=root --password='1234' --slave-info --no-timestamp \
--compress $BAK_DIR/full_backup/$TODAY
else
# hot backup
/bin/nice -n 10 /usr/bin/ionice -c2 -n 7 /usr/bin/innobackupex --defaults-file=/etc/my.cnf \
--user=root --password='1234' --no-timestamp --compress --incremental \
--incremental-basedir=$BAK_DIR/full_backup/$TODAY $BAK_DIR/incre_backup/$TODAY/$TOTIME
fi

aws cloud watch 여러대의 인스턴스에 대한 하나의 경보 생성.ver2

cloudwatch 경보생성 입니다.

여러대의 인스턴스를 하나로 묶어서 경보생성할때 사용하는 방법입니다.

경보 생성을 누릅니다.

지표 선택을 눌러서 지표를 확인합니다.이번에 경보를 생성할 지표는 "CPUUtilization"입니다.

검색하여 체크 후에 '그래프로 표시된 지표' 를 누릅니다.
표시된 지표는 9개 까지 체크하여 추가할수 있습니다.

제한사항으로

 수학표현식을 추가합니다.
수학 표현식은 상황에 따라 잘 사용하기로 바랍니다.https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/using-metric-math.html
이번에는 CPU사용량이 1대라도 70% 를 넘을 경우 경보를 생성할 것이므로 사용한 표현식은 MAX(METRICS()) 입니다.

전체를 체크할 경우 아래와 같이 지표선택 버튼이 활성화 되지 않습니다.

사용할 수학 표현식 하나만 체크해야 생성이 가능합니다.

위와같이 지표를 생성후에 경보생성은 SNS 를 사용해야 하므로 SNS 사용법은 각자 확인해보시기 바랍니다. 

즐거운 하루되세요~

maria db 개발자 내한

https://regist-event.com/event/2019/mariadb0925/regist.jsp?fbclid=IwAR0KXpypSYPBwtX4t_60OY0W-MYEkwAb1tsYooAnX9I6Xjh2FAuyUliyBxg

하..mysql, maria db 개발자가 내한한다.

my / maria 의 아버지 이기도 한 몬티!
my는 첫째 maria 는 둘째 딸이라고 한다.

자세한 내용은 몬티의 코멘트를 참조하자

https://mariadb.com/kb/en/library/why-is-the-software-called-mariadb/

시간나면 꼭보고와야지

aws system manager session manager 이용하여 ssh 접속

간단하게 설명하면 필요한것은 AmazonEC2RoleforSSM policy 로 만든 역할, s3 bucket, cloudwatch group 다.

미리 로그 쌓을 버킷, 워치 그룹, ssm 역할 생성까지 마친후에 역할을 인스턴스에 부여해주자.

session manager 같은경우엔 신기하게 aws -> ec2 로 연결하는것이 아니다.
ec2 -> session manager로 접근하는거다.

그리고 ec2에 ssm user 를 생성해 주자 계정명은 상관 없다.

그다음에 기본설정을 넣어준다

적절히 잘넣어주자.

그리고 세션을 시작하면 된다.

그럼 잘된다

장점은 인스턴스에 퍼블릭IP가 없는 상태에서도 사용이 가능하다.
key pair 나 패스워드가 없는 상태에서도 로그인이 가능하다.

단점은 쁘띠느낌이 없다는걸까...