일일, 월 파티션을 자동으로 하고 싶을경우 아래와 같이 규칙을 정하고 스크립트로 일 배치 수행
1. 테이블에 파티션명을 동일하게 구성
2. MySQL 메타 데이터를 조회하여 파티션 추가 대상 확인
3. 일 배치 수행
미래 29일 지난 시점에 일 파티션 추가 배치
=================== 일 배치 스크립트 ==========================
#!/bin/sh
USER=
PASS=
HOME=/home/mysql/batch
TABLES=${HOME}/tables.lst
DATABASE=test
DT=$(date -d '+29 day' "+%Y%m%d") # 포맷 : 20200630
NT=$(date -d '+30 day' "+%Y%m%d") # 포맷 : 20200701
CT=$(date "+%Y%m%d") # 오늘날짜 : 20200601
LOG=${HOME}/log/part_daily.log
mysql -u $USER -p$PASS << EOF | grep TB_ > $TABLES
select distinct(TABLE_NAME)
from information_schema.partitions where table_schema = '${DATABASE}' and partition_name is not null;
EOF
if [ -f $TALBLES ]; then
for tb in `cat $TABLES` # for문으로 table list 읽기
do
mysql -u $USER -p$PASS << EOF 2>> $LOG
use $DATABASE;
alter table $tb add partition (partition p${DT} values less than (to_days('${NT}')));
EOF
done
fi
'RDB > MySQL' 카테고리의 다른 글
MySQL csv 파일 load (0) | 2020.06.11 |
---|---|
Mariadb maxscale 구성 (0) | 2020.06.02 |
MySQL Delete join 구문 (0) | 2020.06.01 |
mysql procedure 삭제 작업 (0) | 2020.05.04 |
MySQL 파티션 (0) | 2020.04.27 |