相信大家在客戶現(xiàn)場(chǎng)維護(hù)的時(shí)候一定會(huì)適時(shí)地做一些備份操作,對(duì)關(guān)鍵業(yè)務(wù)建立完備的備份機(jī)制,本篇文章就是給大家一個(gè)linux環(huán)境下的參考。
一、 用imp/exp實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入導(dǎo)出
(一)環(huán)境配置
1.執(zhí)行環(huán)境:
exp/imp可以在客戶端執(zhí)行也可以在服務(wù)器端執(zhí)行,在客戶端執(zhí)行需要先安裝有oracle的客戶端,如果是linux系統(tǒng),就是以oracle用戶登錄,在控制臺(tái)下執(zhí)行。
2.如果沒有配置oracle的exp/imp命令的環(huán)境變量,則進(jìn)入到oracle的bin目錄:
# cd /opt/oracle_11/App/oracle/product/11.2.0/dbhome_1/bin
3.配置臨時(shí)環(huán)境變量:
# export ORACLE_HOME="/opt/oracle_11/app/oracle/product/11.2.0/dbhome_1"
# export ORACLE_SID=glassfish
4.切換到oracle用戶
# su oracle
(二)exp/imp方式的導(dǎo)入導(dǎo)出
注意:
紅色標(biāo)記部分為可按需求修改部分。
二、 數(shù)據(jù)泵實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出的步驟
注意:
紅色標(biāo)記部分為可按需求修改部分,導(dǎo)出部分表時(shí)可在"Expdp [用戶名A]/[密碼]@[數(shù)據(jù)庫名]"后跟"TABLES=需要導(dǎo)出的部分表的表名"。
三、 Linux環(huán)境下數(shù)據(jù)泵實(shí)現(xiàn)手動(dòng)及自動(dòng)備份
(一)創(chuàng)建腳本文件
命令格式: touch 路徑/文件名.sh
例如:
輸入命令:touch /home/backup.sh
(二)寫備份腳本
首先進(jìn)入腳本:vi命令
vi /home/backup.sh
在腳本內(nèi)寫入:
(三)執(zhí)行腳本文件
文本框: #! /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#設(shè)置備份文件格式#設(shè)置刪除備份文件的格式,當(dāng)前為刪除1個(gè)月前的備份backuptime=`date +"%Y%m%d%H"`deletetime=`date -d "7 day ago" +"%Y%m%d%H"`#開始刪除1個(gè)月前的備份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、手動(dòng)執(zhí)行腳本文件
命令格式:sh 路徑/文件名.sh
例如:sh /home/backup.sh
2、定時(shí)自動(dòng)執(zhí)行腳本
(1)安裝crond
如果沒有安裝crond服務(wù)就先裝上服務(wù)。
檢查服務(wù)狀態(tài):service crond status
(2)修改crontab內(nèi)容
輸入命令:crontab –e
進(jìn)入后繼續(xù)輸入命令:0 0 /7 * /home/backup.sh
設(shè)置為每7天執(zhí)行一次腳本文件
然后,保存退出:wq
sh腳本前面五個(gè)字段分別表示分鐘(0-59)、小時(shí)(0-23)、日(1-31)、月(0-12)、星期幾(0-6)后面的為腳本所在目錄
3. 重新啟動(dòng)crond服務(wù)
輸入命令:service crond restart
注意:
紅色標(biāo)記部分為可按需求修改部分。
四、 Linux環(huán)境下exp實(shí)現(xiàn)手動(dòng)及自動(dòng)備份
(一)創(chuàng)建腳本文件
命令格式: touch 路徑/文件名.sh
例如:
輸入命令:touch /home/backup.sh
(二)寫備份腳本
1、首先進(jìn)入腳本:vi命令
vi /home/backup.sh
文本框: #!/bin/bashexport ORACLE_BASE=/u01/app/oracle --Oracle安裝目錄,可自定義export ORACLE_SID=ORCL --Oracle實(shí)例名,可修改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` --定義當(dāng)前系統(tǒng)時(shí)間變量export DATA_DIR=/home/oracle/backup/datas/$BAKUPTIME --定義數(shù)據(jù)備份目錄export TAR_DIR=/home/oracle/backup/tars/$BAKUPTIME --定義數(shù)據(jù)打包目錄mkdir -p $DATA_DIR --創(chuàng)建數(shù)據(jù)備份目錄mkdir -p $TAR_DIR --創(chuàng)建數(shù)據(jù)打包目錄cd $DATA_DIR echo "Starting bakup..."echo "Bakup file path $DATA_DIR/SCOTT_$BAKUPTIME.dmp"#備份數(shù)據(jù)庫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備份數(shù)據(jù)文件和日志文件tar -zcvf $TAR_DIR/SCOTT_$BAKUPTIME.tar.gz SCOTT*echo "Bakup file path $DATA_DIR/HR_$BAKUPTIME.dmp"
2、在腳本內(nèi)寫入:
(三)執(zhí)行腳本文件
1、手動(dòng)執(zhí)行腳本文件
命令格式:sh 路徑/文件名.sh
例如:sh /home/backup.sh
2、定時(shí)自動(dòng)執(zhí)行腳本
(1)安裝crond
如果沒有安裝crond服務(wù)就先裝上服務(wù)。
檢查服務(wù)狀態(tài):service crond status
(2)修改crontab內(nèi)容
輸入命令:crontab –e
進(jìn)入后繼續(xù)輸入命令:每天23:30執(zhí)行自動(dòng)備份
30 23 * * * /home/oracle/backup/backup.sh
設(shè)置為每天23:30執(zhí)行一次腳本文件
然后,保存退出:wq
3. 重新啟動(dòng)crond服務(wù)
輸入命令:service crond restart
注意:
紅色標(biāo)記部分為可按需求修改部分。