Cài đặt

các bài viết liên quan tới cài đặt

Cấu trúc thư mục dữ liệu PostgreSQL

Thư mục dữ liệu PostgreSQL

Để chạy một câu lệnh SQL, tạo bảng dữ liệu, hay lưu trữ dữ liệu PostgreSQL cũng như các RDBMS khác chúng ta cần một thư mục chứa dữ liệu, PostgreSQL gọi đó là database cluster. Sau khi cài đặt PostgreSQL, database cluster được tạo ra bởi lệnh initdb. Nếu bạn cài đặt qua installer trên Windows, database cluster sẽ tự động được tạo ra trong quá trình cài đặt. Sau khi tạo một database cluster, ta có thể khởi động database cluster này lên và thực hiện các câu truy vấn tuỳ ý.

Các database cluster phân biệt bởi parameter port (postgresql.conf). Ta có thể cài đặt nhiều database cluster trên một hệ điều hành bằng cách đặt port khác nhau cho mỗi database cluster.

Tạo thư mục dữ liệu

Để tạo một thư mục dữ liệu PostgreSQL (database cluster) ta sử dụng câu lệnh initdb.


DangnoMacBook-Pro:postgresql-9.6.5 bocap$ initdb --no-locale -E utf8 -D /usr/local/pgsql/pg9600/data
The files belonging to this database system will be owned by user "bocap".
This user must also own the server process.

The database cluster will be initialized with locale "C".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /usr/local/pgsql/pg9600/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    pg_ctl -D /usr/local/pgsql/pg9600/data -l logfile start

DangnoMacBook-Pro:postgresql-9.6.5 bocap$ 

Lệnh initdb nhiều options bạn có thể kiểm tra bằng option --help. Ví dụ trên mình sử dụng các options thông dụng như bên dưới.

  • --no-locale: Không sử dụng locale, hay locale C. Tạo database cluster với option này, khi sắp xếp dữ liệu (ORDER BY), PostgreSQL sẽ không so sánh qua ký tự alphabet mà so sánh trực tiếp qua character code, tăng performance.
  • -E hay --encoding: Chỉ định encoding cho database cluster.
  • -D: thư mục cơ sở dữ liệu.

Khởi động server từ thư mục dữ liệu đã tạo.Ví dụ dưới mình sử dụng port 9605 cho database cluster này.


DangnoMacBook-Pro:postgresql-9.6.5 bocap$ echo port=9605 >> /usr/local/pgsql/pg9600/data/postgresql.conf
DangnoMacBook-Pro:postgresql-9.6.5 bocap$ pg_ctl start
server starting
DangnoMacBook-Pro:postgresql-9.6.5 bocap$ LOG:  database system was shut down at 2017-09-10 23:19:54 JST
LOG:  MultiXact member wraparound protections are now enabled
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

Kiểm tra kết nối. Nếu không chỉ định User khi tạo database cluster (tùy chọn -U cho initdb). Mặc định User được tạo ra cho database cluster  là User của OS chạy câu lệnh initdb, nên ví dụ dưới mình tạo lại user postgres cho database cluster (mình để mặc định biến môi trường PGUSER là 'postgres' nên có lỗi User không tồn tại khi truy nhập).


DangnoMacBook-Pro:postgresql-9.6.5 bocap$ psql
FATAL:  role "postgres" does not exist
psql: FATAL:  role "postgres" does not exist
DangnoMacBook-Pro:postgresql-9.6.5 bocap$ psql -U bocap -c "create user postgres password 'postgres'"
CREATE ROLE
DangnoMacBook-Pro:postgresql-9.6.5 bocap$ psql
psql (9.6.5)
Type "help" for help.

postgres=> \q
DangnoMacBook-Pro:postgresql-9.6.5 bocap$


Cấu trúc thư mục PostgreSQL

Sau khi khởi động PostgreSQL 1 database cluster sẽ có cấu trúc như bên dưới.

Phiên bản PostgreSQL-10 sắp tới sẽ hơi khác ví dụ thư mục log pg_log (khi thiết lập lưu trữ log logging_colector = on) sẽ trở thành log, thư mục transaction log pg_xlog sẽ trở thành pg_wal, etc.


DangnoMacBook-Pro:postgresql-9.6.5 bocap$ ll $PGDATA
total 104
-rw-------   1 bocap  wheel      4 Sep 10 23:19 PG_VERSION
drwx------   5 bocap  wheel    170 Sep 10 23:19 base
drwx------  55 bocap  wheel   1870 Sep 10 23:31 global
drwx------   3 bocap  wheel    102 Sep 10 23:19 pg_clog
drwx------   2 bocap  wheel     68 Sep 10 23:19 pg_commit_ts
drwx------   2 bocap  wheel     68 Sep 10 23:19 pg_dynshmem
-rw-------   1 bocap  wheel   4477 Sep 10 23:19 pg_hba.conf
-rw-------   1 bocap  wheel   1636 Sep 10 23:19 pg_ident.conf
drwx------   4 bocap  wheel    136 Sep 10 23:19 pg_logical
drwx------   4 bocap  wheel    136 Sep 10 23:19 pg_multixact
drwx------   3 bocap  wheel    102 Sep 10 23:31 pg_notify
drwx------   2 bocap  wheel     68 Sep 10 23:19 pg_replslot
drwx------   2 bocap  wheel     68 Sep 10 23:19 pg_serial
drwx------   2 bocap  wheel     68 Sep 10 23:19 pg_snapshots
drwx------   2 bocap  wheel     68 Sep 10 23:31 pg_stat
drwx------   4 bocap  wheel    136 Sep 10 23:31 pg_stat_tmp
drwx------   3 bocap  wheel    102 Sep 10 23:19 pg_subtrans
drwx------   2 bocap  wheel     68 Sep 10 23:19 pg_tblspc
drwx------   2 bocap  wheel     68 Sep 10 23:19 pg_twophase
drwx------   4 bocap  wheel    136 Sep 10 23:19 pg_xlog
-rw-------   1 bocap  wheel     88 Sep 10 23:19 postgresql.auto.conf
-rw-------   1 bocap  wheel  22267 Sep 10 23:20 postgresql.conf
-rw-------   1 bocap  wheel     37 Sep 10 23:31 postmaster.opts
-rw-------   1 bocap  wheel     86 Sep 10 23:31 postmaster.pid
DangnoMacBook-Pro:postgresql-9.6.5 bocap$ 

Nội dung các files trong 1 thư mục dữ liệu PostgreSQL (PGDATA)

Folder/files Nội dung
PG_VERSION

File chứa nội dung phiên bản PostgreSQL hiện tại
ví dụ:


DangnoMacBook-Pro:postgresql-9.6.5 bocap$ cat $PGDATA/PG_VERSION
9.6

base Thư mục con chứa dữ liệu của các database trong database cluster. Trong thư mục này chứa các thư mục con nữa cho mỗi database. Tên thư mục đặt theo oid của database tương ứng.

ví dụ:


DangnoMacBook-Pro:postgresql-9.6.5 bocap$ ll $PGDATA/base
total 0
drwx------  270 bocap  wheel  9180 Sep 10 23:19 1
drwx------  270 bocap  wheel  9180 Sep 10 23:19 12668
drwx------  271 bocap  wheel  9214 Sep 10 23:32 12669
DangnoMacBook-Pro:postgresql-9.6.5 bocap$ psql
psql (9.6.5)
Type "help" for help.

postgres=>; select oid, datname from pg_database;
  oid  |  datname  
-------+-----------
 12669 | postgres
     1 | template1
 12668 | template0
(3 rows)

postgres=>; 

global Thư mục con chứa các bảng sử dụng nội bộ trong PostgreSQL (system catalog). Ví dụ như catalog chứa thông tin về database pg_database.
pg_commit_ts Thư mục con chứa thông tin về trạng thái commit của dữ liệu timestamp.
pg_clog Thư mục con chứa thông tin về trạng thái commit của transaction trên database cluster hiện tại. Mỗi bit dữ liệu chứa thông tin trạng thái cho một transaction. offset của file trong thư mục này tương ứng với transaction ID, vì vậy PostgreSQL có thể xem thông tin trạng thái transaction thông qua offset đó.
pg_dynshmem Thư mục con chứa các file sử dụng dynamic shared memory.
pg_logical Thư mục con chứa trạng thái dữ liệu sử dụng trong chức năng logical decoding (chức năng decoding dữ liệu từ WAL).
pg_multixact Thư mục con chứa dữ liệu trạng thái multitransaction (sử dụng cho locks mức độ dòng dữ liệu).
pg_notify Thư mục con chứa dữ liệu về chức năng LISTEN/NOTIFY.
pg_replslot Thư mục con chứa dữ liệu về replication slot
pg_serial Thư mục con chứa thông tin về các transaction commited ở mức độ phân li serializable.
pg_snapshots Thư mục con chứa thông tin về các snapshots đã xuất.
pg_stat Thư mục con chứa các files thông tin thống kê về PostgreSQL đang được sử dụng hiện tại.
pg_stat_tmp Thư mục con chứa các files thông tin thống kê về PostgreSQL tạm thời, chưa được đưa vào sử dụng.
pg_subtrans Thư mục con chứa dữ liệu về các subtransaction (khi sử dụng SAVEPOINT).
pg_tblspc Thư mục con chứa thông tin symbolic links tới các tablespaces. khi tạo 1 TABLESPACE để chứa dữ liệu bên ngoài database cluster, PostgreSQL sẽ tạo một symbolic links tới thư mục tạo từ TABLESPACE trong thư mục này.
pg_twophase Thư mục con chứa các tập tin trạng thái cho các prepared transactions.
pg_xlog Thư mục con chứa thông tin về WAL files. Phiên bản PostgreSQL 10, thư mục này chuyển thành pg_wal.
postgresql.auto.conf File chứa thông tin về các cấu hình tham số thiết lập bởi lệnh ALTER SYSTEM.
postmaster.opts A file recording the command-line options the server was last started with. File này chứa thông tin về các tuỳ chọn lần cuối của lệnh khởi động PostgreSQL.
ví dụ: 

DangnoMacBook-Pro:postgresql-9.6.5 bocap$ cat /usr/local/pgsql/pg9600/data/postmaster.opts 
/usr/local/pgsql/pg9600/bin/postgres

postmaster.pid File này tạo ra khi khởi động PostgreSQL và mất đi khi shutdown PostgreSQL. File chứa thông tin về PID của postmaster process, đường dẫn thư mục dữ liệu, thời gian khởi động, số hiệu port, đường dẫn Unix-domain socket (là trống trên môi trường Windows), giá trị hiệu lực đầu tiên chỉ định trong tham số listen_address và segment ID shared memory (tạo lúc khởi động PostgreSQL).

Cài đặt PostgreSQL

Cài đặt PostgreSQL trên môi trường Linux

Cài đặt PostgreSQL trên môi trường linux thông thường có 2 cách. Build từ source hoặc cài đặt qua packages(rpm) có sẵn từ community. Binary từ 2 cách cài đặt này có một vài điểm nhỏ khác nhau trong file setting sau khi tạo data cluster. Ví dụ như logging_collector(xuất log qua file) mặc định on trên rpm và off khi build. Cài đặt qua source thì dễ tùy chỉnh các options bằng cách configure -> build lại.

Cài đặt qua source

  1. Download source
    Tất cả các phiên bản của PostgreSQL có thể download từ trang chủ. Chọn version bạn muốn dùng cho hệ thống của bạn. Khuyến cáo bạn nên chọn rivision mới nhất vì các chỉnh sửa giữa các revision hầu hết chỉ là bug fix.

  2. Cài đặt
    Sau khi giải nén bạn chạy lệnh ./configure với các options tùy thích. Bạn có thể xem ý nghĩa các options qua lệnh ./configure --help. Tiếp đó bạn dùng lệnh make và make install để cài đặt. Chú ý user chạy lệnh make install phải có quyền write thư mục bạn muốn cài đặt (option --prefix).

    
    [postgres@localhost src]$ ls postgresql-9.6.3.tar.gz
    postgresql-9.6.3.tar.gz
    [postgres@localhost src]$ tar xfz postgresql-9.6.3.tar.gz
    [postgres@localhost src]$ cd postgresql-9.6.3/
    [postgres@localhost postgresql-9.6.3]$ sudo mkdir -p /usr/local/pgsql/pg9603
    [sudo] password for postgres:
    [postgres@localhost postgresql-9.6.3]$ sudo chown postgres:postgres /usr/local/pgsql/pg9603
    [postgres@localhost postgresql-9.6.3]$ ./configure --prefix=/usr/local/pgsql/pg9603 --enable-debug \
     > /dev/null
    configure: WARNING:
    *** Without Bison you will not be able to build PostgreSQL from Git nor
    *** change any of the parser definition files. You can obtain Bison from
    *** a GNU mirror site. (If you are using the official distribution of
    *** PostgreSQL then you do not need to worry about this, because the Bison
    *** output is pre-generated.)
    configure: WARNING:
    *** Without Flex you will not be able to build PostgreSQL from Git nor
    *** change any of the scanner definition files. You can obtain Flex from
    *** a GNU mirror site. (If you are using the official distribution of
    *** PostgreSQL then you do not need to worry about this because the Flex
    *** output is pre-generated.)
    [postgres@localhost postgresql-9.6.3]$ make -j 4 > /dev/null
    [postgres@localhost postgresql-9.6.3]$ make install > /dev/null
    [postgres@localhost postgresql-9.6.3]$ ll /usr/local/pgsql/pg9603/
    total 16
    drwxrwxr-x. 2 postgres postgres 4096 Apr 12 23:05 bin
    drwxrwxr-x. 6 postgres postgres 4096 Apr 12 23:05 include
    drwxrwxr-x. 4 postgres postgres 4096 Apr 12 23:05 lib
    drwxrwxr-x. 6 postgres postgres 4096 Apr 12 23:05 share
    [postgres@localhost postgresql-9.6.3]$
    
    

    Tùy chỉnh configure đã sử dụng:

    Tùy chọn ý nghĩa
    --prefix đường dẫn thư mục cài đặt
    --enable-debug cho phép debug

    Lưu ý:

  • PostgreSQL không cho phép khởi động bằng user root, bạn nên cài đặt bằng user thường.

  • Nếu môi trường thiếu packages readline-devel và zlib-devel, lúc chạy ./configure sẽ có lỗi. Bạn nên cài 2 packages và configure lại.

  • Manual của PostgreSQL viết là sử dụng gmake thay vì make, nhưng môi trường Linux gmake được link tới make.

    
    $ ll /usr/bin/gmake
    lrwxrwxrwx. 1 root root 4 Nov 20 09:41 /usr/bin/gmake -> make
    
    
  1. Tạo database cluster
    Cài đặt xong PostgreSQL bạn có thể tạo database cluster (nơi chứa dữ liệu cho PostgreSQL) bằng lệnh initdb.

    
     [postgres@localhost postgresql-9.6.3]$ /usr/local/pgsql/pg9603/bin/initdb -D /usr/local/pgsql/pg9603/data \
     --no-locale -E utf8
     The files belonging to this database system will be owned by user "postgres".
     This user must also own the server process.
     The database cluster will be initialized with locale "C".
     The default text search configuration will be set to "english".
     Data page checksums are disabled.
     creating directory /usr/local/pgsql/pg9603/data ... ok
     creating subdirectories ... ok
     selecting default max_connections ... 100
     selecting default shared_buffers ... 128MB
     selecting dynamic shared memory implementation ... posix
     creating configuration files ... ok
     running bootstrap script ... ok
     performing post-bootstrap initialization ... ok
     syncing data to disk ... ok
     WARNING: enabling "trust" authentication for local connections
     You can change this by editing pg_hba.conf or using the option -A, or
     --auth-local and --auth-host, the next time you run initdb.
     Success. You can now start the database server using:
     /usr/local/pgsql/pg9603/bin/pg_ctl -D /usr/local/pgsql/pg9603/data -l logfile start
     [postgres@localhost postgresql-9.6.3]$ ll /usr/local/pgsql/pg9603/data
     total 48
     drwx------. 5 postgres postgres 38 Apr 12 23:43 base
     drwx------. 2 postgres postgres 4096 Apr 12 23:43 global
     drwx------. 2 postgres postgres 17 Apr 12 23:43 pg_clog
     drwx------. 2 postgres postgres 6 Apr 12 23:43 pg_commit_ts
     drwx------. 2 postgres postgres 6 Apr 12 23:43 pg_dynshmem
     -rw-------. 1 postgres postgres 4468 Apr 12 23:43 pg_hba.conf
     -rw-------. 1 postgres postgres 1636 Apr 12 23:43 pg_ident.conf
     drwx------. 4 postgres postgres 37 Apr 12 23:43 pg_logical
     drwx------. 4 postgres postgres 34 Apr 12 23:43 pg_multixact
     drwx------. 2 postgres postgres 17 Apr 12 23:43 pg_notify
     drwx------. 2 postgres postgres 6 Apr 12 23:43 pg_replslot
     drwx------. 2 postgres postgres 6 Apr 12 23:43 pg_serial
     drwx------. 2 postgres postgres 6 Apr 12 23:43 pg_snapshots
     drwx------. 2 postgres postgres 6 Apr 12 23:43 pg_stat
     drwx------. 2 postgres postgres 6 Apr 12 23:43 pg_stat_tmp
     drwx------. 2 postgres postgres 17 Apr 12 23:43 pg_subtrans
     drwx------. 2 postgres postgres 6 Apr 12 23:43 pg_tblspc
     drwx------. 2 postgres postgres 6 Apr 12 23:43 pg_twophase
     -rw-------. 1 postgres postgres 4 Apr 12 23:43 PG_VERSION
     drwx------. 3 postgres postgres 58 Apr 12 23:43 pg_xlog
     -rw-------. 1 postgres postgres 88 Apr 12 23:43 postgresql.auto.conf
     -rw-------. 1 postgres postgres 22204 Apr 12 23:43 postgresql.conf
     [postgres@localhost postgresql-9.6.3]$
    
    

    Tùy chỉnh initdb đã sử dụng:

    Tùy chọn ý nghĩa
    -D đường dẫn thư mục database cluster
    --no-locale sử dụng locale C cho database cluster
    -E utf8 sử dụng server encoding thông dụng utf8

Cài đặt qua packages(rpm)

  1. Cài đặt từ yum reporitory
    Bạn có thể download reporitory RPMs tương ứng ở đây, sau khi cài đặt dùng lệnh yum để cài đặt packages cần thiết. Ở ví dụ bên dưới, mình đã install 4 packages thông dụng của PostgreSQL. Sau khi cài đặt bạn có thể tạo database cluster bằng lệnh initdb.

    
     [root@localhost src]# wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm
     --2017-05-21 22:26:49-- https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm
     Resolving download.postgresql.org (download.postgresql.org)... 174.143.35.246, 204.145.124.244, 217.196.149.55, ...
     Connecting to download.postgresql.org (download.postgresql.org)|174.143.35.246|:443... connected.
     HTTP request sent, awaiting response... 200 OK
     Length: 4816 (4.7K) [application/x-redhat-package-manager]
     Saving to: 'pgdg-redhat96-9.6-3.noarch.rpm'
     100%[===================================================================================================================================================================================================>] 4,816 --.-K/s in 0.005s
     2017-05-21 22:26:50 (902 KB/s) - 'pgdg-redhat96-9.6-3.noarch.rpm'saved [4816/4816]
     [root@localhost src]# rpm -ivh pgdg-redhat96-9.6-3.noarch.rpm
     Preparing... ################################# [100%]
     Updating / installing...
     1:pgdg-redhat96-9.6-3 ################################# [100%]
     [root@localhost src]# yum search postgresql96
     Loaded plugins: fastestmirror, langpacks
     pgdg96 | 4.1 kB 00:00:00
     (1/2): pgdg96/7/x86_64/group_gz | 249 B 00:00:01
     (2/2): pgdg96/7/x86_64/primary_db | 137 kB 00:00:01
     Loading mirror speeds from cached hostfile
     * base: ftp.riken.jp
     * extras: ftp.riken.jp
     * updates: ftp.riken.jp
     ========================================================================================================= N/S matched: postgresql96 =========================================================================================================
     postgresql96-debuginfo.x86_64 : Debug information for package postgresql96
     postgresql96-tcl-debuginfo.x86_64 : Debug information for package postgresql96-tcl
     postgresql96.x86_64 : PostgreSQL client programs and libraries
     postgresql96-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
     postgresql96-devel.x86_64 : PostgreSQL development header files and libraries
     postgresql96-docs.x86_64 : Extra documentation for PostgreSQL
     postgresql96-libs.x86_64 : The shared libraries required for any PostgreSQL clients
     postgresql96-odbc.x86_64 : PostgreSQL ODBC driver
     postgresql96-plperl.x86_64 : The Perl procedural language for PostgreSQL
     postgresql96-plpython.x86_64 : The Python procedural language for PostgreSQL
     postgresql96-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
     postgresql96-server.x86_64 : The programs needed to create and run a PostgreSQL server
     postgresql96-tcl.x86_64 : A Tcl client library for PostgreSQL
     postgresql96-test.x86_64 : The test suite distributed with PostgreSQL
     Name and summary matches only, use "search all" for everything.
     [root@localhost src]# yum install postgresql96.x86_64 postgresql96-contrib.x86_64 postgresql96-libs.x86_64 postgresql96-server.x86_64
     Loaded plugins: fastestmirror, langpacks
     Loading mirror speeds from cached hostfile
     * base: ftp.riken.jp
     * extras: ftp.riken.jp
     * updates: ftp.riken.jp
     Resolving Dependencies
     --> Running transaction check
     ---> Package postgresql96.x86_64 0:9.6.3-1PGDG.rhel7 will be installed
     ---> Package postgresql96-contrib.x86_64 0:9.6.3-1PGDG.rhel7 will be installed
     ---> Package postgresql96-libs.x86_64 0:9.6.3-1PGDG.rhel7 will be installed
     ---> Package postgresql96-server.x86_64 0:9.6.3-1PGDG.rhel7 will be installed
     --> Finished Dependency Resolution
     Dependencies Resolved
     =============================================================================================================================================================================================================================================
     Package Arch Version Repository Size
     =============================================================================================================================================================================================================================================
     Installing:
     postgresql96 x86_64 9.6.3-1PGDG.rhel7 pgdg96 1.3 M
     postgresql96-contrib x86_64 9.6.3-1PGDG.rhel7 pgdg96 563 k
     postgresql96-libs x86_64 9.6.3-1PGDG.rhel7 pgdg96 310 k
     postgresql96-server x86_64 9.6.3-1PGDG.rhel7 pgdg96 4.3 M
     Transaction Summary
     =============================================================================================================================================================================================================================================
     Install 4 Packages
     Total download size: 6.5 M
     Installed size: 28 M
     Is this ok [y/d/N]: y
     Downloading packages:
     (1/4): postgresql96-contrib-9.6.3-1PGDG.rhel7.x86_64.rpm | 563 kB 00:00:03
     (2/4): postgresql96-libs-9.6.3-1PGDG.rhel7.x86_64.rpm | 310 kB 00:00:00
     (3/4): postgresql96-9.6.3-1PGDG.rhel7.x86_64.rpm | 1.3 MB 00:00:05
     (4/4): postgresql96-server-9.6.3-1PGDG.rhel7.x86_64.rpm | 4.3 MB 00:00:05
     ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     Total 686 kB/s | 6.5 MB 00:00:09
     Running transaction check
     Running transaction test
     Transaction test succeeded
     Running transaction
     Warning: RPMDB altered outside of yum.
     Installing : postgresql96-libs-9.6.3-1PGDG.rhel7.x86_64 1/4
     Installing : postgresql96-9.6.3-1PGDG.rhel7.x86_64 2/4
     Installing : postgresql96-contrib-9.6.3-1PGDG.rhel7.x86_64 3/4
     Installing : postgresql96-server-9.6.3-1PGDG.rhel7.x86_64 4/4
     Verifying : postgresql96-contrib-9.6.3-1PGDG.rhel7.x86_64 1/4
     Verifying : postgresql96-libs-9.6.3-1PGDG.rhel7.x86_64 2/4
     Verifying : postgresql96-server-9.6.3-1PGDG.rhel7.x86_64 3/4
     Verifying : postgresql96-9.6.3-1PGDG.rhel7.x86_64 4/4
     Installed:
     postgresql96.x86_64 0:9.6.3-1PGDG.rhel7 postgresql96-contrib.x86_64 0:9.6.3-1PGDG.rhel7 postgresql96-libs.x86_64 0:9.6.3-1PGDG.rhel7 postgresql96-server.x86_64 0:9.6.3-1PGDG.rhel7
     Complete!
     [root@localhost src]#
     [root@localhost src]# ls /usr/pgsql-9.6/
     bin doc lib share
     root@localhost src]# ls /usr/pgsql-9.6/bin/
     clusterdb createuser dropuser pg_archivecleanup pg_config pg_dump pg_receivexlog pg_restore pg_test_fsync pg_xlogdump postgresql96-setup reindexdb
     createdb dropdb initdb pg_basebackup pg_controldata pg_dumpall pg_recvlogical pg_rewind pg_test_timing postgres postmaster vacuumdb
     createlang droplang oid2name pgbench pg_ctl pg_isready pg_resetxlog pg_standby pg_upgrade postgresql96-check-db-dir psql vacuumlo
     [root@localhost src]#
    
    
  2. Cài đặt qua rpm
    Nếu môi trường cài đặt của bạn không thể connect ra internet bên ngoài. Bạn có thể download packages trực tiếp từ máy có kết nối tới internet từ đây. Sau đó cài đặt packages bằng lệnh rpm. Chú ý nếu cài đặt packages qua rpm, do quan hệ phụ thuộc giữa các package bạn phải cài đặt trước một số packages cần thiết.

    
     [root@localhost src]# rpm -qa | grep postgresql
     [root@localhost src]# (wget https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/postgresql96-9.6.3-1PGDG.rhel7.x86_64.rpm https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/postgresql96-contrib-9.6.3-1PGDG.rhel7.x86_64.rpm https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/postgresql96-libs-9.6.3-1PGDG.rhel7.x86_64.rpm https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/postgresql96-server-9.6.3-1PGDG.rhel7.x86_64.rpm ) > /dev/null 2>&1
     [root@localhost src]# echo $?
     0
     [root@localhost src]# ls
     pgdg-redhat96-9.6-3.noarch.rpm postgresql96-9.6.3-1PGDG.rhel7.x86_64.rpm postgresql96-contrib-9.6.3-1PGDG.rhel7.x86_64.rpm postgresql96-libs-9.6.3-1PGDG.rhel7.x86_64.rpm postgresql96-server-9.6.3-1PGDG.rhel7.x86_64.rpm
     [root@localhost src]# ls
     pgdg-redhat96-9.6-3.noarch.rpm postgresql96-9.6.3-1PGDG.rhel7.x86_64.rpm postgresql96-contrib-9.6.3-1PGDG.rhel7.x86_64.rpm postgresql96-libs-9.6.3-1PGDG.rhel7.x86_64.rpm postgresql96-server-9.6.3-1PGDG.rhel7.x86_64.rpm
     [root@localhost src]# rpm -ivh postgresql96-9.6.3-1PGDG.rhel7.x86_64.rpm postgresql96-contrib-9.6.3-1PGDG.rhel7.x86_64.rpm postgresql96-libs-9.6.3-1PGDG.rhel7.x86_64.rpm postgresql96-server-9.6.3-1PGDG.rhel7.x86_64.rpm
     Preparing... ################################# [100%]
     Updating / installing...
     1:postgresql96-libs-9.6.3-1PGDG.rhe################################# [ 25%]
     2:postgresql96-9.6.3-1PGDG.rhel7 ################################# [ 50%]
     3:postgresql96-contrib-9.6.3-1PGDG.################################# [ 75%]
     4:postgresql96-server-9.6.3-1PGDG.r################################# [100%]
     [root@localhost src]# ls /usr/pgsql-9.6/
     bin doc lib share
     [root@localhost src]# ls /usr/pgsql-9.6/bin
     clusterdb createuser dropuser pg_archivecleanup pg_config pg_dump pg_receivexlog pg_restore pg_test_fsync pg_xlogdump postgresql96-setup reindexdb
     createdb dropdb initdb pg_basebackup pg_controldata pg_dumpall pg_recvlogical pg_rewind pg_test_timing postgres postmaster vacuumdb
     createlang droplang oid2name pgbench pg_ctl pg_isready pg_resetxlog pg_standby pg_upgrade postgresql96-check-db-dir psql vacuumlo
     [root@localhost src]#
    
    

Cài đặt PostgreSQL trên môi trường Windows và MacOS

Bạn có thể download installer cho Windows ở đây, và cho MacOS ở đây và cài đặt theo winzard của installer. Trên cả 2 môi trường này đều có thể build từ source, nếu có nhu cầu bạn có thể tham khảo manual và build.

Trang

Đăng kí nhận RSS - Cài đặt