oracle,mysql,命令行启动脚本执行简单操作
单位工作环境内外网隔离,我的机器通过一个开关手工切换内外网。远程维护软件通过外网连接到单位机器操作不了内网数据库,我不在单位数据库需要维护的时候,只能视频连线让在单位的同事协助进行。他们不是专门的计算机人员,远程指挥他们操作,即麻烦又危险。
然后就想通过命令行启动脚本的方式,把执行操作写成一个批处理文件,通过外网放到桌面上,然后让他们切换机器到内网,把屏幕上的快捷方式双击一下,问题解决了,简单又安全。
oracle和mysql都需要安装客户端才可以执行。oracle没什么可说的,mysql麻烦点。我机器里平时用的是mysql workbench,里面有个可执行的mysql,按理说它应该可以连接到服务器,但怎么试也没好使,只好又下载一个单独的客户端,mysql-shell。
用文本文件编辑器在桌面写一个bat文件,内容如下:
1、exp username/password@orcl file=d:\bko.dmp
2、sqlplus username/password@orcl < d:\or.sql
3、C:\"Program Files"\"MySQL"\"MySQL Workbench 6.1 CE"\mysqldump -h 192.168.31.5 -u username -ppassword databasename > d:\bkm.sql
4、C:\mysql-shell-8.0.32-windows-x86-64bit\bin\mysqlsh -h 192.168.31.5 -u username -ppassword --sql < d:\my.sql
解释一下上面这个批处理文件:
我的oracle路径被加入进了系统路径,执行时不需要再指定,mysql没有加入,所以执行时需要指出文件在哪里。
1、oracle备份,具体命令内容根据自己需要来写,比如指定用户,指定表等等。
2、执行oracle脚本,or.sql内容为需要执行的一系列任务,比如以下的示例
修改表结构:alter table FIN_IPR_SIINMAININFO add acct_mulaid_pay number(10,2);
插入记录:insert into fin_ipr_siinmaininfo ( non_insu_amount,insutype。。。。) values( 0,'310' 。。。);
修改记录:update fin_opb_invoiceinfo set paykind_code = '02', pact_code = '2' where invoice_no = '000000806573';
提交:commit;
3、mysql备份,如不需要完整备份,可以根据自己需要备份指定表。
4、执行mysql脚本,my.sql内容为需要执行的一系列任务,比如以下的示例
插入记录:
use database;
insert into com_printer_setting (p_type, p_item,p_top,p_left,p_width,p_height,p_font_name,p_font_size,p_position,p_mode,p_print_item,p_item_type) values('门诊收据', '共济',104,88,25,4,'宋体',3.5,0,1,'共济','itemtype');
这样处理之后,需要维护数据库的时候就省心多了。