9.5.TRAO ĐGI CÁC TABLESPACES GI"A DATABASES

Một phần của tài liệu ORACLE_kiến trúc và quản trị pptx (Trang 90 - 92)

Ta có thể sử dụng chức năng transportable tablespaces để dịch chuyển một phần của một database sang một database Oracle khác. Việc trao đổi các tablespaces giữa các database là rất hữu ích cho:

Việc dịch chuyể dữ liệu từ hệ thống xử lý trực tuyến (OLTP – online transaction processing systems) sang thành dữ liệu của hệ thống kho dữ liệu (data warehouse staging systems).

Cập nhật kho dữ liệu (data warehouses) và các dữ liệu thuộc hệ thống.

Nạp các dữ liệu từ các kho cơ sở dữ liệu trung tâm (central data warehouses).

Lưu trữ các dữ liệu của hệ thống OLTP and data warehouse systems efficiently.

Cung cấp dữ liệu cho các khách hàng hoặc người sử dụng nội bộ.

Dịch chuyển dữ liệu thông qua việc trao đổi các tablespaces cho phép di chuyển dữ liệu nhanh chóng và hiệu quả hơn các cách dịch chuyển dữ liệu khác như export/import hay unload/load đối với cùng một dữ liệu, Do việc trao đổi các tablespace chỉ đòi hỏi phải sao chép các datafiles rồi tích hợp thơng tin về cấu trúc của tablespace vào database mới. Có thể sử dụng phương pháp trao đổi các tablespaces để dịch chuyển các index data, do đó, để tránh việc tái tạo lại (rebuilds) các index, ta có thể thực hiện công việc này để nạp dữ liệu trong các bảng.

9.5.1. Một số hạn chế trong việc trao đổi các tablespace:

Database nguồn và đích phải được chạy trên cùng một nền phần cứng (hardware platform). Ví dụ, có thể trao đổi các tablespaces giữa database Oracle chạy trên hệ điều hành Sun Solari, hoặc trao đổi các tablespaces giữa các databases Oracle chạy trên hệ điều hành NT. Tuy vậy, ta không thể trao đổi các tablespace giữa database Oracle chay trên SUN Solaris với các database Oracle chạy trên NT.

Database nguồn và đích phải có cùng một kích thước của data block.

Database nguồn và đích phải sử dụng cùng một tập ký tự sử dụng trong database (national character set).

Không thể chuyển đổi tablespace sang database đích khi database này đã có một tablespace có cùng tên.

Việc chuyển đổi tablespaces không được hỗ trợ: o Snapshot/replication

o Function-based indexes o Scoped REFs

o Domain indexes (Một kiểu index mới, cho phép mở rộng việc đánh chỉ số)

9.5.2. Các bước thực hiện chuyển đổi một tablespace giữa các database

1. Chỉ có thể thực hiện trao đổi các tablespaces mà nó khơng chứa các tham chiếu tới tablespace khác.

2. Tạo một transportable tablespace set.

Transportable tablespace set chứa các datafiles ứng với tập các tablespaces được sử dụng để chuyển đổi các file có chứa thơng tin cấu trúc của các tablespaces dịch chuyển.

(Xem minh hoạ việc tạo một transportable tablespace set ở phia dưới).

3. Chuyển đổi tablespace.

Sao chép các datafiles và export file sang database đích. Có thể sử dụng các cơng cụ sao chép file thông thường của hệ điều hành để thực hiện công việc này

4. Đưa tablespace vào sử dụng (plug-in).

Thực hiện công việc Import để đưa các tablespaces vào database đích.

Minh hoạ việc trao đổi tablespace

1. Để biết tablespace SALES_1 và SALES_2 có chứa các tham chiếu trong nó khơng, ta thực hiện câu lệnh:

EXECUTE dbms_tts.transport_set_check('sales_1,sales_2', TRUE); Câu lệnh này sinh ra kết quả và lưu trong view có tên là: TRANSPORT_SET_VIOLATIONS. Sử dụng câu lệnh truy vấn để xem kết quả:

SELECT * FROM transport_set_violations;

Lệnh truy vấn kết xuất kết quả rỗng cho biết tablespace không chứa các tham chiếu tới tablespace bên ngoài.

2. Tạo transportable tablespace set

Phát lệnh thay đổi trạng thái của tablespace về trạng thái read-only để không cho phép cập nhật dữ liệu vào tablespace này, chuẩn bị cho việc trao đổi tablespace.

ALTER TABLESPACE sales_1 READ ONLY;

Sử dụng cơng cụ tiện ích Export của Oracle để kết xuất các tablespace này:

EXP TRANSPORT_TABLESPACE=y TABLESPACES=(sales_1,sales_2) TRIGGERS=y/n CONSTRAINTS=y/n GRANTS=y/n FILE=expdat.dmp TRIGGERS=Y – cho phép kết xuất; N – không cho phép kết xuất.

GRANTS=Y – kết xuất cả các quyền trên mỗi bảng thuộc tablespace đó; N – không kết xuất. CONSTRANTS=Y – các ràng buộc tham chiếu sẽ được kết xuất; N – không kết xuất các ràng buộc tham chiếu.

3. Thực hiện sao chép các datafile của tablespace vừa được kết xuất ra một vị trí khác. 4. Đặt lại trạng thái bình thường cho tablespace vừa được xem xét.

ALTER TABLESPACE sales_1 READ WRITE;

5. Đưa bản sao của các datafile vừa được sao chép vào vị trí tương ứng với database đích. 6. Connect vào database mới với mức quyền SYSDBA.

7. Đưa các tablespaces đã được kết xuất vào database mới

IMP TRANSPORT_TABLESPACE=y

DATAFILES=('c:\db\sales_jan','c:\db\sales_feb',...)

TABLESPACES=(sales_1,sales_2) TTS_OWNERS=(dcranney,jfee)

FROMUSER=(dcranney,jfee) TOUSER=(smith,williams) FILE=expdat.dmp

Một phần của tài liệu ORACLE_kiến trúc và quản trị pptx (Trang 90 - 92)