首页 > 工程 > 问答 > 怎么做数据库冗余备份,如何做数据库的实时备份

怎么做数据库冗余备份,如何做数据库的实时备份

来源:整理 时间:2023-08-05 08:17:37 编辑:汇众招标 手机版

本文目录一览

1,如何做数据库的实时备份

方法/步骤  登录多备份控制面板,点击开始  在弹出框里选择右边的数据库备份  你的数据库是否可以远程备份?我们选择左边的可以  输入数据库名,主机ip,账号,密码等  选择备份策略,包括时间,频率,网盘  返回到控制面板上,则代表备份已经在进行中

如何做数据库的实时备份

2,怎么做数据库的实时备份

MYSQL数据如何实时备份依次单击:开始--程序--Microsoft SQL Server--企业管理器--SQL Server组--管理--数据库维护计划在右侧空白处右键单击,新建维护计划--勾选要备份的数据库--下一步指定数据库备份计划--调度--单击"更改"--设置备份的时间,备份周期--下一步每日频率即是每天什么时间开始进行备份发生频率即是执行的周期指定备份磁盘目录--修改"使用此目录"的路径作为备份数据库的存放路径.勾选删除早于此时间的文件,我这里选择一周,即是数据库备份文件把一周前的进行删除给此任务计划填写一个名字:back 2单击"完成",就可以在数据库维护计划中看到刚才新建的计划.注意事项一定要开启sql server agent服务

怎么做数据库的实时备份

3,如何备份sqlserver数据库

在开始菜单中点击“SQL Server Management Studio”在弹出的界面点击连接,在数据库选项中选择需要备份的数据库文件,然后右击选择“任务”中的“备份”在备份数据库TOBHIS,数据库选择“tobhis”,备份类型选择“完整”然后点击“添加”按钮在出现的界面中点击文件夹后面的“...”选择按钮。在“定位数据库文件中”选择“backup”文件路径,以及文件类型,还有写入数据库名称,然后点击“确定”按钮在出来的界面中就可以看到备份文件的名称以及路径了。然后点击确定按钮。然后数据库就会执行备份程序,备份成功后会出现如下面的提示框。为了确定数据库备份是否成功,我们可以找到刚才的备份路径来查看有没有备份好的数据。如下面图,说明备份成功了。
1、点击开始菜单,打开sql企业管理器。  2、依次展开sqlserver根目录,并打开数据库。  3、选择要备份的数据库名,鼠标右键所有任务→备份数据库。  4、这里需要注意,如果之前有备份的话,一定要先删除之前的备份记录,不用担心只是删除记录而不是删除你的备份文件。  5、删除记录再点添加;  6、选择备份目的,就是要让你选择备份地点和备份文件命名。前面是路径后面是文件名,这个文件名是自定义的,可以根据时间或者其他来命名,如果想另存的话也可以点击另存为,然后确定。  7、添加保存路径后继续确定,然后会有备份进度提示,直到完成ok。  8、根据路径来检查是否有备份文件,真的有了!哈哈。

如何备份sqlserver数据库

4,数据库冗余需要怎么做

数据冗余的设计主要是为了快速从数据库中取数,减少表间关联.取数时尽可能从一个表中完成取数需要.遵行这个思路去考虑.
它将冗余数据选择到一个游标中,并根据(lastname,firstname)来分组(在我们这个方案中),然后打开游标然后循环地取出每一行,然后用与先前的取出的键值进行比较,如果这是第一次取出这个值,或者这个值不是冗余键,那么跳过这个记录然后取下一个,不然的话,这就是这个组中的冗余记录,所以删掉它. 让我们运行一下这个存储过程 begin deleteduplicates; end; / select lastname, firstname, count(*) from customers group by lastname, firstname having count(*) > 1; 最后一个查询语句没有返回值,所以冗余数据没有了从表中取冗余数据的过程完全是由定义在csr_duplicates 这个游标中的sql语句来实现的,pl/sql只是用来实现删除冗余数,那么能不能完全用sql语句来实现呢? 二.sql解决方案,使用rank()删除冗余数据oracle8i分析函数rank()来枚举每一个组中的元素,在我们的方案中, 我们应用这个方案,我们使用这个函数动态的把冗余数据连续的排列起来加上编号,组由partintion by 这个语句来分开,然后用order by 进行分组select id, lastname, firstname, rank() over (partition by lastname, firstname order by id) seqnumber from customers order by lastname, firstname; sql listing 7. output of single sql statement that uses rank() 显示的是根据记录的条数的个数来显示尤其对于冗余数据 id lastname firstname seqnumber ----- --------------- ---------- ---------- 1018 blake becky 1 1013 blue don 1 1000 bradley tom 1 1002 chang jim 1 1008 griffith david 1 1020 hill larry 1 1004 king chuck 1 1005 krieger jeff 1 1012 krieger jeff 2 1017 krieger jeff 3 1003 loney julie 1 1007 lord don 1 1015 mason paul 1 1006 monroe john 1 1009 simon michael 1 1010 simon michael 2 1001 stone tony 1 1011 stone tony 2 1014 stone tony 3 1016 stone tony 4 1019 stone tony 5 我们可以看一到,seqnumber这一列中的数值,冗余数据是根据id号由小到大进行的排序,所有的冗余数据的sqlnumber都大于一,所有的非冗余数据都等于一,所以我们取自己所需,删除那么没用的select id, lastname, firstname from (select id, lastname, firstname, rank() over (partition by lastname, firstname order by id) as seqnumber from customers) where seqnumber > 1; sql listing 8. 冗余键的键值 有七行必须被删除 id lastname firstname ----- --------------- ---------- 1012 krieger jeff 1017 krieger jeff 1010 simon michael 1011 stone tony 1014 stone tony 1016 stone tony 1019 stone tony 7 rows selected.这显示有七行需要删除,还是用上一个表我测试了一下这个代码,它用了77秒种就删除了所有的数据准备好了用sql语句来删除冗余数据,版本一它执行了135秒 delete from customers where id in (select id from (select id, lastname, firstname, rank() over (partition by lastname, firstname order by id) as seqnumber from customers) where seqnumber > 1); 我们可以看到最后的两行语句对表中的数据进行了排序,这不是有效的,所以我们来优化一下最后一个查询语句,把rank()函数应用到只含有冗余数据的组,而不是所有的列下面这个语句是比较有效率的,虽然它不像上一个查询那样精简select id, lastname, firstname from (select id, lastname, firstname, rank() over (partition by lastname, firstname order by id) as seqnumber from (select id, lastname, firstname from customers where (lastname, firstname) in (select lastname, firstname from customers group by lastname, firstname having count(*) > 1))) where seqnumber > 1; 选择冗余数据只用了26秒钟,这样就提高了67%的性能,这样就提高了将这个作为子查询的删除查询的效率, delete from customers where id in (select id from (select id, lastname, firstname, rank() over (partition by lastname, firstname order by id) as seqnumber from (select id, lastname, firstname from customers where (lastname, firstname) in (select lastname, firstname from customers group by lastname, firstname having count(*) > 1))) where seqnumber > 1); 现在只用了47秒钟的就完成的上面的任务,比起上一个136秒,这是一个很大的进步,相比之下,存储过程用了56秒,这样存储过程有些慢了使用pl/sql语句我们和我们以上的代码,会得到更好的更精确的代码,和提高你代码的执行效率,虽然对于从数据库中枚举数据pl/sql对于sql两者没有什么差别,但是对于数据的比较上,pl/sql就比sql要快很多,但是如果冗余数据量比较小的话,我们尽量使用sql而不使用pl/sql如果你的数据表没有主键的话,那么你可以参考其它技术rank()其它的方法 使用rank()函数你可以对选择你所保留的数据,(或者是小id的或者是大id 的,就由recdate这个列来决定这种情况下,你可以把recdate加入到(orderby )子句中,倒序或者正序 这是一种保留最大id的一种解决方案 delete from customers where id in (select id from (select id, lastname, firstname, rank() over (partition by lastname, firstname order by recdate desc, id) as seqnumber from (select id, lastname, firstname, recdate from customers where (lastname, firstname) in (select lastname, firstname from customers group by lastname, firstname having count(*) > 1))) where seqnumber > 1); 这种技术保证了你可以控制每一个表中的保留的组,假设你有一个数据库,有一个促销或者有一个折扣信息,比如一个团体可以使用这种促销5次,或者个人可以使用这个折扣三次,为了指出要保留的组的个数,你可以在where 和having子句中进行设置,那么你将删除所有大于你 设置有数的冗余组 delete from customers where id in (select id from (select id, lastname, firstname, rank() over (partition by lastname, firstname order by id) as seqnumber from (select id, lastname, firstname from customers where (lastname, firstname) in (select lastname, firstname from customers group by lastname, firstname having count(*) > 3))) where seqnumber > 3); as you can see, using the rank() function allows you to eliminate duplicates in a single sql statement and gives you more capabilities by extending the power of your queries. 正如你所见使用rank()可以消除冗余数据而且能给你很大的可伸展性
文章TAG:怎么数据数据库冗余备份怎么做数据库冗余备份

最近更新

相关文章