서버 측 도구#
AgensGraph에 딸려 오는 도구는 PostgreSQL의 것이므로 PostgreSQL의 해당 레퍼런스가 그대로 적용되며 여기서 되풀이하지 않습니다. 이 페이지는 다른 점, 그리고 가장 많이 쓰는 도구에 그래프가 더하는 것을 다룹니다.
대화형 클라이언트와 그 그래프 메타 명령은 agens 클라이언트를 참고하십시오.
AgensGraph가 도구 모음에 더하는 것#
도구 두 개가 두 번째 이름으로도 배포됩니다:
AgensGraph 이름 |
PostgreSQL 이름 |
차이 |
|---|---|---|
|
|
브랜딩뿐입니다. 둘 다 설치되며, 그래프 메타 명령은 어느 쪽에서도 동작합니다. |
|
|
브랜딩뿐입니다. 둘 다 설치됩니다. |
agens --version
agens (AgensGraph) 2.18.6.0
참고
개발 브랜치에서 빌드한 것은 대신 -devel 접미사를 붙여 알려 줍니다.
psql --version
psql (PostgreSQL) 18.6
그 밖의 모든 것 — initdb·pg_dump·pg_dumpall·pg_restore·pg_upgrade·
pg_basebackup·pg_controldata·pg_checksums·vacuumdb·reindexdb·createdb와 나머지 —
은 PostgreSQL 이름과 PostgreSQL 동작을 그대로 지닙니다.
AGDATA는 기본 데이터 디렉터리로서 PGDATA와 나란히 동작하므로,
export AGDATA=/path/to/data 를 해 두면 -D를 생략할 수 있습니다. 이것을 읽는 바이너리는 정확히
셋 — initdb·pg_ctl·ag_ctl — 이고, 우선순위가 서로 다릅니다. initdb는 PGDATA보다
AGDATA를 앞세우고, pg_ctl과 ag_ctl은 PGDATA를 앞세웁니다. 그 밖의 모든 도구는 PGDATA만
받습니다.
기동과 정지#
ag_ctl -D /path/to/data -l /path/to/data/server.log start
ag_ctl -D /path/to/data status
ag_ctl -D /path/to/data reload
ag_ctl -D /path/to/data stop -m fast
systemd에서는 PostgreSQL 자신의 유닛 관례를 쓰고 그것이 AgensGraph 바이너리를 가리키게 하십시오. 여기에 그래프에만 해당하는 것은 없습니다. 배포를 참고하십시오.
그래프 덤프하기#
그래프는 스키마이고 그 레이블은 테이블이므로, pg_dump와 pg_dumpall은 특별한 옵션 없이
그래프를 다룹니다. 따라서 덤프에는 CREATE GRAPH·CREATE VLABEL·CREATE ELABEL 문장과 레이블
데이터가 담깁니다.
pg_dump -d mydb -f mydb.sql
pg_dump -d mydb -Fc -f mydb.dump
그래프 하나만 덤프하려면 그 스키마를 지정하십시오:
pg_dump -d mydb --schema=moviekb -f moviekb.sql
그래프에만 해당하는 알아 둘 것 네 가지입니다:
두 도구 모두 AgensGraph 버전을 검사하지 않습니다. PostgreSQL 자신의
server_version범위 검사만 적용되므로, 더 새 덤프를 더 낡은 서버에 복원하면 앞에서 거부되는 대신 도중에 파싱 실패로 드러납니다.평범한 컬럼을 지닌 레이블의 덤프는 그
ALTER TABLE문장을SET enable_graph_ddl = on으로 감쌉니다. 그 설정은 어느 롤이든 쓸 수 있으므로 평범한 사용자도 복원할 수 있습니다. 그 롤에ALTER ROLE … SET으로 강제로 꺼 두지 않았다면 말입니다.어떤 그래프든 승격된 컬럼을 쓰고 있으면 2.18 덤프는 2.17에 복원되지 않습니다. 내보내진
CREATE VLABEL형태를 2.17 파서가 받아들이지 못하며, 평문 스트림에서는 그 문장 뒤의 모든 것이 유실됩니다.Cypher 쿼리로 정의한 뷰는 그 Cypher가 컴파일된 SQL로 덤프됩니다. 사용자가 쓴 Cypher가 아닙니다. 복원되고 동작하지만, 되돌려 받는 정의는 사용자가 쓴 정의가 아닙니다. SQL과 Cypher 섞어 쓰기를 참고하십시오.
복원한 뒤에는 그래프 메타데이터를 다시 만들고 다시 ANALYZE 하십시오. 정확한 명령은
2.18로 업그레이드하기에 있으며, 업그레이드뿐 아니라
모든 복원에 적용됩니다.
메이저 버전 간 업그레이드#
pg_upgrade는 특별한 처리 없이 그래프에서 동작하며, AgensGraph에만 해당하는 조건이 둘
있습니다:
레이블이
id·start·end·properties말고 다른 컬럼을 지닌 그래프는, 물리적 컬럼 배치를 망가뜨리는 대신 거부합니다.끝난 뒤에는
ag_graphmeta가 비어 있고 그래프가 무효로 표시되므로,regather_graphmeta()를 실행하기 전까지 플래너의 스캔 쳐내기가 꺼져 있습니다.
전체 절차는 2.18로 업그레이드하기에 있고, 업그레이드 실습은 실제 출력을 곁들인 예제입니다.
베이스 백업과 WAL#
pg_basebackup·WAL 아카이빙·pg_receivewal·pg_verifybackup·pg_rewind는 모두 그래프를 있는
그대로 — 같은 클러스터 안의 스키마와 테이블로 — 다루므로, 물리 백업은 그래프 데이터와 관계형
데이터를 같은 시점에 함께 담습니다. 백업과 복구를 참고하십시오.