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
'Development Tip' 카테고리의 다른 글
결과가 반환되지 않을 때 ExecuteScalar () 처리 (0) | 2021.01.05 |
---|---|
헤더에서 작동하지 않는 상수 변수 (0) | 2021.01.05 |
PHP는 배열의 마지막 3 개 요소를 가져옵니다. (0) | 2021.01.05 |
iOS에서 비행기 모드 감지 (0) | 2020.12.31 |
CORS 오류를 트랩 할 수 있습니까? (0) | 2020.12.31 |