[python] 데이터베이스의 백업 주기 설정하기

데이터베이스의 백업은 중요한 작업으로, 데이터 손실을 방지하고 시스템 복구를 보장하기 위해 꼭 필요합니다. 이 문서에서는 Python을 사용하여 데이터베이스의 자동 백업 주기를 설정하는 방법에 대해 알아보겠습니다.

1. 백업 관련 라이브러리 설치하기

Python에서 데이터베이스 백업을 할 수 있는 여러 라이브러리들이 있습니다. 대표적으로 psycopg2pyodbc가 있으며, 사용중인 데이터베이스 종류에 따라 적합한 라이브러리를 설치해야 합니다. 예를 들어, PostgreSQL을 사용한다면 psycopg2를 설치하면 됩니다.

pip install psycopg2

2. 백업 스크립트 작성하기

이제 백업 스크립트를 작성해 보겠습니다. 아래는 PostgreSQL 데이터베이스를 백업하는 예시입니다.

import psycopg2
import datetime

def backup_database():
    connection = psycopg2.connect("dbname=mydatabase user=myuser password=mypassword")
    cursor = connection.cursor()
    
    # 현재 날짜로 파일명 생성
    now = datetime.datetime.now()
    backup_file = f"backup_{now.strftime('%Y%m%d_%H%M%S')}.sql"
    command = f"pg_dump mydatabase -f {backup_file}"
    
    # 백업 명령 실행
    cursor.execute(command)
    
    connection.commit()
    connection.close()
    
# 백업 스크립트 실행
backup_database()

위 코드에서는 psycopg2 라이브러리를 사용하여 PostgreSQL 데이터베이스에 연결하고, pg_dump 명령어를 사용하여 데이터베이스를 백업합니다. 백업 파일은 현재 날짜를 기반으로 생성되며, 지정된 장소에 저장됩니다.

3. 백업 주기 설정하기

마지막으로, 백업 스크립트를 주기적으로 실행하여 자동 백업을 수행하는 방법을 알아보겠습니다. 이를 위해 Python의 schedule 라이브러리를 사용할 수 있습니다.

import schedule
import time

# 매일 오후 10시에 백업 실행
schedule.every().day.at("22:00").do(backup_database)

while True:
    schedule.run_pending()
    time.sleep(1)

위 코드에서는 schedule 라이브러리를 사용하여 매일 오후 10시에 backup_database 함수를 실행합니다. while 루프를 통해 스케줄을 지속적으로 확인하고, 필요한 경우에만 스크립트가 실행됩니다.

결론

Python을 사용하여 데이터베이스의 백업 주기를 설정하는 방법에 대해 알아보았습니다. 이를 통해 데이터 손실을 방지하고 시스템 복구를 보장할 수 있습니다. 주기적인 백업은 데이터베이스 관리의 중요한 부분이므로, 신중하게 설정하고 관리해야 합니다.