请高手指点SQL SERVER的备份方法,如何增量备份,如何备份一个表等。为防本贴石沉大海,大家帮忙UP一下,UP有分呀。

hujun614 2001-12-18 09:52:49
请详细指点SQL SERVER的备份函数,DUMP及BACKUP?
我用sql6的备份表语句在SQL7下执行,它不报语法错,反正就是不能执行,也许是不支持吧,但我明明看见别人做过这个的备份与恢复的。还有关于如何做增量备份,也请高手指点一二。
如果高手要分,可以另开贴子加分。
...全文
261 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzou 2001-12-18
  • 打赏
  • 举报
回复
DUMP是sql server6.x的
DUMP DATABASE 和 DUMP TRANSACTION 语句与 BACKUP DATABASE 和 BACKUP LOG 语句同义。在以后的版本中可能会取消对 DUMP DATABASE 和 DUMP TRANSACTION 语句的支持。
考虑删除所有对 DUMP DATABASE 的引用,并替换为对 BACKUP DATABASE 的引用。考虑删除所有对 DUMP TRANSACTION 的引用,并替换为对 BACKUP LOG 的引用。
mmzxg 2001-12-18
  • 打赏
  • 举报
回复
说笑的啦,你还是把你出错信息写出来吧,好象我查过帮助没有这些命令哦
mmzxg 2001-12-18
  • 打赏
  • 举报
回复
老大,你也给的太少了吧
mmzxg 2001-12-18
  • 打赏
  • 举报
回复
可以使用DUMP TABLE吗,没用过也
你执行不了,提示什么呢
hujun614 2001-12-18
  • 打赏
  • 举报
回复
mmzxg(超级笨蛋):先记40分吧,
主要是讲讲为什么dump table,backup table是正确的语法,但就是不能执行。行不。 
mmzxg 2001-12-18
  • 打赏
  • 举报
回复
差异备份一定要有上一次的完全备份才行。即完全备份---增量备份,恢复过程相反
mmzxg 2001-12-18
  • 打赏
  • 举报
回复
backup database databasename to disk=c:\backup.bat with different(有WITH差异备份,无就完全备份)
三杯倒 2001-12-18
  • 打赏
  • 举报
回复
1111
hujun614 2001-12-18
  • 打赏
  • 举报
回复
呵呵,90分不算少吧。
hujun614 2001-12-18
  • 打赏
  • 举报
回复
呀!不太清楚!
不过我知道 OLEDB 是基于 COM 的一组接口规范,用来访问各种数据源,主要由数据源提供商来实现,如 ORACLE、SQL Server、Access。
ADO 是利用 OLEDB 提供的基本接口,加以封装,形成简单易用的一组对象/方法/属性集合,方便快速开发。
ODBC 是在 C 语言级别上实现的一组调用规范,目的也是访问各种数据源,不过现在来说比较老了(个人观点)。
DAO 建立在 MS JET 技术 (最早在 Access 中实现)上的,主要是用来访问所谓的桌面数据库(Access/FoxPro/dBase 等)。
 回复人:GoodLuckForYou(GoodLuckForYou) (2000-12-13 11:56:00) 得10分
应该说,从效率上看,ODBC效率最快。从通用性看,OLEDB最好。从方便性看,ADO和DAO最好。如果你开发的程序是使用ACCESS数据库的,不妨使用DAO。MSDN中的文档说,推荐使用OLEDB或ODBC!
 回复人:FireAngel(堕落天使) (2000-12-13 12:36:00) 得6分
ODBC效率未必有OLEDB高。现在有些OLEDB并不是在ODBC的基础上封装的
 回复人:kisa(kisa) (2000-12-13 17:07:00) 得4分
看《VC++ 6.0编程技术内幕》
 回复人:yandw(期盼) (2000-12-14 15:00:00) 得0分
关注
 回复人:zzh() (2000-12-14 19:01:00) 得0分
这几种都是访问数据库的方法,对于这几种数据库访问方法的详细使用包括说明,你可以参考开发文档当中的文章〈用VC操作数据库〉其中有对这四种方法的详细介绍,同时还附有例子,如果还有问题,可以发EMAIL给我。
 回复人:yandw(期盼) (2000-12-19 14:00:00) 得0分
to zzh:
我在开发文档中找不到,您能发给我吗?yandw007@sina.com 多谢
 回复人:wanghu(不懂就是不懂) (2000-12-19 14:36:00) 得20分
odbc,oledb,ado的关系:
odbc: 曾经的数据库通信标准
oledb: 在一切对象化的趋势下,ms打算用它取代odbc.
oledb分两种:直接的oledb和面向odbc的oledb,后者架构在odbc上,这
样没有自己的oledb提供者的数据库也可以使用oledb的特点了。oledb的效率要高
于odbc.
ado: 其实只是一个应用程序层次的界面,它用oledb来与数据库通信。
 回复人:myb123(myb123) (2000-12-19 14:48:00) 得0分
关注!!!
 回复人:softsprite(软件精灵) (2000-12-19 14:56:00) 得20分
DAO用于访问桌面数据库,如access等,基于Jet数据库引擎
OLEDB可以访问关系型数据库和非关系型数据库(如CSV文本等),基于COM,M$大力推荐的。
ADO是OLEDB的封装,为了方便使用OLEDB,可以在VBScript或JavaScript中使用。
ODBC太古老了,效率不高,而且只能访问关系型数据库。

另外还有一种:OLEDB模板,将OLEDB封装成模板来使用,比较方便,我喜欢!
个人建议:在VB、VBScript、JavaScript中使用ADO,VC中使用OLEDB模板。
 回复人:acute(毛头) (2000-12-19 15:00:00) 得20分
ODBC:开放数据库互连标准
DAO:数据访问对象
OLE DB:对象链接和嵌入数据库
ADO:ActiveX数据对象

OLE DB由一组COM接口组成的,而这些接口提供集中的数据库管理服务。
ADO是类属于OLEDB的用户程序,设计用来访问任何OLEDB供应程序。还可以复制早期数据库技术所支持的接口。它的主要目标是使得OLEDB供应程序提供的普通运算更容易。听说能跨平台使用。
ODBC我就不想多说了,以前和现在一部分程序都建立在ODBC基础上,我都说累了。
DAO已经广泛的被ODBC和OLEDB所代替了,而且DAO也确实不应该再于新应用程序的开发中了。也就无需多说了。
 回复人:acute(毛头) (2000-12-19 15:00:00) 得0分
ODBC:开放数据库互连标准
DAO:数据访问对象
OLE DB:对象链接和嵌入数据库
ADO:ActiveX数据对象

OLE DB由一组COM接口组成的,而这些接口提供集中的数据库管理服务。
ADO是类属于OLEDB的用户程序,设计用来访问任何OLEDB供应程序。还可以复制早期数据库技术所支持的接口。它的主要目标是使得OLEDB供应程序提供的普通运算更容易。听说能跨平台使用。
ODBC我就不想多说了,以前和现在一部分程序都建立在ODBC基础上,我都说累了。
DAO已经广泛的被ODBC和OLEDB所代替了,而且DAO也确实不应该再于新应用程序的开发中了。也就无需多说了。
 回复人:arthree(ArTHREE) (2000-12-19 15:31:00) 得0分
wanghu对oledb的描述挺好。
 回复人:taolei(实在无聊) (2000-12-19 15:46:00) 得0分
同意wanghu的观点,只是在效率上ODBC和OLEDB不可直接比较。他们是两种接口规范。
MS Sql Server7.x及其更高版本的最底层Driver是OLEDB (USE TDS),ODBC Drvier是用OLEDB Driver 封装的;而大多数其他数据库只提供ODBC Driver,而OLEDB 用的是OLEDB over ODBC。
关于性能问题就显而易见了。
 回复人:wanghu(不懂就是不懂) (2000-12-19 16:30:00) 得0分
taolei,你好。关于sql server7.x我还有一些疑问:
你说sql server最底层Driver是OLEDB (USE TDS),我觉的不大正确。
第一:sql server只是在服务端的各个引擎(如命令分析器,加锁管理器)之间通信时采用了oledb机制.
第二:tds(表格式数据流)是sql server客户端和服务端之间采用的专用自描述数据流,他们可以由odbc,oledb,db-library发出和接受。不单单是oledb.
第三:ODBC比OLEDB古老,你说ODBC用OLEDB封装,那么在SQL SERVER中重写了ODBC吗?
谢谢回答

下面的图出自《SQL SERVER 7.0技术内幕》p65,请参考:

--------SQL SERVER客户应用程序-------
¦ ¦ ¦
¦ ¦ ¦
OLE DB ODBC DB-LIBRARY
¦ ¦ ¦
¦________________¦__________________¦
客户网库
客户机 ¦
————————————————————————————————————————
网络
________________________________________________________________________________
服务器 ¦
服务器网库
¦
ODS(开放式数据服务)
¦
SQL SERVER(一堆引擎的集合)

 回复人:adidasprince(阿达王子) (2000-12-19 17:25:00) 得0分
OLEDB的优点主要是他是类似于抽象层的接口,他不仅可以连接数据库,还可以连接文件,mail等等一切的一切,但是上层对他的调用都一样(看出M$喜欢“封装”的作风了吗?)
 回复人:bush(bush) (2000-12-19 18:39:00) 得0分
to zzh:
我需要你的帮助!!
gatesgo@21cn.com

 回复人:taolei(实在无聊) (2000-12-20 17:30:00) 得0分
to: wanghu
也许我说的不正确,但是有一点需要指出,Sql Server7.0及其以后产品不再提供DB-Library,
也就是说DB-Library的最后一个版本是for 6.5的。

 回复人:netskiff(西雪吹门) (2001-5-25 19:22:00) 得0分
关注!
 回复人:111(沉默的羔羊) (2001-6-6 19:31:00) 得0分
DAO、 RDO和ADO的比較 及ODBC和OLE2


DAO (Data Access Objects數據訪問對象)是第一個面向對象的介面,它提供了另一种本地操作數据庫的机制,它通過程序代碼而不是中間層(比如OLE,ODBC)來訪問數据庫.多個DAO构成一個体系結构,在這個結构中各個DAO協同操作.它曾經是訪問本地數据庫( Microsoft Jet 數据庫引擎)最強有力的工具. 需要說明的是后來又出現了ODBCDirect, 它為DAO提供了訪問遠程ODBC數据的全部能力,使DAO能夠訪問遠程數据庫,但這并不說明DAO仍有前途可言.(呵呵,個人看法,上當莫怪)

RDO (Remote Data Objects遠程數据對象)是一個專門為訪問訪問遠程ODBC關系數据庫而開發的程序接口,它同易于使用的 DAO style組合在一起,提供了一個能利用所有 ODBC 的底層功能的介面。RDO 在地訪問 Jet 或 ISAM 數据庫,以及只能通過現存的 ODBC 驅動程式來訪問關系數据庫方面受到諸多限制。所以在OLE訪問日漸成為趨勢的今天,這并不是一個很好的選擇.(聲明同上).


ADO (ActiveX Data Objects)提供了与DAO,RDO完全不同的數据訪問方式--OLE。ADO 主要包括 RDO 風格的功能性,以便和 OLE DB 資料源交互,另外還包括遠端和 DHTML 技術。不過,也應當注意,ADO 當前幷不支援 DAO 的所有功能(比如幷不支援資料定義 (DDL)、用戶、組,等等) ,沒有與 rdoEngine 和 rdoEnvironment 物件相類似的物件來顯露 ODBC 驅動程式管理器和 hEnv 介面。儘管事實上您的介面可能是通過 ODBC OLE DB 服務提供程式實現的,但您當前也不能從 ADO 中創建 ODBC 資料源。幸好ODBC過時的呼聲越來越高漲.


以上著重從編程的角度討論了訪問數据庫的不同方法,從敘述中我們可以看到以上方法种种的不同本質上都是的訪問方式的不同.主要區別在于:
1,是否采用了分層的方式來訪問數据庫,比如,dao 与odbc,ole之間顯著的不同.軟件技術從最初的不分層,到c/s結构,到如今的多層結构.都是通過設計通用的中間層來簡化程序設計.
2,是支持com 架构的ole訪問方式,還是支持odbc架构的odbc驅動訪問,從大多數的說法來看,好像ole是今后軟件技術支持的重點.

這之間的差別有些并不如我所說的那么明顯,各种各樣的變化正在繼續.我從訪問數据庫的角度總結了一張表:對不起,沒畫成電子圖.

 acute(毛头)(食堂帅哥) 回复于2001-6-18 9:26:00 得40分
呵呵,楼上的扬扬洒洒那么长,就如我对你的景仰,如滔滔江水,一发而不可收拾……

我曾经以此为课题,专门进行了测试。
通过打开数据库连接,添加操作,删除操作三方面的指标,利用VC,对ORACLE数据库进行操作。
分别采用了ODBC,OLE,和ADO三种连接技术。ODBC速度明显的要慢得多,当然,如果你用微软提供的ORACLE OLE引擎的话,甚至比ODBC还要慢!!(千真万确!!)所以,大家都用ORACLE自带的OLE引擎。
在对OLE和ADO的比较中,速度上ADO稍胜那么一点点点,不明显。而VC++开发中,我个人认为,OLE比ADO对底层控制要好,因为ADO是建立在OLE基础上的高端技术,而且,就我个人经验,VC6开发OLE有好多现成的东西可以利用,在代码编写量上要比ADO少很多(当然如果你用VC5我可就不敢这么说了),有很多书介绍说ADO编写代码量要少,我看可能不是针对VC6来说的,因为我使用的感觉恰恰相反。
因此,我建议,采用OLE是用VC开发ORACLE数据库有关程序的最佳选择
 njtlxm(njtlxm) 回复于2001-6-18 9:58:00 得20分
我正好完成了用dao、ado、ole db对access、sql server和oracle的接口编码,所以说上几句,请多指教。
用dao好像最适合用于access,ado是基于ole db的,编码量要少一些,而且比较容易理解,可以考虑。ole db的编码多一些(对于使用纯com接口方式的话),要是用atl模板类编码会少一些。
如果你是确定用oracle数据库的话,不妨试试oracle object for ole,这是oracle自己带的接口库,里面有很多类,使用起来比较方便而且容易理解,而且速度和ole db差不多。
还有,我对几个数据库进行过几个方面的测试,oracle在打开数据库的时候(就是建立数据库连接)的速度相当慢,大约需要2.5秒(ole db和oracle object for ole),所以尽量在程序中使用一个数据库对象,一次打开即可,如果反复打开和关闭,则oracle的速度和sql server比是无法忍受的。
我也只是刚刚完成以上几个数据库接口方式的编码,有理解错误的地方,请各位指出,可以来信交流:njtlxm@263.net

 maxsuperkiller(狸猫) 回复于2001-6-18 11:20:00 得0分
ado or ole db
 netsong() 回复于2001-6-18 14:26:00 得0分
to acute: ADO是基于OLE的,OLE比ADO更低层,为什么ADO在速度上会稍胜那么一点点?(在道理上好像说不通)。
 maxsuperkiller(狸猫) 回复于2001-6-19 9:10:00 得0分
VC5.0支持ADO吗?如在VC5.0下使用ADO?
 acute(毛头)(食堂帅哥) 回复于2001-6-19 9:57:00 得0分
回复人:netsong() (2001-6-18 14:26:00) 得0分
to acute: ADO是基于OLE的,OLE比ADO更低层,为什么ADO在速度上会稍胜那么一点点?(在道理上好像说不通)。

我也搞不大懂,但这是我的测试结果,可以给你点数据:

OLE和ADO连接数据库到取得记录集的时间的比较(ORACLE数据库)
1 2 3 4 5 6 7 8 9 10
OLE 0.801 0.791 0.832 0.731 0.801 0.741 0.731 0.811 0.791 0.761
ADO 0.57 0.561 0.551 0.581 0.621 0.561 0.561 0.531 0.611 0.581
OLE和ADO从建立连接到得到记录集时间的比较(SQL SERVER数据库)
1 2 3 4 5 6 7 8 9 10
OLE 0.12 0.121 0.11 0.111 0.12 0.11 0.12 0.12 0.11 0.11
ADO 0.13 0.131 0.13 0.13 0.13 0.13 0.13 0.13 0.13 0.13

hujun614 2001-12-18
  • 打赏
  • 举报
回复
用快照可以进行数据库的同步,但是用它来进行备份不妥,你最好采用物理备份和恢复,这样就必须要求你的数据库处在archivelog模式下,它的好处是大多数情况下可以将你的数据库恢复到失败前的那一瞬时,关于具体的方法,很多书上都讲了,你自己看吧,很简单的。不过,你既然想用快照,那么我给你看篇文章

Oracle数据库中快照的使用

---- oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。正因为快照是一个主表的查询子集,使用快照可以加快数据的查询速度;在保持不同数据库中的两个表的同步中,利用快照刷新,数据的更新性能也会有很大的改善。

---- 下面以我在开发襄樊市电信局170话费催缴系统中使用快照加快查询速度的实现过程为例来说明快照的使用方法:

---- 170话费催缴系统是一个向用户电话播放催缴话费提示音的系统。用户的欠费金额存放在rs6000小型机sffw用户下的表yh_qfcx中(yh_qfcx表是一个随用户缴费情况动态变化的欠费记录表),而催缴系统的数据按要求存放在另外一台xf170服务器dmtcx用户下,为在dmtcx用户下使用sffw用户下表yh_qfcx中的部分数据,我在dmtcx用户下建立了yh_qfcx的快照S_yh_qfcx,以加快查询速度。

---- 具体步骤如下:

一、在sffw用户下建立表yh_qfcx的快照日志;
---- 只有先建立表yh_qfcx的快照日志,才能在快照中执行快速刷新。
---- Create snapshot log on yh_qfcx;

二、在dmtcx用户下建立到sffw用户的数据库链link_sf;
---- 建立了到sffw用户的数据库链后才能从sffw用户下的表yh_qfcx中获取数据。
---- Create database link link_sf
---- Connect to sffw identified by xxxxxxx using 'rs6000';

三、在dmtcx用户下建立快照s_yh_qfcx;
Create snapshot s_yh_qfcx as
Select yhh,qf6+qf5+qf4+qf3+qf2+qf1+qf qfje
From yh_qfcx@link_sf
Where tjbz='K' and bz6+bz5+bz4+bz3+bz2+bz1+bz>0;

四、根据需要修改快照刷新的间隔时间;
---- dmtcx用户下的快照s_yh_qfcx为了与sffw用户下的主表yh_qfcx保持同步,需要不断刷新快照。只有设定了快照的刷新间隔时间,oracle才会自动刷新该快照。
---- 快照的刷新有两种方式:快速刷新和完全刷新。快速刷新需要快照的主表先有快照日志存在;完全刷新时oracle执行快照查询,将结果放入快照。快速刷新比完全刷新快,因为快速刷新将主数据库的数据经网络发送到快照的数据少,仅需传送主表中修改过的数据,而完全刷新要传送快照查询的全部结果。

Alter snapshot s_yh_qfcx refresh fast
Start with sysdate+1/1440 next sysdate+1/144;
{此SQL语句的意思为:设定oracle自动在1分钟
(1/24*60)后进行第一次快速刷新,以后每隔10分钟
(10/24*60)快速刷新一次。}
  Alter snapshot s_yh_qfcx refresh complete
   Start with sysdate+1/2880 next sysdate+1;
{此SQL语句的意思为:设定oracle自动在30钞
(30/24*60*60)后进行第一次完全刷新,
以后每隔1天完全刷新一次。}

---- 说明:
---- 1、因为快照刷新是服务器自动完成的,所以要保证oracle数据库启动了快照刷新进程。查看oracle数据库是否启动了快照刷新进程,可以以数据库sys身份查看视图V_$SYSTEM_PARAMETER中的参数snapshot_refresh_processes的值是否为1,如果不为1,则快照刷新进程未启动。

---- 2、启动快照刷新进程的方法为:修改oracle数据库的初始化文件initorcl.ora,将其中的snapshot_refresh_processes参数的值改由0改为1,然后重新启动oracle数据即可。

---- 3、需要说明的是:建立快照日志时oracle数据库为我们建立了一个基于yh_qfcx的触发器tlog$_yh_qfcx和快照日志表mlog$_yh_qfcx;建立快照时oracle数据库为我们建立了一个表、两个视图、一个索引,它们分别为:

一个表:snap$_s_yh_qfcx;
两个视图:mview$_s_yh_qfcx和s_yh_qfcx;
一个索引:I_snap$_s_yh_qfcx(
基于表snap$_s_yh_qfcx中的m_row$$字段。

mmzxg 2001-12-18
  • 打赏
  • 举报
回复
使用BCP备份
mmzxg 2001-12-18
  • 打赏
  • 举报
回复
在SQL上做表备份是可以的,在前几天很多帖子都有说过了,你查下,具体我没做过,
hujun614 2001-12-18
  • 打赏
  • 举报
回复
就是SQL 不能执行,没有执行,就这一句,用Backup Database 就没有问题。
BACKUP TABLE BuckUp.dbo.Project TO DISK = 'c:\aaa.dmp'
dump跟 backup语法基本一致。

如果40分给的少,是因为仅是我知道了你是怎么做的,要是你的系统做增量备份,中间有人也备过分的话应该怎么做呢,怎么检测到呢。数据库备份我是做过的,但还有些不清楚,要是这几个问题都弄清楚了,尽我的可能,多开贴子给分都可以。
主要是在99年的时候,我见过一们朋友做过关于表的备份的。所以我认为在SQL7上做表备份是可能的。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧