[转帖]shell脚本执行数据库脚本 _MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2148 | 回复: 0   主题: [转帖]shell脚本执行数据库脚本         下一篇 
dwx8023
注册用户
等级:上尉
经验:612
发帖:114
精华:0
注册:2011-11-8
状态:离线
发送短消息息给dwx8023 加好友    发送短消息息给dwx8023 发消息
发表于: IP:您无权察看 2014-12-10 9:36:40 | [全部帖] [楼主帖] 楼主

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


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论