Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
557,8 KB
Nội dung
Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu MỤC LỤC Phần I. ĐẶT VẤN ĐỀ Những năm gần đây, hệ cơ sở dữ liệu phân tán được phát triển mạnh trong thực tế dựa trên sự phát triển của cơ sở dữ liệu (CSDL) và mạng máy tính. Vì yêu cầu chung của các tổ chức kinh tế xã hội là vấn đề làm sao nắm bắt thông tin nhanh nhất để tổ chức công việc hiệu quả nhất trong khi các trụ sở của những tổ chức này lại ở những vị trí địa lý khác nhau cho nên xây dựng một hệ thống thông tin làm việc trên cơ sở dữ liệu phân tán là phù hợp với xu hướng hiện nay. CSDL phân tán ra đời dựa trên nền tảng chính của CSDL tập trung nhưng với đặc điểm riêng nổi bật là thiết kế theo phương pháp phân mảnh dữ liệu và sử dụng các bản sao (replication), dữ liệu phân tán sẽ được cập nhật và lưu tại các nút (site), mỗi nút tương ứng với một database server và chỉ thực hiện một số chức năng nhất định. Việc ứng dụng CSDL phân tán có thể khắc phục được các nhược điểm vốn có của CSDL tập trung. Ngoài ra, việc kết nối giữa các CSDL từ xa được thực hiện qua kết nối database link sẽ đáp ứng được một số tiêu chuẩn cơ bản như cải thiện năng suất thực hiện công việc, đảm bảo an toàn dữ liệu, giảm giá thành truyền thông, bảo mật cao, dễ dàng thay đổi, phát triển, … Việc giải quyết bài toán đồng bộ trước đây thường sử dụng giải pháp trích xuất và nhập liệu một cách thủ công hoặc theo một số mô đun chuyên biệt phát triển trong phần mềm quản lý đất đai hay có thểsửdụng công cụ có sẵn của Oracle nhưImport/export. Tuy nhiên, với giải pháp này thường gây tổn thương đến CSDL được đồng bộ. Hiện nay có rất nhiều giải pháp đồng bộ CSDL khác nhau được phát triển từ các hãng phần mềm nổi tiếng như: Streams, Advanced Replication, Advanced Queues, Golden Gate của Oracle; IBM Websphere MQ của IBM…, mỗi loại điều có những ưu, nhược điểm riêng. Trong phạm vi đề tài này sẽ giới thiệu kỹ thuật đồng bộ CSDL Oracle GoldenGate của Oracle. Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Phần II. THỰC HIỆN ĐỀ TÀI I. ORACLE LÀ GÌ? - Oracle cung cấp một hệ quản trị CSDL mềm dẻo nó bao gồm CSDL Oracle , môi trường cho việc thiết kế các cơ sở dữ liệu và các công cụ phát , … - Hệ quản trị CSDL có tính an toàn , bảo mật cao, tính nhất quán và toàn vẹn dữ liệu, cho phép các user truy nhập tới CSDL phân tán như một khối thống nhất. Vì vậy nó được đánh giá là ưu việt nhất hiện nay. - Oracle hỗ trợ cả hai loại cơ sở dữ liệu thông dụng là cơ sở dữ liệu quan hệ và cơ sở dữ liệu hướng đối tượng với khả năng quản lý và điều phối cơ sở dữ liệu phân tán mạnh mẽ. II. MỘT SỐ TÍNH CHẤT VÀ KHÁI NIỆM TRONG CÁC HỆ THỐNG CƠ SỞ DỮ LIỆU PHÂN TÁN - Đa số các nơi có sử dụng đến Oracle để quản trị cơ sở dữ liệu (CSDL) đều ít nhiều có nhu cầu phân tán dữ liệu, lý do là vì hiện tại có rất nhiều hệ quản trị CSDL có thể làm việc trên các sơ sở dữ liệu đơn lẻ với giá thành rẻ và đơn giản về mặc triển khai hơn như: Microsoft Access, MySQL, SQL Server, Firebird,… Và có rất nhiều lý do để chúng ta cần phải có nhiều CSDL trong một hệ thống phân tán như: o Nhiều database có thể gắn với nhiều chức năng của một hệ thống như: Bộ phận sản xuất, bộ phận quản lý nhân sự, bộ phận bán hàng… và các chức năng này lại là những hệ thống độc lập có nhu cầu lấy thông tin lẫn nhau. o Đơn vị sử dụng hệ thống database có nhiều trụ sở đặt ở nhiều vị trí địa lý khác nhau và cách xa nhau, ví dụ như hệ thống quản lý tài khoản của mạng điện thoại di động, các server game… o Những ứng dụng đòi hỏi dữ liệu có tốc độ truy xuất rất cao được đặt các bản copy ở nhiều server, việc truy xuất được phân tải cho các server này để Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu đảm bảo hiệu năng, nhưng dữ liệu trên các phần copy này phải đảm bảo đồng bộ tuyệt đối với nhau. o Nhiều ứng dụng khác nhau có thể đòi hỏi phải truy xuất vào cùng một dữ liệu theo cách khác nhau, khi đó đòi hỏi phải có cơ chế truy xuất khác nhau. - Bên cạnh đó khi sử dụng một hệ thống CSDL phân tán, các ứng dụng có thể dễ dàng mở rộng sau này và việc mở rộng, tái thiết kế, lưu trữ dự phòng dữ liệu được thực hiện một cách dễ dàng hơn. - Về mặt tổng quát, một hệ thống phân tán phải đảm bảo được các mục tiêu sau: o Tính sẵn dùng: Dữ liệu phải luôn có khả năng truy xuất, lý tưởng là toàn cục, trong trường hợp xấu nhất thì dữ liệu phải có khả năng truy xuất được ở trạm gần nhất chứa dữ liệu. o Hỗ trợ bảo trì: Hệ thống phải hỗ trợ một số thao tác như kiểm tra tải, sao lưu phục hồi. o Dữ liệu được phân tán hóa: Dữ liệu có thể cập nhật toàn cục hoặc cục bộ ở những database khác nhau trong hệ thống. o Tính ổn định: Sự cố trên một phần nhỏ của hệ thống rất ít hoặc hoàn toàn không ảnh hưởng đến hoạt động của toàn bộ hệ thống. - Một số thuật ngữ liên quan đến hệ thống CSDL phân tán trong Oracle: Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Mặc dù các thuật ngữ liên quan đến cơ sở dữ liệu đã được sử dụng khá chuẩn, tuy nhiên trong một số trường hợp vẫn còn nhập nhằng, phần sau đây mô tả một số thuật ngữ sử dụng cho hệ thống Oracle: o Database và thực thể database: Database là một tập hợp các tập tin vật lý chứa đựng dữ liệu, những file này có thể là file chứa các bảng dữ liệu, file log để dùng trong trường hợp cần phục hồi thao tác… Còn thực thể database là tập hợp các tiến trình và cấu trúc bộ nhớ phục vụ cho việc thao tác trên database. Một database có thể được truy xuất bởi một hoặc nhiều thực thể database và mỗi thực thể chỉ truy xuất đúng vào một database. o Oracle Paralel Server (OPS): Là kỹ thuật cho phép nhiều thực thể database (có thể nằm trên nhiều máy khác nhau) truy xuất vào cùng một database. OPS cần có một hệ điều hành có khả năng phân cụm, quản lý khóa ghi đọc dữ liệu bởi vì các thực thể database phải chia sẻ tài nguyên lưu trữ. o Standby Database: Thực hiện sao chéo lại từ database thông thường, và torng trạng thái này Standby Database không thể dùng để truy vấn được. Trong trường hợp database chính bị lỗi, hệ thống sẽ kích hoạt Standby Database để có thể truy xuất được. Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu o Parallel Query Option (PQO): là kỹ thuật giúp chia nhỏ những truy vấn mất nhiều thời gian thành những truy vấn nhỏ hơn. Kỹ thuật PQO còn dùng kết hợp với Parallel DML ví dụ như thao tác cập nhật hàng ngàn dòng có thể được chia nhỏ thành nhiều tiến trình để thực hiện cập nhật đồng thời trên từng đoạn khác nhau của bảng dữ liệu. III. KIẾN TRÚC CƠ BẢN CỦA ORACLE SERVER - Oracle Server là một hệ thống quản trị cơ sở dữ liệu đối tượng-quan hệ cho phép quản lý thông tin một cách toàn diện. Oracle server bao gồm hai thành phần chính là Oracle instance và Oracle database. 1 Oracle Instance - Oracle instance bao gồm một cấu trúc bộ nhớ System Global Area (SGA) và các background processes (tiến trình nền) được sử dụng để quản trị cơ sở dữ liệu. Oracle instance được xác định qua tham số môi trường ORACLE_SID của hệ điều hành. Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Hình vẽ 1. Kiến trúc Oracle Server 1.1System Global Area - SGA - SGA là vùng bộ nhớ chia sẻ được sử dụng để lưu trữ dữ liệu và các thông tin điều khiển của Oracle server. SGA được cấp phát (allocated) trong bộ nhớ của máy tính mà Oracle server đang hoạt động trên đó. Các User kết nối tới Oracle sẽ chia sẻ các dữ liệu có trong SGA, việc mở rộng không gian bộ nhớ cho SGA sẽ làm nâng cao hiệu suất của hệ thống, lưu trữ được nhiều dữ liệu trong hệ thống hơn đồng thời giảm thiểu các thao tác truy xuất đĩa (disk I/O). - SGA bao gồm một vài cấu trúc bộ nhớ chính: Shared pool: Là một phần của SGA lưu các cấu trúc bộ nhớ chia sẻ. Database buffer cache: Lưu trữ các dữ liệu được sử dụng gần nhất. Redo log buffer: Được sử dụng cho việc dò tìm lại các thay đổi trong cơ sở dữ liệu và được thực hiện bởi các background process. Để chi tiết hơn, ta sẽ xem xét cụ thể từng thành phần. Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu 2.1.1. Share Pool là một phần trong SGA và được sử dụng khi thực hiện phân tích câu lệnh (parse phase). Kích thước của Shared pool được xác định bởi tham số SHARED_POOL_SIZE có trong parameter file (file tham số). Các thành phần của Shared pool gồm có: Library cache và Data dictionary cache. Hình vẽ 2. Cấu trúc Share Pool. Library Cache - Library Cache lưu trữ thông tin về các câu lệnh SQL được sử dụng gần nhất bao gồm: • Nội dung của câu lệnh dạng text (văn bản). • Parse tree (cây phân tích) được xây dựng tuỳ thuộc vào câu lệnh. • Execution plan (sơ đồ thực hiện lệnh) gồm các bước thực hiện và tối ưu lệnh. Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu - Do các thông tin trên đã được lưu trữ trong Library cache nên khi thực hiện lại một câu lệnh truy vấn, trước khi thực hiện câu lệnh, Server process sẽ lấy lại các thông tin đã được phân tích mà không phải phân tích lại câu lệnh. Do vậy, Library cache có thể giúp nâng cao hiệu suất thực hiện lệnh. Data Dictionary Cache - Data dictionary cache là một thành phần của Shared pool lưu trữ thông tin của dictionary cache được sử dụng gần nhất như các định nghĩa các bảng, định nghĩa các cột, usernames, passwords, và các privileges (quyền). - Trong giai đoạn phân tích lệnh (parse phase), Server process sẽ tìm các thông tin trong dictionary cache để xác định các đối tượng trong câu lệnh SQL và để xác định các mức quyền tương ứng. Trong trường hợp cần thiết, Server process có thể khởi tạo và nạp các thông tin từ các file dữ liệu. 1.2 Data buffer cache - Khi thực hiện một truy vấn, Server process sẽ tìm các blocks cần thiết trong database buffer cache. Nếu không tìm thấy block trong database buffer cache, Server process mới đọc các block từ data file và tạo luôn một bản sao của block đó vào trong vùng nhớ đệm (buffer cache). Như vậy, với các lần truy xuất tới block đó sau này sẽ không cần thiết phải truy xuất vào datafile nữa. Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Hình vẽ 3. Database buffer cache. - Database buffer cache là vùng nhớ trong SGA sử dụng để lưu trữ các block dữ liệu được sử dụng gần nhất. Tương tự như kích thước của blocks dữ liệu được xác định bởi tham số DB_BLOCK_SIZE, kích thước của vùng đệm trong buffer cache cũng được xác định bởi tham số DB_BLOCK_BUFFERS. - Oracle server sử dụng giải thuật least recently used (LRU) algorithm để làm tươi lại vùng nhớ. Theo đó, khi nạp mới một block vào bộ đệm, trong trường hợp bộ đệm đã đầy, Oracle server sẽ loại bớt block ít được sử dụng nhất ra khỏi bộ đệm để nạp block mới vào bộ đệm. 1.3 Redo log buffer - Server process ghi lại các thay đổi của một instance vào redo log buffer, đây cũng là một phần bộ nhớ SGA. Hình vẽ 4. Redo log buffer. - Có một số đặc điểm cần quan tâm của Redo log buffer: [...]... GIẢI PHÁP ĐỒNG BỘ HÓA CƠ SỞ DỮ LIỆU PHÂN TÁN TRONG ORACLE Có nhiều giải pháp đồng bộ dữ liệu Tuy nhiên trước khi áp dụng chúng ta cần phải xác định nhu cầu của mình để từ đó lựa chọn giải pháp Giải pháp nào cũng có ưu và nhược điểm do đó trước khi áp dụng các giải pháp cần phải phân tích, so sánh đánh giá trên các mặt sau: Độ nặng trên sức tải hệ thống, Độ trễ của dữ liệu đồng bộ, Độ tin cậy và Độ phức... thủ tục PL/SQL chuẩn và các bảng được thêm một cách chọn lọc vào stream sao chép Dòng các thông tin thay đổi/cập nhật đến CSDL đích sẽ gần như là ngay tức thì, nếu không có các vấn đề về mạng Việc các thông tin cập nhật/thay đổi sẵn Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu sàng để apply vào site đích là khác biệt chính giữa giải pháp này và materialized view 3 Oracle Data Guard (Physical... đồng bộ hóa • • • • • • One-to-one (source to target) One-to-many (one source to many targets) Many to one (hub and spoke) Cascading Bi-directional (active active) Bi-directional (active passive) Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Nhìn chung các kiến trúc này đều như nhau, việc lực chọn tùy thuộc phần lớn vào nhu cầu sử dụng của người dùng Tổng quan về Oracle và các giải pháp đồng. .. lý bao gồm tập hợp các control file, online redo log file và các datafile: - 2.1.1 Datafiles Mỗi một Oracle database đều có thể có một hay nhiều datafiles Các database datafiles chứa toàn bộ dữ liệu trong database Các dữ liệu thuộc Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu cấu trúc logic của database như tables hay indexes đều được lưu trữ dưới - dạng vật lý trong các datafiles của database... một vài thông tin có trong file này Các tham số trong parameter file được viết ở dạng văn - bản Password file: Xác định quyền của từng user trong database Cho phép - người sử dụng khởi động và tắt một Oracle instance Archived redo log files: Là bản off line của các redo log files chứa các thông tin cần thiết để phục hồi dữ liệu Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu IV CÁC GIẢI PHÁP... Log Writer (LGWR) là một trong các background process có trách nhiệm quản lý redo log buffer để ghi lại các thông tin trong Redo log buffer vào Redo log file Redo log buffer là bộ đệm dữ liệu được tổ chức theo kiểu nối vòng Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Hình vẽ 6 Log Writer (LGWT) - LGWR ghi lại dữ liệu một cách tuần tự vào redo log file theo các tình huống sau: • Khi redo... file dữ liệu mỗi khi có thay đổi trong buffer cache Database Writer (DBW0) - Server process ghi lại các dữ liệu thay đổi để rollback và dữ liệu của các block trong buffer cache Database writer (DBWR) ghi các thông tin được đánh dấu thay đổi từ database buffer cache lên các data files nhằm đảm bảo luôn có khoảng trống bộ đệm cần thiết cho việc sử dụng Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ. .. lưu trữ các bản sao của redo log trên - các ổ đĩa khác nhau Các thông tin trong redo log file chỉ được sử dụng để khôi phục lại database trong trường hợp hệ thống gặp sự cố và không cho phép viết trực tiếp dữ liệu trong database lên các datafiles trong database Ví dụ: khi có sự cố xảy Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu ra như mất điện bất chợt chẳng hạn, các dữ liệu trong bộ nhớ.. .Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Kích thước được xác định bởi tham số LOG_BUFFER Lưu trữ các redo records (bản ghi hồi phục) mỗi khi có thay đổi dữ liệu Redo log buffer được sử dụng một cách thường xuyên và các thay đổi bởi một transaction có thể nằm đan xen với các thay đổi của các transactions khác Bộ đệm được tổ chức theo kiểu circular buffer (bộ đệm nối... đổi tương ứng bởi Oracle Control file cũng được sử dụng đến khi thực hiện khôi phục lại dữ liệu 2.2 Cấu trúc logic databse Cấu trúc logic của Oracle database bao gồm các đối tượng tablespaces, schema objects, data blocks, extents, và segments Tablespaces Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Một database có thể được phân chia về mặt logic thành các đơn vị gọi là các tablespaces, Tablespaces . Oracle. Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Phần II. THỰC HIỆN ĐỀ TÀI I. ORACLE LÀ GÌ? - Oracle cung cấp một hệ quản. toàn bộ hệ thống. - Một số thuật ngữ liên quan đến hệ thống CSDL phân tán trong Oracle: Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu Mặc dù các thuật ngữ liên quan đến cơ sở dữ liệu. xuất được phân tải cho các server này để Tổng quan về Oracle và các giải pháp đồng bộ hóa dữ liệu đảm bảo hiệu năng, nhưng dữ liệu trên các phần copy này phải đảm bảo đồng bộ tuyệt đối với nhau. o