암은 몸은 그 작업을 수행하는 방법을 말해 줄 수 n은 WAL 바이너리 파일방법의 PostgreSQL WAL 파일을 읽으려고
답변
월마트 파일에 사용되는 바이너리 인코딩의 유형 실제 데이터베이스 파일 자체와 동일한 형식이며 사용중인 PostgreSQL의 정확한 버전에 따라 다릅니다. 정확한 형식을 결정하려면 특정 버전의 소스 코드를 검사해야 할 것입니다.
정말 그렇게 할 수 없습니다. WAL 아카이브에서 바이트를 읽는 것은 쉽지만, 의 의미를 만들려는 것 같습니다.. 당신은 그것으로 고투 할 것입니다.
WAL 아카이브는 데이터베이스에서 변경된 블록을 보여주는 바이너리 로그입니다. SQL 수준 또는 행 수준 변경 로그가 아니므로 변경된 행 목록을 가져올 수는 없습니다.
트리거 기반 복제 또는 감사 트리거를 조사하는 것이 좋습니다.
다른 답변과 마찬가지로 형식이 복잡하고 수준이 낮습니다. xlogdump
일반적인 방법에 : 당신이 배우고 저장된 데이터를 이해하고 소스로부터 바이너리를 빌드하는 방법을 알 수있는 시간이있는 경우
그러나, 버전 게시 된 독자 8.3
9.2
에있다 그것과 같다 빌드 있는 contrib (포스트 그레스 부가) :
- 먼저 당신이 WAL 데이터를 보려는 포스트 그레스의 버전에 대한 소스를 얻을.
./configure
및make
이 있지만 필요가 그런 xlogdump를 위해 (해당 폴더의 자식 클론이 잘 작동)을 있는 contrib 폴더에- 실행
make
을 xlogdump 폴더를 복사
- 를 설치하지 않으려면 - 그것을 부모 postgres 구조를 찾고 바이너리를 빌드해야합니다.
바이너리를 경로에 복사하거나 그 위치에서 사용할 수 있습니다. 주의해야 할 점은 Postgres에 대한 내부 지식이 여전히 많이 필요하다는 것입니다. 데이터베이스를 사용할 수있는 경우 은이며 로그에서 SQL 문을 취소 할 수 있습니다.
자바에서이를 수행하려면 실행 파일을 포장 수 중, 하이브리드로 C 라이브러리를 연결하거나 소스에서 필요한 구문 분석을 수행하는 방법을 알아낼. 이러한 옵션 중 많은 부분이 많은 세부 작업이 필요합니다. WAL 파일을 읽을 수pg_xlogdump
를 사용
는
(이있는 contrib 프로그램은 PG 9.3 버전 추가 - PG 9.3 released doc를)
이 유틸리티 만이 필요하기 때문에 서버, 을 설치 한 사용자 읽기 전용 액세스를 실행할 수 있습니다 데이터 디렉토리.예를 들어
pg_xlogdump --help
pg_xlogdump decodes and displays PostgreSQL transaction logs for debugging.
Usage:
pg_xlogdump [OPTION]... [STARTSEG [ENDSEG]]
Options:
-b, --bkp-details output detailed information about backup blocks
-e, --end=RECPTR stop reading at log position RECPTR
-f, --follow keep retrying after reaching end of WAL
-n, --limit=N number of records to display
-p, --path=PATH directory in which to find log segment files
(default: ./pg_xlog)
-r, --rmgr=RMGR only show records generated by resource manager RMGR
use --rmgr=list to list valid resource manager names
-s, --start=RECPTR start reading at log position RECPTR
-t, --timeline=TLI timeline from which to read log records
(default: 1 or the value used in STARTSEG)
-V, --version output version information, then exit
-x, --xid=XID only show records with TransactionId XID
-z, --stats[=record] show statistics instead of records
(optionally, show per-record statistics)
-?, --help show this help, then exit
: pg_xlogdump 000000010000005A00000096
- 1. Windows에서 Postgresql WAL
- 2. WAL 파일을 삭제 한 후에 PostgreSQL 핫 스탠바이가 시작되지 않습니다.
- 3. PostgreSQL 레코드 버전 제어에 WAL 파일을 사용 하시겠습니까?
- 4. 파일을 읽으려고 시도합니다.
- 5. 텍스트 파일을 읽으려고 시도합니다.
- 6. 우분투 패키지와 소스 WAL 파일 호환성에서 컴파일 된 PostgreSQL
- 7. 텍스트 파일을 JTextArea로 읽으려고 시도했습니다.
- 8. 이 파일을 줄을 읽으려고 bash는
- 9. sdCard의 파일을 변수로 읽으려고 시도합니다.
- 10. EC2의 PostgreSQL 용 EBS 스냅 샷 대 WAL-E
- 11. 최소 출력 파일을 사용하는 PostgreSQL 백업
- 12. Objective-C에서 RTF 파일을 읽으려고 시도합니다.
- 13. 내 프로그램에서 Java로 파일을 읽으려고 시도했습니다.
- 14. 디렉토리에서 PHP 스크립트로 파일을 읽으려고 시도합니다.
- 15. 스캐너 클래스로 .java 파일을 읽으려고 시도합니다.
- 16. res 폴더에 저장된 PDF 파일을 읽으려고 시도합니다
- 17. Java에서 전체 XML 파일을 String으로 읽으려고 시도합니다.
- 18. 이미지 파일을 fileUpload로 서버에로드하고 읽으려고 시도합니다.
- 19. NoClassDefFoundError를 PDF로 코드를 파일을 읽으려고 PDF 파일
- 20. 문제 때 아래처럼 보이는 Excel 파일을 읽으려고
- 21. 다음 클래스를 통해 텍스트 파일을 읽으려고 시도
- 22. 파이썬 : 제대로 팬더를 통해 CSV 파일을 읽으려고
- 23. sqlite는 WAL 모드에서 SQLITE_BUSY를 반환합니다.
- 24. VACUUM 데이터베이스와 WAL 모드
- 25. SQLite WAL 성능 향상
- 26. WAL 시퀀스 번호 무한대?
- 27. HBase의 WAL 파일
- 28. pg_LSN을 wAL postgresql로 변환
- 29. PostgreSQL 백업
- 30. 트랜잭션 중에 WAL 파일을 체크 포인트 할 수 있습니까?
당신은 내가 그 WAL 기록 파일을 읽는 자바 코드를 시도 해당 버전에 대한 인코딩 될 것입니다 무엇을 말해 줄 수 9.1.6를 사용하고 있습니다 하지만 어떤 의미가 있어도 아무런 의미가 없습니다. – user1802481
실제 PostgreSQL 인코딩에 대해 구체적으로 알지는 못합니다. 너 스스로 조사해야 해. –
@ user1802481 wal 파일은 공식적인 사양이없는 postgresql 내부 형식입니다. postgresql 코드에서 형식에 대한 규격을 작성하는 것은 수십, 아마도 수백 페이지가 될 것이고, 오히려 stackoverflow의 응답 범위를 벗어납니다. – nos