首頁>技術>

相信大家在客戶現場維護的時候一定會適時地做一些備份操作,對關鍵業務建立完備的備份機制,本篇文章就是給大家一個linux環境下的參考。

一、 用imp/exp實現資料的匯入匯出

(一)環境配置

1.執行環境:

exp/imp可以在客戶端執行也可以在伺服器端執行,在客戶端執行需要先安裝有oracle的客戶端,如果是linux系統,就是以oracle使用者登入,在控制檯下執行。

2.如果沒有配置oracle的exp/imp命令的環境變數,則進入到oracle的bin目錄:

# cd /opt/oracle_11/app/oracle/product/11.2.0/dbhome_1/bin

3.配置臨時環境變數:

# export ORACLE_HOME="/opt/oracle_11/app/oracle/product/11.2.0/dbhome_1"

# export ORACLE_SID=glassfish

4.切換到oracle使用者

# su oracle

(二)exp/imp方式的匯入匯出

注意:

紅色標記部分為可按需求修改部分。

二、 資料泵實現資料匯入匯出的步驟

注意:

紅色標記部分為可按需求修改部分,匯出部分表時可在"Expdp [使用者名稱A]/[密碼]@[資料庫名]"後跟"TABLES=需要匯出的部分表的表名"。

三、 Linux環境下資料泵實現手動及自動備份

(一)建立指令碼檔案

命令格式: touch 路徑/檔名.sh

例如:

輸入命令:touch /home/backup.sh

(二)寫備份指令碼

首先進入指令碼:vi命令

vi /home/backup.sh

在指令碼內寫入:

(三)執行指令碼檔案

文字框: #! /bin/shexport NLS_LANG="AMERICAN_AMERICA".UTF8export ORACLE_BASE=/home/oracle/appexport ORACLE_HOME=/home/oracle/app/product/11g/db_1export ORACLE_SID=orclexport PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin#設定備份檔案格式#設定刪除備份檔案的格式,當前為刪除1個月前的備份backuptime=`date +"%Y%m%d%H"`deletetime=`date -d "7 day ago" +"%Y%m%d%H"`#開始刪除1個月前的備份rm -f /home/oracle/backup/orcl_$deletetime.dmprm -f /home/oracle/backup/orcl_$deletetime.log#開始備份expdp system/oracle@orcl file=/home/oracle/backup/system_$backuptime.dmp log=/home/oracle/backup/system_$backuptime.log schemas=systemexpdp system/oracle@orcl file=/home/oracle/backup/system_$backuptime.dmp log=/home/oracle/backup/system_$backuptime.log schemas=system

1、手動執行指令碼檔案

命令格式:sh 路徑/檔名.sh

例如:sh /home/backup.sh

2、定時自動執行指令碼

(1)安裝crond

如果沒有安裝crond服務就先裝上服務。

檢查服務狀態:service crond status

(2)修改crontab內容

輸入命令:crontab –e

進入後繼續輸入命令:0 0 /7 * /home/backup.sh

設定為每7天執行一次指令碼檔案

然後,儲存退出:wq

sh指令碼前面五個欄位分別表示分鐘(0-59)、小時(0-23)、日(1-31)、月(0-12)、星期幾(0-6)後面的為指令碼所在目錄

3. 重新啟動crond服務

輸入命令:service crond restart

注意:

紅色標記部分為可按需求修改部分。

四、 Linux環境下exp實現手動及自動備份

(一)建立指令碼檔案

命令格式: touch 路徑/檔名.sh

例如:

輸入命令:touch /home/backup.sh

(二)寫備份指令碼

1、首先進入指令碼:vi命令

vi /home/backup.sh

文字框: #!/bin/bashexport ORACLE_BASE=/u01/app/oracle --Oracle安裝目錄,可自定義export ORACLE_SID=ORCL --Oracle例項名,可修改export ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1export PATH=$PATH:$ORACLE_HOME/binexport NLS_LANG=American_America.ZHS16GBKexport BAKUPTIME=`date +%Y%m%d%H%M%S` --定義當前系統時間變數export DATA_DIR=/home/oracle/backup/datas/$BAKUPTIME --定義資料備份目錄export TAR_DIR=/home/oracle/backup/tars/$BAKUPTIME --定義資料打包目錄mkdir -p $DATA_DIR --建立資料備份目錄mkdir -p $TAR_DIR --建立資料打包目錄cd $DATA_DIR echo "Starting bakup..."echo "Bakup file path $DATA_DIR/SCOTT_$BAKUPTIME.dmp"#備份資料庫SCOTT使用者exp scott/scott file=$DATA_DIR/SCOTT_$BAKUPTIME.dmp log=$DATA_DIR/SCOTT_$BAKUPTIME.logecho "Starting tar..."echo "Tar file path $TAR_DIR/SCOTT_$BAKUPTIME.tar.gz"#壓縮SCOTT備份資料檔案和日誌檔案tar -zcvf $TAR_DIR/SCOTT_$BAKUPTIME.tar.gz SCOTT*echo "Bakup file path $DATA_DIR/HR_$BAKUPTIME.dmp"

2、在指令碼內寫入:

(三)執行指令碼檔案

1、手動執行指令碼檔案

命令格式:sh 路徑/檔名.sh

例如:sh /home/backup.sh

2、定時自動執行指令碼

(1)安裝crond

如果沒有安裝crond服務就先裝上服務。

檢查服務狀態:service crond status

(2)修改crontab內容

輸入命令:crontab –e

進入後繼續輸入命令:每天23:30執行自動備份

30 23 * * * /home/oracle/backup/backup.sh

設定為每天23:30執行一次指令碼檔案

然後,儲存退出:wq

3. 重新啟動crond服務

輸入命令:service crond restart

注意:

紅色標記部分為可按需求修改部分。

最新評論
  • 1 #

    拿這個東西做備份?只能說你的職業生涯時刻都是靠運氣在混著的。

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 圖解Kubernetes應用部署