个人认为,既然有数据库,就要有DBA,DBA不但是一种职位,还是一种态度。备份数据库就应该是DBA的事情,而想使用存储过程来备份数据库是不现实的,作为某个时间点的镜像倒是还可以。
因为数据库崩溃了,如果数据丢失,存储过程再怎么做也没办法恢复。
另外,存储过程不是拿来做备份的,而是提供可靠和高效率计算的。
建议:使用批处理脚本,创建定时任务,调用 mysqldumpexe 程序来做备份。
存储过程是在数据库里面的,这样是为了提高数据库查询的效率,没有放到程序里的事。至于你说的
“放在数据库那边的话,整个程序对数据库的依赖性就很强了同时使得程序的移植性降低了”这是不成立的。在web开发中本来就是读取服务器的数据库,何来移植性之类的。如果是form应用程序的话,你如果用到数据库就必须依赖与数据库了,本身就依赖于数据库了,数据库可以说成了程序的一部分,用不用存储过程是不会影响依赖性和移植的。这点你慢慢的就会明白
存储过程是存储在
dbc
文件中的
Visual
FoxPro
代码,是专门 *** 作数据库中数据的代码过程。存储过程可以提高数据库的性能,因为在打开一个数据库时,它们便加载到了内存中。
使用存储过程主要是为了创建用户自定义函数,字段级规则和记录级有效性规则将引用这些函数。当把一个用户自定义函数作为存储过程保存在数据库中时,函数的代码保存在
dbc
文件中,并且在移动数据库时,会自动随数据库移动。使用存储过程能使应用程序更容易管理,因为可以不必在数据库文件之外管理用户自定义函数。
存储过程可以使得程序执行效率更高、安全性更好。
存储过程建立之后就已经编译并且储存到数据库,直接写sql就需要先分析再执行因此存储过程效率更高,直接写sql语句会带来安全性问题,如:SQL注入。
建立存储过程不会很耗系统资源,因为存储过程只是在调用才执行。
存储过程还可以使程序和SQL分离,维护起来也会更方便。
一个存储过程既是一个系统的标准组件,也是一个可编程的函数,它在数据库中创建并保存,总体来说关系数据库系统中存在如下几大类型存储过程。
1系统存储过程系统存储过程以sp_开头,用来进行系统的各项设定,取得系统的各项信息,管理系统的各项相关工作。
2本地存储过程本地存储过程由用户创建,是为了完成某一特定功能的SQL语句集。事实上,一般所说的存储过程就是指本地存储过程。
3临时存储过程临时存储过程分为本地临时存储过程、全局临时存储过程两种。
((1)本地临时存储过程。以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它。
(2)全局临时存储过程。以两个井字号(##)开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程。全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。
4远程存储过程在特定数据库中,远程存储过程是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。
5扩展存储过程扩展存储过程是用户使用外部程序语言编写的存储过程,扩展存储过程的名称通常以xp_开头。
以上就是关于如何用mysql的存储过程来备份数据库全部的内容,包括:如何用mysql的存储过程来备份数据库、存储过程应该放到数据库里吗、数据库中的存储过程是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)