PostgreSQL là một trong những Hệ Quản trị Cơ sở Dữ liệu (CSDL) Mã nguồn mở phổ biến trên thế giới và được sử dụng trong những hệ thống công nghệ thông tin lớn, phức tạp, đòi hỏi cao về tính ổn định, khả năng xử lý cũng như tốc độ đáp ứng. Do sự ưu việt của nó, PostgreSQL đang dần "soán ngôi" của MySQL để trở thành Hệ Quản trị CSDL mã nguồn mở phổ biến nhất thế giới. Để cài đặt PostgreSQL trên Ubuntu, chúng ta có hai cách:
- Một là sử dụng gói cài đặt được biên dịch sẵn thông quan trình apt-get của Ubuntu bằng
apt-get install postgresql
- Hai là dùng trình biên dịch (gcc compiler) để biên dịch trực tiếp mã nguồn
Đối với cách thứ nhất thì đơn giản nhưng có những điểm yếu sau:
- Bạn sẽ không có bản PostgreSQL mới nhất (tại thời điểm tôi viết bài này là phiên bản PostgreSQL 9.2.3), và vì vậy sẽ không có những tính năng mới.
- Hiệu năng hoạt động thấp: do bản biên dịch sẵn được biên dịch một cách tổng quát đển chạy được trên nhiều kiến trúc vi xử lý khác nhau
Trong phạm vi bài này, tôi sẽ hướng dẫn cách thứ hai: biên dịch từ mã nguồn. Cách làm này có những ưu điểm sau:
- Bạn luôn có phiên bản mới nhất của Hệ quản trị CSDL PostgreSQL để hưởng những tính năng mới.
- Hiệu năng hoạt động rất cao: Do trình biên dịch biết cụ thể kiến trúc vi xử lý trên server của bạn và nó biến dịch PostgreSQL theo cách phù hợp nhất với phần cứng bạn có.
Yêu cầu hệ thống: Bạn cần có một máy tính/máy chủ chạy Ubuntu và một kết nối Internet. Bài viết này được thực hiện trên Ubuntu Server 12.04 LTD phiên bản 64 bit.
Hướng dẫn biên dịch mã nguồn
& Cài đặt PostgreSQL 9.2
Bước 1:
Download mã nguồn PostgreSQL (tại thời điểm viết bài này là bản 9.2.3)
wget http://ftp.postgresql.org/pub/source/v9.2.3/postgresql-9.2.3.tar.bz2
giải nén và chuyển đến thư mục chứa mã nguồn đã giải nén
tar xvfj postgresql-9.2.3.tar.bz2
cd postgresql-9.2.3
Bước 2:
Cài trình biên dịch và các gói cần thiết để biên dịch PostgreSQL, cách đơn giản nhất là sử dụng gói build-essential sẵn có trên Ubuntu Repository.
sudo apt-get update
sudo apt-get install build-essential libreadline6-dev zlib1g-dev libpq-dev flex bison libxml2-dev libxslt-dev libssl-dev libxml2-dev
Lưu ý: sau khi biên dịch và cài đặt xong PostgreSQL, bạn có thể không cần đến trình biên dịch nữa nên có thể gỡ ra bằng sudo apt-get remove build-essential
Bước 3:
Bắt đầu biên dịch và cài đặt (hãy chắc chắn rằng bạn đang ở trong thư mục mã nguồn PostgreSQL mà bạn mới giải nén ở bước 1).
Việc biên dịch khá dễ dàng như thường lệ với:
sudo ./configure
Với lệnh này, mặc định trình biên dịch sẽ cài PostgreSQL vào thư mục /usr/local/pgsql
. Nếu bạn không muốn sử dụng đường dẫn này, bạn có thể thêm tham số --prefix=/duong/dan/ban/thich
. Ví dụ:
sudo ./configure --prefix=/usr/local/pgsql/9.2/main
Ngoài ra, nếu bạn cho truy cập PostgreSQL server của bạn từ bên ngoài, có thể bạn cần kích hoạt tính năng mã hoá với OpenSSL bằng cách thêm tham số --with-openssl
vào lệnh ./configure
ở trên. Nếu bạn muốn hỗ trợ XML và XSL, thêm tham số --with-libxml --with-libxslt
. Lúc này, lệnh cấu hình trông sẽ như sau
sudo ./configure --prefix=/usr/local/pgsql/9.2/main --with-libxml --with-libxslt --with-openssl
Sau khi cấu hình, tiếp tục chạy lệnh sau
sudo make
sudo make check
Nếu không có lỗi gì thì thì ta có thể bắt đầu tiến hành cài đặt bằng lệnh:
sudo make install
Lúc này, PostgreSQL 9.2.3 đã được cài đặt trên máy tính của bạn. Việc tiếp theo là chúng ta cấu hình nó để phù hợp với nhu cầu sử dụng
Bước 4:
Tạo Super User và Data Directory cho instance đầu tiên của PostgreSQL (bạn có thể chạy đồng thời nhiều instance tách biệt nhau trên cùng một server)
Tạo tài khoản superuser (của hệ quản trị CSDL) có tên postgres thuộc group postgres
adduser --home /home/postgres --disabled-password --disabled-login --system --group postgres
Tạo Data Directory cho instance đầu tiên và phân quyền cho tài khoản postgres vừa tạo
sudo mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
Khởi tạo instance
sudo su - postgres -s /bin/bash
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
Lưu ý: nếu ở bước 3, bạn chọn thư mục cài đặt bằng --prefix=/duong/dan/ban/thich
thì câu lệnh khởi tạo sẽ là:
/duong/dan/ban/thich/bin/initdb -D /usr/local/pgsql/data
Đến đây, việc cài đặt vào tạo instance đầu tiên cho PostgreSQL đã hoàn thành, bạn có thể khởi động instance đầu tiên này của PostgreSQL bằng lệnh sau.
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /home/postgres/logfile start
(Lưu ý: nếu ở bước 3, bạn chọn thư mục cài đặt bằng --prefix=/duong/dan/ban/thich
thì câu lệnh khởi động instance sẽ là:
/duong/dan/ban/thich/bin/pg_ctl -D /usr/local/pgsql/data -l /home/postgres/logfile start
Nếu bạn muốn dừng (stop) instance vừa khởi động, có thể làm như sau
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /home/postgres/logfile stop
Đến đây, bạn đã hoàn thành việc biên dịch và cài đặt PostgreSQL (ở mức cơ bản nhất) để tận hưởng những tính năng ưu việt của PostgreSQL - Hệ Quản trị Cơ sở Dữ liệu mã nguồn mở ưu việt nhất thế giới.
Các trình tiện ích (client) của PostgreSQL cũng được biên dịch và được lưu tại /usr/local/pgsql
, bao gồm:
clusterdb, createdb, dropdb, createuser, v.v.
Trong một bài khác, tôi sẽ Hướng dẫn tạo script bật, tắt, khởi động lại cho PostgreSQL trên Ubuntu cũng như giúp cho việc start/stop/restart instance được dễ dàng hơn đồng thời giúp PostgreSQL có thể tự khởi chạy khi khởi động server Ubuntu.
Mọi bình luận & ý kiến đóng góp để bài viết này trở nên tốt hơn và hữu ích hơn được nhiệt liệt hoanh nghênh!
Hướng dẫn biên dịch và cài đặt PostgreSQL 9.2.x trên Ubuntu 12.04 LTS
Biên dịch Cài đặt PostgreSQL PostgreSQL 9.2 Ubuntu 12.04 LTS