仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 866|回复: 9
打印 上一主题 下一主题

[学习教程] MSSQL编程:单弄定ASA备份/恢复程序

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:39:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
线上或者测试环境经常出现的误操作总是让DBA同学那么闹心。备份|程序|恢复
AdaptiveServerAnywhere(本文中简称ASA)是PowerBuilder(本文中简称PB)自带的数据库办理体系,可作为小型使用体系的数据库服务器。而数据库的备份/恢复是一项基础的事情,要想用短短几分钟就完成这类程序的编写,能做到吗?本文就将为人人先容一个用PB编写的ASA备份/恢复程序,只需很短的工夫,就能够体例完成并使用在以ASA作为数据情况的小型使用上。

一备份程序
先来看看备份程序部分的写法。在窗体上建一文本框sle_1,用来显现备份的文件名,并增加两个按钮:cb_1(扫瞄)、cb_2(备份)。响应的事务代码以下:

//cb_1.clicked()

stringfname,name

GetfileSaveName(保留,fname,name,“db”,数据库备份文件(*.1),*.1)

sle_1.text=fname

//cb_2.clicked()

stringmysql,bfname

bfname=trim(sle_1.text)

bfname=left(bfname,len(bfname)-2)

mysql=“BACKUPDATABASETO”+bfname+“”

executeimmediate:MysqlUSINGSQLCA;//使用SQL语句立即实行备份

ifsqlca.sqlcode=0then

messagebox(“信息提醒”,备份乐成!,information!,OK!)//给出备份乐成与否的相干信息

else

messagebox(“信息提醒”,备份失利!,information!,OK!)

endif

二恢复程序
再来看看恢单数据库程序的编写。在窗体上建一文本框sle_1,显现用来恢复的备份文件名,并增加两个按钮:cb_1(查找)、cb_2(恢复)。声明一个修正文件属性的API函数:

FUNCTIONulongSetFileAttributes(refstringlpFileName,ulongdwFileAttributes)LIBRARY“kernel32.dll”ALIASFOR“SetFileAttributesA”

响应的事务代码以下:

//cb_1.clicked()

stringfname,name

GetfileOPenName(查找,fname,name,“1”,“数据库备份文件(*.1),*.1”)

sle_1.text=fname

//cb_2.clicked()

stringmysql,bfname,gzname

ulongsxz=32,kb//sxz为文件的属性值,32暗示可读写

booleantmp

bfname=trim(sle_1.text)

bfname=left(bfname,len(bfname)-2)

//d:lgz为示例中数据库文件地点目次,tmp.db为一时的数据库文件

mysql=“RESTOREDATABASEd:lgz        mp.dbFROM”+bfname+“”

executeimmediate:MysqlUSINGSQLCA;//一样是使用SQL语句来立即实行恢单数据库的事情

ifsqlca.sqlcode<>0then

messagebox(“信息提醒”,数据恢复失利!,information!,OK!)

return

endif

disconnect;//断开数据库毗连

gzname=d:lgzgz.db//包括路径的数据库文件

SetFileAttributes(gzname,sxz)//往失落只读属性

tmp=filedelete(d:lgzgz.db)//删除恢复前的数据库

iftmp=falsethen

messagebox(“信息提醒”,备份失利!,information!,OK!)

return

endif

//将一时的数据库复制到以后的数据库文件上

bfname=“d:lgz        mp.db”

gzname=“d:lgzgz.db”

kb=filecopy(bfname,gzname,true)

ifkb=1then

messagebox(“信息提醒”,数据库恢复乐成!,information!,OK!)

else

messagebox(“信息提醒”,数据库复制失利!,information!,OK!)

return

endif

filedelete(d:lgz        mp.db)//删除一时的数据库文件

connect;

三小结
程序备份和恢复的完成都只是挪用了SQL内置的功效来完成,使程序显得绝对简便。功效固然对照单一和复杂,却也能满意数据库的备份和恢复的事情需求,在请求不高的使用场所可为数据库办理职员勤俭大批精神。上述程序在PB9.0中调试经由过程。

刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、root帐户设置密码
不帅 该用户已被删除
沙发
发表于 2015-1-19 20:55:32 | 只看该作者
学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!
乐观 该用户已被删除
板凳
发表于 2015-1-25 18:12:21 | 只看该作者
如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-3 12:42:42 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-9 00:51:33 | 只看该作者
而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
谁可相欹 该用户已被删除
6#
发表于 2015-2-26 16:04:39 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
莫相离 该用户已被删除
7#
发表于 2015-3-8 16:01:52 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
蒙在股里 该用户已被删除
8#
发表于 2015-3-16 04:00:12 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
爱飞 该用户已被删除
9#
发表于 2015-3-22 20:08:11 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
山那边是海 该用户已被删除
10#
发表于 2015-3-22 20:08:11 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 17:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表