`
zhengdl126
  • 浏览: 2512707 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

[sh]update sql

 
阅读更多

 

 

======================================== 单库升级

 

 

 

 

#!/bin/sh
SVN配置
#svn_username="username"
#svn_password="password"
#svn_url="http://192.168.1.2/svn/test/"

SQL脚本路径
sql_path="/var/www/data/scheme"

#MySQL用户名,格式:空或者-h hostname或者-h ip
db_host="-h 192.168.1.7"

#MySQL用户名,格式:空或者-h hostname或者-h ip
db_port="-P 3301"

#MySQL用户名,格式:-u root或者-u username
db_root_name="-uroot"

#MySQL用户密码,格式:空或者-p password
db_root_pass="-p123456"
#########参数配置

clear

if [ -z "$*" ]; then
    echo "如果没有SQL文件请运行下面命令"
    #echo "/usr/bin/svn export --username ${svn_username} --password ${svn_password} --force ${svn_url} ${sql_path}"
    echo
    echo "请输入数据库名称。"
    echo "多个数据库名称请用空格分隔。"
    echo "$0 db_name1 [db_name2 db_name3 ...]"
    echo
    exit
fi

#循环创建数据库的存储过程、函数、视图
for db_name in $*; do
    echo ----------

    echo "开始创建${db_name}数据库的存储过程、函数、视图结构..."

     mysql $db_root_name $db_root_pass $db_port $db_host $db_name < $sql_path/TEST_f_common.sql
     mysql $db_root_name $db_root_pass $db_port $db_host $db_name < $sql_path/TEST_Update_20120114.sql

    echo "结束创建${db_name}数据库的存储过程、函数、视图结构..."

    echo "----------"
done


 

 

 

 

 

======================================== 测试环境:多(公司)库升级

 

 

 sql_boss.sql 用来查询前缀库

 select CONCAT('test_',db_suffix) from corp;

 

 

 sql_boss.txt 用来保存所有公司的库名

 

 

 

 

 

 

 #!/bin/sh
#SVN配置
#svn_username="username"
#svn_password="password"
#svn_url="http://192.168.1.201:8080/svn/sche
me"

#SQL脚本路径
sql_path="/var/www/WWW_TEST_TEST/protected/data/scheme"

#MySQL用户名,格式:空或者-h hostname或者-h ip
db_host="-h 192.168.1.78"

#MySQL用户名,格式:空或者-h hostname或者-h ip
db_port="-P 3301"

#MySQL用户名,格式:-u root或者-u username
db_root_name="-ureplication"

#MySQL用户密码,格式:空或者-p password
db_root_pass="-p123456"
#########参数配置

clear

echo "update mysql dbs..."
db_boss="test_boss"
mysql $db_root_name $db_root_pass $db_port $db_host $db_hub < sql_boss.sql |sed '1d'|tr -s '\r\n' ' ' > sql_boss.txt

all_corp=sql_boss.txt
if [[ ! -s "sql_boss.txt" ]]; then
   echo "corp is empty!"
fi
if [[ -z "$*" &&  ! -s "sql_boss.txt" ]]; then
    echo "如果没有SQL文件请运行下面命令"
    #echo "/usr/bin/svn export --username ${svn_username} --password ${svn_password} --force ${svn_url} ${sql_path}"
    echo
    echo "请输入数据库名称。"

    echo "多个数据库名称请用空格分隔。"
    echo "$0 db_name1 [db_name2 db_name3 ...]"
    echo
    exit
fi
cat $all_corp
#循环创建数据库的存储过程、函数、视图
for db_name in `cat $all_corp` ;do
    echo ----------
    echo "开始创建${db_name}数据库的存储过程、函数、视图结构..."



        mysql $db_root_name $db_root_pass $db_port $db_host $db_name < $sql_path/p_common.sql



    echo "结束创建${db_name}数据库的存储过程、函数、视图结构..."


    echo "----------"
done

 

 

 

 

======================================== 正式环境

 

 

sql_hub_sc.sql

 SELECT corp.db_suffix,game_corpdb.game_id,game_corpdb.db_host FROM corp LEFT JOIN game_corpdb ON corp.id = game_corpdb.corp_id WHER
E game_corpdb.game_id=2;

 

 

 

输出格式:

sys     3       192.168.102.71:3301
tem     3       192.168.102.71:3301
ta      3       192.168.102.71:3301
tb      3       192.168.102.71:3301
ce1     3       192.168.102.71:3302
ce2     3       192.168.102.71:3302
ce3     3       192.168.102.71:3302
ce5     3       192.168.102.71:3302
da      3       192.168.102.71:3302
ce4     3       192.168.102.71:3302
fl      3       192.168.102.71:3301

 

 

 

 

 

update_hub_mysql_sc.sh

 

#!/bin/sh

#SQL脚本路径
sql_path="/var/www/sc/protected/data/scheme"

#MySQL用户名,格式:空或者-h hostname或者-h ip
db_host_hub="-h 192.168.102.71"
#MySQL用户名,格式:空或者-h hostname或者-h ip
db_port="-P 3301"

#MySQL用户名,格式:-u root或者-u username
db_root_name="-ureplication"

#MySQL用户密码,格式:空或者-p password
db_root_pass="-p123456"
#########参数配置

clear

#hub库名
db_hub="ssc_hub"

mysql $db_root_name $db_root_pass $db_port $db_host_hub $db_hub < sql_hub_sc.sql |sed '1d' > sql_hub_sc.txt

all_corp=sql_hub_sc.txt

if [[ ! -s "sql_hub_sc.txt" ]]; then
   echo "corp is empty!"
fi


cat $all_corp | while read line
do
    echo ----------
    flag1=`echo "$line" | awk 'BEGIN {FS=" "}{print $1}'`
    flag2=`echo "$line" | awk 'BEGIN {FS=" "}{print $2}'`
    flag3=`echo "$line" | awk 'BEGIN {FS=" "}{print $3}'`
    corp_db_host=`echo "$flag3" | awk 'BEGIN {FS=":"}{print $1}'`
    corp_db_port=`echo "$flag3" | awk 'BEGIN {FS=":"}{print $2}'`
    if [[ $flag2 -eq 2 ]];then
        corp_name="sc_${flag1}"
    else
        corp_name="kc_${flag1}"
    fi
    echo "开始升级${corp_name}数据库的存储过程、函数、视图结构..."


mysql  -h $corp_db_host $db_root_name $db_root_pass -P $corp_db_port $corp_name < $sql_path/SC_p_order_rerve.sql


    echo "结束升级${corp_name}数据库的存储过程、函数、视图结构..."

    echo "----------"

done


exit 0

 

 

 

 

 

分享到:
评论

相关推荐

    shell连接oracle数据库执行SQL工具脚本-支持select+inset+update

    dbExecurteSQL.sh:数据库执行SQL脚本 根据配置文件获取数据库连接,根据传入sql执行sql 调用案例:dbConnectTest.sh "pssc_jk" "select sysdate from dual;" 参数介绍: "pssc_jk" 指配置文件中配置的数据库...

    Oracle sqldeveloper without jdk (win+linux)

    You may still update the column with an explicit UPDATE statement referencing the SQL UNISTR function. - Bug 4924518: Only the SQL Worksheet statement input area (code editor) uses a configurable ...

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

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美化,需要进一步完善和...

    [详细完整版]3数据库.docx

    (解锁) 第二课:SQL语言 Sql语言是在数据库地下进行操作的专门的语言,sql语言本身是一种标准语言,它是一个 国际标准,它定义了套标准SQL1922, SQL1999,SQL在大多数数据库上通用,或许有轻微 的改变 包含四大...

    orcale常用命令

    1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换...累计备份的SH文件:exp_cumu.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=cumulative file=/oracle/export/db_cumu$rq.dmp...

    获取top前10个Oracle的进程(支持多实例)

    SELECT RAWTOHEX(TB.SQL_ADDRESS) SQL_ADDRESS,TB.SQL_HASH_VALUE,TB.SID FROM v$process TA INNER JOIN v$session TB ON TA.addr=TB.paddr WHERE TA.spid='12167' AND TB.sql_address!='00' not sql runing ...

    WebBug:在线项目管理系统-PHP编写的Web项目BUG管理系统

    - sh update-framework.sh - 安装数据库 resource/webbug.sql - 修改数据库配置 config/database.php - 复制.env.example到.env 修改数据库配置 - 添加文件夹 public/static/upload 可写权限 - 后台运行 ...

    最全的oracle常用命令大全.txt

    ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先...累计备份的SH文件:exp_cumu.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=cumulative ...

    marple:解析SQL查询以监控网络性能

    需要Java 8:sudo apt-add-repository ppa:webupd8team / java sudo apt-get update sudo apt-get install oracle-java8-installer 需要来自apache maven网站的maven: : 如果将查询编译到多米诺后端,请按照...

    sqlmap (懂的入)

    * Full support for MySQL, Oracle, PostgreSQL and Microsoft SQL Server database management system back-end. Besides these four DBMS, sqlmap can also identify Microsoft Access, DB2, Informix and ...

    Asp.net 网络硬盘

    数据库:Sql Server 2005 │ Default.aspx │ Default.aspx.cs │ findpwd.aspx │ findpwd.aspx.cs │ findPwd1.aspx │ findPwd1.aspx.cs │ Information.aspx │ Information.aspx.cs │ Insert_Wjj.aspx │ ...

    multi_schema_example

    在运行“ update_prefixed_multi_schemas.sh”脚本之前,请确保执行以下操作: 一个。 请记住,Liquibase将通过固定列表组合模式列表。 b。 或者通过解析文件名中的模式名称(如果取消注释第5行)。 C。 本示例使用...

    全新原生Java影视源码-test-your-trivia:一种基于Kotlin并由Quarkus框架提供支持的新型琐事Alexa游戏

    使用./build/manage.sh update脚本快速部署到 AWS 预先打包的 REST 客户端支持开箱即用地构建类似改造的 API。 用于 lambda 的 AWS sdk 已包含在 Quarkus 包中。 主启动处理程序的 Quarkus 单元测试 可用作使用 ...

    shaarlo:统一Shaarlis Rss

    Shaarlo 注意:必须计划一些用于数据更新的bash脚本。... 访问https://../shaarlo/ 安排这些脚本(例如crontab it)5 * * * * /../bash/do_build_all_rss.sh 6 * * * * /../bash/update_table_liens.sh

    databaseSQL:PostgreSQL服务器脚本

    SQL工具 与pgAdmin4一起安装postgresql版本12。 PostgreSQL是一种高级的对象关系数据库管理系统,它支持SQL标准的扩展子集,包括事务,...sudo apt-get update sudo apt-get -y install postgresql sudo apt-get insta

    瓷砖:阿姆斯特丹的各种矢量和栅格瓷砖

    使用T-REX为basickaart创建矢量图块T-REX矢量图块创建https://t-rex.tileserver.ch/ 现在,我们从导入最新版本的basekaart db开始docker-compose up -d database docker-compose exec database update-db.sh ...

    微信小程序商城 配套的 服务端

    服务端本项目是 微信小程序商城 配套的服务端Development# clone the projectgit clone git@github.com:ZuoFuhong/wechat-mall-backend.git# update dependencygo mod tidy# build the project./build.sh# ...

    azkaban-3.38安装包(已编译)

    update executors set active=1 where id=1; 8.启动程序 先创建一个日志目录: [root@master azkaban-exec-server]# mkdir logs [root@master azkaban-exec-server]# mkdir ../azkaban-web-server/logs 启动: cd ...

    CoreCheat-CSGO-Reborn:C#CSGO CHEAT->移到那里https:github.comlysep-corpCoreCheatCSGO-LSREMAKE

    Shitty Auth系统(已删除所有安全sh.ts,很抱歉,它们是个人lmao。您可以在DEBUG模式下进行编译直接跳过它。) 我的调试器系统。 ClientCMD已实现。 ConVar管理器已实施。 NetVar管理器已实现(通过 )

    无垠式代码生成器最新功能与文档增强版0.7.22

    改进了Simplejee技术栈的Add,Update,SoftDelete和Delete等动词的代码生成物 改进了理论PPT,进行了一些修正 ===============0.7.15=========================== 本版本为InfinityGPGenerator的文档增强版本,支持...

Global site tag (gtag.js) - Google Analytics