Chào mừng đến với BIS Đăng nhập | Đăng ký | Trợ giúp
trong Tìm kiếm

Khả năng quản trị kho dữ liệu của ORACLE

Bài cuối 02-16-2012 11:07 AM của quynhphan. 5 trả lời.
Trang 1 trong số 1 (6 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 12-12-2008 08:49 AM

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Khả năng quản trị kho dữ liệu của ORACLE

    Hệ quản trị CSDL ORACLE là hệ thống quản trị dữ liệu lớn, hỗ trợ rất mạnh cho khả năng quản lý kho dữ liệu, cơ sở dữ liệu phân tán trên các hệ thống thông tin lớn, phân cấp. Sức mạnh vượt trội của ORACLE 9i là khả năng quản lý kho dữ liệu, truy xuất dữ liệu từ xa, phân tán, hỗ trợ cho hệ thống phân tích trực tuyến (OLAP).

    Quản lý tên cơ sở dữ liệu toàn cục trong cơ sở dữ liệu phân tán

    Trong hệ thống cơ sở dữ liệu phân tán, mỗi cơ sở dữ liệu có một tên toàn cục (Global Database Name) duy nhất dùng để xác định cơ sở dữ liệu. Tên cơ sở dữ liệu toàn cục gồm hai thành phần là tên cơ sở dữ liệu (Database Name) và tên miền (Domain Name). Tên cơ sở dữ liệu từ một đến tám ký tự. Tên miền phải theo chuẩn qui ước của internet, các mức trong tên miền phải được cách nhau bởi dấu chấm. Sau đây là ví dụ về đặt tên cho CSDL toàn cục trong ORACLE:

    DB_NAME

    DB_DOMAIN

    Global Database Name

    DAOTAO

    DHKT.EDU.VN

    DAOTAO.DHKT.EDU.VN

    SINHVIEN

    DHKT.EDU.VN

    SINHVIEN.DHKT.EDU.VN

    THUVIEN

    DHKT.EDU.VN

    THUVIEN.DHKT.EDU.VN

    Để xem tên cơ sở dữ liệu toàn cục ta sử dụng câu lệnh :

    SELECT * FROM GLOBAL_NAME

    Để thay đổi tên cơ sở dữ liệu toàn cục ta dùng cú pháp:

    ALTER DATABASE RENAME GLOBAL_NAME TO databasename.domain

    Ví dụ để đổi tên cơ sở dữ liệu toàn cục TKTH.DHKT.EDU.VN  thành KHOA.DHKT.EDU.VN ta làm như sau:

    ALTER DATABASE RENAME GLOBAL_NAME TO KHOA.DHKT.EDU.VN

    Tạo các liên kết cơ sở dữ liệu trong hệ thống CSDL phân tán

    Để hỗ trợ cho các ứng dụng truy xuất dữ liệu trong hệ thống CSDL phân tán ta cần tạo các liên kết dữ liệu (Database links) giữa các nguồn dữ liệu ở xa (Remote Database). Một Database link là một con trỏ trên CSDL cục bộ (local database) cho phép bạn truy cập các đối tượng dữ liệu trên một CSDL ở xa (remote database). ORACLE cho phép tạo các Database Links bằng câu lệnh SQL và bằng giao diện đồ họa.

    Tạo các Database Links sử dụng câu lệnh SQL:

    Database Link Private

    CREATE  DATABASE LINK "DAOTAO.DHKT.EDU.VN"   CONNECT TO "CHUC"     IDENTIFIED BY "chuc"      USING 'DMDAOTAO'

    Database Link Public

    CREATE PUBLIC DATABASE LINK "DAOTAO.DHKT.EDU.VN"

      CONNECT TO "CHUC"

      IDENTIFIED BY "chuc" 

     USING 'DMDAOTAO'

    Tạo Database Link sử dụng giao diện đồ họa  trong Oracle

    Sau khi thiết lập Database Link thành công, ta có thể truy xuất dữ liệu từ xa thông qua tên của Database link

    Ví dụ, từ CSDL cục bộ DATAWH ta muốn xem nội dung của bản môn học trong CSDL từ xa đào tạo qua Database Link DAOTAO.DHKT.EDU.VN, ta sử dụng câu lệnh SQl như sau:

    SELECT * FROM MONHOC@DAOTAO.DHKT.EDU.VN

    Đóng và xóa Database Links

    Để đảm bảo an toàn khi truy cập các CSDL từ xa qua hệ phân tán, nếu không cần thiết thì nên đóng hoặc xóa các Database Links.

    Đóng Database Link sử dụng câu lệnh SQL như sau:

    ALTER SESSION CLOSE DATABASE  LINK Linkname;

    Để đóng Database Links DAOTAO.DHKT.EDU.VN

    ALTER SESSION CLOSE DATABASE  LINK DAOTAO.DHKT.EDU.VN

    Để xóa các Database Links ta sử dụng câu lệnh SQL như sau:

    DROP [PUBLIC] DATABASE  LINK dblink;

     Ví dụ để xóa Database Links DAOTAO.DHKT.EDU.VN

    DROP  DATABASE  LINK DAOTAO.DHKT.EDU.VN

    Giải quyết vấn đề trong suốt vị trí trong ORACLE

    Trong hệ thống CSDL phân tán, yêu cầu về trong suốt vị trí đối với người sử dụng dữ liệu là rất quan trọng, người dùng không cần biết dữ liệu được lưu trữ vật lý ở đâu trong hệ thống mạng. Nếu bạn đã tạo các Database Links cần thiết, người sử dụng  có thể truy cập vào các đối tượng dữ liệu ở xa như thể trên máy cục bộ, vấn đề này gọi là trong suốt vị trí, ẩn đi các chức năng phân tán từ phía người sử dụng.

    ORACLE triển khai  ba cách để tạo tính trong suốt vị trí như sau:

    • Sử dụng khung nhìn (View) để tạo trong suốt vị trí
    • Sử dụng bí danh (Synonyms) để tạo trong suốt vị trí
    • Sử dụng thủ tục (Procedures) để tạo trong suốt vị trí

    Sử dụng khung nhìn (View) để tạo trong suốt vị trí

    Những View cục bộ có thể cung cấp mức trong suốt vị trí  đối với CSDL cục bộ hoặc CSDL từ xa trong CSDL phân tán.

     Giả sử có bảng KHOA trong CSDL cục bộ DMDAOTAO và bảng GIANGVIEN trong CSDL từ xa qua DB_link có tên TKTH.DHKT.EDU.VN, ta có thể tạo một khung nhìn nối thông tin  từ các CSDL cục bộ và từ xa như sau:

    CREATE VIEW V1 ASSELECT b.MAGV, b.HODEM, b.TEN, a.TENKHOAFROM CHUC.KHOA a, CHUC.GIANGVIEN@TKTH.DHKT.EDU.VN bWHERE a.MAKHOA=b.MAKHOA

    Khi người dùng sử dụng view V1 để xem dữ liệu bằng lệnh SELECT * FROM V1, người sử dụng không cần biết dữ liệu được lưu trữ vật lý ở đâu và được lấy từ bao nhiêu bảng.

    Sử dụng bí danh (Synonym) để tạo trong suốt vị trí

    Bí danh rất hữu ích  trong cả hai môi trường CSDL phân tán và tập trung, sử dụng bí danh là bạn đặt tên lại cho đối tượng CSDL để sử dụng, với CSDL phân tán bí danh làm cho người sử dụng không quan tâm đến dữ liệu đang ở đâu trong hệ phân tán mà chỉ biết tên bí danh của đối tượng CSDL. Một điều cần chú ý khi dùng bí danh là nếu đối tượng CSDL bị di chuyển hoặc đổi tên thì ta phải thay đổi bí danh cho phù hợp.

    Ta có thể tạo bí danh trên các đối tượng dữ liệu sau:

    Tables, Views, Materialized Views, Procedures, Functions, Packages

    Cú pháp để tạo bí danh:

    CREATE [PUBLIC] synonym_name

    FOR [schema.] object_name[@Database_link_name]

    Trong đó:

    public: Từ khóa xác định rằng bí danh có thể sử dụng cho mọi người dùng, nếu không có từ khóa PUBLIC thì câu lệnh trên sẻ tạo ra bí danh riêng (Private) chỉ được sử dụng cho người ta ra bí danh

    synonym_name:  tên bí danh dùng để tham chiếu đến đối tượng CSDL

    schema: Lược đồ nơi chứa đối tượng CSDL

    object_name: tên đối tượng CSDL được tham chiếu ví dụ như table, view, procedure,...

    Database_link_name: Xác định CSDL truy xuất từ xa.

    Ví dụ, tạo bí danh GV_TKTH để xem thông tin về giảng viên của khoa thống kê tin học chứa trong CSDL từ xa của khoa thống kê tin học qua Database Link TKTH.DHKT.EDU.VN như sau:

    CREATE  PUBLIC  SYNONYM GV_TKTHFOR CHUC.GIANGVIEN@TKTH.DHKT.EDU.VN

    Ta có thể xem tất cả các giáo viên của khoa TKTH bằng cách sử dụng bó danh như sau

    SELECT * FROM GV_TKTH Sử dụng thủ tục để tạo trong suốt vị trí

    Sử dụng PL/SQL để tạo các thủ tục cục bộ tham chiếu đến CSDL từ xa

    Giả sử ta viết thủ tục APPEND trong CSDL cục bộ DMDAOTAO để bổ sung các môn học của khoa thống kê vào bảng MONHOC của CSDL từ xa của khoa thống kê tin học qua Database Link TKTH.DHKT.EDU.VN như sau:

    Ta có thể sử dụng bí danh (Synonym) kết hợp với thủ tục để tạo mức trong suốt tốt hơn.

    Ví dụ tạo bí danh MONH để truy xuất đến bảng MONHOC trong CSDL từ xa TKTH.DHKT.EDU.VN và trong thủ tục DEL_MH cục bộ  trên CSDL DMDAOTAO sử dụng bí danh MH để  xóa các môn học với mã môn học được xác định

    Sử dụng thủ tục cục bộ gọi thủ tục từ xa

    Giả sử đăng nhập vào CSDL cục bộ để tạo thủ tục cục bộ DMDAOTAO:

    CONNECT chuc/chuc@DAOTAO

    Tạo thủ tục cục bộ DEL_RM:

    CREATE PROCEDURE  DEL_RM(S CHAR) ASBEGINCHUC.DEL_MONHOC@TKTH.DHKT.EDU.VN(S);END;

    Sau đó đăng nhập vào CSDL ở xa TKTH.DHKT.EDU.VN và tạo thủ tục DEL_MONHOC

    CONNECT chuc/chuc@TKTH.DHKT.EDU.VN

    CREATE PROCEDURE DEL_MONHOC(S CHAR) ASBEGINDELETE FROM MONHOCWHERE MAMH=S;END;

    Khi người dùng hoặc ứng dụng đăng nhập vào CSDL DMDAOTAO cục bộ gọi thủ tục DEL_RM(2150112) thủ tục này gọi thủ tục từ xa DEL_MONHOC trên CSDL từ xa TKTH.DHKT.EDU.VN  để xóa môn học có mã là 2150112

     

     Các câu lệnh DML chuẩn có hỗ trợ truy xuất CSDL từ xa tạo tính trong suốt cho người dùng

    SELECT, INSERT, UPDATE, DELETE, LOCKTABLE, SELECT.... FOR UPDATE (Có thể không hỗ trợ cho hệ thống không thuần nhất)

    Ví dụ: Từ CSDL DMDAOTAO ta tạo liên kết có tên TKTH.DHKT.EDU.VN để truy xuất đến CSDL từ xa ở khoa thống kê tin học (TKTH). Sau đó ta sử dụng lệnh Insert để bổ sung các môn học của khoa thống kê quản lý (có mã môn học bắt đầu bằng 215) từ kho dữ liệu DMDAOTAO xuống kho CSDL từ xa của khoa TKTH

    Đăng nhập vào CSDL DMDAOTAO và thực hiện lệnh Insert như sau:

    INSERT INTO MONHOC@TKTH.DHKT.EDU.VNSELECT * FROM MONHOC

    WHERE MAMH LIKE  '215%'

    Chú ý: Oracle không cho phép thực hiện các câu lệnh DDL như CREATE, ALTER, DROP từ xa Truy vấn từ xa và truy vấn phân tán

    Truy vấn từ xa (Remote Query): Truy vấn thông tin từ một hoặc nhiều bảng ở xa nhưng tất cả chúng đều lưu trữ trong 1 node. Ví dụ xem nội dung bảng MONHOC của Schame CHUC trong CSDL từ xa TKTH.DHKT.EDU.VN

    SELECT * FROM CHUC.MONHOC@TKTH.DHKT.EDU.VN

    Cập nhật từ xa (Remote Update): Sửa dữ liệu từ 1 hay nhiều bảng trong cùng một node.

    Ví dụ: Từ CSDL cục bộ DMDAOTAO, muốn thay đổi tên của môn học có mã số 2150182 thành Database trên CSDL từ xa TKTH.DHKT.EDU.VN ta thực hiện câu lệnh sau

    UPDATE MONHOC@TKTH.DHKT.EDU.VN

    SET TENMH='Database'

    WHERE MAMH='2150182'

    Truy vấn phân tán (Distributed Query):Truy vấn lấy thông tin từ hai hay nhiều node khác nhau trong hệ phân tán. Ví dụ sau đây  mô tả từ CSDL cục bộ DATAWH truy vấn tới bảng Giảng viên trong CSDL từ xa có Database Link là DAOTAO.DHKT.EDU.VN  và bảng Khoa trong CSDL từ xa có Database Link là  TKTH.DHKT.EDU.VN

    Cập nhật phân tán (Distributed Update)

    Cập nhật dữ liệu trên 2 hay nhiều nút, có thể sử dụng PL/SQL, các thủ tục hoặc trigger bao gồm hai hay nhiều cập nhật từ xa trên các nút khác nhau.

    Thủ tục UPDATE_DIST dưới đây từ CSDL cục bộ DATAWH thực hiện sửa đổi tên của môn học có mã 215018 trên 2 CSDL từ xa là DAOTAO.DHKT.EDU.VN VÀ TKTH.DHKT.EDU.VN Thành "Database".

    Tạo bảng từ các truy vấn phân tán từ xa

    Từ CSDL DATAWH tạo bảng TONGHOP sử dụng truy vấn phân tán truy xuất dữ liệu trong các CSDL từ xa là  GIANGVIEN@DAOTAO.DHKT.EDU.VNKHOA@TKTH.DHKT.EDU.VN

    Từ khóa đại diện: ,
    • Điểm chủ đề: 50
  • 04-20-2010 11:46 PM trả lời

    • balv
    • 500 thành viên năng nổ nhất
    • Tham gia 01-18-2010
    • Điểm 35

    Re: 3.Khả năng quản trị kho dữ liệu của ORACLE

    Cảm ơn anh vì bài viết rất hay
    Em nghĩ nếu anh bổ sung thêm phần cấu hình các file tnsname.ora và listener.ora thì bài viết sẽ hoàn thiện hơn
    Em đã biết cách tạo database link và truy vấn dữ liệu từ xa giữa 2 máy trong mạng LAN hoặc giữa máy thật và máy ảo.
    Cho em hỏi thêm làm sao để em demo được việc này với hai máy qua Internet( vì một máy ở VN và một ở USA mà :D)
    Em biết trong cú pháp đã chỉ ra cái GlobalDatabaseName mà database link trỏ tới nhưng em vẫn chưa rõ phải cấu hình thế nào?
    -Có phải cái DomainName phải có thực trên mạng?
    -Phải cấu hình các file tnsname.ora và listener.ora ở hai máy có gì đặc biệt?
     
    Từ khóa đại diện:
    • Điểm chủ đề: 35
  • 04-23-2010 08:55 PM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: 3.Khả năng quản trị kho dữ liệu của ORACLE

    Bộ mô tả kết nối các Database Server phân tán trong hệ quản trị ORACLE 9i  được mô tả trong file TNSNAMES.ORA như sau(Có thể thay địa chỉ IP bằng tên SERVER)

    # TNSNAMES.ORA Network Configuration File: C:"oracle"ora92"network"admin"tnsnames.ora

    # Generated by Oracle configuration tools.

    DATAWH =

     (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.10)(PORT = 1521))

        )

        (CONNECT_DATA =

          (SID = DATAWH)

          (SERVER = DEDICATED)

        )

     )

    DMTMDL =

     (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.11)(PORT = 1521))

        )

        (CONNECT_DATA =

          (SID = DMTMDL)

          (SERVER = DEDICATED)

        )

     )

    Việc cấu hình 2 file  tnsname.ora và listener.ora  không có gì thay đổi (bạn có thể theo định dạng trên)

    Bạn chỉ cần thay đia chị IP của máy trên mạng mà bạn muốn connect vào phần địa địa chỉ trên và đổi tên Database và sử dụng Database Link như bạn đã biết thì có thể truy cập được.
     Chúc bạn thành công.

     

     

    • Điểm chủ đề: 20
  • 04-23-2010 09:08 PM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: 3.Khả năng quản trị kho dữ liệu của ORACLE

     

    Oracle Net Listener  Service

     

    Oracle Listener là một dịch vụ lắng nghe chỉ chạy trên server và thực hiện các tác vụ lắng nghe các yêu cầu kết nối đến. Sau khi nó kiểm tra yêu cầu kết nối CSDL đến. Tập tin listener. Ora mặc định ở thư mục C:"oracle"ora92"network"admin chứa thông tin cấu hình cho dịch vụ lắng nghe. Bởi vì dịch vụ lắng nghe chỉ chạy trên server nên không có tập tin này trên client. Lưu ý tất cả tham số cấu hình trong listener. Ora có giá trị mặc định. Bạn không phải cấu hình dịch vụ lắng nghe bằng tay. Sau khi lần đầu tiên CSDL trên server được tạo, dịch vụ lắng nghe tự động khởi chạy và tập tin listener.Ora được đặt vào thư mục mặc định C:"oracle"ora92"network"admin. Trong khi tạo CSDL, thông tin mạng và dịch vụ CSDL tự động được thêm vào tập tin cấu hình lắng nghe CSDL tự động đăng ký nó với dịch vụ lắng nghe và khởi chạy lắng nghe các yêu cầu kết nối tới CSDL mới này.

    Mô tả dịch vụ lắng nghe trong tập tin C:"oracle"ora92"network"admin"listener

    LISTENER =

    (DESCRIPTION_LIST =

    (DESCRIPTION =

    (ADDRESS_LIST =

    (ADDRESS = (PROTOCOL = TCP)(HOST = SERVER_NAME|IP)(PORT = 1521))

    )))

    Ngoài ra, Oracle cung cấp một tiện ích với giao diện đồ hoạ (GUI) giúp cấu hình kết nối cho CSDL của bạn. Những tiện ích này là Oracle Net Manager và Oracle Net Configuration Assistant.

     

    Từ khóa đại diện: ,
    • Điểm chủ đề: 35
  • 12-03-2010 10:50 AM trả lời

    • vanky
    • 150 thành viên năng nổ nhất
    • Tham gia 12-02-2010
    • Điểm 55

    Re: 3.Khả năng quản trị kho dữ liệu của ORACLE

    Chào Anh Chức,
    Em đang làm trên Oracle 10g đang gặp một số khó khăn về kết nối và truy xuất dữ liệu giữa các Data Mart từ xa.
    Anh có tài liệu về  cái này không cho em xin với. Mong anh gởi tài liệu qua địa chỉ vanky1287@gmail.com.
    Cảm ơn anh nhiều.
     
    Từ khóa đại diện: , ,
    • Điểm chủ đề: 20
  • 02-16-2012 11:07 AM trả lời

    Re: 3.Khả năng quản trị kho dữ liệu của ORACLE

    Chào anh!
    Em mới đọc được bài viết này của anh. Bài viết rất hay. Em là thành viên mới của diễn đàn.  Em cũng đang tìm hiểu về CSDL phân tán nhưng em mới chỉ nghiên cứu qua được về lý thuyết, cũng chưa được nhiều lắm. Em muốn hiểu rõ hơn về CSDL phân tán và ứng dụng để thiết kế một CSDL phân tán cho một bài toán cụ thể. Em chưa biết bắt đầu từ đâu và làm thế nào.
    Anh có thể giúp em được không ạ, cho em xin các tài liệu liên quan được không ạ.
    Nếu được, Anh có thể gửi vào địa chỉ bichthuycntt@gmail.com 
    Em cảm ơn anh nhiều và mong được anh giúp đỡ
     
     
    • Điểm chủ đề: 20
Trang 1 trong số 1 (6 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems