๊ฐ์
O2๋ PostgreSQL ํ๊ฒฝ์์ ์ค๋ผํด์ด ์ง์ํ๋ ํจ์/ํจํค์ง/ํ์
๋ค๊ณผ ํธํ๋๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๋ค์ ํธ์๋ฅผ ํฅ์์ํค๋ PostgreSQL Extension ์
๋๋ค.
์์คํ
์๊ตฌ ์ฌํญ
OpenSQL์์ ์ง์ํ๋ ์ด์์ฒด์ /ํ๋์จ์ด ์ฌ์๊ณผ ๋์ผํฉ๋๋ค.
O2 Extension์์๋ ์ ํ ์ค์น๋ฅผ ์ํ ๋ฐฉ๋ฒ์ ๋ค์์ 2๊ฐ์ง ์ค์น ํํ๋ก ์ ๊ณตํ๊ณ ์์ต๋๋ค.
shell ๋ฐฉ์์ผ๋ก ์ค์น
O2 ์ค์นํ์ผ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
OpenSQL ์ค์น ํจํค์ง ๋ด๋ถ์ ๋๋ด๋ O2 ์ค์นํ์ผ ๋ชจ์ ๋๋ ํ ๋ฆฌ๋ ์๋์ ๊ฐ์ ํ์์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
๋ด๋ถ์๋ 2๊ฐ์ง ์ค์น๋ฐฉ๋ฒ์ ์ํ ํ์ผ(Makefile, install.sh)๋ค์ด ์ ๊ณต๋ฉ๋๋ค.
PostgreSQL๊ฐ ์ค์น๋ Linux ํ๋ซํผ์์ O2 Extension์ make ์ปค๋งจ๋๋ฅผ ํตํด ์๋์ผ๋ก ์ค์นํ ์ ์์ต๋๋ค
O2 Extension์ด ํฌํจํ๋ ๋ชจ๋ Extension์ ๋์ ์ค์นํ๋ ์ ์ฒด ์ค์น, ๊ฐ๋ณ Extension์ ์ค์นํ๋ ๊ฐ๋ณ ์ค์น๋ก ๊ตฌ๋ถํฉ๋๋ค.
PostgreSQL์ด ์ค์น๊ฐ ๋์ด์๊ณ , ํฐ๋ฏธ๋ ๋ช
๋ น์ค์์ make, pg_config ์ปค๋งจ๋๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ์ฌ์ผ ํฉ๋๋ค.
O2 Extension ์ค์น ๊ตฌ์ฑ ์์๊ฐ ๋ชจ์ฌ ์๋ ๋๋ ํ ๋ฆฌ(Makefile ์ด ์๋ ๋๋ ํ ๋ฆฌ) ๋ด๋ถ๋ก ์ด๋ํ์ฌ ์๋์ make ์ปค๋งจ๋๋ฅผ ์ํํฉ๋๋ค.
๊ฐ๋ณ ์ค์น๋ make ์ปค๋งจ๋์ ์ค์นํ๋ ค๋ extension ์ด๋ฆ์ ์ธ์๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค.
make ์ปค๋งจ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์์ shell script๋ฅผ ์ด์ฉํ์ฌ ์๊ธฐ๋ก ์ค์นํ ์ ์์ต๋๋ค.
PostgreSQL๊ฐ ์ค์น๋ Linux ํ๋ซํผ์์ O2 Extension์ ์๋์ผ๋ก ์ค์นํ ์ ์์ต๋๋ค. O2 Extension์ด ํฌํจํ๋ ๋ชจ๋ Extension์ ๋์ ์ค์นํ๋ ์ ์ฒด ์ค์น, ๊ฐ๋ณ Extension์ ์ค์นํ๋ ๊ฐ๋ณ ์ค์น๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
PostgreSQL์ด ์ค์น๊ฐ ๋์ด์๊ณ , ํฐ๋ฏธ๋ ๋ช
๋ น์ค์์ pg_config ๋ฐ์ด๋๋ฆฌ๊ฐ ์ฌ์ฉ๊ฐ๋ฅํ ์ํ์ฌ์ผ ํฉ๋๋ค.
OpenSQL ๋ฐ์ด๋๋ฆฌ ์ค์น ์คํฌ๋ฆฝํธ๊ฐ ๋ชจ์ฌ์๋ ๋๋ ํฐ๋ฆฌ(scripts)๋ก ์ด๋ํ ํ install.sh ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.
O2 Extension ์ค์น ๊ตฌ์ฑ ์์๊ฐ ๋ชจ์ฌ ์๋ ๋๋ ํ ๋ฆฌ(Makefile ์ด ์๋ ๋๋ ํ ๋ฆฌ) ๋ด๋ถ๋ก ์ด๋ํ์ฌ install.sh ์ ์ํํฉ๋๋ค. ์ค์น ์ปค๋งจ๋์ ์ค์นํ๋ ค๋ extension ์ด๋ฆ์ ์ธ์๋ก ๋ฃ์ด์ฃผ์ด์ผ ํฉ๋๋ค.
make/shell ์ค์น ๋ฐฉ๋ฒ ๋ชจ๋ pg_config ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณ์ ์ผ๋ก ์ค์น๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
$PATH ๋ณ์ ๊ฐ์ /usr/pgsql-{PG๋ฒ์ }/bin ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํด์ผํฉ๋๋ค.
$PATH๊ฐ ์ค์ ๋์ด์๋ ์ ์ ์ ๊ถํ์ผ๋ก ์ฐํํ์ฌ ์ค์น๋ฅผ ์งํํด์ผ ํฉ๋๋ค.
sudo ๊ถํ์ ํตํด ์๋์ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ์ํํฉ๋๋ค.
O2 extension ์ OpenSQL ๋ผ์ด์ผ์ค๋ฅผ ํ์ธํ๋ฏ๋ก, ์๋์ ๊ฐ์ด ๋ผ์ด์ผ์ค ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
O2 Extension๋ค์ ์๋์ ๊ฐ์ด ํฌ๊ฒ 4์ข
๋ฅ ๊ทธ๋ฃน์ผ๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
๊ฐ ๊ทธ๋ฃน๋ค์ ํ์ ๋ชฉ๋ก์ ์ค์ ์ ๊ณต๋๋ ๊ฐ๋ณ Extension์ ์ด๋ฆ์ ๋์ดํ ๊ฒ์
๋๋ค.
๊ฐ extension๋ค์ ์๋์ ๊ฐ์ ํ์ผ๋ค๋ก ๊ตฌ์ฑ๋์ด ์๊ณ ๊ฐ extension๋ณ๋ก ๊ฐ๋ณ ์์ฑ ๊ฐ๋ฅํฉ๋๋ค.
์์) O2Functions Extension์ ๊ตฌ์ฑ ํ์ผ์ ๋ค์๊ณผ๊ฐ์ต๋๋ค.
Shared object file (eg. o2functions.so)
Control file (eg. o2functions.control)
Script file (eg. o2functionsโ1.0.sql, o2functionsโ1.0โ1.1.sql, โฆ)
๊ทธ๋ฆฌ๊ณ extension๋ค์ ๋ฒ์ ์ ๋ณด๋ฅผ ํ ๊ณณ์ผ๋ก ๋ฌถ์ VERSION.json ํ์ผ์ด ์กด์ฌํฉ๋๋ค.
O2 Extension์ ์ค์นํ ํ ํ์ฑํ๋ฅผ ํ๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ด SQL ์ปค๋งจ๋๋ฅผ ์คํํด์ผ ํฉ๋๋ค.
O2 Extension๋ค์ ๋ด๋ถ์ ์ ์ํ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ์คํค๋ง oracle ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Package Extension(DBMS_ALERT, DBMS_PIPE ๋ฑ)์ ๊ฐ์ extension ์ด๋ฆ์ ์คํค๋ง๋ก ์ฌ์ฉํฉ๋๋ค.
O2 Extension์์ ์ฌ์ฉ๋ ์คํค๋ง ์ด๋ฆ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ ๊ฐ extension์ control ํ์ผ ๋ด๋ถ schema ํญ๋ชฉ์ ๊ฐ์ ์์ ํด์ผํฉ๋๋ค. (๋จ, ๊ฐ Package extension๋ค์ ์คํค๋ง ์ด๋ฆ์ด ๊ณ ์ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.)
O2 Extension์ ์์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ ํ๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ด SQL ์ปค๋งจ๋๋ฅผ ์คํํด์ผ ํฉ๋๋ค.
HA ๊ตฌ์ฑ ์ ๊ฐ ๋
ธ๋์ ์ง์ ๋ถ์ด ์๋์ผ๋ก O2 Extension ์ค์น ๋ฐ ์
๋ฐ์ดํธ๋ฅผ ์งํํด์ผ ํฉ๋๋ค.
๋ํ ๊ฐ ๋
ธ๋์ ์ค์น๋ O2 Extension version์ ์ผ์นํ๊ฒ ์ค์น๋๋๋ก ํฉ๋๋ค.
๋
ธ๋ ๊ฐ ๋ฒ์ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ฉด ๋ฒ์ ๊ฐ ๋์ ์ฐจ์ด๋ก ์ธํด ์ฟผ๋ฆฌ ์ํ ์ ์ด๋ ๋
ธ๋๋ก ๋ณด๋ด ์ก๋์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ์ด ๋์ฌ ์ ์์ต๋๋ค.