Thực hành tạo Job backup tự động với DBMS_SCHEDULER trong Oracle database

Để thực hiện một backup toàn bộ cơ sở dữ liệu (full database backup), xóa các archivelog đã backup và xóa các file không còn hiệu lực sau khi backup, chúng ta có thể sử dụng kết hợp RMAN với job của Oracle Scheduler.

Thực hành tạo Job backup tự động với DBMS_SCHEDULER trong Oracle database

Bước 1: Viết script RMAN cho backup và quản lý archivelog

Tạo một RMAN script để thực hiện full backup, xóa archivelog đã backup và xóa các file không còn hiệu lực => chúng ta tạo file kịch bản lưu trong đường dẫn sau:

cd /home/oracle

vi backup_job.rman

Nội dung file như sau:

RUN {
BACKUP AS BACKUPSET DATABASE PLUS ARCHIVELOG DELETE INPUT;
DELETE NOPROMPT OBSOLETE;
}

Giải thích các bước:

  • BACKUP AS BACKUPSET DATABASE PLUS ARCHIVELOG DELETE INPUT: Backup toàn bộ database và các archivelog, sau đó xóa các archivelog đã được backup.
  • DELETE NOPROMPT OBSOLETE: Xóa các backup cũ không còn hiệu lực (obsolete files).

word image 3536 1

Bước 2: Viết file shell script để chạy trong job gọi tới file .rman ở bên trên

vi backup_job.sh

## nội dung file như bên dưới (file này các bạn nhớ ko được để khoảng trắng hay xuống dòng ở đầu và cuối file nhé.

#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=duodb
$ORACLE_HOME/bin/rman target / cmdfile=/home/oracle/backup_job.rman

word image 3536 2

Bước 3: Thực hiện gán thêm quyền thực thi cho 2 file này

chmod +x /home/oracle/backup_job.rman

chmod +x /home/oracle/backup_job.sh

Kiểm tra thông tin file:

cd /home/oracle/

ls -l

word image 3536 3

Bước 4: Tạo job chạy vào 11 PM hàng ngày

Sử dụng DBMS_SCHEDULER để tạo job chạy lệnh RMAN vào lúc 11 PM hàng ngày: Chạy lệnh bên dưới trong Sqlplus

sqlplus / as sysdba

BEGIN
DBMS_SCHEDULER.create_job (
job_name => 'DAILY_FULL_BACKUP_JOB',
job_type => 'EXECUTABLE',
job_action => '/home/oracle/backup_job.sh',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=23; BYMINUTE=0; BYSECOND=0',
enabled => TRUE
);
END;
/

Bước 5: Kiểm tra trạng thái job

Chúng ta có thể kiểm tra job đã được tạo thành công và trạng thái của nó:

SELECT job_name, state, start_date, next_run_date
FROM dba_scheduler_jobs
WHERE job_name = 'DAILY_FULL_BACKUP_JOB';

Kiểm tra chi tiết thông tin JOB và kết quả chạy:

SELECT job_name, status, error#, additional_info
FROM dba_scheduler_job_run_details
WHERE job_name = 'DAILY_FULL_BACKUP_JOB';

Chúc các bạn thành công!

 

Datalinks.vn

Hello các bạn, mình là Dương Nguyễn tác giả của blog này. Với gần 20 năm làm việc trong lĩnh vực CNTT, VT trong và ngoài nước, mong muốn được chia sẻ kiến thức và kinh nghiệm về database với các bạn đam mê và quan tâm đến lĩnh vực này. Đặc biệt là #OracleDatabase hoặc luyện thi #OCP database admin. Các bạn cần người đồng hành thì alo mình nhé. Call/Zalo: 0765 871 888. Thanks you !.....
5 1 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận