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弄。