`
zhengdl126
  • 浏览: 2542559 次
  • 性别: 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" 指配置文件中配置的数据库...

    cours-sql-sh-.zip_cours SQL_sql

    在这个“cours-sql-sh-.zip”压缩包中,我们找到了一个名为“cours-sql-sh-.pdf”的文件,这很可能是关于SQL课程的详细教程,特别针对在Windows环境下操作。 在SQL课程中,你将学习到如何创建数据库,定义数据结构...

    用java的 S1SH框架写成的 :BBS

    Hibernate是Java领域的一个持久层框架,它简化了数据库操作,通过ORM将Java对象映射到数据库表,避免了直接编写SQL语句。在BBS系统中,Hibernate用于处理论坛的用户信息、帖子、回复等数据的CRUD(Create, Read, ...

    QL_code.sh;task_before.sh_内互

    首先,`QL_code.sh`脚本可能是用来执行SQL查询的,SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。它包括了增(INSERT)、删(DELETE)、改(UPDATE)和查(SELECT)等操作。如果`QL_code....

    SQL简单编写编写规范

    UPDATE employees SET salary = salary * v_raise_factor WHERE department_id = v_department_id AND termination_date IS NULL; ``` ### 条件语句(IF) #### 示例1:判断入职日期是否早于当前日期 ```sql IF ...

    PL/SQL学习笔记

    在PL/SQL中使用SQL语句时,分为DML语句(如INSERT、UPDATE、DELETE)和DDL语句(如CREATE、ALTER、DROP),以及事务控制语句(如COMMIT和ROLLBACK)。这些语句用于操作数据库的数据和结构。 PL/SQL中的SELECT语句...

    Matlab与SQL Server数据库编程指南

    - **数据库访问函数**:如`clearwarnings`, `close`, `commit`, `database`, `exec`, `get`, `insert`, `isconnection`, `isreadonly`, `ping`, `rollback`, `set`, `sql2native`, `update`等。 - **数据库游标访问...

    SQL Server分布式数据库的并发控制和故障恢复 (1).pdf

    SQL Server支持三种基本的封锁机制:排他锁(EX锁)、共享锁(SH锁)和更新锁(UPDATE锁)。若事务对某页加EX锁,则其它事务不能对此页加锁且不能读取或修改此页。若事务对某页加SH锁,则其它事务只能对该页加SH锁,且只能...

    s2sh实现增删改查的例子

    3. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,而无需编写SQL语句。Hibernate会根据对象的状态自动进行CRUD操作(创建(Create)、读取(Retrieve)、更新...

    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 ...

    s2sh网上购物系统

    它通过ORM(Object-Relational Mapping)映射,将数据库中的表映射为Java实体类,实现了数据的CRUD(Create、Read、Update、Delete)操作,降低了对SQL的直接依赖。 4. **数据层**:在这个网上购物系统中,数据层...

    s2sh-CRUD.rar_crud_s2sh

    在S2SH框架中,Hibernate负责数据持久化,将Java对象映射到数据库表,实现了对数据库的CRUD(Create、Read、Update、Delete)操作。开发者可以通过编写简单的Java实体类和配置文件,无需编写大量SQL语句,即可完成...

    S2SH-CRUD.rar_s2sh

    这个名为"S2SH-CRUD.rar_s2sh"的压缩包文件,显然是一个基于S2SH框架构建的人力资源管理系统,它包含了基础的增删改查(Create, Read, Update, Delete,简称CRUD)功能。对于初学者来说,这是一个理想的实践项目,...

    SH框架(增删改除加分页,编码)

    "SH框架"通常指的是Spring Boot和Hibernate的组合,这是一个常见的Java Web开发框架。Spring Boot简化了设置和配置过程,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于处理数据库交互。在这个项目中,"增...

    S2SH整合简单登陆增删改查

    接着,"增删改查"(CRUD)是数据库操作的基础,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据。在S2SH框架下,这些操作可以通过Hibernate实现。Hibernate作为ORM工具,允许开发者用Java...

    sh分页,增删改查

    更新(Update)则是通过修改对象属性后,调用Hibernate的update()或merge()方法。查询(Read)可以是简单的单个对象查找,也可以是复杂的分页查询,都是通过Struts和Hibernate的配合完成。 **整合Struts与Hibernate...

    sql_去除字符中空格

    UPDATE sh_ivd SET logname = REPLACE(logname, ' ', ''); ``` 这条命令将会更新 `sh_ivd` 表中的所有记录,将 `logname` 字段中的所有空格替换为空字符串。 #### 5. 处理特殊字符 除了空格之外,有时还需要处理...

    s2sh增删改查

    - **更新(Update)**:修改已有的对象属性后,调用`update()`或`saveOrUpdate()`方法将更改同步到数据库。 - **删除(Delete)**:调用`delete()`方法从数据库中移除对象。 4. **事务管理**:为了保证数据的一致...

    GenData.sh

    脚本可能包含了SQL查询、DML语句(INSERT、UPDATE、DELETE)、DDL语句(CREATE、ALTER、DROP)或者PL/SQL块。 3. **变量和参数**:脚本可能接收命令行参数,用于定制化数据生成的过程,比如数据量、表名或特定值。 ...

    sh增删改查

    Hibernate通过实体类(Entity)与数据库表进行映射,使用HQL(Hibernate Query Language)或SQL进行查询,支持事务管理和缓存机制,极大地提高了开发效率。 在这个"sh增删改查"案例中,我们首先需要创建一个数据库...

Global site tag (gtag.js) - Google Analytics