shell脚本执行数据库脚本

原创 2012年03月26日 21:17:52

 1、MySql

                    createDB.sql

create database Mysql_db;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON Mysql_db* TO dbUserName@'%' IDENTIFIED BY 'userPassword';
use Mysql1351_data;
  
  --其中%表示dbUserName用户可以远程登录,如果是local则表示用户只能通过本地登录连接

      

                              createTable.sql         

CREATE TABLE `tablename` (
  `MOBILE` varchar(21) NOT NULL COMMENT '手机号码',
  `STOCK_CODE` varchar(10) NOT NULL COMMENT '股票代码',
  `MAX_PRICE` varchar(15) NOT NULL COMMENT '最高价',
  `MIN_PRICE` varchar(15) NOT NULL COMMENT '最低价',
  `TIME_PRICE` varchar(20) DEFAULT NULL COMMENT '行情价格',
  `ORDER_TIME` varchar(21) DEFAULT NULL COMMENT '订购预警时间',
  `ALARM_TIME` varchar(21) DEFAULT NULL COMMENT '发送预警时间',
  `NOTICE_WAY` char(3) DEFAULT 'mms' COMMENT '通知方式,短信(sms)或彩信(mms)',
  `DISABLED` char(1) DEFAULT '0' COMMENT '是否禁用',
  PRIMARY KEY (`MOBILE`,`STOCK_CODE`),
  UNIQUE KEY `Index_SAG_PAAS_STOCK` (`MOBILE`,`STOCK_CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='股票雷达预警表';


MySqlinstall.sh

#把用户脚本文件追加到 createDB.sql
cat  /appfilepath/tablename.sql >> /createDB.sql
#追加退出MysqL
echo 'commit;' >>/createDB.sql
#执行脚本文件,并将结果输出到dblog
mysql -h IP -u root -pPassWord < /createDB.sql > /resultMysql/dblog


 2、SqlServer(前提先安装FreeTDS)

SqlServerinstall.sh


#!/bin/ksh
#! @1--超级用户名
#!@2--超级密码
#!@3--数据库名
#!@4--表空间文件名
#!@5--表空间路径和名称
#!@6--表空间初始化大小
#!@7--表空间最大值
#!@8--表空间增长值--可以为百分比,或者带MB单位的固定值
#!@9--日志空间文件名
#!@a--日志空间路径和名称
#!@b--日志空间初始化大小
#!@c--日志空间最大值
#!@d--日志空间增长值--可以为百分比,或者带MB单位的固定值
#!@e--执行SQL脚本路径
#!@f--日志输出文件路径(配置+生成)
#! @g--创建的登录用户名
#! @h--创建的登录密码
tsql -S MyServer2k -U 1@ -P '2@' <<@@@ | grep "消息" >/dev/null 2>&1
CREATE DATABASE 3@
ON
(NAME=4@,
FILENAME='5@',
SIZE=6@MB,
MAXSIZE=7@MB,
FILEGROWTH=8@
)
LOG ON
(NAME=9@,
FILENAME='a@',
SIZE=b@MB,
MAXSIZE=c@MB,
FILEGROWTH=d@
)
go
use  3@  --指定数据库
go  
exec  sp_addlogin  'g@','h@'            --添加登录
exec  sp_grantdbaccess  N'g@'            --使其成为当前数据库的合法用户
exec  sp_addrolemember  N'db_owner',  N'g@'            --授予对自己数据库的所有权限
go
master.dbo.xp_cmdshell   '  osql   -U g@   -P h@   -d 3@   -i e@  -o f@ '  --用master.dbo.xp_cmdshell存储过程执行
go
exit
@@@
echo "done."


SqlServerUninstall.sh

#!/bin/ksh
#! @1--超级用户名(配置)
#!@2--超级密码(配置)
#! @3--创建的登录用户名(传参)
#!@4--数据库名(传参)
tsql -S MyServer2k -U 1@ -P '2@' <<@@@ | grep "消息" >/dev/null 2>&1
use  master  --指定数据库
go
exec  sp_droplogin  N'3@' --删除登录  
DROP DATABASE 4@  --删除数据库
go
exit
@@@
echo "done."


 3、Oracle

OracleInstall.sh

#!/bin/sh
#实例名
sid=1%
#新创建的数据库用户名
system=2%
#新创建的数据库密码
systemPass=3%
#log日志目录
logpath=4%
#log日志名
logfile=5%
#执行的sql名称
sqlfile=7%
#创建表空间的脚本目录
sqlspacepath=8%
#执行表空间的sql名称
sqlspacefile=9%
#dba数据库用户名
dbasystem=b%
#dba数据库密码
dbasystemPass=c%
#创建日志目录
mkdir $logpath   2>/dev/null
echo start install dbspace script ... >$logfile
#在数据库脚本末尾追加exit,保证脚本执行完成后退出
echo 'exit;' >>$sqlfile
#oracle环境变量
. /home/oracle/.bash_profile 2>>$logfile
#创建表空间和用户脚本
sqlplus $dbasystem/$dbasystemPass@$sid @$sqlspacepath/$sqlspacefile               >>$logfile
echo start install db script  >>$logfile
#执行数据库脚本
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
sqlplus $system/$systemPass@$sid @$sqlfile               >>$logfile
export NLS_LANG=AMERICAN_AMERICA.utf8
echo end install db script. >>$logfile

OracleUnInstall.sh

#!/bin/sh
#实例名
sid=1%
#log日志目录
logpath=4%
#log日志名
logfile=5%
#删除表空间的脚本目录
sqlspacepath=8%
#删除表空间的sql名称
sqlspacefile=9%
#dba数据库用户名
dbasystem=b%
#dba数据库密码
dbasystemPass=c%
#创建日志目录
mkdir $logpath   2>/dev/null
echo start delete dbspace script ... >$logfile
#oracle环境变量
. /home/oracle/.bash_profile 2>>$logfile
#创建表空间和用户脚本
sqlplus $dbasystem/$dbasystemPass@$sid @$sqlspacepath/$sqlspacefile   >>$logfile
echo end delete db script. >>$logfile






























































Shell脚本中执行sql语句,操作mysql数据库

对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的...
  • u011630575
  • u011630575
  • 2016年03月26日 14:52
  • 9629

shell脚本执行方法

bash shell 脚本的方法有多种,不同的方式也有差别之处。假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限。   如下的简单she...
  • u012258978
  • u012258978
  • 2017年02月09日 08:36
  • 1218

使用postgreSQL命令行工具在shell脚本中自动执行数据库脚本

很多情况下,我们希望编写一个shell脚本,来完成一些诸如创建数据库、创建数据表等等的操作,dan...
  • xocoder
  • xocoder
  • 2014年04月23日 15:43
  • 12266

多线程执行shell脚本

Linux下模拟多线程的并发并发shell脚本  分享一个在Linux下模拟多线程的并发脚本,使用这个脚本可以同时批量在定义数量的服务器上执行相关命令,比起普通for/while循环...
  • dubendi
  • dubendi
  • 2017年12月28日 10:33
  • 45

如何写一个shell脚本并运行

Linux下你可以有两种方式执行Shell脚本: 1、用shell程序执行脚本:根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等(一般来说第一行#!/bin/...
  • u013176681
  • u013176681
  • 2016年04月10日 11:53
  • 4273

shell使用sql脚本进行sqlite3数据库更新

转载请注明出处! 1. 编写sql脚本upgradeDB.sql,其中就是普通sql语句 update tablename set colname=value where ID=value...
  • understand125
  • understand125
  • 2017年12月02日 17:02
  • 206

mongodb数据库备份和利用shell脚本编写

1、指令备份 MongoDB提供了备份工具,mongodump.exe,在bin目录下,其用法如下: mongodump.exe -h localhost -d database_...
  • fzjlucky
  • fzjlucky
  • 2017年02月17日 15:06
  • 500

Shell脚本执行Hive语句

一、环境 1、Hadoop 0.20.2 2、Hive 0.5 3、操作系统 Linux m131 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:4...
  • dajuezhao
  • dajuezhao
  • 2010年07月29日 17:29
  • 12810

shell脚本执行顺序

之前以为shell脚本的执行就是把脚本里的shell语句一句一句不停的往linux里丢,刚刚问了下同事,和上网查了一下才知道,理解错了。 转载一句话:你可以把shell脚本看成你手工一条一条语句输入...
  • wclin88
  • wclin88
  • 2011年08月31日 11:41
  • 5970

Shell 脚本常用命令

Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook。在工作过程中整理了一下,贴在这里已备查看。   1           Shell中的特...
  • lionfire
  • lionfire
  • 2011年07月26日 11:22
  • 16696
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell脚本执行数据库脚本
举报原因:
原因补充:

(最多只允许输入30个字)