feat: src07のdump取得を追加。取得部分をメソッド化
This commit is contained in:
parent
726ca9067b
commit
d48bcea8a6
@ -60,10 +60,49 @@ def exec():
|
|||||||
with open(my_cnf_path, 'w') as f:
|
with open(my_cnf_path, 'w') as f:
|
||||||
f.write(textwrap.dedent(my_cnf_file_content)[1:-1])
|
f.write(textwrap.dedent(my_cnf_file_content)[1:-1])
|
||||||
|
|
||||||
|
# dump取得時刻を初期化
|
||||||
dt_now = datetime.datetime.now()
|
dt_now = datetime.datetime.now()
|
||||||
converted_value = dt_now.strftime('%Y%m%d%H%M%S')
|
|
||||||
dump_file_name = f'backup_rds_src05_{converted_value}.gz'
|
# src05のdumpを取得
|
||||||
s3_file_path = f's3://{environment.JSKULT_BACKUP_BUCKET}/{environment.DUMP_BACKUP_FOLDER}/{dt_now.year}/{dt_now.strftime("%m")}/{dt_now.strftime("%d")}/{dump_file_name}'
|
execute_dump(dt_now, my_cnf_path, 'src05')
|
||||||
|
# src07のdumpを取得
|
||||||
|
execute_dump(dt_now, my_cnf_path, 'src07')
|
||||||
|
|
||||||
|
# dump処理状態区分を正常終了に更新
|
||||||
|
try:
|
||||||
|
update_dump_status_kbn_complete()
|
||||||
|
except BatchOperationException as e:
|
||||||
|
raise BatchOperationException(f'dump処理状態区分更新(処理中→正常終了) エラー(異常終了):{e}')
|
||||||
|
|
||||||
|
logger.info('日次バッチ処理前DBダンプ取得:終了(正常終了)')
|
||||||
|
return constants.BATCH_EXIT_CODE_SUCCESS
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# dump処理状態区分をエラーに更新
|
||||||
|
try:
|
||||||
|
update_dump_status_kbn_error()
|
||||||
|
except BatchOperationException as e:
|
||||||
|
logger.exception(f'dump処理状態区分更新(処理中→エラー) エラー(異常終了):{e}')
|
||||||
|
return constants.BATCH_EXIT_CODE_SUCCESS
|
||||||
|
logger.exception(f'日次バッチ処理前DBダンプ取得中に想定外のエラーが発生しました :{e}')
|
||||||
|
return constants.BATCH_EXIT_CODE_SUCCESS
|
||||||
|
|
||||||
|
|
||||||
|
def execute_dump(dt_now: datetime.datetime, my_cnf_path: str, schema: str):
|
||||||
|
"""指定されたスキーマのdumpを取得します
|
||||||
|
|
||||||
|
Args:
|
||||||
|
dt_now (datetime.datetime): 現在時刻
|
||||||
|
my_cnf_path (str): my.cnfファイルのローカルパス
|
||||||
|
schema (str): 取得対象のスキーマ
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
BatchOperationException: dump取得中のエラー
|
||||||
|
"""
|
||||||
|
yyyymmddhhmmss = dt_now.strftime('%Y%m%d%H%M%S')
|
||||||
|
dump_file_name = f'backup_rds_{schema}_{yyyymmddhhmmss}.gz'
|
||||||
|
s3_bucket_path = f's3://{environment.JSKULT_BACKUP_BUCKET}/{environment.DUMP_BACKUP_FOLDER}'
|
||||||
|
s3_file_path = f'{s3_bucket_path}/{dt_now.year}/{dt_now.strftime("%m")}/{dt_now.strftime("%d")}/{dump_file_name}'
|
||||||
|
|
||||||
# mysqldumpコマンドを実行し、dumpを取得する
|
# mysqldumpコマンドを実行し、dumpを取得する
|
||||||
command = [
|
command = [
|
||||||
@ -75,7 +114,7 @@ def exec():
|
|||||||
'--skip-column-statistics',
|
'--skip-column-statistics',
|
||||||
'--single-transaction',
|
'--single-transaction',
|
||||||
'--set-gtid-purged=OFF',
|
'--set-gtid-purged=OFF',
|
||||||
environment.DB_SCHEMA
|
schema
|
||||||
]
|
]
|
||||||
|
|
||||||
mysqldump_process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
mysqldump_process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
@ -101,22 +140,6 @@ def exec():
|
|||||||
if s3_cp_process.returncode != 0:
|
if s3_cp_process.returncode != 0:
|
||||||
raise BatchOperationException(f'`aws s3 cp`実行時にエラーが発生しました。{"" if error is None else error.decode("utf-8")}')
|
raise BatchOperationException(f'`aws s3 cp`実行時にエラーが発生しました。{"" if error is None else error.decode("utf-8")}')
|
||||||
|
|
||||||
# dump処理状態区分を正常終了に更新
|
|
||||||
try:
|
|
||||||
update_dump_status_kbn_complete()
|
|
||||||
except BatchOperationException as e:
|
|
||||||
raise BatchOperationException(f'dump処理状態区分更新(処理中→正常終了) エラー(異常終了):{e}')
|
|
||||||
|
|
||||||
logger.info('日次バッチ処理前DBダンプ取得:終了(正常終了)')
|
|
||||||
logger.info(f'出力ファイルパス: {s3_file_path}')
|
logger.info(f'出力ファイルパス: {s3_file_path}')
|
||||||
return constants.BATCH_EXIT_CODE_SUCCESS
|
|
||||||
|
|
||||||
except Exception as e:
|
return
|
||||||
# dump処理状態区分をエラーに更新
|
|
||||||
try:
|
|
||||||
update_dump_status_kbn_error()
|
|
||||||
except BatchOperationException as e:
|
|
||||||
logger.exception(f'dump処理状態区分更新(処理中→エラー) エラー(異常終了):{e}')
|
|
||||||
return constants.BATCH_EXIT_CODE_SUCCESS
|
|
||||||
logger.exception(f'日次バッチ処理前DBダンプ取得中に想定外のエラーが発生しました :{e}')
|
|
||||||
return constants.BATCH_EXIT_CODE_SUCCESS
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user