1.首先在伺服器上建立目錄,以目錄/user/mt_data/為例,伺服器上執行:mkdir mt_data
2.把目錄對oracle使用者授予執行的許可權
chown -r oracle:oinstall /user/mt_data/
3.首先建立匯出檔案的目錄,這裡以目錄/user/mt_data/為例,命名為"my_dir",oracle中執行
sql>create directory my_dir as '/user/mt_data/';
4.檢驗上述語句是否執行成功,執行
sql>select * from dba_directories;
如果執行成功則顯示如下圖
需求時每天對乙個資料庫中的表進行匯出,這裡以t_mt_yyyymmdd表為例
#!/bin/bash
#:本指令碼自動備份30天以前的mt表資料
#載入oracle的相關引數
#如果oracle引數不明確,請使用命令檢視
# su - oracle
# echo $oracle_home
export oracle_base=/user/oracle
export oracle_home=$oracle_base/product/11.2.0/db_1
export oracle_sid=qxt
export path=.:$:$home/bin:$oracle_home/bin
#oracle字符集
export nls_lang=american_america.al32utf8
#獲取44天以前的時間,格式:20180313
#date=$(date +%y%m%d)
date=$(date -d "30 days ago" +%y%m%d)
#設定備份目錄,
export dir=/user/mt_data
echo $dir
echo $date
#開始備份,此處採用exp方式匯出,根據實際情況可選用expdb資料方式匯出
echo 'oracle backup...'$date
#匯出方式有exp 和 expdp兩種,這裡使用的是expdp,這個優點是執行快
# qxt_user/123456789 這是資料庫的使用者名稱和密碼
# directory 資料夾,其值my_dir對應資料庫中select * from dba_directories; 查詢結果裡的directory_name。
# dumpfile 匯出的dmp檔名
# logfile 匯出輸出的日誌檔名
# tables 匯出的資料庫表
expdp 'qxt_user/123456789' directory=my_dir dumpfile='t_mt_'$date'_dp.dmp' logfile='t_mt_'$date'_dp.log' tables=qxt_user.t_mt_$date
#壓縮檔案
zip -rj $dir'/t_mt_'$date'_dp.zip' $dir'/t_mt_'$date'_dp.dmp'
#刪除dmp檔案
rm -f '/user/mt_data/t_mt_'$date'_dp.dmp'
# 驗證匯出的資料是否與實際資料一致
sqlplus qxt_user/123456789 <>$dir'/t_mt_'$date'_dp.log'
select count(1) from t_mt_$date;
exit
eof!
6.注意
執行expdp和impdp命令需要擁有exp_full_database和imp_full_database許可權,授權語句如下:
grant exp_full_database,imp_full_database to qxt_user;
qxt_user這裡表示用 MySQL匯出資料檔案
select into outfile root a.txt fields terminated by t lines terminated by n from t log info show tables或show tables from database name 解釋 顯示當前資料庫中所有表的...
oracle 資料檔案移動
1.連線 sqlplus nolog sql conn sys prd1 as sysdba 2.一些基本的操作 1 檢視表空間 sql select from v tablespace 2 檢視資料檔案 sql select from v datafile 3 檢視tablespace 和data...
oracle資料檔案丟失。
今天來上班聽說我們的資料庫伺服器連不上,說是昨晚停電伺服器都掛掉了。初步考慮應該是資料庫沒有自動拉起造成的,手動執行拉起指令碼資料庫仍然無法連線。後來檢視oracle啟動日誌以及跟蹤日誌如下 cd opt oracle admin oracle9i bdump more alert oracle9i...