SQL 데이터베이스 백업 및 복구 방법 (How to Backup and Restore SQL Databases)

데이터베이스는 웹 애플리케이션이나 서비스에서 중요한 역할을 한다. 데이터 손실을 막고 장애 상황에 대비하려면 정기적으로 데이터베이스를 백업하고 필요할 때 복구할 수 있어야 한다. 여기서는 PostgreSQL, MariaDB, Oracle SQL 데이터베이스의 백업과 복구 방법을 알아본다.

PostgreSQL 데이터베이스 백업 및 복구

PostgreSQL에서는 pg_dump 명령을 사용하여 데이터베이스를 백업할 수 있다. 다음은 mydb라는 데이터베이스를 백업하는 예시이다:

pg_dump -U username -F c -b -v -f mydb.backup mydb
  • -U username: 데이터베이스 사용자 이름을 지정한다.
  • -F c: 사용자 지정 백업 형식을 사용한다.
  • -b: 대용량 개체를 포함한다.
  • -v: 자세한 출력을 표시한다.
  • -f mydb.backup: 백업 파일 이름을 지정한다.

백업 파일에서 데이터베이스를 복구하려면 pg_restore 명령을 사용한다:

pg_restore -U username -d mydb -v mydb.backup
  • -d mydb: 복원할 데이터베이스 이름을 지정한다.

MariaDB 데이터베이스 백업 및 복구

MariaDB에서는 mysqldump 명령을 사용하여 데이터베이스를 백업할 수 있다:

mysqldump -u username -p mydb > mydb.sql
  • -u username: 데이터베이스 사용자 이름을 지정한다.
  • -p: 비밀번호를 입력하라는 프롬프트를 표시한다.
  • mydb: 백업할 데이터베이스 이름이다.
  • > mydb.sql: 백업 내용을 mydb.sql 파일로 리디렉션한다.

백업 파일에서 데이터베이스를 복구하려면 mysql 명령을 사용한다:

mysql -u username -p mydb < mydb.sql

Oracle SQL 데이터베이스 백업 및 복구

Oracle SQL에서는 exp 유틸리티를 사용하여 데이터베이스를 백업할 수 있다:

exp username/password@database_name file=mydb.dmp log=mydb.log full=y
  • username: 데이터베이스 사용자 이름을 지정한다.
  • password: 사용자 비밀번호를 지정한다.
  • database_name: 데이터베이스 이름을 지정한다.
  • file=mydb.dmp: 백업 파일 이름을 지정한다.
  • log=mydb.log: 로그 파일 이름을 지정한다.
  • full=y: 전체 데이터베이스를 백업한다.

백업 파일에서 데이터베이스를 복구하려면 imp 유틸리티를 사용한다:

imp username/password@database_name file=mydb.dmp log=mydb_import.log full=y

데이터베이스 백업 자동화

데이터베이스 백업을 자동화하려면 cron 같은 스케줄러를 사용할 수 있다. 예를 들어, 매일 자정에 PostgreSQL 백업을 실행하려면 다음 cron 항목을 추가한다:

0 0 * * * pg_dump -U username -F c -b -v -f /path/to/backup/mydb_$(date +\%Y\%m\%d).backup mydb

이 cron 항목은 날짜 형식을 사용하여 백업 파일 이름을 지정하므로 백업 파일이 덮어쓰이지 않는다.

데이터베이스 백업은 데이터 손실을 방지하고 장애 상황에 대비할 수 있는 중요한 작업이다. 이 글에서는 PostgreSQL, MariaDB, Oracle SQL에서 데이터베이스를 백업하고 복구하는 방법과 백업을 자동화하는 방법을 알아보았다.

Leave a Reply

error: Content is protected !!