OS환경 : Oracle Linux 7.6 (64bit)
DB 환경 : PostgreSQL 10, PostGIS 2.5.3
에러 : oracle_utils.c:22:17: fatal error: oci.h: No such file or directory
oracle_fdw extension 을 위해 make 작업 중 해당 에러 발생
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # tar -xvf oracle_fdw-ORACLE_FDW_2_1_0.tar.gz # cd oracle_fdw-ORACLE_FDW_2_1_0/ # make gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -I/sdk/include -I/oci/include -I/rdbms/public -I/usr/include/oracle/12.2/client -I/usr/include/oracle/12.2/client64 -I/usr/include/oracle/12.1/client -I/usr/include/oracle/12.1/client64 -I/usr/include/oracle/11.2/client -I/usr/include/oracle/11.2/client64 -I/usr/include/oracle/11.1/client -I/usr/include/oracle/11.1/client64 -I/usr/include/oracle/10.2.0.5/client -I/usr/include/oracle/10.2.0.5/client64 -I/usr/include/oracle/10.2.0.4/client -I/usr/include/oracle/10.2.0.4/client64 -I/usr/include/oracle/10.2.0.3/client -I/usr/include/oracle/10.2.0.3/client64 -I. -I./ -I/usr/pgsql-10/include/server -I/usr/pgsql-10/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o oracle_utils.o oracle_utils.c oracle_utils.c:22:17: fatal error: oci.h: No such file or directory #include <oci.h> ^ compilation terminated. |
해결 방법 : LD_LIBRARY_PATH와 ORACLE_HOME을 설정해준다.
오라클 클라이언트가 설치되어 있어야 가능한데
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
이렇게 basic 버전와 sdk 버전이 같이 압축해제되어 있어야함
압축을 푼 경로가 /root/instantclient_11_2 라고 한다면
root 계정의 .bash_profile 에 아래와 같이 적어줘야함
1 2 3 4 | # cd # vi .bash_profile export LD_LIBRARY_PATH=/home/postgres/package/instantclient_11_2 export ORACLE_HOME=/root/instantclient_11_2 |
.bash_profile에 해당 내용 넣어준 뒤 make clean 후 다시 make 실행
1 2 3 4 5 6 7 8 9 | # cd oracle_fdw-ORACLE_FDW_2_1_0/ # make clean rm -f oracle_fdw.so liboracle_fdw.a liboracle_fdw.pc rm -f oracle_fdw.o oracle_utils.o oracle_gis.o rm -rf results/ regression.diffs regression.out tmp_check/ tmp_check_iso/ log/ output_iso/ # make gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -I/root/instantclient_11_2/sdk/include -I/root/instantclient_11_2/oci/include -I/root/instantclient_11_2/rdbms/public -I/usr/include/oracle/12.2/client -I/usr/include/oracle/12.2/client64 -I/usr/include/oracle/12.1/client -I/usr/include/oracle/12.1/client64 -I/usr/include/oracle/11.2/client -I/usr/include/oracle/11.2/client64 -I/usr/include/oracle/11.1/client -I/usr/include/oracle/11.1/client64 -I/usr/include/oracle/10.2.0.5/client -I/usr/include/oracle/10.2.0.5/client64 -I/usr/include/oracle/10.2.0.4/client -I/usr/include/oracle/10.2.0.4/client64 -I/usr/include/oracle/10.2.0.3/client -I/usr/include/oracle/10.2.0.3/client64 -I. -I./ -I/usr/pgsql-10/include/server -I/usr/pgsql-10/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o oracle_utils.o oracle_utils.c gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -I/root/instantclient_11_2/sdk/include -I/root/instantclient_11_2/oci/include -I/root/instantclient_11_2/rdbms/public -I/usr/include/oracle/12.2/client -I/usr/include/oracle/12.2/client64 -I/usr/include/oracle/12.1/client -I/usr/include/oracle/12.1/client64 -I/usr/include/oracle/11.2/client -I/usr/include/oracle/11.2/client64 -I/usr/include/oracle/11.1/client -I/usr/include/oracle/11.1/client64 -I/usr/include/oracle/10.2.0.5/client -I/usr/include/oracle/10.2.0.5/client64 -I/usr/include/oracle/10.2.0.4/client -I/usr/include/oracle/10.2.0.4/client64 -I/usr/include/oracle/10.2.0.3/client -I/usr/include/oracle/10.2.0.3/client64 -I. -I./ -I/usr/pgsql-10/include/server -I/usr/pgsql-10/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o oracle_gis.o oracle_gis.c gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -shared -o oracle_fdw.so oracle_fdw.o oracle_utils.o oracle_gis.o -L/usr/pgsql-10/lib -Wl,--as-needed -L/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/usr/pgsql-10/lib',--enable-new-dtags -L/root/instantclient_11_2 -L/root/instantclient_11_2/bin -L/root/instantclient_11_2/lib -lclntsh -L/usr/lib/oracle/12.2/client/lib -L/usr/lib/oracle/12.2/client64/lib -L/usr/lib/oracle/12.1/client/lib -L/usr/lib/oracle/12.1/client64/lib -L/usr/lib/oracle/11.2/client/lib -L/usr/lib/oracle/11.2/client64/lib -L/usr/lib/oracle/11.1/client/lib -L/usr/lib/oracle/11.1/client64/lib -L/usr/lib/oracle/10.2.0.5/client/lib -L/usr/lib/oracle/10.2.0.5/client64/lib -L/usr/lib/oracle/10.2.0.4/client/lib -L/usr/lib/oracle/10.2.0.4/client64/lib -L/usr/lib/oracle/10.2.0.3/client/lib -L/usr/lib/oracle/10.2.0.3/client64/lib |
make 후 make install
1 2 3 4 5 6 7 8 9 | # make install /bin/mkdir -p '/usr/pgsql-10/lib' /bin/mkdir -p '/usr/pgsql-10/share/extension' /bin/mkdir -p '/usr/pgsql-10/share/extension' /bin/mkdir -p '/usr/pgsql-10/doc/extension' /bin/install -c -m 755 oracle_fdw.so '/usr/pgsql-10/lib/oracle_fdw.so' /bin/install -c -m 644 .//oracle_fdw.control '/usr/pgsql-10/share/extension/' /bin/install -c -m 644 .//oracle_fdw--1.1.sql .//oracle_fdw--1.0--1.1.sql '/usr/pgsql-10/share/extension/' /bin/install -c -m 644 .//README.oracle_fdw '/usr/pgsql-10/doc/extension/' |
정상적으로 실행됨
postgre 접속 후 extension 생성
1 2 3 4 5 6 | $ psql psql (10.10) Type "help" for help. post=# create extension oracle_fdw; CREATE EXTENSION |
정상적으로 생성됨
원인 : LD_LIBRARY_PATH와 ORACLE_HOME이 지정되어 있지 않아서 발생한 문제
'PostgreSQL > Admin' 카테고리의 다른 글
PostgreSQL 10 유저 Password_encryption 변경 (0) | 2020.02.24 |
---|---|
PostgreSQL 10, oracle fdw extension 으로 오라클 DB와 연결(dblink) 정리 (0) | 2019.11.27 |
linux7.6에 PostgreSQL 10 + PG-Strom 2.2 GPU 사용 테스트 (0) | 2019.11.20 |
PostgreSQL 10 유저 superuser 권한, 롤 부여 (0) | 2019.11.04 |
PostgreSQL 10 pg_dump 사용 테스트(40GB) (0) | 2019.10.30 |