Development Tip

PostgreSQL에서 dblink를 사용 (설치)하는 방법은 무엇입니까?

yourdevel 2021. 1. 5. 19:38
반응형

PostgreSQL에서 dblink를 사용 (설치)하는 방법은 무엇입니까?


나는 Oracle에 익숙하고 내 스키마에 dblink를 만든 다음 다음과 같이 원격 데이터베이스에 액세스하는 데 익숙합니다. mytable@myremotedb, 어쨌든 PostgreSQL에서 똑같이 할 수 있습니까?

지금은 다음과 같이 dblink를 사용하고 있습니다.

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

이 명령을 실행하면 다음 오류가 발생합니다.

힌트 : 주어진 이름 및 인수 유형과 일치하는 함수가 없습니다. 명시 적 유형 캐스트를 추가해야 할 수 있습니다.

아무도 아이디어가 있습니까? dblink를 "활성화"해야합니까, 아니면 사용하기 전에 무언가를해야합니까?

쿼리 할 원격 데이터베이스에서 수행 할 작업이 있습니까? dblink도 활성화해야합니까? 나는 계속 could not establish connection. 이것은 라인 유형입니다.

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

IP 주소가 정확하고 Postgres가 원격 서버에서 실행 중입니다. 어떤 생각?


함께 PostgreSQL를 9.1 이상 , 추가 모듈의 설치는 간략화되었다. 등록 된 확장 (dblink 포함) 은 다음을 사용하여 설치할 수 있습니다 CREATE EXTENSION.

CREATE EXTENSION dblink;

기본 스키마에 설치합니다 ( public기본적으로). search_path명령을 실행하기 전에 올바르게 설정되어 있고 스키마가 작업해야하는 모든 사용자에게 표시 되는지 확인하십시오 .

또는 다음을 사용하여 원하는 스키마에 설치할 수 있습니다.

CREATE EXTENSION dblink SCHEMA extensions;

보다:

데이터베이스 당 한 번 실행합니다. 또는 표준 시스템 데이터베이스에서 실행하여 새로 생성 된 모든 DB에 자동으로 template1추가합니다 . 설명서의 세부 사항.

먼저 모듈을 제공하는 파일이 서버에 설치되어 있어야합니다. Debian 및 파생 제품의 경우 PostgreSQL 9.1의 경우 postgresql-contrib-9.1 패키지가 될 것 입니다.


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');

Linux에서 dblink.sql을 찾은 다음 postgresql 콘솔에서 다음과 같이 실행하여 필요한 모든 기능을 만듭니다.

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

contrib 패키지를 설치해야 할 수도 있습니다. sudo apt-get install postgresql-contrib


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

리눅스와 같은 OS 가정

find / -name dblink.sql

위치를 확인하고 실행하십시오.


다음을 사용하여 추가 할 수 있습니다.

$psql -d databaseName -c "CREATE EXTENSION dblink"

# 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\";'"

참조 URL : https://stackoverflow.com/questions/3862648/how-to-use-install-dblink-in-postgresql

반응형