#!/usr/bin/env sh # # File: hpl.sh # Creation Date: 2013/6/14 11:02:28 # Last Modified: 2013/6/14 11:02:29 # Purpose:脚本使用informix HPL导出导入数据,可灵活导出导入一张或多张表 # #----------------------------------------------------------------------------------- usage() { echo "=================使用说明=================== " echo "Usage: " echo " `basename $0` [-d] -t [-p u] " echo " `basename $0` [-f] [-d] -t -p l " echo " " echo "Options: " echo " -d destdbname 本地表空间名称,默认为tnmsdb2 " echo " -f fromdbname 远程表空间名称,默认为tnmsdb2 " echo " -t tables 表名称,如果导出或导入多张表时,使用格式为\"table1 table2\" " echo " -p parameters 导出导入参数 u 为导出,l 为导入,默认为导出l " echo " " echo "例子: " echo "导出一张表: " echo " `basename $0` -d tnmsdb2_hn -t ems_event_history -p u " echo "导出多张表: " echo " `basename $0` -d tnmsdb2_hn -t ems_event_history,ems_event -p u " echo "导入一张表: " echo " `basename $0` -f tnmsdb2_hn -d tnmsdb2 -t ems_event_history -p l " echo "导入多张表: " echo " `basename $0` -f tnmsdb2_hn -d tnmsdb2 -t ems_event_history,ems_event-p l " echo "使用默认参数导出: " echo " `basename $0` -t \"ems_event_history ems_event\" " echo "使用默认参数导入: " echo " `basename $0` -t \"ems_event_history ems_event\" -p l " exit 0 } #程序选项 while getopts "d:f:t:p:" OPTION do case $OPTION in d) destdbname="${OPTARG}" ;; f) fromdbname="${OPTARG}" ;; t) tables="${OPTARG}" ;; p) parameters="${OPTARG}" ;; *|\?) usage ;; esac done #检查脚本后面是否有跟参数 if [ $# = 0 ];then echo "error:`basename $0` parameter is error" usage exit 0 fi #初始化参数 parameter() { #获取表名称 if [ -z "$tables" ];then echo error:table name is not exist. echo "例如:`basename $0` -t \"ems_event_history ems_event\"" exit 0 else names=$tables fi #目标表空间名称默认为tnmsdb2 if [ -z $destdbname ];then destdbname=tnmsdb2 fi #源表空间名称默认为tnmsdb2 if [ -z $fromdbname ];then fromdbname=tnmsdb2 fi #参数默认为导出u if [ -z $parameters ];then parameters=u fi } #数据导出函数 unload() { onpladm create project outport_data onpladm create job $tabname -p outport_data -d $destdbname/record/$tabname -D$destdbname -t $tabname -fu -zD onpladm run project outport_data -fu #onpladm delete job $tabname -fu onpladm delete project outport_data #onpladm list job } #数据导入函数 load() { onpladm create project import_data onpladm create job $tabname -p import_data -d $fromdbname/record/$tabname -D$destdbname -t $tabname -flc -zD onpladm run project import_data -fl #onpladm delete job $tabname -fl onpladm delete project import_data } #导出表结构 dbschema() { dbschema -d $destdbname -t $tabname -ss $destdbname/schema/$destdbname.sql } #开始执行程序 parameter if [ $parameters = u ];then if [ ! -d $destdbname ];then mkdir $destdbname mkdir $destdbname/record mkdir $destdbname/schema else echo "$destdbname目录已存在,请先删除此目录再执行." exit 0 fi fi #删除onpload数据库(project和job信息都存放在onpload数据库中) echo 'drop database onpload;'|dbaccess sysadmin if [ $? -eq 0 ];then echo "onpload库删除成功" else echo "onpload库不存在,可以忽略此报错." fi #执行导出导入程序 for tabname in $names do #导出数据 if [ $parameters = u ];then unload fi #导入数据 if [ $parameters = l ];then load fi done
informix HPL导入导出脚本
原创y331044508 博主文章分类:shell ©著作权
文章标签 informix HPL数据导入导出脚本 文章分类 数据库
-
Java Excel导入导出
Java的两种方式操作Excel
数据 java excel 导出数据 -
Excel一键导入导出-EasyPOI
EasyPOI是一个功能强大、易用的Java库,可以帮助开发者快速实现Excel文件的导入导出功能。
excel EasyPOI java -
shell 脚本批量导入、导出docker images
【代码】shell 脚本批量导入、导出docker images。
docker 容器 运维 Docker 批量导入