Như đã đề cập ở trên ta có thể thực hiện sao lưu CSDL theo 2 cách.
Thứ nhất là phương pháp sao lưu cho người quản lý(bằng tay), bao gồm viêc sử dụng các lệnh hệ điều hành để sao chép các tập tin liên quan đến một nơi khác và/hoặc thiết bị băng từ.
Phương pháp khác là dùng RMAN, được đóng gói chung với bộ phần mềm Oracle 9i server. Với RMAN ta sao lưu các tập tin CSDL từ trong CSDL.
RMAN là một tính năng cho phép quản trị và quản lý sao lưu, phục hồi và khơi khục dữ liệu. RMAN có thể được sử dùng bằng cửa sổ lệnh hoặc thông qua giao diện của Oracle Enterprise Manager.
Một vài ưu điểm của RMAN
RMAN cung cấp công cụ cũng như thông tin về các lần sao lưu, phục hồi và khôi phục dữ liệu.
RMAN hỗ trợ cơ chế sao lưu gia tăng (chỉ copy một số lương nhỏ các dữ liệu mà có thay đổi)
RMAN nén những Block (thành phần trong file dữ liệu) chưa sử dụng
RMAN cho phép sao lưu đồng thời nhiều file hơn khả năng hệ điều hành cho phép
Với RMAN việc sao lưu có thể tự động hóa thơng qua các đoạn script
Có thể sử dụng RMAN với 2 lựa chọn, với recovery catalog hoặc là không. Recovery catalog bao gồm các thông tin giống như trong tập tin tin điều khiển (control file) được sử dụng để điều khiển việc sao lưu và phục hồi. Recovery catalog có thể hỗ trợ nhiều CSDL, nó bao gồm tên và thời gian các lần sao lưu, danh sách tập tin redo log, các đoạn script và cấu trúc vật lý của CSDL. Oracle khuyến nghị lưu recovery catalog tại một CSDL khác
RMAN không cho sao lưu các file hệ thống và cầu hình cơ sở dữ liệu như: init.ora, password file, OS file.
RMAN không hỗ trợ những phiên bản từ 8 trở lại
RMAN sử dụng tham số được lưa trong init.ora,
CONTROL_FILE_RECORD_KEEP_TIME để xác định thời
gian thông tin RMAN được lưu trữ trong tập tin điều khiển trước khi nó bị ghi đè lên.
Lợi ích của RMAN
Những lợi ích mà RMAN đem lại khi so sánh với phương pháp truyền thống (dùng lệnh hệ điều hành):
Ta có thể thực hiện sao lưu tăng bằng RMAN. Kích thước tập tin sao lưu khơng phụ thuộc và kích thước CSDL. Nó phụ thuộc mức độ hoạt động trong CSDL, bởi vì các khối thay đổi được bỏ qua
trong sao lưu tăng. Ta không thể thực hiện sao lưu tăng bằng bất cứ phương pháp nào khác.
Lỗi do người dùng được giảm tối thiểu bởi vì RMAN giữ được vết của tất cả các tập tin và vị trí. Khi ta hiểu cách dùng tiện ích RMAN, dễ dàng cho ta tiếp tục hoạt động sao lưu và phục hồi từ một NQTCSDL khác.
Một lệnh đơn giản chẳng hạn như backup database có thể sao lưu tồn bộ CSDL mà khơng cần các script phức tạp
Dễ dàng tự động quá trình sao lưu và phục hồi bằng RMAN. RMAN cũng có thể tự động song hành các phiên làm việc sao lưu và phục hồi.
RMAN cũng có thể kiểm tra lỗi sao lưu và khôi phục, như thể đảm bảo rằng các tập tin sao lưu khơng bị lỗi. RMAN có khả năng phục hồi bất cứ khối dữ liệu hư hỏng nào mà không cần offline tập tin dữ liệu.
Trong khi sao lưu trực tuyến, khơng có redo log nào được sinh ra. Không giống như sao lưu trực tuyến đang thực hiện dùng lệnh hệ điều hành, như thế sự quá tải làm chậm quá trình sao lưu trực tuyến.
Nếu ta sử dụng recover catalog, ta có thể lưu trực tiếp các script sao lưu và khơi phục trong nó.
RMAN có thể thực hiện giả lập sao lưu và khôi phục.
RMAN cho phép ta thực hiện sao lưu ảnh, tương tự các sao lưu tập tin dùng lệnh hệ điều hành
RMAN có thể dễ dàng được tích hợp với sản phẩm quản lý phương tiện của hãng thứ 3 để thực hiện sao lưu vào băng từ dễ dàng.
RMAN được tích hợp tốt với chức năng soa lưu OEM, vì thế ta có thể lập biểu cho các job sao lưu một cách dễ dàng cho một số lớn CSDL thông qua một khung làm việc quản lý chung.
Ta có thể dễ dàng tạo bản sao CSDL và duy trì CSDL dự phịng dùng chức năng RMAN
Kiến trúc RMAN
RMAN được cung cấp miễn phí với phần mềm Oracle server. Tiện ích làm việc bằng cách mở các phiên làm việc server với CSDL đích là
CSDL ta muốn sao lưu hoặc phục hồi. Tập hợp thơng tin về CSDL đích chẳng hạn như thơng tin về giản đồ của nó, thơng tin sao chép sao lưu, thiết lập cấu hình và script sao lưu và phục hồi được gọi là kho chứa của RMAN. RMAN dùng kho dữ liệu này về CSDL đích để thực hiện các hoạt động sao lưu và phục hồi. Các phần tiếp theo đề cập cách RMAN quản lý kho chứa quan trọng này.
Recovery catalog [4]
Ta có 2 vị trí để lưu trữ kho dữ liệu của RMAN. Ta có thể để RMAN lưu trữ dữ liệu trong tập tin điều khiển CSDL đích, hoặc ta có thể cấu hình và sử dụng tùy chọn recovery catalog để quản lý kho dữ liệu.. Những ý kiến không tán đồng với ta sẽ liên quan đến việc sử dụng recovery catalog là rằng nó q phức tạp để duy trì và cần CSDL khác để quản lý nó. Có một số lệnh ta chỉ có thể dùng khi ta sử dụng recovery catalog. Nếu ta sử dụng tập tin điều khiển, có nguy cơ một số dữ liệu lịch sử bị ghi đè, nhưng recovery catalog đảm bảo cho tất cả dữ liệu như vậy. Một recovery catalog trong hệ thống của ta có thể thực hiện sao lưu, khôi phục và các hoạt động phục hồi cho hàng tá CSDL Oracle. Cho nên ta có thể tập trung và tự động các hoạt động sao lưu và phục hồi bằng recovery catalog.
Media Management Layer
Ta có thể thực hiện các sao lưu xuống đĩa hệ điều hành dùng RMAN. Nếu ta muốn sao lưu vào băng từ ta cần thêm phần mềm Media Management Layer (MML), chẳng hạn như sản phẩm Net-Worker của Legato Systems. Ta cũng có thể dùng OEM để thực hiện sao lưu thông qua RMAN.
Kết nối tới RMAN
Ta có thể kết nối tới RMAN bằng cách đơn giản là nhập RMAN ở dấu nhắc hệ điều hành,. Điều này sẽ đưa ta đến dấu nhắc của RMAN, ở đây ta có thể nhập các lệnh khác nhau. Hoặc ta có thể chỉ ra các lệnh sau khi ta gọi RMAN. Ta cũng có thể dùng các lệnh của RMAN ở dạng bó lệnh hoặc thơng qua các kí hiệu ống dẫn bằng cách dùng gói DBMS_PIPE của Oracle.
Các phần sau đây chứa một số vị dụ về cách ta có thể kêt nối tới RMAN. Lưu ý là ta phải có đặc quyền SYSDBA để kết nối tới các CSDL khác thơng qua RMAN. Ta khơng càn có quyền SYSDBA chỉ để kết nối đến
RMAN đặc biệt. Như ta sẽ thấy trong phần tạo “recovery catalog” người dùng RMAN là chủ sở hữu của danh mục. Ta cũng có thể kết nối tới RMAN thông qua xác thực mật khẩu cơ sở dữ liệu bằng tên người dùng SYS. Ta cũng có thể kết nối tới CSDL dùng xác thực hệ điều hành.
Kết nối tới RMAN thông qua xác thực cơ sở dữ liệu
Ta có thể đăng nhập vào tiện tích RMAN dùng các ủy nhiệm CSDL. Ta cần có quyền SYSDBA để dùng RMAN. Các ví dụ sau dùng tài khoản người dùng SYS để đăng nhập vào RMAN.
Ví dụ sau đây gọi là rman sau đó kết nối tới CSDL đích bằng người dùng system, mật khẩu là manager1 (thay manager1 bằng mật khẩu hệ thống của ta), dùng lệnh exit để thóat khỏi RMAN.
C:\>rman
RMAN> connect target system/manager1
Connected to target database: DATA_TCDN (DBID=3382846481) RMAN>exit
Recovery Manager complete C:\>
Kết quả sau đây tương đường với các lệnh trước. Trong cả 2 trường hợp ví dụ, ta đều đang kết nối tới CSDL đích là GEN2. Ngay khi kết nối tới CSDL đích, sau đó có thể tiến hành các lệnh sao lưu/ phục hồi tương ứng. Lệnh exit sẽ giúp thoát khỏi RMAN.
C:\>rman target system/manager1 RMAN> exit
Recovery Manager complete C:\>
Kết nối tới RMAN dùng xác thực hệ điều hành
Ta cũng có thể đăng nhập vào RMAN dùng xác thực hệ điều hành. Trong trường hợp này, ta không cần dùng tài khoản và mật khẩu system/manager1. Ta có thể thực hiện như sau:
C:\>rman target/ RMAN>
Như trong trường hợp xác thực bằng CSDL, ta cũng có thể kết nối tới RMAN bằng cách nhập RMAN và sau đó kết nối tới CSDL đích và danh mục CSDL phục hồi riêng biệt:
C:\>rman RMAN>
Trong các ví dụ đăng nhập trước đó, ta đang kết nối trực tiếp tới CSDL đích khơng dùng recovery catalog. Ngay khi ta cấu hình recovery catalog, ta có tùy chọn kết nối tới recovery catalog trước hết và thực hiện tất cả hoạt động sao lưu và phục hồi với sự giúp đỡ của nó. Đây cũng là tùy chọn mà Oracle đề nghị mạnh mẽ bởi vì những lợi ích thiết yếu được cung cấp bởi việc sử dụng recovery catalog. Sau đây là cách ta có thể kết nối khi dùng recovery catalog.
C:\>rman target data_TCDN catalog system/manager1 RMAN>
Tạo script bằng RMAN
RMAN cung cấp một ngôn ngữ kịch bản khá mạnh độc lập với hệ điều hành và cho phép ta đóng gói các tác vụ sao lưu thơng thường một cách dễ dàng. Oracle cung cấp một số script với hướng dẫn kỹ để thực hiện sao lưu và phục hồi dùng RMAN. Ta có thể tìm thấy các script này trong thư mục ORACLE_HOME\rdbms\demo. Có 4 script trong thư mục này là case1.rcv, case2.rcv, case3.rcv và case4.rcv.
Tất cả scipt trong RMAN có dạng run [script] như ta sẽ thấy trong ví dụ dưới đây. Các script RMAN ban đầu trơng hơi khó hiểu nhưng chúng cực ký hiệu quả và dễ viết. Một script luôn được thực thi với lệnh run và nội dung script ln được đóng trong dấu ngoặc nhọn {}.
Khi ta sử dụng một số lớn tham số cấu hình cho sao lưu của ta thì dùng script sẽ dễ dàng hơn. Các script RMAN thực thi cùng chức năng như các script trong UNIX hoặc SQL: chúng được lưu trữ dễ dàng hơn và được thực hiện lại với các tập lệnh. Sau đây là một script sao lưu vào buổi tối đơn giản để thực hiện sao lưu toàn bộ CSDL. Lưu ý bằng cách sử dụng từ khóa SQL ta có thể dùng các lệnh SQL thơng thường trong script RMAN.
RMAN>create script test_scipt { 2> allocate channel c1 type disk;
3> backup database format „e:\oracle\ora92\u%‟; 4> SQL „alter database backup controlfile to trace‟; 5> }
created script test_script RMAN>
Script trong RMAN rất mạnh và linh hoạt, nó cho phép ta thực hiện các tác vụ phực tạp trong vài dịng lệnh. Ví dụ script sau đây sử dụng 2 thiết bị băng từ để thực hiện sao lưu toàn phần CSDL. Script cấp phát 2 kênh, hoàn tất sao lưu trong định dạng đã xác định và sau đó giải phóng kênh.
RMAN> run {
2> allocate channel c1 type „sbt_tape‟; 3> allocate channel c2 type „sbt_tape‟; 4> backup
5> format „full d%d_u%u‟ 6> filesperset 10
7> database;
8> release channel c1; 9> release channel c2; 10> }
Các thuật ngữ quan trọng của RMAN
Một số thuật ngữ được định nghĩa trong phần sau đây là dành riêng cho RMAN. Để dùng RMAN hiệu quả, ta cần hiểu rõ về các thuật ngữ này.
Mẩu sao lưu
Mẩu sao lưu (backup piece) là một tập tin hệ điều hành chứa sao lưu về tập tin dữ liệu, tập tin điều khiển hoặc tập tin redo log lưu trữ.
Bộ sao lưu
Một bộ sao lưu (backup set) là một khái niệm logic bao gồm một hoặc nhiều mẩu sao lưu. Nếu ta sao lưu một CSDL, tập tin dữ liệu, không gian bảng, hoặc log lưu trữ, bộ đầy đủ các mẩu sao lưu liên quan hợp lại với nhau thành bộ sao lưu. Khi lệnh backup được phát hành, RMAN tạo bộ sao lưu giữ kết xuất. Một bộ sao lưu là một tập tin hoặc bộ các tập tin với định dạng duy nhất chỉ có RMAN mới hiểu. Như vậy, chỉ có RMAN mới có thể sử dụng các bộ sao lưu để phục hồi CSDL.
Ảnh sao chép
Ảnh sao chép (Image copy) tương tự như ta thực hiện lệnh copy trong DOS. Ta có thể tạo các ảnh sao chép của các tập tin dữ liệu, tập tin điều khiển và các tập tin redo log lưu trữ. Các ảnh sao chép của RMAN chỉ có thể lưu vào đĩa, chúng không thể lưu vào băng từ. Thật sự khơng có sự khác nhau giữa các ảnh sao chép của RMAN và các sao chép thông thường được thực hiện bằng lệnh copy, ngoại trừ các ảnh sao chép được thực hiện qua công cụ RMAN và vì thế thơng tin liên quan đến chúng
được ghi vào tập tin điều khiển hoặc recovery catalog, nếu nó đang được dùng. Thực tế, ta có thể sử dụng các tập tin dữ liệu được sao chép bằng tay trong quá trình phục hồi nếu trước hết ta dùng lệnh catalog để đăng ký tập tin của RMAN. Sau đó ta có thể dùng lệnh restore và switch để dùng các sao chép tập tin dữ liệu được thực hiện bởi người dùng.
Proxy sao chép
RMAN cũng có thể thực hiện một loại sao lưu đặc biệt được gọi là proxy copy, ở đó trình quản lý phương tiện lưu trữ được phép kiểm sốt q trình sao chép.
Kênh
Một phiên làm việc RMAN phải sử dụng một số loại kết nối tới server để thực hiện công việc sao lưu và phục hồi, và các kênh (channel) thể hiện những kết nối này. Các kênh chỉ ra thiết bị cụ thể, đĩa hoặc băng từ sẽ được dùng cho hoạt động sao lưu/ phục hồi. Ta có thể có các kênh được cấu hình trước (hơi giống như kênh mặc định) hoặc chỉ ra kênh bằng tay trong quá trình RMAN thực thi. Sau đây là một số ví dụ về cấp phát kênh.
Tự động cấu hình kênh
Trong các ví dụ sau đây, thiết bị mặc định được thiết lập tới thiết bị băng từ trong trường hợp đầu và tới đĩa trong trường hợp 2. Những thiết bị này được làm thành một phần của cấu hình RMAN và cho đến khi chúng lại được thay đổi thông qua việc sử dụng lệnh configure, chúng vẫn giữ các kiểu thiết bị mặc định cho tất cả các phiên làm việc của RMAN.
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt; (tape device) RMAN> CONFIGURE DEFAULT DEVICE TYPE TO disk; (disk device)
Cấp phát kênh bằng tay
Ví dụ sau đây trình bày cách thiết lập kiểu kênh bằng tay bằng cách dùng lệnh allocate channel. Lệnh sau đây thiết lập thiết bị tới thiết bị băng từ sbt:
RMAN> run
2> { ALLOCATE CHANNEL a1 DEVICE TYPE TO sbt; 3> backup database;
}
Ta cần làm quen với một tập lệnh giới hạn, để sử dụng tiện ích RMAN để thực hiện sao lưu. Ta sẽ gặp một số lệnh liên quan đến khôi phục và phục hồi CSDL. Các lệnh được nhóm thành các loại sau:
Các lệnh sao lưu. Các lệnh tác vụ. Các lệnh sao chép. Các lệnh báo cáo. Các lệnh liệt kê. Các lệnh kiểm tra hợp lệ. Các lệnh sao lưu
Lệnh sao lưu quan trọng nhất là lệnh backup. Ta có thể chỉ ra kênh bằng tay ở thời gian sao lưu hoặc để cho RMAN cấp phát kênh mặc định. Ta có thể dùng lệnh backup để sao lưu CSDL theo nhiều cách khác. Ta có thể chọn sao lưu tồn bộ CSDL, một không gian bảng, hoặc chỉ một tập tin dữ liệu. Ta cũng có thể dùng lệnh backup để sao lưu các redo log lưu trữ. Sau đây là một số ví dụ:
RMAN> backup database;
RMAN> backup tablespace users; RMAN> backup datafile
„e:\oracle\oradata\data_TCDN\users01.dbf‟;
Sao lưu tăng
Tất cả các lệnh sao lưu trên là sao lưu toàn phần. Ta cũng có thể thực hiện sao lưu tăng dùng RMAN, và trong thực tế, đây là một trong những thuận lợi lớn của việc sử dụng RMAN. Sao lưu tăng sẽ chỉ sao lưu những phần CSDL đã thay đổi từ lần đầu tiên (mức 0) hoặc lần sao lưu tăng gần nhất. Sao lưu mức 0 tương ứng với sao lưu tồn phần và nó sao chép tất cả các khối dữ liệu. Tuy nhiên nếu ta muốn dùng sao lưu tăng ta phải