相信大家在客戶現場維護的時候一定會適時地做一些備份操作,對關鍵業務建立完備的備份機制,本篇文章就是給大家一個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
注意:
紅色標記部分為可按需求修改部分。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。