All about Oracle Technologies

Saturday 26 December 2015

Cách khắc phục JDeveloper 12c không tạo được Integrated WebLogic Server trên Windows 10

Nếu chúng ta cài đặt JDeveloper 12c hoặc Oracle SOA Suite 12 có tích hợp sẵn JDeveloper 12c trên Windows 10 thì có thể chúng ta sẽ không tạo được 1 WebLogic domain mới bởi vì các thư viện jython được build sẵn trong gói cài đặt không được cấu hình để nhận ra hệ điều hành Windows 10.

Vấn đề tương tự cũng có thể xảy ra nếu như chúng ta cài đặt Business Process Management Suite có tích hợp sẵn JDeveloper 12c.

Cách khắc phục như sau:
1. Vào đường dẫn: C:\Oracle\Middleware\Oracle_Home\wlserver\common\wlst\modules
2. Sao lưu dự phòng file jython-modules.jar
3. Đổi tên file jython-modules.jar thành jython-modules.rar
4. Dùng trình WinRar mở file jython-modules.rar, tìm đến file Lib\javashell.py
5. Dùng trình Editor để bổ sung thêm thông tin về hệ điều hành Windows 10 vào
_osTypeMap = (
        ( "nt", ( 'nt', 'Windows NT', 'Windows NT 4.0', 'WindowsNT',
                  'Windows 2000', 'Windows 2003', 'Windows XP', 'Windows CE',
                  'Windows Vista', 'Windows Server 2008', 'Windows 7', 'Windows 8', 
                  'Windows Server 2012', 'Windows 10' )),
        ( "dos", ( 'dos', 'Windows 95', 'Windows 98', 'Windows ME' )),
        ( "mac", ( 'mac', 'MacOS', 'Darwin' )),
        ( "None", ( 'None', )),
        )
6. Lưu file javashell.py
7. Đổi tên jython-modules.rar thành jython-modules.rar

Bây giờ ta đã có thể tạo Integrated WebLogic Server.

** Tham khảo: Lỗi khi không tạo được Integrated WebLogic Server
[Waiting for the domain to finish building...]
[03:44:23 PM] Creating IntegratedWebLogicServer Domain...
[03:44:32 PM] ERROR:  An error occurred while building the default domain.
Please see this log file for more details:
C:\Users\Christos Vezalis\AppData\Roaming\JDeveloper\system12.2.1.0.42.151011.0031\o.j2ee.adrs\BuildDefaultDomain.log
The Server Instance cannot be started because the IntegratedWebLogicServer Domain was not built successfully

and inside the log the actual error is:

wlst > Failed to get environment, environ will be empty: (0, 'Failed to execute command ([\'sh\', \'-c\', \'env\']): java.io.IOException: Cannot run program "sh": CreateProcess error=2, The system cannot find the file specified')
wlst > Error:  ADRS_DOMAIN_PASSWORD environment variable not set.

Monday 16 November 2015

Oracle Exadata - Phần 2: Các thành phần trong Exadata

22:33 Posted by NTP No comments
Như đã giới thiệu ở phần mở đầu, Exadata là 1 cỗ máy được kết hợp giữa các thiết bị phần cứng và phần mềm với nhau nhằm mục đích cung cấp 1 nền tảng cho cơ sở dữ liệu (CSDL) Oracle hoạt động. Ở phần này chúng ta sẽ tìm hiểu về các thành phần cấu thành nên Exadata.

1. Phần cứng:
Bao gồm các thành phần sau:
(Hình 1)

1.1 Hệ điều hành
- Ở thế hệ X5 thì hệ điều hành (HĐH) được cài sẵn là Oracle Linux 6. Ở thế hệ trước đó, Oracle cho phép tùy chọn giữa 2 HĐH là Oracle Linux 5 hoặc Solaris 11. Lý do X5 cài HĐH Oracle Linux 6 và không hỗ trợ về mặt kỹ thuật cho HĐH Solaris nữa là do số lượng khách hàng chính sử dụng đều lựa chọn HĐH Linux.
- Từ phiên bản Exadata Storage Server 11.2.3.2.0, Oracle đã chính thức thông báo chỉ hỗ trợ cho 1 phiên bản Linux kernel và phiên bản này được đặt tên là Unbreakable Enterprise Kernel (UEK). Phiên bản UEK này được Oracle tinh chỉnh để vượt qua các giới hạn mặc định của Redhat kernel nhằm đáp ứng tốt nhất cho Exadata. Một tính năng được tinh chỉnh có thể kể đến đó là cải thiện những vấn đề liên quan đến Network để giúp cho InfiniBand hoạt động dựa trên giao thức iDB được tốt nhất.

1.2 Máy chủ Database
- Thế hệ X5-2 được xây dựng dựa vào cấu hình của dòng máy chủ Sun Fire X4170 M5. Mỗi máy chủ có cấu hình gồm:
  • CPU: 2x18-core Intel Xeon E5-2699 (2.3Ghz)
  • Bộ nhớ: 256GB
  • Ổ đĩa gắn trong: 4 ổ SAS 600GB 10K RPM
  • Kết nối mạng: 2 cổng quang 10Gb; 4 cổng Ethernet 10Gb và 2 cổng InfiniBand 40Gb/s
1.3 Máy chủ lưu trữ
- Thế hệ X5-2 được xây dựng dựa vào cấu hình của dòng máy chủ Sun Fire X4270 M5. Mỗi máy chủ có cấu hình gồm: 
  • Ổ đĩa: 12 ổ đĩa cứng và 8 ổ đĩa Flash. Tùy thuộc vào nhu cầu dung lượng lưu trữ cao (HC: High Capacity) hay tốc độ xử lý trên Flash cao (Extreme Flash) mà dung lượng 2 loại ổ này có thể thay đổi tùy biến.
  • Bộ nhớ: có thể lên đến 96GB đối với chế độ HC hoặc 64GB đối với chế độ Extreme Flash
  • CPU: 2x8-core Intel Xeon E5-2630 v3 (2.4GHz)
1.4 InfiniBand
- InfiniBand là một trong những thành phần phần cứng quan trọng, giúp kết nối giữa tầng CSDL với tầng lưu trữ. Ngoài ra, InfiniBand còn được sử dụng cho việc kết nối với các hệ thống lưu trữ bên ngoài như các hệ thống lưu trữ dự phòng. InfiniBand này được gọi là Leaf Switch.
- 1 InfiniBand khác nữa có tên là Spine Switch có nhiệm vụ kết nối nhiều hệ thống rack lại với nhau.

1.5 Các thành phần khác
- Ở phiên bản X5-2, mặc định Oracle sử dụng Switch của Cisco dòng Catalyst 4948 và cho phép chúng ta có thể thay thế Switch này bằng 1 Switch khác tốt hơn.

2. Phần mềm
Phần mềm được sử dụng trong Exadata giúp chia Exadata ra thành 2 tầng: tầng CSDL và tầng lưu trữ. 2 tầng này giao tiếp với nhau thông qua giao thức iDB. Phần mềm chạy trên tầng CSDL chính là Oracle Database, phần mềm chạy trên tầng lưu trữ là Oracle Disk Management.
(Hình 2)
2.1 Phần mềm trên máy chủ CSDL
- Có 2 phiên bản được sử dụng trên dòng X5-2 là Oracle 11g Release 2 hoặc Oracle 12c Release 1.
- Oracle Automatic Storage Management (ASM) là phần mềm quan trọng trong kiến trúc của Exadata. ASM cung cấp khả năng quản lý tập tin và dung lượng lưu trữ.

2.2 Phần mềm trên máy chủ lưu trữ:
- Cell Services (cellsrv) là 2 phần mềm chính được sử dụng ở tầng này. Cellsrv là 1 chương trình chạy đa luồng (multithread) giúp quản lý việc đọc ghi (I/O) từ tầng CSDL chuyển đến.
- Cellsrv được kế thừa các chức năng của I/O Resource Manager (IORM) nhằm đảm bảo rằng băng thông cho việc đọc/ghi được phân phối đến các CSDL khác nhau một cách tức thời.
- Management Service (MS) là 1 chương trình được phát triển bằng ngôn ngữ Java nhằm cung cấp giao diện cho việc kết nối giữa Cellsrv và Cell Command Line Interface (màn hình quản lý cell bằng câu lệnh).
- Restart Service (RS) là 1 tập các tiến trình chịu trách nhiệm theo dõi tất cả các tiến trình khác và khởi động lại chúng trong các trường hợp cần thiết.

Oracle Exadata - Phần 1: Giới thiệu tổng quan

18:09 Posted by NTP No comments
1. Exadata là gì?
(Hình 1)
- Nói 1 cách dễ hiểu: Exadata là 1 cỗ máy được kết hợp giữa các thiết bị phần cứng và phần mềm với nhau nhằm mục đích cung cấp 1 nền tảng cho cơ sở dữ liệu (CSDL) Oracle hoạt động.
- Exadata ban đầu được thiết kế nhằm giải quyết các vấn đề thường gặp về tình trạng thắt cổ chai (bottleneck) khi sử dụng với các CSDL lớn - hay nói 1 cách khác đó chính là việc tắc nghẽn đường truyền khi vận chuyển 1 lượng dữ liệu lớn từ CSDL lên/xuống hệ thống lưu trữ.
- Để giải quyết vấn đề này, các kỹ sư của Oracle đã nghiên cứu và đưa ra các giải pháp nhằm giảm tình trạng thắt cổ chai ở 2 tầng: tầng lưu trữ và tầng CSDL. Oracle nhận thấy rằng bằng sự kết hợp các công nghệ mới và tiên tiến áp dụng ở 2 tầng này sẽ giải quyết được đáng kể tình trạng thắt cổ chai. Các công nghệ nổi bật có thể kể đến trong giải pháp này đó là:
  • INFINIBAND: công nghệ cho phép tạo 1 băng thông cực rộng (40Gb/s) để 2 tầng giao tiếp với nhau.
  • SMART SCAN: công nghệ cho phép truy vấn và lấy dữ liệu cần trả về ở tầng lưu trữ, sau đó mới trả về tầng CSDL.
2. Lịch sử Exadata:
Tính đến đầu năm 2015, Exadata đã trải qua tổng cộng 6 thế hệ như sau:
  • V1: thế hệ đầu tiên của Exadata được ra đời vào năm 2008. Đây là sự kết hợp giữa giải pháp phần cứng của HP và giải pháp phần mềm của Oracle. Kiến trúc của thế hệ V1 cũng tương tự như kiến trúc của thế hệ thứ 6 (X5) chỉ khác là ở thế hệ V1 chưa có công nghệ Flash. Thị trường nhắm đến của thế hệ này đó là Data Warehouse.
  • V2: thế hệ thứ 2 được ra đời vào năm 2009. Ở thế hệ này thì Oracle đã chuyển sự hợp tác về phần cứng sang hãng Sun. Có rất nhiều sự nâng cấp về phần cứng ở thế hệ này. Nổi bật nhất đó là sự xuất hiện của vùng lưu trữ thể rắn (solid state-based storage). Phần mềm được sử dụng kèm theo cho vùng lưu trữ này đó là Exadata Smart Flash Cache. Ở thế hệ này thì hệ thống này vẫn phục vụ cho thị trường Data Warehouse.
  • X2: thể hệ thứ 3 ra đời vào năm 2010 và được đổi thành X2 thay vì V3. Ở thế hệ này thì Exadata đã có thể dùng được cho các hệ thống OLTP.
  • X3: thế hệ thứ 4 ra đời vào năm 2012 và là sự nâng cấp đáng kể về phần cứng của thế hệ trước đó.
  • X4: thế hệ thứ 5 ra đời vào năm 2013. Ở thế hệ này có sự thay đổi về kích thước của ổ cứng (từ 3.5" xuống còn 2.5")
  • X5: thế hệ thứ 6 ra đời vào đầu năm 2015. Bộ nhớ Flash được nâng lên gấp đôi so với thế hệ trước đó, đạt mức 6.4TB ở mỗi máy chủ lưu trữ ở dòng X5-2.
3. Lựa chọn cấu hình phiên bản Exadata X5-2:
Ở phiên bản Exadata X5-2, Oracle có 5 tùy chọn về cấu hình như sau:
(Hình 2)
  • Eighth Rack: giống cấu hình Quarter Rack nhưng ở tầng CSDL chỉ hoạt động được 1/2 tổng số nhân của CPU (1/2 còn lại bị vô hiệu hóa trong BIOS). Tương tự ở tầng lưu trữ cũng chỉ có 1/2 dung lượng lưu trữ được cấu hình để hoạt động.
  • Quarter Rack: gồm 2 Database server và 3 Storage server
  • Half Rack: gồm 4 Database server và 7 Storage server
  • Full Rack: gồm 8 Database server và 14 Storage server
  • Cấu hình tùy chọn: cho phép người sử dụng tự lựa chọn cấu hình cho máy chủ Exadata.

Tuesday 10 November 2015

Oracle Data Integrator 11g - Nạp dữ liệu từ MySQL vào Oracle Database

Bài viết này sẽ giới thiệu cách nạp dữ liệu từ MySQL vào trong Oracle Database.

(Hình 1) 

Kịch bản thực hiện: dùng ODI để nạp dữ liệu từ 1 file XML vào 1 bảng trong Oracle Database.
1. Chuẩn bị:
- Đầu vào: bảng regions trong MySQL có cấu trúc và dữ liệu như sau:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
mysql> create table regions(
    -> region_id integer,
    -> region_name varchar(25));
Query OK, 0 rows affected (0.16 sec)

mysql> insert into regions values(5,'South East Asia');
Query OK, 1 row affected (0.04 sec)

mysql> insert into regions values(6,'North American');
Query OK, 1 row affected (0.03 sec)

mysql> insert into regions values(11,'South Europe');
Query OK, 1 row affected (0.03 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from regions;
+-----------+-----------------+
| region_id | region_name     |
+-----------+-----------------+
|         5 | South East Asia |
|         6 | North American  |
|        11 | South Europe    |
+-----------+-----------------+
3 rows in set (0.00 sec)
mysql>
- Đầu ra: dữ liệu trong bảng regions trong MySQL được nạp vào bảng REGIONS trong Oracle Database. Bảng REGIONS có cấu trúc như sau:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
CREATE TABLE regions
(
    region_id     NUMBER,
    region_name   VARCHAR2 (25 BYTE)
);

ALTER TABLE regions
ADD CONSTRAINT reg_id_pk PRIMARY KEY (region_id);

ALTER TABLE regions
ADD CONSTRAINT region_id_nn CHECK ("REGION_ID" IS NOT NULL);
- Công cụ: ODI Studio

2. Các bước thực hiện:
(Hình 2)
2.1 Cấu hình TOPOLOGY:
2.1.1 Cấu hình Physical Architecture:
Bước 1: khai báo Physical Architecture cho file XML
- Tạo New Data Server
(Hình 3)
- Thẻ Definition: khai báo Name, User và Password
(Hình 4)
- Thẻ JDBC: khai báo JDBC Driver JDBC Url
 (Hình 5)
- Khai báo xong bấm Test Connection để kiểm tra kết nối
(Hình 6)
- Tạo New Physical Schema
(Hình 7) 
- Tab Definition: chọn giá trị cho Schema (Schema) Schema (Work Schema)
(Hình 8) 
Bước 2: khai báo Physical Architecture cho Oracle Database
- Tạo New Data Server
(Hình 9) 
- Thẻ Definition: khai báo Name, User Password
(Hình 10)
- Thẻ JDBC: khai báo JDBC Driver JDBC Url
(Hình 11) 
- Khai báo xong bấm Test Connection để kiểm tra kết nối
(Hình 12) 
- Tạo New Physical Schema
(Hình 13) 
- Thẻ Definition: chọn Schema (Schema) Schema (Work Schema)
(Hình 14) 

2.1.2 Cấu hình Logical Architecture
Bước 1: khai báo Logical Architecture cho file XML
- Tạo New Logical Schema
(Hình 15) 
- Thẻ Definition: khai báo Name
(Hình 16) 
Bước 2: khai báo Logical Architecture cho Oracle Database
* Lưu ý: ở bước này nếu như tùy chọn Oracle không hiển thị thì ta bỏ chọn Hide Unused Technologies như hình để hiện thị mục này.
(Hình 17) 
- Tạo New Logical Schema
(Hình 18) 
- Thẻ Definition: khai báo Name
  (Hình 19)

2.1.3 Cấu hình Contexts
- Tạo New Context
(Hình 20)
- Thẻ Definition: khai báo Name
 (Hình 21)
- Thẻ Schemas: chọn Physical Schemas tương ứng với các Logical Schemas như hình
 (Hình 22)

2.2 Cấu hình DESIGNER
2.2.1 Cấu hình Models
Bước 1: cấu hình Model cho file XML
- Tạo New Model
(Hình 23) 
- Thẻ Definition: khai báo Nam, Code, Technology, Logical Schema
(Hình 24) 
- Thẻ Reverse Engineer: chọn Standard, Context rồi bấm chọn Reverse Engineer
 (Hình 25)
- ODI sẽ đọc cấu trúc file XML và hiển thị như hình
(Hình 26) 
- Kiểm tra dữ liệu trong bảng regions của MySQL
(Hình 27) 
- Kết quả:
 (Hình 28)

Bước 2: cấu hình model cho Oracle Database
- Tạo New Model
(Hình 29) 
- Thẻ Definition: khai báo Name, Code, Technology Logical Schema
(Hình 30) 
- Thẻ Reverse Engineer: chọn Standard, Context
 (Hình 31)
- Thẻ Selective Reverse-Engineering: chọn như hình
 (Hình 32)

2.2.1 Cấu hình Projects
Bước 1: tạo Project
- Tạo New Project
 (Hình 33)
- Thẻ Definition: khai báo Name
 (Hình 34)
Bước 2: cấu hình Knowledge Modules
- Chọn Import Knowledge Modules...
 (Hình 35)
- Chọn các Modules như hình
 (Hình 36)
Bước 3: cấu hình Interfaces
- Chọn New Interface
 (Hình 37)
- Thẻ Definition: khai báo Name
 (Hình 38)
- Chọn thẻ Mapping
 (Hình 39)
- Kéo thả Source Model vào vùng Source; Target Model vào vùng Target. Chọn No (Automatic Mapping)
 (Hình 40)
- Kéo từng trường bên Source để map tương ứng với từng trường bên Target
 (Hình 41)
- Chọn thẻ Flow để kiểm tra
 (Hình 42)
- Chọn Execute để thực hiện việc import dữ liệu từ bảng regions trong MySQL vào bảng REGIONS trong Oracle Database
 (Hình 43)
- Chọn OK
 (Hình 44)
- Query bảng REGIONS để kiểm tra kết quả (2 dòng có region_id là 5 và 6 của bảng regions trong MySQL được thêm vào bảng REGIONS trong Oracle, dòng có region_id là 11 không được thêm vào do trùng khóa chính)
 (Hình 45)
** Chúng ta có thể kiểm tra các bước ODI đã thực hiện như hình sau:
(Hình 46)