8 bước sao lưu hot-backup Oracle Database bằng User-managed Backup
Khi sử dụng RMAN, hẳn nhiên quá trình sao lưu là Hot-backup (hay Online-backup). Nhưng vì lý do nào đó không thể sử dụng RMAN mà phải sao lưu bằng hình thức User-managed Backup, bạn vẫn có thể tiến hành Hot backup bằng cách chuyển Database sang Backup Mode và sử dụng chức năng COPY của HĐH để sao lưu các Data File.
Yêu cầu bắt buộc để có thể sao lưu Hot-backup là Database phải hoạt động ở Archivelog Mode. Quá trình Hot-backup được tiến hành theo 8 bước sau:
- Kiểm tra Database có đang hoạt động ở Archivelog Mode
- Xác định các Data File cần sao lưu
- Chuyển Database vào Backup Mode
- Sao lưu các Data File bằng công cụ của HĐH
- Thoát khỏi Backup Mode
- Tiến hành archive Redo Log đang active
- Sao lưu Control File
- Sao lưu các Archive Redo Log phát sinh trong quá trình sao lưu
1. Kiểm tra Database có đang hoạt động ở Archivelog Mode
Bạn sử dụng lệnh sau để kiểm tra xem Database có đang hoạt động ở Archivelog Mode:
SQL>ARCHIVE LOG LIST; |
Nếu Database đang ở Archivelog Mode, kết quả sẽ như bên dưới:
Database log mode | Archive Mode |
Automatic archival | Enabled |
Archive destination | D:\Oracle\ArchiveLog |
Hoặc bạn cũng có thể sử dụng view V$DATABASE để kiểm tra Archivelog Mode:
SQL> SELECT LOG_MODE FROM V$DATABASE; |
Nếu Database đang ở Noarchivelog Mode, bạn chuyển sang Archivelog Mode bằng lệnh sau:
SQL> ALTER DATABASE ARCHIVELOG; |
2. Xác định các Data File cần sao lưu
Để xác đường dẫn các Data File trong Database, bạn truy xuất view V$DATAFILE:
SQL> SELECT NAME FROM V$DATAFILE; |
Nếu tiến hành sao lưu từng Tablespace, bạn dùng lệnh sau để xác định các Data File của mỗi Tablespace:
SQL> SELECT TABLESPACE_NAME, FILE_NAME FROM V$DBA_DATA_FILES; |
3. Chuyển Database sang Backup Mode
Việc chuyển Database sang Backup Mode là thao tác cực kỳ quan trọng trước khi tiến hành thao tác COPY các Data File. Bạn tiến hành thao tác này bằng lệnh sau:
SQL> ALTER DATABASE BEGIN BACKUP; |
Lệnh trên chuyển tất cả Tablespace của Database sang Backup Mode. Nếu tiến hành sao lưu với từng Tablespace, bạn chuyển Tablespace sang Backup Mode bằng lệnh sau:
SQL> ALTER TABLESPACE <TABLESPACE_NAME> BEGIN BACKUP; |
4. Sao lưu các Data File bằng chức năng COPY của HĐH
Bạn sử dụng chức năng COPY của HĐH (xcopy trong Windows, cp trong Linux/UNIX) để sao chép các Data File vào vùng sao lưu.
Với Windows, bạn dùng lệnh XCOPY (hoặc Copy-Paste trong Windows Explorer):
C:\xcopy C:\Oracle\Oradata\TestDB\*.dbf D:\OracleBackup\TestDB |
Với Linux/UNIX, bạn dùng lệnh cp:
$ cp /u01/dbfile/testdb/*.dbf /u01/backupdata/testdb |
5. Thoát khỏi Backup Mode
Sau khi các Data File được sao chép xong, bạn thoát khỏi Backup Mode bằng lệnh sau:
SQL> ALTER DATABASE END BACKUP; |
Với Tablespace, bạn dùng lệnh:
SQL> ALTER TABLESPACE <TABLESPACE_NAME> END BACKUP; |
6. Tiến hành archive Redo Log đang active
Trong quá trình sao lưu, ngoài các change vector còn có các block bị thay đổi được ghi vào Redo Log (Current). Để đảm bảo tất cả Redo Log đều được archive trước khi tiến hành sao lưu các Archive Redo Log (bước 8), bạn dùng lệnh sau để tiến hành thao tác archive:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT; |
7. Sao lưu Control File
Với Hot Backup, bạn không thể dùng chức năng COPY của HĐH để sao lưu Control File. Thay vào đó, bạn phải sử dụng lệnh ALTER DATABASE BACKUP CONTROLFILE để sao lưu.
SQL> ALTER DATABASE BACKUP CONTROLFILE TO ‘D:\OracleBackup\ControlBk.ctl’ REUSE; |
Thêm tùy chọn REUSE để Oracle tự ghi đè nếu file ControlBk.ctl đã có sẵn.
8. Sao lưu các Archive Log phát sinh trong quá trình sao lưu
Bước cuối cùng, bạn sử dụng chức năng COPY của HĐH để sao lưu các Archive Redo Log phát sinh trong quá trình sao lưu. Bước này giúp bạn có đầy đủ các dữ liệu cần thiết để khôi phục Database.