shell導入資料庫
㈠ linux 下如何使用shell 把處理好的csv文件導入到資料庫下
linux 下,可以使用cli程序把csv文件導入到資料庫。具體代碼如下:
sql">
$ORACLE_HOME/bin/sqlplus-Susername/password@instanceName>/dev/null2>&1<<!!
#對sqlplus作一些設置,使之只輸出我們需要的文本
setechooff
setpagesize0
setverifyoff
setfeedbackoff
settermoutoff
setlinesize3000
settrimspoolon
#查詢輸出到臨時文件
spool/tmp/some_tmp.csv
#select語句
selectcolumn1||','||column2||','||column3....
fromsome_tablewherecondition
spooloff
#這里可以添加多個查詢,且每個查詢可輸出到不同的文件,如下面注釋
#spool/tmp/some_tmp.csv
#selectcolumn1||','||column2||','||column3....
#fromsome_tablewherecondition
#spooloff
setmarkupHTMLoff
quit
!!
#計算記錄總行數,如果是0則不發郵件
NUM=`cat/tmp/some_tmp.csv|wc-l`
if[$NUM-gt0]
then
#先寫excel的每列的title
echo'Title_Of_Column1,Title_Of_Column2,....Title_Of_ColumnN'>/tmp/attachement.csv
#數據正文
cat/tmp/some_tmp.csv>>/tmp/attachement.csv
#發郵件
(
echo"From:[email protected]"
echo"To:[email protected]"
echo"MIME-Version:1.0"
echo"Content-Type:multipart/mixed;"
echo'boundary="A_Boundary_Name_You_Can_Change_It"'
echo"Subject:Subject"
echo""
echo""
#附件分隔符,上面的boundary前面加--
echo"--A_Boundary_Name_You_Can_Change_It"
echo'Content-Transfer-Encoding:x-uuencode'
echo'Content-Type:text/csv;'
echo'name="attachement.csv"'
echo'Content-Disposition:attachment;'
echo'filename="attachement.csv"'
echo""
uuencode/tmp/attachement.csvattachement.csv
echo"--A_Boundary_Name_You_Can_Change_It"
#附件結束
)|mailx-t
fi
#刪除臨時文件
rm-f/tmp/*.csv
exit0
㈡ 如何用shell腳本把del格式文件導入的DB2資料庫表中
在DB2資料庫中,在導出DEL文件時,默認的字元分隔符是"、欄位分隔符是, (逗號)。有一個需求是要為Oracle資料庫提供數據,因此就想使用「|」作為數據的欄位分隔符。在查看了export的使用說明後,發現export的file-mod模式中可以通過CHARDELx和COLDELx,分別設置字元分隔符和欄位分隔符。
注意:導出文件的分隔符是和資料庫的代碼頁有關聯的,即在代碼頁為819的資料庫下,可以使用任何的字元(ASCII碼)作為數據的分隔符,但是代碼頁為1386的資料庫只能使用ASCII碼值在0x00 - 0x3F 范圍內的字元。
㈢ shell往mysql資料庫導入新
本文介紹 MySQL 8.0 shell 子模塊 Util 的兩個導入特性 importTable/import_table(JS和python 版本的命名差異)、importJson/import_json的使用方法。
其中 import_table 是通過傳統 MySQL 協議來通信,Import_json 是通過 X 插件協議來通信。MySQL 一直以來提供導入文件 SQL 命令 load data infile(單線程)以及對應的可執行文件 mysqlimport(多線程)。
比如我導入 100W 行示例數據到表 ytt.tl1,花了 24 秒。這個已經是 MySQL 默認導入來的最快的。分析那我們現在看下 mysqlimport 工具的升級版,mysqlshell 的 util 工具集。
使用這兩個工具之前,必須得臨時開啟 local_infile 選項。1. import_table建立 3306 埠的新連接我這里切換為 python 模式清空掉示例表 Ytt.tl1import_table 有兩個參數,第一個參數定義導入文件的路徑,第二個定義相關選項,比如導入的格式,並發的數量等。定義文件路徑(參數1)定義選項(參數2)執行導入:只花了不到 17 秒,比傳統 mysqlimport 快了不少。
我們上面指定了顯式指定了欄位分隔符,那有沒有已經定義好的組合格式呢? 答案是有的,選項 dialect 可以指定以下格式:csv,tsv,json,csv-unix那麼上面的導入,我們可以更簡單,改下變數 y_options1 的定義導入時間差不多。這里要說明下,dialect 選項的優先順序比較低,比如添加了'linesTerminatedBy':' ', 則覆蓋他自己的' '。
選項 diaelect 還有一個可選值為 json,可以直接把 json 結果導入到文檔表裡。比如我新建一張表 tl1_json重新定義文件以及導入選項。導入 JSON 數據速度也還可以,不到 24 秒。那導入 json 數據,就必須得提到以 X 插件協議通信的工具 import_json了。2. imort_json我們切換到 mysqlx 埠import_json 參數和 Import_table 參數類似,這里我改下選項我在手冊上沒有看到多線程的選項,所以單線程跑 35 秒慢了些。查看剛剛導入的數據import_json 不僅僅可以導入 Json 數據,更重要的是可以在 BSON 和 JSON 之間平滑的轉換,有興趣的同學可以去 TRY 下。
㈣ redis shell 導入到指定的資料庫
1、導出redis
[plain]view plain
#!/bin/bash
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=1
KEYNAME=redis:hash:*
KEYFILE=key.txt
echo"KEYS$KEYNAME"|redis-cli-h$REDIS_HOST-p$REDIS_PORT-n$REDIS_DB>$KEYFILE
OUTFILE=valuelist.txt
TEMPFILE=$OUTFILE.tmp
echo>$TEMPFILE
forkeyin`cat$KEYFILE`
do
echo$key
#echo"HGETALL$key"|redis-cli-h$REDIS_HOST-p$REDIS_PORT-n$REDIS_DB>>$TEMPFILE
echo"GET$key"|redis-cli-h$REDIS_HOST-p$REDIS_PORT-n$REDIS_DB>>$TEMPFILE
done
- 2、整理導出的結果
cat$TEMPFILE|xargs-n2|awk-F""-vKEYNAME=$KEYNAME'{print"HSET"KEYNAME""$1,"""$2"""}'>$OUTFILE
- 其中的xargs -n 2是把2行合成一行,換行符用空格代替
cat$OUTFILE|redis-cli-hlocalhost-p6379
redis-cli--rawmptest|head-c-1|redis-cli-xrestoretest10
[plain]view plain
然後用awk按空格分開,$1是keynam $2是key的值
再次轉換成HSET的格式,其中用到KEYNAME變數,這個要用-v預先定義。
最後轉化為 HSET KEYNAME KEY "VALUE"格式。
3、導入轉換的結果
[plain]view plain
二、直接用Redis的Dump和Restore導出和導入
[plain]view plain
㈤ 怎樣使用 xshell 進行資料庫 oracle 數據的導出導入
怎樣使用 xshell 進行資料庫 oracle 數據的導出導入
例如將scott用戶下所有表,導入到test用戶下
1 exp scott/tiger file=scott.dmp owner=scott
2 (1) 如果test用戶下有scott的表,哪些需要先刪除在導入
conn test/test
select 'drop table '||table_name||' purge;' from user_tables;
imp test/test file=scott.dmp fromuser=scott touser=test
(2) 如果test用戶下沒有scott用戶的表,可以直接導入
imp test/test file=scott.dmp fromuser=scott touser=test
㈥ shell導入.dat文件到oracle
使用sqluldr可以實現。
1、linux下的格式化平文件向Oracle導入一般可以使用sqluldr進行導入。
2、示例,請注意使用Oracle賬號執行下面的命令
sqlldr userid=jms/jms@tiod control=input.ctl log=input.log bad=input.log skip=1 errors=5000 rows=5000 bindsize=335542
㈦ 用shell命令解決XAMPP資料庫導入文件限制
經常折騰
WordPress
的朋友通常都會搭建一個本地環境,調試修改完了再發布到線上,至於如何在本地安裝
WordPress,這個可以參考我之前寫的一篇《輕松10步本地安裝WordPress(圖)》文章,這篇文章中推薦使用
XAMPP
這個集
Apache
+
MySQL
+
php
於一身的套裝軟體,今天的話題同樣也是圍繞
XAMPP。
為了真實還原線上環境,我們會把線上的資料庫備份下來,用
XAMPP
的
phpMyAdmin
導入到本地,當然,如果數據量不大是一切正常的,但如果終於有一天,你的數據量積累到一定的程度,XAMPP
的
phpMyAdmin
就會有文件大小限制、上傳超時等各種問題,有一種解決辦法是修改配置文件,但是我今天要推薦的是另一種方法
——
shell
命令,更加快速、直接、有效地導入資料庫,可以從根本上避免文件大小限制、上傳超時等問題。步驟如下:
第一,打開
CMD。開始
->
運行
->
CMD。
第二,進入
mysql
目錄。
d:
cd
d:xamppmysqlbin
第三,啟動
mysql,輸入用戶名及密碼。
mysql
-u
wper
-p
Enter
password:
*******
第四,選擇對應的資料庫名。
mysql>
use
wp
第五,設置
utf8
編碼。
mysql>
set
names
utf8;
第六,選擇
sql
資料庫文件路徑並導入。
mysql>source
d:wangeim.sql
以上步驟詳請對應如下圖:
有圖有文有解說,是不是很簡單呢?try
一
try
吧,你也可以的。
文章來源:wange.im
㈧ 如何用shell腳本將在mysql資料庫中得到的數據導入到oracle資料庫中
有一個工具是mysql到oracle做數據遷移的叫Convert Mysql to Oracle 你可以試試,不知道合不合適。
非要弄shell的話,那可真是麻煩可以選擇讓程序員寫個小程序轉換sql的讓後用shell調用。
真自己寫shell。。。那就折騰導出來的 create、insert語句吧。想想都頭大。是在沒必要完全用shell弄。