카테고리 없음

Linux기반 ArcGIS 10.8.x와 PostgreSQL + PostGIS 설정

JROSS 2022. 3. 22. 17:36
반응형

- 조건 : ArcGIS Desktop 10.8.0 + PostgreSQL 11.x + PostGIS 30_11

- 기반 : CentOS 7

* ArcGIS 버전에 대한 System Requirement를 숙지하여 각 단위 S/W에 맞는 버전 설치

 

 

> PostgreSQL 설치

※ Network 활성화 : yum 명령어를 통해 설치파일을 다운로드해야 함으로 OS 초기 설치시 Network가 비활성화 되는 경우 존재함.

$ifup /etc/sysconfig/network-scripts/ifcfg-ens33

 

- PostgreSQL 다운로드 및 설치

PostgreSQL 홈페이지의 다운로드 화면

위 화면과 같이 PostgreSQL 홈페이지의 다운로드 화면에서 제공하는 스크립트를 Linux에서 실행하기.

 

$sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

$sudo yum install -y postgresql11-server postgresql11-contrib

$sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

 

- PostgreSQL 설정

: 설정파일 수정

$su - root

$vi /var/lib/pgsql/11/data/pg_hba.conf

 

다음과 같이 변경값으로 편집

원본 변경
local all all peer local all all md5
host all all 127.0.0.1/32 ident host all all 0.0.0.0/0 md5
host all all ::1/128 ident host all all ::1/128 md5

변경 설정 적용을 위한 재시작

$systemctl start postgresql-11

$systemctl enable postgresql-11

$systemctl status postgresql-11

 

: postgres 암호 변경 (root 로 실행)

$su - postgres -c psql

#ALTER USER postgres PASSWORD '비밀번호';

생성된 database 확인

#select datname from pg_database;

 

 

> Linux 방화벽 설정(port 5432)

$firewall-cmd --permanent --zone=public --add-port=5432/tcp 
$firewall-cmd --permanent --zone=trusted --add-source={Client IP address}/32
$firewall-cmd --permanent --zone=trusted --add-port=5432/tcp

$firewall-cmd --reload

 

 

> PostGIS 3.0 설치

: 설치 가능 버전 조회

$yum search [검색어]
$yum list | grep [패키지 이름] | more

 

: postgis 설치

$yum install epel-release

$yum install postgis30_11.x86_64

 

 

> ArcGIS 설정

- st_geometry 라이브러리 파일 붙여넣기

 : \ArcGIS 설치폴더\DatabaseSupport\PostgreSQL\운영체제\st_geometry.so

$cp st_geometry.so /usr/pgsql-11/lib/

 

 

> Client PC에 pgAdmin 설치

 : 콘솔 명령어가 익숙치 않기도 하고 원격관리를 위해 Client PC에 pgAdmin 설치 (pgAdmin 홈페이지에서 다운로드 후 설치)

- pgAdmin에서 postgres 계정으로 Login
: sde, GIS 사용자 계정 생성 + 권한 [Login, SuperUser] 부여
: GIS 사용할 Database 생성 + sde 소유자 부여

- pgAdmin에서 생성된 GIS Database을 위한 sde 계정으로 Login
: "create extension postgis;" 질의문 실행
: "select postgis_version();" 으로 확인

 

 

> ArcCatalog를 통한 설정

- 도구 中 'Create Enterprise Geodatabase'를 통해 공간DB 생성
 : Instance는 PostgreSQL 서버 ip, postgres 암호, sde 암호 필수 입력
 : keycodes 파일 위치 = ArcGIS Server의 "C:\Program Files\ESRI\License버전\sysgen" 에서 불러오기.
 : pgAdmin의 Database > * > Schema에 'sde' 항목이 생성됨.

 

- Database Connection 후 Administration > Add User

: Database Connections 항목을 통해 PostgreSQL에 sde 계정으로 접속
: 마우스 오른쪽 'Create Database User' 로 생성된 GIS DB 사용자 계정 정보 입력 및 실행
: 생성된 Database > Schema에 GIS DB 사용자 명칭으로 생성됨 확인

 

- 관리자 권한 cmd에서 파이선 실행

: 첨부파일 참조

create_database_user.py
0.01MB

: create_database_user.py --DBMS POSTGRESQL -i PostgreSQL_ip -D GIS_DB_명칭 -U postgres -P {postgres 암호} --utype DATABASE_USER -u {사용자 ID} -p {사용자 암호}

 

 

> 생성된 사용자에게 권한 부여

- pgAdmin에서 sde 계정으로 Login

: "GRANT USAGE ON SCHEMA {GIS DB 사용자 이름} TO PUBLIC;" 실행
: "GRANT SELECT, INSERT, UPDATE, DELETE ON public.Geometry_columns TO {사용자 이름};" 실행

 

 

> PostgreSQL 재시작 및 점검

- ArcCatalog > Database Connections를 통해 GIS File/Data의 Import
: GIS DB 사용자에 대한 Table에 GIS Data가 Import 되었는지 확인

 

 

 

p.s 상기 내용은 ESRI의 기술문서, Trouble Shooting 등에 관련한 내용 등을 참고하여 종합하였습니다.

    중복되는 절차 등이 존재하는 것 같으나, 여러번의 삽질 끝에 정상적으로 구동됨을 확인하며 기록하였습니다.

반응형