본 고 에서 실현 하고 자 하 는 목표 1, PostgreSQL 정시 완비 2, 정시 삭제 압축 파일 WAL 파일 3, 정시 삭제 완비 파일 4, n 일 전 데이터베이스 로그 파일 실험 환경 운영 체제: RHEL 6.3 데이터베이스: PostgreSQL Plus Advanced Server 9.2.1.3 스 크 립 트 를 실행 할 때 스 크 립 트 에 데이터베이스 소유자 비밀 번 호 를 입력 하지 않도록 준비 합 니 다.루트 사용자 의 집 디 렉 터 리 에. pgpass 파일 을 설정 합 니 다 [root@s8 ~]# touch .pgpass[root@s8~] \ vim. pgpass ~ /. pgpass: 127.0.1: 5444: edb: enerprisedb: 000000 pgpass 파일 형식: hostname: port: database: username: password 이 파일 의 권한 에 주의해 야 합 니 다: [root@s8~] \ # chmod 0600 ~ /. pgpass 1, 압축 파일 디 렉 터 리 와 백업 디 렉 터 리 만 들 기 [root@s8 ~]# mkdir /mnt/archivedir[root@s8 ~]# chown enterprisedb.enterprisedb /mnt/archivedir[root@s8 ~]# mkdir /mnt/edb_backup[root@s8 ~]# chown enterprisedb.enterprisedb /mnt/edb_backup 중: archivedir 는 압축 파일 디 렉 터 리, eb백업 은 전체 디 렉 터 리 입 니 다.2. 설정 파일 수정 postgresql. conf [root@s8 ~]# vim /opt/PostgresPlus/9.2AS/data/postgresql.confpostgresql.conf:wal_level = archive archive_mode = onarchive_command = 'cp -i %p /mnt/archivedir/%f < /dev/null'[root@s8 ~]# /etc/init.d/ppas-9.2 reload[root@s8~] \ # / etc / init. d / ppas - 9.2 restart 3, backup 1 회 실행check. sh 스 크 립 트 backupcheck. sh 의 내용: 실행 이 끝 난 후에 백업 디 렉 터 리 에 data 디 렉 터 리 와 준비 해 야 할 내용 이 있 음 을 볼 수 있 습 니 다.4. 테스트 데 이 터 를 삽입 하고 삽입 시간 edb = \ # insert into my test values (55) 를 기록 합 니 다.SELECT CURRENT_TIMESTAMP(0);2013-07-16 20:50:56-04edb=# insert into mytest values(58); SELECT CURRENT_TIMESTAMP(0);2013-07-16 20:51:18-04edb=# insert into mytest values(510); SELECT CURRENT_TIMESTAMP(0);2013-07-16 20:51:44-04edb=# insert into mytest values(530); SELECT CURRENT_TIMESTAMP(0);2013 - 07 - 16 20: 52: 40 - 04 5. backup. sh 스 크 립 트 를 한 번 더 실행 한 후 백업 디 렉 터 리 를 검사 합 니 다. 6. 아 날로 그 데이터 손실 [root@s8 ~]# /etc/init.d/ppas-9.2 stop[root@s8 ~]# mv /opt/PostgresPlus/9.2AS/data /opt/PostgresPlus/9.2AS/data_bak 7 、 회복 [root@s8 ~]# cp -rp /mnt/edb_backup/dbbak_2013-07-16_07-37-08/dbs/data /opt/PostgresPlus/9.2AS/[root@s8 ~]# mkdir /opt/PostgresPlus/9.2AS/data/pg_xlog[root@s8 ~]# cp /opt/PostgresPlus/9.2AS/share/recovery.conf.sample /opt/PostgresPlus/9.2AS/data/recovery.conf[root@s8~] \ # vim / opt / postgres Plus / 9.2as / data / recovery. confrecovery. conf 파일 의 내용: restorecommand = 'cp /mnt/archivedir/%f %p'recovery_target_time = '2013 - 07 - 16 07: 37: 00' 회 복 된 시점 을 정의 하지 않 으 면 recoverytarget_time 의 값 은 가장 가 까 운 시간 으로 회 복 됩 니 다.또한 enerprisedb 사용자 가 pg 인지 주의해 야 합 니 다.xlog 의 소유자 [root@s8 ~]# chown enterprisedb.enterprisedb /opt/PostgresPlus/9.2AS/data/pg_xlog/[root@s8~] \ # chown enterprisedb. enterprisedb / opt / postgres Plus / 9.2as / data / recovery. conf 를 시작 한 후 데이터베이스 서 비 스 를 시작 하여 복구 에 성공 하 였 습 니 다.8. 계획 작업 을 설정 하고 실행 하 는 것 은 / etc / cron. daily / 파일 만 들 기 [root@s8 edb_backup]# touch /etc/cron.daily/delaheadlog.cron[root@s8edb backup] \ # vim / etc / cron. daily / delahedlog. cron 이 여기 있 습 니 다. crontab - e 로 편집 할 수 있 습 니 다. crontab 의 단위: 시간 대별 주 delahedlog. cron 의 내용: