2017-09-25 2 views
-1

몇 달 전 처음으로 PostgreSQL 데이터베이스를 설치했습니다. 설치 기본값을 모두 수용 했으므로 이제는 C : 드라이브가 제한. 데이터베이스 (즉, 데이터 파일)를 공간이 충분한 D : 드라이브로 마이그레이션하고 싶습니다.PostgreSQL 9.5.7의 Windows 10 설치를 큰 디스크로 마이그레이션하는 방법

주제에 몇 가지 스레드가 있지만 현재의 버전과 관련이없는 것으로 나타났습니다 (PostgreSQL 데이터베이스가 시작될 때 -D 매개 변수를 사용하여 데이터 파일이 전달되는 것이 좋습니다. 이것은 더 이상 경우)

될 것 같다 이것은 내가

  • 는 PostgreSQL의 프로세스에 대한 작업 관리자 ("PostgreSQL 서버"의 여러 인스턴스)

  • 를 검사하였습니다 지금까지 수행 한 단계입니다
  • 이 포스트 그레스를 종료 (시작 메뉴, PostgreSQL을, 정지 PostgreSQL의 9.5)

  • 는 것 같다 디렉토리를 복사 포스트 그레스 프로세스에 대한 작업 관리자

  • (중지 "PostgreSQL 서버"의 모든 인스턴스를) 검사 D : 드라이브에 모든 데이터 파일을 포함합니다 (즉, 복사 C : \ 포스트그레스 SQL \ 데이터 \ pg95에 D : \ 포스트그레스 SQL \ 데이터 \의 pg95)

  • 이 새 디렉토리에 대한 전체 액세스 권한을 준에 '네트워크 서비스'

  • 편집 C : \ 포스트그레스 SQL \ 데이터 \ pg95 \ postgresql.conf의이 '파일 위치'섹션

    data_directory = 'D:\PostgresSQL\data\pg95' 
    
    hba_file = 'C:\PostgreSQL\data\pg95\pg_hba.conf' 
    
    ident_file = ‘C:\PostgreSQL\data\pg95\pg_ident.conf' 
    
  • 재시작하는 포스트 그레스에서 다음과 같은 새로운 라인을 포함하는 (시작 메뉴, PostgreSQL을 시작 PostgreSQL의 9.5)

이 모든 결과는 작업 관리자를 확인한 후에 Postgres 프로세스의 흔적이 없다는 것입니다. 프로세스를 시작하려고 시도 할 때 오류의 흔적은 없습니다.

PostgreSQL을 큰 디스크로 마이그레이션하는 올바른 절차는 무엇입니까?

+0

Windows 서비스를 다시 만들었습니까? 데이터 디렉토리 ('-D' 옵션)의 위치는 매개 변수로 서비스에 전달되므로이를 변경해야합니다. –

+0

내 서비스의 '실행 파일 경로'는 C : \ PostgreSQL \ pg95 \ pgservice.exe입니다. // RS // PostgreSQL 9.5 Server "데이터 디렉토리 ('-D'옵션) "C : \ Program Files \ PostgreSQL \ 9.5 \ bin \ pg_ctl.exe"runservice -N "postgresql-x64-9.5"-D "C : \ Program Files \ PostgreSQL 다음 명령으로 서비스를 시작해야한다고 제안하십시오. \ 9.5 \ data "이것은 내 서비스와 너무 다르므로 더 이상 적용되지 않는다고 가정합니다. – Hemel

+0

잘'-D "C : \ Program Files \ PostgreSQL \ 9.5 \ data는'-D '이어야합니다. D : \ PostgresSQL \ data \ pg95'' –

답변

0

좋아, 나는 내 자신의 질문에 대답 할 수 있었다고 생각한다.

는 첫째, 내 '데이터 디렉토리는'그것이 윈도우 설치에도 불구하고, 둘째

D:\PostgreSQL\data\pg95. 

있어

D:\PostgreSQL\data 

아니라, PostgreSQL의이 경로에 슬래시를 볼 것으로 예상 것 같다, 그래서 항목 postgresql.conf에 백 슬래시가 아닌 슬래시가 있어야합니다.

PostgreSQL 서비스는 다음 명령 (시작 메뉴 -> P)으로 시작됩니다 (기본 설정). ostgreSQL-> PostgreSQL 9.5를 시작하십시오.)

C:\WINDOWS\system32\sc.exe start "PostgreSQL 9.5 Server" 

다른 데이터 파일 위치로 작업하려면 다음과 같이 변경하십시오.

C:\WINDOWS\system32\sc.exe start "PostgreSQL 9.5 Server" -D "D:/PostgreSQL/data/pg95" 

그런 다음 postgreSQL을 다시 시작하고 데이터베이스에 액세스 할 수있었습니다. 데이터 파일의 (드라이브 D)이 아닌 원래의

정말 새로운 사본을 액세스하는 것을 자신에게 증명하기 위해 (C : 드라이브) 버전 나는

c:\PostgresSQL\data\pg95\base to c:\PostgresSQL\data\pg95\baseXXX 

지금까지 작동하는 것 같다 이름!

+0

yoju는 해당 파일이 위치한 곳의 postgresql.conf에 데이터 디렉토리를 지정할 필요가 없습니다. 데이터 디렉토리. 이 경우 Postgres를 시작할 때 위치를 전달하는 것으로 충분합니다. –

관련 문제