oracle指令碼匯出資料檔案

2021-10-01 17:14:53 字數 2072 閱讀 9296

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...