NBU備份是一種常用的備份方式,可以對多種數據進行備份。其中,備份Oracle數據庫是一個比較重要的方面,因為Oracle數據庫在眾多應用程序中占有重要地位。備份Oracle數據庫有很多方式,其中使用NBU備份Oracle數據庫是一個高效、可靠的方式。以下是NBU備份Oracle腳本的編寫方法。
首先,我們需要準備一份備份目錄列表。假設我們要備份兩個Oracle數據庫,分別是db1和db2。其備份目錄分別為/oradata/db1/backup和/oradata/db2/backup。我們可以將目錄列表存儲在一個數組中:
BACKUP_DIR=(/oradata/db1/backup /oradata/db2/backup)
接下來,我們需要定義備份時使用的NBU策略。這個策略可以是一個已有的策略,也可以是一個根據需要自行定義的策略。下面是一個通過定義新策略的例子:
POLICY_NAME="NBU_BACKUP_ORA" SCHED_NAME="NBU_BACKUP_ORA_SCHED" nbpemcmd -createpolicy -policyname ${POLICY_NAME} -schedule ${SCHED_NAME}
這個腳本將創建一個名為NBU_BACKUP_ORA的策略,并使用名為NBU_BACKUP_ORA_SCHED的日程表??梢栽趧摻ú呗詴r指定備份目錄和數據庫名稱:
nbpemcmd -setpolicyinfo -policyname ${POLICY_NAME} \ -backupselection "${BACKUP_DIR[0]}" -backuptype 0 \ -clientname db1 -application Oracle nbpemcmd -setpolicyinfo -policyname ${POLICY_NAME} \ -backupselection "${BACKUP_DIR[1]}" -backuptype 0 \ -clientname db2 -application Oracle
以上代碼將備份目錄和數據庫名稱設置為策略的屬性。備份類型為0,表示全備份。
接下來,我們需要定義一個備份腳本。備份腳本的作用是調用Oracle RMAN備份工具進行備份,同時將備份數據發送給NBU服務器。下面是一個簡單的備份腳本:
#!/bin/sh ORACLE_SID=$1 rman target / catalog rmanuser:password@nbusrv@app_nbu run { allocate channel c1 type sbt parms 'ENV=(NB_ORA_SERV=nbusrv,NB_ORA_CLIENT=${CLIENT_NAME})'; backup database; }
備份腳本接收一個參數,即Oracle SID。在備份腳本中,調用了Oracle RMAN備份工具,并使用NB客戶端向NBU服務器發送備份數據。
最后,我們需要定義一個調度器。該調度器將定期執行備份腳本,并完成備份任務。下面是一個定義調度器的例子:
SCHED_NAME=NBU_BACKUP_ORA_SCHED SCHED_TYPE=calendar SCHED_HOUR=3 SCHED_WEEKDAY=Monday,Wednesday,Friday nbpemcmd -createcalendar ${SCHED_NAME} -type ${SCHED_TYPE} nbpemcmd -updatecalendar ${SCHED_NAME} -scheduletype ${SCHED_TYPE} \ -weekday ${SCHED_WEEKDAY} -hour ${SCHED_HOUR} for DIR in ${BACKUP_DIR[@]}; do nbpemcmd -schedulepolicy -policyname ${POLICY_NAME} -actiontype 0 \ -calendar ${SCHED_NAME} -backupselection ${DIR} done
以上代碼中,我們使用nbemmcmd工具創建一個名為NBU_BACKUP_ORA_SCHED的日程表,并指定備份時間為每周一、三、五的凌晨3點。接下來,我們使用nbemmcmd工具將策略、備份目錄和調度器綁定起來,在規定的時間執行備份任務。
以上是使用NBU備份Oracle數據庫的腳本,這些腳本可以根據實際的需求進行修改。使用NBU備份Oracle數據庫可以為企業數據保護提供高效、安全、可靠的保障。