복붙노트

[SQL] 어떻게 PostgreSQL의에서 (설치) DBLINK를 사용 하는가?

SQL

어떻게 PostgreSQL의에서 (설치) DBLINK를 사용 하는가?

나는 오라클에 내 스키마에 DBLINK를 만드는 데 사용하고 다음과 같은 원격 데이터베이스에 액세스 : MYTABLE @의 myremotedb이있다 어쨌든 PostgreSQL을 함께 동일하게합니까?

지금은이 같은 DBLINK를 사용하고 있습니다 :

SELECT logindate FROM dblink('host=dev.toto.com
                              user=toto
                              password=isok
                              dbname=totofamily', 'SELECT logindate FROM loginlog');

내가이 명령을 실행하면 나는 다음과 같은 오류가 발생합니다 :

누구는 아이디어가 있습니까? 우리는 "활성화"dblinks로하거나 사용하기 전에 뭔가를해야합니까?

우리가 쿼리에 가고있는 원격 데이터베이스에 할 수있는 뭔가가 있나요? 우리는 너무 DBLINK 활성화해야합니까? 나는이 연결을 설정할 수 없습니다 가진 계속. 이 라인 유형입니다 :

SELECT dblink_connect_u('host=x.x.x.x dbname=mydb user=root port=5432');

IP 주소는 정확하고 포스트 그레스는 원격 서버에서 실행되고 있습니다. 어떤 생각?

해결법

  1. ==============================

    1.PostgreSQL를 9.1 이상에서, 추가 모듈의 설치는 간략화되었다. (DBLINK 포함) 등록 된 확장은 CREATE EXTENSION을 설치할 수 있습니다 :

    PostgreSQL를 9.1 이상에서, 추가 모듈의 설치는 간략화되었다. (DBLINK 포함) 등록 된 확장은 CREATE EXTENSION을 설치할 수 있습니다 :

    CREATE EXTENSION dblink;
    

    기본 스키마에 설치 횟수 (기본적으로 공공). 있는지 확인 search_path의이 명령을 실행하기 전에 적절하게 설정 스키마는 그것으로 일해야하는 모든 사용자가 볼 수 있습니다.

    양자 택일로, 당신은 귀하의 선택의 어떤 스키마에 설치할 수 있습니다 :

    CREATE EXTENSION dblink SCHEMA extensions;
    

    보다:

    데이터베이스에 한 번 실행합니다. 또는마다 자동으로 새로 만든 DB에 추가 표준 시스템 데이터베이스 template1에서 실행합니다. 매뉴얼의 세부 사항.

    먼저 서버에 설치된 모듈을 제공하는 파일이 필요합니다. 분명히, PostgreSQL의 9.1 - 데비안 및 파생 상품의 경우이 패키지 PostgreSQL을-있는 contrib-9.1 것입니다.

  2. ==============================

    2.나는 간 데이터베이스 쿼리에 대한 내부 데이터베이스를 연결하는 DBLINK를 사용하고 있습니다.

    나는 간 데이터베이스 쿼리에 대한 내부 데이터베이스를 연결하는 DBLINK를 사용하고 있습니다.

    참고이 문서에서 가져옵니다.

    DBLINK 확장을 설치합니다.

    CREATE EXTENSION dblink;
    

    DBLINK를 확인합니다 :

    SELECT pg_namespace.nspname, pg_proc.proname 
    FROM pg_proc, pg_namespace 
    WHERE pg_proc.pronamespace=pg_namespace.oid 
       AND pg_proc.proname LIKE '%dblink%';
    

    데이터베이스의 연결 테스트 :

    SELECT dblink_connect('host=localhost user=postgres password=enjoy dbname=postgres');
    
  3. ==============================

    3.리눅스에서 dblink.sql 찾기, 모든 필요한 기능을 만들려면이 같은 PostgreSQL의 콘솔 뭔가를 실행합니다

    리눅스에서 dblink.sql 찾기, 모든 필요한 기능을 만들려면이 같은 PostgreSQL의 콘솔 뭔가를 실행합니다

    \i /usr/share/postgresql/8.4/contrib/dblink.sql 
    

    당신은있는 contrib 패키지를 설치해야 할 수도 있습니다 : apt-get을 설치 PostgreSQL을-있는 contrib을 SUDO

  4. ==============================

    4.모듈을 설치하면 일반적으로 데이터베이스 설치에 포함 된 SQL 스크립트를 실행해야합니다.

    모듈을 설치하면 일반적으로 데이터베이스 설치에 포함 된 SQL 스크립트를 실행해야합니다.

    OS 리눅스처럼 가정

    find / -name dblink.sql
    

    위치를 확인하고 실행

  5. ==============================

    5.그것은 사용하여 추가 할 수 있습니다 :

    그것은 사용하여 추가 할 수 있습니다 :

    $psql -d databaseName -c "CREATE EXTENSION dblink"
    
  6. ==============================

    6.

    # or even faster copy paste answer if you have sudo on the host 
    sudo su - postgres  -c "psql template1 -c 'CREATE EXTENSION IF NOT EXISTS \"dblink\";'"
    
  7. from https://stackoverflow.com/questions/3862648/how-to-use-install-dblink-in-postgresql by cc-by-sa and MIT license