[파이썬] MySQL 데이터베이스 백업과 복구

데이터베이스는 중요한 비즈니스 데이터를 저장하고 관리하는 데 매우 중요합니다. 이 데이터를 보호하기 위해서는 데이터베이스의 백업과 복구 과정이 필수적입니다. MySQL 데이터베이스를 백업하고 복구하는 간단한 방법을 파이썬을 사용하여 알아보겠습니다.

1. MySQL 데이터베이스 백업

MySQL 데이터베이스를 백업하는 가장 일반적인 방법은 mysqldump 명령어를 사용하는 것입니다. 이 명령어는 데이터베이스의 스키마와 데이터를 SQL 파일로 백업합니다. 파이썬에서 subprocess 모듈을 사용하여 mysqldump 명령어를 실행할 수 있습니다.

import subprocess
import datetime

# 데이터베이스 정보
db_host = "localhost"
db_user = "root"
db_password = "password"
db_name = "mydatabase"

# 백업 경로 설정
backup_path = "/path/to/backup"

# 백업 파일 이름 설정
backup_file = f"{backup_path}/backup_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.sql"

# mysqldump 명령어 실행
subprocess.run(["mysqldump", f"--host={db_host}", f"--user={db_user}", f"--password={db_password}", db_name, f"--result-file={backup_file}"])

print("백업이 완료되었습니다.")

위 예시 코드에서는 subprocess.run() 함수를 사용하여 mysqldump 명령어를 실행하고, 백업 파일은 현재 날짜와 시간을 포함한 파일 이름으로 저장됩니다.

2. MySQL 데이터베이스 복구

백업된 MySQL 데이터베이스를 복구하기 위해서는 mysql 명령어를 사용하여 SQL 파일을 실행해야 합니다. 마찬가지로, 파이썬에서 subprocess 모듈을 사용하여 mysql 명령어를 실행할 수 있습니다.

import subprocess

# 데이터베이스 정보
db_host = "localhost"
db_user = "root"
db_password = "password"
db_name = "mydatabase"

# 복구할 백업 파일 경로
backup_file = "/path/to/backup/backup_20220101_120000.sql"

# mysql 명령어 실행
subprocess.run(["mysql", f"--host={db_host}", f"--user={db_user}", f"--password={db_password}", db_name, f"--execute=\. {backup_file}"])

print("복구가 완료되었습니다.")

위 예시 코드에서는 subprocess.run() 함수를 사용하여 mysql 명령어를 실행하고, 복구할 백업 파일의 경로를 지정합니다. SQL 파일은 \.을 사용하여 실행되며, 데이터베이스가 복구됩니다.

결론

MySQL 데이터베이스의 백업과 복구는 중요한 데이터를 보호하기 위해 필수적입니다. 파이썬을 사용하여 MySQL 데이터베이스를 백업하고 복구하는 간단한 방법을 알아보았습니다. 이를 통해 데이터 손실을 방지하고 비즈니스의 안정성을 높일 수 있습니다.