`

mysql批量操作shell脚本

阅读更多

这两天写了个mysql操作的shell脚本,主要用于mysql数据到内存数据库的批量transfer。

当然适当修改可用于构造测试数据等~

 

#!/bin/sh

 

if [ $# -ne 6 ]

then

echo "usage:"

echo "$0 {db_user} {db_passwd} {mdb_table} {tablenum} {mdbfile_dir} {odbc_conn}"

echo "eg: ./route_transfer.sh wqj 123 SYS_RT_ACCOUNT 10 $OB_REL/mdbroute wqj/123@dsn_name"

echo "      "

exit

fi

 

SCHEMA="zd"

USER=$1

PASSWD=$2

TABLE_NAME=$3

TABLE_NUM=$4

MDB_DIR=$5

DB_CONN=$6

 

DB_IP="127.0.0.1"

DB_PORT="3306"

 

echo "Connect to db ${DB_IP}:${DB_PORT} identified by ${USER} ${PASSWD}"

CONNECT_MYSQL="mysql -h ${DB_IP} -P ${DB_PORT} -u${USER} -p${PASSWD}"

 

SETUTF8="set names utf8;"

 

VALIDDATEFMT="UNIX_TIMESTAMP((CASE WHEN 

ifnull(valid_date, date_format('19700101080000', '%Y%m%d%H%i%s')) > date_format('20371231235959', '%Y%m%d%H%i%s')

   THEN 

              date_format('20371231235959', '%Y%m%d%H%i%s') 

             ELSE 

          date_format(ifnull(valid_date, date_format('19700101080000', '%Y%m%d%H%i%s')),'%Y%m%d%H%i%s') 

                    END)) as aimdb_valid_date"

#echo ${VALIDDATEFMT}

 

EXPIREDATEFMT="UNIX_TIMESTAMP((CASE WHEN

                        ifnull(expire_date, date_format('19700101080000', '%Y%m%d%H%i%s')) > date_format('20371231235959', '%Y%m%d%H%i%s')

                    THEN

                        date_format('20371231235959', '%Y%m%d%H%i%s')

                    ELSE

                        date_format(ifnull(expire_date, date_format('20371231235959', '%Y%m%d%H%i%s')),'%Y%m%d%H%i%s')

                    END)) as aimdb_expire_date"

#echo ${EXPIREDATEFMT}

 

########################SYS_RT_ACCOUNT begin#############################

 

DST_ACCT_TABLE="sys_rt_account"

SRC_ACCT_TABLE_PREFIX="ad.ca_account"

 

ACCT_TABLE_DROP="drop table if exists ${SCHEMA}.${DST_ACCT_TABLE};"

ACCT_TABLE_CREATE="create table ${SCHEMA}.${DST_ACCT_TABLE} as "

ACCT_SELECT_BASE="select CAST(XXX AS UNSIGNED) as XXX_id, CAST(XXXX as UNSIGNED) as XXXX_id, \

                  CAST(0 as SIGNED) as XXXX_code, ${VALIDDATEFMT}, ${EXPIREDATEFMT} from ${SRC_ACCT_TABLE_PREFIX}"

ACCT_TABLE_SHOW="select * from ${SCHEMA}.${DST_ACCT_TABLE};"

 

tableIdx=0

ACCT_TABLE_SELECT=${ACCT_SELECT_BASE}

while [ $tableIdx -lt $(($TABLE_NUM - 1)) ]

do

#     echo ${tableIdx}

    ACCT_TABLE_SELECT="${ACCT_TABLE_SELECT}_${tableIdx} union all ${ACCT_SELECT_BASE}"

# echo ${ACCT_TABLE_SELECT}

    tableIdx=$(( $tableIdx + 1 ))

done

ACCT_TABLE_SELECT="${ACCT_TABLE_SELECT}_${tableIdx};"

 

 

#echo ${ACCT_TABLE_CREATE} ${ACCT_TABLE_SELECT}

 

######create table and dump to mdb file#####

if [ $TABLE_NAME = "SYS_RT_ACCOUNT" ]

then

${CONNECT_MYSQL} << EOF

${SETUTF8}

${ACCT_TABLE_DROP}

${ACCT_TABLE_CREATE} ${ACCT_TABLE_SELECT}

${ACCT_TABLE_SHOW}

EOF

echo "the table SYS_RT_ACCOUNT create end"

 

MDBFILE="ROUTE_CSysRtAccount.mdb"

echo "mdb_transfer ${MDB_DIR}/${MDBFILE}   ${SCHEMA}.${DST_ACCT_TABLE}   ${DB_CONN}  10 import"

mdb_transfer ${MDB_DIR}/${MDBFILE} ${SCHEMA}.${DST_ACCT_TABLE} ${DB_CONN} 10 import

echo "the table SYS_RT_ACCOUNT dump end"

fi

 

########################SYS_RT_ACCOUNT end #############################

分享到:
评论

相关推荐

    Shell脚本批量添加CSV数据到MySQL

    本篇将详细介绍如何使用Shell脚本结合CSV文件批量将数据导入MySQL数据库,以提高工作效率。 首先,`prov.csv` 是一个包含CSV(逗号分隔值)格式的数据文件,这种文件类型常用于存储表格数据,易于读写和处理。在本...

    shell的多线程&当前文件夹下批量插入MySQL

    本文将详细讲解如何在Shell脚本中实现多线程,并结合实例介绍如何批量插入MySQL数据库。 首先,我们需要理解为什么要使用多线程。在处理大量并发任务时,多线程可以并发执行任务,避免串行执行的低效,尤其在需要对...

    shell脚本实现mysql从原表到历史表数据迁移

    这里我们关注的是使用Shell脚本来实现MySQL从原表到历史表的数据迁移。这种自动化的方法可以帮助我们高效、准确地处理大量数据,同时减少人为错误。 首先,让我们深入理解`shell`脚本。Shell是Linux和Unix系统中的...

    shell脚本编程100例

    agent、使用脚本快速新建KVM虚拟机、编写nginx启动脚本、使用shell脚本批量创建用户、mysql备份、传输、删除、自动备份mysql库文件、使用find查找指定范围的目录等多个方面。 检测网段主机状态 shell脚本可以用于...

    shell脚本mysql导出指定表并分表存储

    mysql导出指定表并分表存储sql文件且压缩的shell脚本,数据库数据过大时,可以用于数据库备份

    shell执行mysql脚本

    当我们需要在Linux环境下批量处理数据库操作时,结合使用shell脚本和MySQL可以极大地提高效率。以下将详细介绍如何在shell脚本中执行MySQL脚本并传递参数。 首先,我们需要创建一个shell脚本,通常以`.sh`为扩展名...

    常用shell 脚本,dos攻击防范,

    常用shell脚本, Dos攻击防范(自动屏蔽攻击IP).sh 一键部署等等 Linux系统发送告警脚本.sh MySQL数据库备份单循环.sh MySQL数据库备份多循环.sh nginx 访问访问日志按天切割.sh nginx.conf nginx访问日志分析...

    mysql批量清空表工具shell

    这个工具是用Shell脚本语言编写的,可以在Linux或类Unix环境中运行,与MySQL数据库系统无缝对接。在使用这个工具前,首先需要确保你的服务器已经安装了MySQL数据库服务,并且你拥有足够的权限执行清空表的操作。 1....

    mysql_批量数据脚本..

    10. **脚本自动化**:使用shell脚本、Python等工具将SQL操作自动化,提高工作效率。 在实际使用这些脚本时,我们需要根据具体业务需求和数据库结构来调整脚本,同时注意数据的安全性、完整性和一致性。如果你在使用...

    Shell 脚本编程实战100例.pdf

    8. 文件操作:实例“批量修改文件后缀名”、“压缩并归档文件”以及“监控Nginx进程的脚本”等,让读者学会利用Shell脚本进行文件操作和进程管理。 9. 循环和条件判断:如“使用for循环和if语句批量新建/删除用户”...

    Shell脚本中执行sql语句操作mysql的5种方法

    本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美化,需要进一步完善和调整。以下为具体的示例及其方法。 1、将SQL语句直接嵌入到shell脚本文件中 代码...

    Navicat for MySQL导出表结构脚本的简单方法

    使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法。 1、右键Navicat中的数据库→数据传输(Data Transfer)。 2、左边数据库对象(Database Objects)中选择对应的表,右边目标(Target)中选择文件(File)...

    18个Linux Shell脚本经典案例视频.zip

    18个Linux Shell脚本经典案例(1-18) 脚本 Dos攻击防范(自动屏蔽攻击IP) Linux系统发送告警脚本 MySQL数据库备份单循环 MySQL数据库备份多循环 nginx 访问访问日志按天切割 nginx nginx访问日志分析脚本 一键查看...

    Linux命令行与shell脚本编程 - mysql数据库操作案例

    在这个“Linux命令行与shell脚本编程 - mysql数据库操作案例”中,我们将探讨如何在Linux环境下通过命令行对MySQL数据库进行操作。 首先,让我们关注Linux常用命令。这些命令包括但不限于: 1. `ls`:列出目录内容...

    用shell脚本在mysql表中批量插入数据的方法

    总结来说,通过Shell脚本在MySQL中批量插入数据是一种有效的方法,但需要根据实际情况调整,比如增加错误处理、优化插入速度或使用更高级的脚本结构来处理大规模数据。对于测试环境,这种简单的脚本已经足够,但对于...

    centos7安装mysql5.x脚本

    在Linux系统中,CentOS 7是一个非常流行的服务器操作系统,而MySQL则是一个广泛使用的开源关系型数据库管理系统。本文将详细讲解如何使用脚本在CentOS 7上安装MySQL 5.x版本。 首先,安装MySQL 5.x需要确保系统是...

    mysql压力测试脚本实例

    总结来说,MySQL压力测试脚本实例提供了一种模拟实际业务场景的方法,通过生成大量数据并进行读写操作,可以有效地评估数据库在高负载下的性能。这有助于数据库管理员和开发人员了解系统在极限条件下的行为,及时...

    实现MySQL定时批量检查表repair和优化表optimize table的shell脚本

    本文介绍mysql定时批量检查表repair和优化表optimize table的shell脚本,对于MySQL数据库的定期维护相当有用!如下所示: #!/bin/bash host_name=192.168.0.123 user_name=jincon.com user_pwd=jincon.com database...

    linux常用shell脚本

    ### Linux常用Shell脚本知识点详解 #### 一、IT虚拟机资源设置与Linux常用脚本学习 在IT行业中,Linux作为服务器操作系统占据了重要的地位。掌握Linux下的脚本编写能力能够帮助系统管理员更高效地管理服务器资源。...

    mysql批量执行sql文件的方法

    1. Shell脚本中执行SQL语句操作MySQL的5种方法 2. 教你如何在MySQL命令行中使用SQL语句的规则 3. Mysql命令行导入sql数据 4. Mysql命令行中执行sql的几种方式总结 通过这些方法,你可以更有效地管理和维护你的MySQL...

Global site tag (gtag.js) - Google Analytics