随风笔记

15879069746

咨询热线

数据库备份恢复(数据备份与恢复)_1603人推荐

1、SQL的数据备份与恢复怎么做

sqlite数据库备份就是文件操作,把文件copy到某处,比如sdcard;而恢复就是覆盖掉原来的文件。它不像大型数据库那样复杂。可以参考。

2、为什么要使用数据库的备份和还原

1、数据备份就是要保存数据的完整性,防止非法关键,断电,病毒感染等等情况,使数据丢失,有必要的话,最好勤备份,防止数据丢失。2、数据还原:就是数据库出现错误或者是崩溃了不可以用,就把原来的数据恢复回来。3、提高系统的可用性和灾难可恢复性,在数据库系统崩溃的时候,可以恢复数据。4、使用数据库备份还原数据库是数据库系统崩溃时提供数据恢复最小代价的最优方案.3、没有数据就没有一切,数据库备份就是一种防范灾难于未然的强力手段。原因:1、提高系统的高可用性和灾难可恢复性,在数据库系统崩溃的时候,没有数据库备份就没法找到数据;2、使用数据库备份还原数据库是数据库系统崩溃时提供数据恢复最小代价的最优方案,如果让客户重新填报数据,代价那就太大了;3、没有数据就没有一切,数据库备份就是一种防范灾难于未然的强力手段,没有了数据,应用再花哨也是镜中花水中月。数据库备份是把你的数据备份到硬盘,一旦系统出问题,如果不备份你就会失去很多有用的数据,备份以后,即使重装系统也没关系,你可以用数据恢复,把你需要的数据恢复到你的应用软件里。

用java写batch程序用java实现access数据库的备份和恢复,首先一点就是要与access数据库建立连接,而java语言中负责与数据库建立连接和操作的就是jdbc。

3、什么情况下应该使用数据库的备份和还原?

数据备份就是要保存数据的完整性,防止非法关键,断电,病毒感染等等情况,使数据丢失。有必要的话,最好勤备份,防止数据丢失。数据还原:就是数据库出现错误或者是崩溃了不可以用,就把原来的数据恢复回来。7x24小时运作,不断发生变化的,不允许任何数据丢失的,用数据库的备份和还原。历史数据,基本不动的,需要在不同数据库之间挪来挪去的,用导出导入。

当然数据重要的时候,企业、工厂等数据都是十分重要的。

4、什么是数据库备份和恢复?为什么要备份和恢复数据库?

数据库备份是把你的数据备份到硬盘,一旦系统出问题,如果不备份你就会失去很多有用的数据,备份以后,即使重装系统也没关系,你可以用数据恢复,把你需要的数据恢复到你的应用软件里。数据库备份和恢复要成对出现,但是要在同一个数据库软件里用才有效果。比如:用sql备份的话,你要用sql的恢复。而不能用oralce来恢复。具体操作是选择要备份和恢复的数据库,然后右键,选择备份和恢复就可以了。

5、什么是数据库实时备份及恢复

数据库实时备份与恢复是指,在数据库正常运行情况下备份与恢复数据库,在数据库用户看来,这些备份与恢复操作完全是透明的。1.在用户的配置时,还原数据库我们需要列出当前局域网内所有的数据库服务器,并且要列出指定服务器的所有数据库,实现代码如下:取得数据库服务器列表:publicarraylistgetserverlist(){arraylistalservers=newarraylist();sqldmo.applicationsqlapp=newsqldmo.applicationclass();try{sqldmo.namelistserverlist=sqlapp.listavailablesqlservers();for(inti=1;i<=serverlist.count;i++){alservers.add(serverlist.item(i));}}catch(exceptione){throw(newexception("取数据库服务器列表出错:"+e.message));}finally{sqlapp.quit();}returnalservers;}取得指定数据库服务器的数据库列表publicarraylistgetdblist(stringstrservername,数据库备份还原stringstrusername,stringstrpwd){servername=strservername;username=strusername;password=strpwd;arraylistaldbs=newarraylist();sqldmo.applicationsqlapp=newsqldmo.applicationclass();sqldmo.sqlserversvr=newsqldmo.sqlserverclass();try{svr.connect(servername,username,password);foreach(sqldmo.databasedbinsvr.databases){if(db.name!=null)aldbs.add(db.name);}}catch(exceptione){throw(newexception("连接数据库出错:"+e.message));}finally{svr.disconnect();sqlapp.quit();}returnaldbs;}2.数据库的备份和实时进度显示代码:publicboolbackupdb(stringstrdbname,stringstrfilename,progressbarpgbmain){pbar=pgbmain;sqldmo.sqlserversvr=newsqldmo.sqlserverclass();try{svr.connect(servername,username,password);sqldmo.backupbak=newsqldmo.backupclass();bak.action=0;bak.initialize=true;sqldmo.backupsink_percentcompleteeventhandlerpceh=newsqldmo.backupsink_percentcompleteeventhandler(step);bak.percentcomplete+=pceh;bak.files=strfilename;bak.database=strdbname;bak.sqlbackup(svr);returntrue;}catch(exceptionerr){throw(newexception("备份数据库失败"+err.message));}finally{svr.disconnect();}}privatevoidstep(stringmessage,intpercent){pbar.value=percent;}其中,这两个语句实现了进度的实时显示:sqldmo.backupsink_percentcompleteeventhandlerpceh=newsqldmo.backupsink_percentcompleteeventhandler(step);bak.percentcomplete+=pceh;step就是上面privatevoidstep(stringmessage,intpercent)的方法名称,它用来显示进度条的当前进度。3.数据库的恢复和杀死进程的代码:publicboolrestoredb(stringstrdbname,stringstrfilename,progressbarpgbmain){pbar=pgbmain;sqldmo.sqlserversvr=newsqldmo.sqlserverclass();try{svr.connect(servername,username,password);sqldmo.queryresultsqr=svr.enumprocesses(-1);inticolpidnum=-1;inticoldbname=-1;for(inti=1;i<=qr.columns;i++){stringstrname=qr.get_columnname(i);if(strname.toupper().trim()=="spid"){icolpidnum=i;}elseif(strname.toupper().trim()=="dbname"){icoldbname=i;}if(icolpidnum!=-1&&icoldbname!=-1)break;}for(inti=1;i<=qr.rows;i++){intlpid=qr.getcolumnlong(i,icolpidnum);stringstrdbname=qr.getcolumnstring(i,icoldbname);if(strdbname.toupper()==strdbname.toupper())svr.killprocess(lpid);}sqldmo.restoreres=newsqldmo.restoreclass();res.action=0;sqldmo.restoresink_percentcompleteeventhandlerpceh=newsqldmo.restoresink_percentcompleteeventhandler(step);res.percentcomplete+=pceh;res.files=strfilename;res.database=strdbname;res.replacedatabase=true;res.sqlrestore(svr);returntrue;}catch(exceptionerr){throw(newexception("恢复数据库失败,请关闭所有和该数据库连接的程序!"+err.message));}finally{svr.disconnect();}}其中这个语句取得了所有的进程列表:sqldmo.queryresultsqr=svr.enumprocesses(-1);下面的语句找到和要恢复数据库相关的进程并杀死:inticolpidnum=-1;inticoldbname=-1;for(inti=1;i<=qr.columns;i++){stringstrname=qr.get_columnname(i);if(strname.toupper().trim()=="spid"){icolpidnum=i;}elseif(strname.toupper().trim()=="dbname"){icoldbname=i;}if(icolpidnum!=-1&&icoldbname!=-1)break;}for(inti=1;i<=qr.rows;i++){intlpid=qr.getcolumnlong(i,icolpidnum);stringstrdbname=qr.getcolumnstring(i,icoldbname);if(strdbname.toupper()==strdbname.toupper())svr.killprocess(lpid);}。

浏览更多:

网友留言

发表评论

◎欢迎参与讨论