database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9732 게시물 읽기
No. 9732
DB 복구 관련 문의
작성자
오진홍(gry1227)
작성일
2016-11-15 15:24
조회수
7,694

gitlab 설치 버전을 깔아 운영중에 HDD에 읽기 오류가 생겼습니다.

다른 파일들은 없어져도 상관이 없는데,  

postgresql/data/base/16385/18128 파일에 접근이 안되 gitlab이 정상적으로 동작하고 있지 않고 있습니다.

파일 위치상으론 postgresql의 데이터 파일 하나가 접근이 안되는것 같습니다.

ActiveRecord::StatementInvalid (PG::IoError: ERROR:  could not read block 0 in file "base/16385/18128": Input/output error

: INSERT INTO "audit_events" ("type", "author_id", "entity_id", "entity_type", "details", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING "id"):

  config/initializers/ar_monkey_patch.rb:12:in `_create_record'

  app/services/audit_event_service.rb:18:in `security_event'

  app/controllers/sessions_controller.rb:114:in `log_audit_event'

  app/controllers/sessions_controller.rb:34:in `block in create'

  app/controllers/sessions_controller.rb:28:in `create'

  lib/gitlab/request_profiler/middleware.rb:15:in `call'

  lib/gitlab/middleware/go.rb:16:in `call'

HDD는 복구가 안될것 같아 보입니다.

 혹시  이와 같은 경우,  DB를 복구할 수 있는 다른 방법이 있을런지요?

 

 

이 글에 대한 댓글이 총 1건 있습니다.

기본적으로 이런 경우는 백업해 둔 것이 있으면 그걸 쓰세요 하는 것이 정답입니다.

 

다음은 응급 복구입니다.

서버 중지

데이터 클러스터 파일 모두 I/O가 정상적인 곳으로 복사

복사 안되는 파일들은 0 byte로 만들고,

새 클러스터 기반으로 서버 실행

문제의 테이블을 vacuum full, reindex 해서, 빈 테이블로 다시 시작하는 방법이 있을 것 같습니다.

 

이게 아니라, 어떻게든 해당 테이블의 자료를 살려야 하는 입장이면,

해당 파일을 OS 차원에서 어떻게든 읽어야 합니다. 다 읽을 수 있음도 불구하고, 해당 페이지를 못 읽는다면,

8192 byte 씩 짤라서 못 읽는 페이지를 버리고 읽는 페이지만 으로 다시 파일을 구성하고, vacuum full, reindex 작업 후 사용하면 될 듯합니다. (이때는 삽질이 필요합니다.)

이런 식으로 복구 되면 해당 테이블과 관계된 다른 자료들의 정합성이 다 틀어져버립니다.

권장하지 않습니다.

김상기(ioseph)님이 2016-11-15 18:15에 작성한 댓글입니다.
이 댓글은 2016-11-15 18:17에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
9736passwordcheck 라이브러리 활용법 [2]
축구소년
2016-11-24
7768
9735PRIMARY KEY 장애 [4]
필이
2016-11-23
7729
9733postgresql 8.3.7 서버에 접속 관련 문의 [1]
탁구공
2016-11-18
7868
9732DB 복구 관련 문의 [1]
오진홍
2016-11-15
7694
9730Active-Hot_standby 구성 시 select 쿼리 처리 [2]
김성수
2016-11-10
7793
9729함수 일괄삭제 쿼리 [1]
slonik
2016-11-08
8009
9728Postgres 설정 관련 [1]
이용하
2016-11-04
8970
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다