[Chuyển đổi database Oracle sang PostgreSQL] Phần 3 - Thư viện hỗ trợ Orafce
database migration
3
Postgresql
10
Oracle
7
White

Phan Lê Thanh viết ngày 26/11/2017

Sau khi hoàn thành Phần 2, bạn sẽ có được cơ bản phần CSDL cho PostgreSQL. Tuy nhiên, đối với một số CSDL cụ thể sử dụng các thư viện ích của Oracle (DBMS, UTL_FILE…) thì không thể chạy được trên PostgreSQL vì PostgreSQL không hỗ trợ các thư viện này.

Rất may là chúng ta có một công cụ dưới dạng extension có thể giúp hỗ trợ các hàm này, giúp chúng có thể thực thi ngay cả trên PostgreSQL, đó là orafce. Các bạn có thể tham khảo thêm về các thành phần mà orafce có thể hỗ trợ tại đây.

orafce

Trong bài viết này mình sẽ hướng dẫn cách cài đặt orafce cho PostgreSQL (trong hệ điều hành CentOS).

Bước 1: Cài đặt postgresql-9.6
Nếu bạn chưa có PostgreSQL, hãy thực hiện cài đặt server postgresql-9.6 theo hướng dẫn tại https://wiki.postgresql.org/wiki/YUM_Installation
Và cài đặt bổ sung một số package bên dưới:

yum install postgresql96-devel
yum install postgresql96-contrib
yum install gcc

Bước 2: Tạo thư mục contrib

cd /usr/pgsql-9.6/lib/pgxs
mkdir contrib

Bước 3: Tải và cài đặt orafce
Tải file nén .tar tại https://github.com/orafce/orafce/releases, phiên bản đang sử dụng trong bài viết này là orafce-3.4.0.
Copy file .tar vào thư mục /tmp và thực thi các câu lệnh để cài đặt:

cd /tmp
tar –xf orafce-VERSION_3_4_0.tar –C /usr/pgsql-9.6/lib/pgxs/contrib
cd /usr/pgsql-9.6/lib/pgxs/contrib/
mv orafce-VERSION_3_4_0 orafce
cd orafce
make install

Trường hợp nếu xảy ra lổi pg_config command not found, cấu hình lại biến môi trường:

export PATH="$PATH:/usr/pgsql-9.6/bin"
make install 

Trường hợp nếu xảy ra lổi /usr/bin/bison: Command not found, cài đặt thêm package bison:

yum install bison
make install

Trường hợp nếu xảy ra lổi /usr/bin/flex: Command not found, cài đặt thêm package flex:

yum install flex
make install

Trường hợp nếu xảy ra lổi openssl/ssl.h: No such file or directory, cài đặt thêm package openssl:

yum install openssl-devel
make install

Quá trình cài đặt orafce sẽ thành công nếu bạn thấy các thông báo dưới đây:

/bin/mkdir -p '/usr/pgsql-9.6/lib'
/bin/mkdir -p '/usr/pgsql-9.6/share/extension'
/bin/mkdir -p '/usr/pgsql-9.6/share/extension'
/bin/mkdir -p '/usr/pgsql-9.6/doc/extension'
/usr/bin/install -c -m 755  orafce.so '/usr/pgsql-9.6/lib/orafce.so'
/usr/bin/install -c -m 644 .//orafce.control '/usr/pgsql-9.6/share/extension/'
/usr/bin/install -c -m 644 .//orafce--3.4.sql .//orafce--3.2--3.3.sql .//orafce--3.3--3.4.sql  '/usr/pgsql-9.6/share/extension/'
/usr/bin/install -c -m 644 .//README.asciidoc .//COPYRIGHT.orafce .//INSTALL.orafce '/usr/pgsql-9.6/doc/extension/'

Bước 4: Restart lại PostgreSQL

service postgresql-9.6 restart

Bước 5: Tạo extension
Bây giờ bạn chỉ cần tạo extension orafce trong CSDL cụ thể của PostgreSQL mà bạn muốn hỗ trợ:

su postgres
bash-4.1$ psql postgres
postgres=# CREATE EXTENSION orafce;

Tới đây, với phần cuối này, chúng ta đã có một CSDL PostgreSQL hoàn chỉnh được chuyển đổi từ Oracle. Mình xin kết thúc chuỗi bài viết này ở đây và chúc các bạn chuyển đổi CSDL của mình thành công, nếu có bất cứ thắc mắc gì thì hãy để lại comment nhé.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Phan Lê Thanh

3 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
4 0
Oracle và PostgreSQL Nếu bạn là developer và thường xuyên giao tiếp đến cơ sở dữ liệu (database) của một hệ thống thì chắc hẳn là sẽ biết đến hai ...
Phan Lê Thanh viết 9 tháng trước
4 0
Bài viết liên quan
White
3 0
Bài viết này sẽ giới thiệu về phân vùng bảng và chỉ mục trong Oracle Database. Phân vùng giải quyết vấn đề quan trọng trong việc hỗ trợ các bảng r...
Dương Đức Đạt viết hơn 1 năm trước
3 0
White
0 0
Công việc chính của việc chuyển đổi là chuyển các cấu trúc bảng, procedure, data của CSDL Oracle sang PostgreSQL. Bạn có thể làm việc này một cách ...
Phan Lê Thanh viết 8 tháng trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
3 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!