设为首页 收藏本站
| 数控仿真 | 技术文章 | 公路造价 | 文档管理软件 |
| 幸运之门彩票网 | 彩票新闻 | 免费招聘 | 百科问吧 | 百姓族谱 | 小游戏网 |
世界上最高的生物是?
文档管理 | 数据库技术 | 全文检索 | 中文分词 | 文件格式 | Lucene | FireBird | IIS | 免费小游戏 | 彩票论坛
Google
北京紫气东来网络公司 > 技术文章 > FireBird > FIREBIRD的备份工具(NBACKUP)介绍
数据库技术 | FireBird | My SQL |
FIREBIRD的备份工具(NBACKUP)介绍

发表:北京紫气东来网络公司www.chianwiss.com,本文被阅读:1

nbackup介绍
nbackup是Firebird 2.0新带来的备份工具。它提供了gbak—Firebird以前就有的备份工具—所没有的能力—但是并不取代后者。两个程序都有其长处和短处;他们在一定的将来将共存一段时间。

nbackup功能—总体介绍
使用nbackup,你可以进行两类不同的功能操作:
1. 建立和恢复完整的和增量的备份操作。一个增量备份只包括自某一上次备份以后的变化。
2. 锁定主数据库文件,然后你可以根据自己的选择使用复制工具或者备份工具来备份。在这种模式下,nbackup不备份任何东西;它只是创建了一个你自己可以安全地进行备份的条件。这里也有一个恢复的环境。
两个模式都可以在活动数据库上操作,而不影响已经连接的用户。产生的备份总是反应操作开始时数据库的状态。在这些方面,nbackup和gbak并无差别。

nbackup的优势
. 两个模式:高速(达到硬件和操作系统允许的速度),因为nbackup不注意实际的数据。在备份模式里内容是原封不动地写进备份文件。
. 备份/恢复模式:节约了时间及磁盘空间:因为不需要每次都完整地备份。这在数据库文件大小达到G级别上时产生巨大的差异。
. 锁定/解锁模式:可自由选择备份,复制,及/或压缩工具。

nbackup的局限
. nbackup不象gbak那样清扫(sweep)和压缩你的数据库文件。
. 与gbak不一样,你不能在nbackup循环中修改数据库的拥有者。
. nbackup不能建立可移动的备份,即:你可以在不兼容的平台或者另一个服务器版本下恢复的那种备份。
. 在目前状态下,nbackup不应该使用在多文件数据库上。
. nbackup只能备份本地数据库。

我们将在下面的章节中广泛阐述nbackup的各种功能。

建立和恢复备份
首先,nbackup.exe位于你的Firebird文件夹的bin自文件夹里。通常位置如C:\Program Files\Firebird\Firebird_2_0\bin(Windows)或者 /opt/firebird/bin(Linux)。与其他Firebird所有的工具一样,nbackup没有图形界面,你需从命令行启动它(或者从一个批处理文件或者应用程序)。

完整备份
进行完整备份,要进行一个数据库的完整备份,语法如下:
nbackup [-U <user> -P <password>] –B 0 <database> [<backupfiile>]
例如:
C:\Data> nbackup –B 0 inventory.fdb inventory_1-Mar-2006.nbk
说明:
. 参数 –B表示备份(嘿)。备份级别0表示完整备份。备份级别大于0用于增量备份,我们后面再讨论。
. 除了数据库文件名字,你也可以使用别名。
. 除了使用备份文件名字,你也可以使用stdout.这会把备份输出到标准输出,在那里你可以把它重定向到如磁盘机或者压缩工具里。
. –U(user)和-P(password)参数可以省略:
- 如果你以超级用户登陆(root, administrator…)或者已经设置了环境变量ISC_USER和ISC_PASSWORD。
为了清晰和简洁起见,例子中没有使用这些参数。
. 不同的参数(-B, -U和-P)可以任何次序出现。当然每一个参数都应紧跟其响相应的变量。对于-B,有三个:备份级别,数据库文件和备份文件,按这个顺序。
. 如果-B参数最后出现,你可以省略备份文件名。这时nbackup将按照数据库文件名,备份级别和当前日期和时间设置一个文件名。如果同一分钟内两个相同级别的备份命令执行时会导致名称冲突(引起备份失败)。

内部工作的一个说明
注:下面所述内容不是使用nbackup必须的知识。只是一个简单的(不完整的)对nbackup –B执行时内部到底发生了什么的说明
1. 首先,主数据库文件被更改一个内部状态标志后锁定。从这一刻开始,任何及所有对数据库的更改都暂时写到一个临时文件里-差异文件或者增量文件
2. 然后是进行实际的备份操作。这不是一个直接的文件复制;恢复也必须使用nbackup来进行。
3. 在备份操作完成后,增量文件里的内容被集成到主数据库文件里。然后数据库被解锁(标志恢复到"正常"),增量文件被删除。
步骤1和3是由两个新的SQL语句:ALTER DATABASE BEGIN BACKUP和ALTER DATABASE END BACKUP.于字面意思相反,这两个命令根本不进行实际的备份操作;他们只是建立了主数据库文件可以被安全地备份的条件。实际上,你不需要自己执行这两个命令,nbackup会替你在正确的时间执行他们。

恢复一个完整备份
一个完整备份如下方法恢复:
nbackup [-U <user> -P <password>] –R <database> [<backupfile>]
例如:
C:\DATA> nbackup –R inventory.fdb inventory_1-Mar-2006.nbk
注:
. 你不用指定一个备份级别
. 恢复时,-R参数必须最后一个出现,理由后面会清楚。
. 如果指定的数据库已经存在,而且没有任何条件,它将被毫无提示地覆盖!如果有用户连接,备份将失败,你会得到一个错误信息。
. 这里也一样,你可以省略备份文件名。如果你省略了,nbackup会提示你给予一个。但是,目前这个功能是没有(至少在Windows环境下),如果你这样指定备份文件,你会得到一个错误信息,然后备份失败。


增量备份
进行增量备份
要进行一个增量(差异)备份,我们指定一个大于0的备份级别。一个N级的增量备份总是包含自从最近的N-1级的备份以后的变化。
例如:
完整备份(级别0)一天后,你进行一个级别1增量备份:
C:\Data> nbackup –B 1 inventory.fdb inventory_2-Mar-2006.nbk
这个备份只包含最近一天的变化。
一天以后你又进行了一个1级增量备份:
C:\Data> nbackup –B 1 inventrory.fdb inventory_3-Mar-2006.nbk
这个备份包含最近2天的变化,从完整备份开始,而不是从前一个1级备份开始。
几个小时后,我们进行了一个2级备份:
C:\Data> nbackup –B 2 inventory.fdb inventory_3-Mar-2006_2.nbk
这个最新的备份,只包含最近的1级备份后的变化,就是说最近几个小时的变化。

恢复增量备份
当恢复增量备份时,你需要指定整个增量备份文件链,从0级至你希望恢复的那一个。数据库总是从头开始建立的,一步一步的。(就是因为是一步一步增加直到数据库恢复完成,产生了"增量备份"这个名词。)
正规语法如下:
nbackup [-U <user> -P <password>]
-R <database> [<backup0> [<backup1> […]]]
所以从前面的例子上恢复一个2级备份的情况如下:
C:\Data> nbackup –R inventory.fdb inventory_1-Mar-2006.nbk
Inventory_3-Mar-2006.nbk inventory_3-Mar-2006_2.nbk
当然命令行在这里因为排版的原因分行了,实际操作时,需要输入整个语句,到最后才输入enter回车键。

注(在恢复完整备份的说明的基础上):
. 因为事先不知道-R开关后面跟多少个文件名(因为我们恢复时不指定级别),nbackup假设-R后所有的变量都是备份文件的名字。因为这个原因,文件名列对后不能跟其他参数(-U,-P)。
. 备份级别没有一个正式的限制,但是实际操作中,超过3或者4是很少见的。

不相连的链接
如果你不小心漏了一个文件,或者指定了一个不属于同一系列的文件会发生什么情况呢?你可以想象在上面的例子中错误地指定了inventory_2-Mar-2006.nbk而不是inventory_3-Mar-2006.nbk。两个都是1级备份文件,所以两种情况下都获得一个挺好的"0,1,2"级别系列。但是我们的2级文件是基于March 3的1级备份的增量备份,而不是March 2的增量备份。幸运的是这样的错误永远不会导致一个错误的数据库恢复。每一个备份文件都有一个独特的ID。更进一步的是,每一个1级或者更高级的备份文件都包含它所基于的备份的ID。恢复时,nbackup检查这些ID;如果链中某处链接不相连,操作被取消,你会得到一个错误信息。

一个实际运用
一个基于nbackup的增量备份计划可能象这样的:
. 每个月进行一次完整备份(0级别);
. 每个星期一个1级;
. 每天一个2级备份;
. 每小时一个3级备份。

只要所有的备份都保留者,你可以把数据库恢复到过去任意一个小时的状态。对于每个恢复操作,最多使用4个备份文件。当然,你也可以这样规划,在非高峰时间进行更大的,更耗时的备份。这样的话,0级和1级别粉可以在周末进行,而2级的则可以在晚上进行。

如果你不想把所有的东西都永久保存,你还可以增加一个删除计划:
. 3级备份可以在8天后删除;
. 2级备份可以在一个月后删除;
. 1级的可以在6个月后删除;
. 完整备份2年后删除,但每年的第一个仍然保留。

当然这只是一个例子。对个例来说什么管用还要依据应用,数据库的大小,它的活动程度等等。

到此,你已经了解了使用nbackup进行和恢复完整的或者增量的备份所需要的所有知识了。只需要进一步阅读一下,就可以选择你想用的工具操作你的Firebird数据库(见锁定和解锁),或者你希望覆盖变化文件默认的名称或位置(见设置变化文件)

如果你没有了解那些的欲望:祝你在使用nbackup的过程中顺利!


锁定和解锁
如果你希望使用自己的备份工具或者只是想做一份拷贝,nbackup的锁定-解锁模式可以派上用场了。"锁定"意味着主数据库文件暂时冻结了,不是说不能对数据库文件进行任何更改。象在备份模式中一样,变化被指向一个临时的增量文件:解锁后增量文件会别复合到主文件中去。
提醒一下:nbackup.exe文件位于你的Firebird文件夹的bin子目录里。一般的位置是如: C:\Program Files\Firebird\Firebird_2_0\bin(windows)或者 /opt/firebird/bin(Linux)。没有图形界面;你必须从命令行启动(或者从批处理文件或者应用程序中)。

锁定数据库并自己备份
一个你用来进行自己的备份典型的会话是这样的:
1. 使用 –L(锁定)开关锁定数据库:
nbackup [-U <user> -P <password>] –L <database>
2. 现在按照你的想法复制/备份/压缩数据库文件,使用你自己选择的工具。单纯复制一下文件也是可以的。
3. 使用-N(解锁)开关解锁数据库:
nbackup [-U <user> -P <password>] –N <database>
最后一个命令将使所有变化-写在增量文件里- 复合到主文件中去。你建立的备份文件包含了数据库在被锁定的瞬间所有的数据,不管锁定状态持续了多久,也不管你在进行实际备份前等待了多久。

从一个nbackup –L建立的备份中恢复
一个锁定的数据库文件的拷贝本身也是个锁定的数据库,所以你不能只是复制回来然后直接使用它。如果你原来的数据库文件丢了或者损坏了,因而自己做的拷贝需要恢复(或者你需要在另一台机器上安装),按如下方法操作:
1. 使用必要的工具,复制/恢复/解压你自己制作的备份文件
2. 现在使用-F(Fixup修正),而不是-N开关,解锁数据库:
nbackup –F <database>

为什么有两个解锁开关,-N和-F?
. –N首先检查-L锁定后的变化复合到主数据库文件。然后,数据库文件恢复到正常的读写模式,并且临时文件被删除。
. –F 只是改变自己恢复的数据库状态标志到"正常"。
所以,你可以使用:
. –N,在进行你的复制/备份操作后(逆转前面所说的 -L);
. –F,在恢复一个你那样制作的备份文件后。

内幕
注:这一节不包含任何必须的知识,但提供一些额外的信息,可以加深你理解不同的开关。
nbackup –L进行如下操作:
1. 连接到数据库;
2. 启动一个事务;
3. 调用ALTER DATABASE BEGIN BACKUP(这个语句在nbackup –B的额外信息中讨论过);
4. 提交事务;
5. 断开数据库的连接。

nbackup –N遵照同样的步骤,但第三步使用"… END BACKUP"。

nbackup –F 进行如下操作:
1. 恢复的数据库被打开;
2. 在文件里,状态标志被从锁定状态(nbak_state_stalled)修改至正常(nbak_state_normal);
3. 文件又被关闭。

设置增量文件
默认地,增量文件存于数据库文件所在的文件夹里。文件名和数据库文件相同,但后缀是.delta。一般没有什么理由去改变,但需要的时候也可以做到—虽然不是使用nbackup本身。使用任何一个可以允许你输入自己SQL语句的客户连接到数据库,输入以下命令:
alter database add difference file ‘path-and-filename’
定制的增量文件是和数据库文件一体的,他保存在系统表RDB$FILES里。要恢复至默认状态,输入以下语句:
alter database drop difference file

A. 文档历史
确切的文件历史记录在我们的CVS树的manual模块中,详见http://sourceforge.net/cvs/?group_id=9028

修改历史
0.1 21 Oct 2005 PV 第一版
1.0 1 Dec 2006 PV 在版信息中删除了"Beta"记号。修改了使用nbackup –R交互指定备份文件的警告。在文档历史中删除了"(或者将要)"。
将例子中的C:\Database修改为C:\Data,避免语句行跑出PDF的阴影部分。
增加了章节"设置增量文件",并相应修改了"继续阅读"部分

B. 许可说明
本文件的内容遵照Public Documentation License Version 1.0("许可");你只能在遵守"许可"的情况下使用。"许可"的副本可在http://www.firebirdsql.org/pdfmanual/pdl.pdf(PDF)和http://www.firebirdsql.org/manual/pdl.html(html) 得到。
原始文件名为: Firebird之nbackup工具。
原始文件的起草者为:Paul Vinkenoog.
Copyright? 2005,2006. All Rights Reserved. 请联系起草作者:paulvink at users dot sourceforge dot net.



wiss文档协同系统三分钟解决一切文档管理的烦恼,帮您完成公司文档到资产的转变!!!
更多功能欢迎访问 http://www.chinawiss.com
 北京紫气东来网络公司 > 技术文章 > FireBird
·FIREBIRD常用SQL (4)
·FIREBIRD/INTERBASE内置函数使用说明 (4)
·用了下FIREBIRD,发现真的不错哦 (3)
·FIREBIRD数据库的修复 (4)
·FIREBIRD数据库介绍 (4)
·一个关于FIREBIRD数据库的SQL查询方法 (4)
·MSSQL数据库转到FIREBIRD数据库的问题 (4)
·FIREBIRD常用SQL (4)
·FIREBIRD/INTERBASE内置函数使用说明 (4)
·FIREBIRD数据库的修复 (4)
·FIREBIRD数据库介绍 (4)
·一个关于FIREBIRD数据库的SQL查询方法 (4)
·MSSQL数据库转到FIREBIRD数据库的问题 (4)
·FIREBIRD常用SQL (4)
·FIREBIRD/INTERBASE内置函数使用说明 (4)
·用了下FIREBIRD,发现真的不错哦 (3)
·FIREBIRD数据库的修复 (4)
·FIREBIRD数据库介绍 (4)
 最新文章
·BAIDU分词算法分析之一
·中文分词和搜索引擎
·中文分词算法精髓上
·中文分词的应用
·分词中的难题
·中文分词技术
·中文分词和搜索引擎
·什么是中文分词
·一个例子学懂搜索引擎(LUCENE)
·用LUCENE为数据库搜索建立增量索引
·LUCENE 索引数据库
·一个关于FIREBIRD数据库的SQL查询方法
·MSSQL数据库转到FIREBIRD数据库的问题
·FIREBIRD的备份工具(NBACKUP)介绍
·FIREBIRD常用SQL
·FIREBIRD/INTERBASE内置函数使用说明
·用了下FIREBIRD,发现真的不错哦
·FIREBIRD数据库的修复
·数据库中LOW CACHE RBA和ON DISK RBA的区
·使用DB2DART降低管理表空间的高水位标记
·快速了解数据仓库及数据建模的常用新术语
·国外数据中心流行“液冷门”
·IT业成为压力最大行业之一
·软件测试工程师笔试题中数据库试题集锦
·数据库开发程序员在开发过程中的注意事项
·带你深入了解高效的内存数据库系统FASTD
·使用链接服务器在异构数据库中查询数据
·数据库审计系统核心指标浅析
·设计应用程序时避免阻塞的八个准则
·ORACLE新手经常碰到的六个错误及解决方案
·嵌入式数据库的现状和未来
·分区表、分区索引和全局索引
·开源数据库SHARDING技术
·甲骨文数据库涨价18% IBM降价抢客户
·数据库的三重境界
·浅谈数据库管理系统在近些年内的发展趋势
·数据库技术的发展趋势
·WISS“三不”原则 引发内容管理新变革
·WISS:企业文档管理的百元级解决方案
·中文搜索引擎技术揭密:中文分词
·ANNOTATED LUCENE(中文版)
·FIREBIRD数据库介绍
·网络查找文档比自己电脑上还方便?
·刑侦角度看搜索
·论数据库技术的发展史
·老板的权利 员工的负担?
·论数据库技术的发展史
·"金沙"文档,掀起企业淘金热
·企业文档,高效管理就是资产增值
·无纸化办公≠现代化?
 热门文章
·PDF转成WORD TXT EXCEL RTF软件
·JAVA抽取WORD和PDF格式文件的四种武器
·对PDF文件的文本抽取(PDFBOX处理中文PDF
·PDF与WORD之间提取和转换经验浅谈
·用C#制作PDF文件全攻略
·希望PDFLIB TET― 理想的文本提取软件包
·LUCENE索引文件格式分析
·从HTML文件中抽取正文的简单方案
·天灾还是人祸,让你知道最爱是谁?
·全文检索概念
·LUCENE系统结构分析
·LUCENE的应用、特点及优势
·中文搜索引擎技术揭密:网络蜘蛛
·DELPHI自动化控制EXCEL
·DELPHI与WORD之间的融合技术
·C#抽取WORD文档内容
·VC实现类似EXCEL文件夹式样的标签控制
·用DELPHI编制WINDOWS95下的钩子函数
·网页搜索引擎竞争分析
·刑侦角度看搜索
·信息检索的核心支撑技术
·真正搜索高手
·搜索引擎优化
·JDBC HIBERNATE 连接数据库连接字符串大
·搜索引擎ANTISPAM系统设计指南
·用DELPHI编制WINDOWS95下的钩子函数
·全文检索概念
·垂直搜索引擎的选型
·论数据库技术的发展史
·"金沙"文档,掀起企业淘金热
免费小游戏
宠物连连看

真人美女换装

美女脱衣服

美女胴体猜猜看

调戏床上美女

黄金矿工
“打蛇打七寸”的七寸是指?A:咽喉 B:心脏 C:头 D:肚子
| 2008-09-01 | 首页 | 功能介绍 | 免费下载 | 产品购买 | 在线服务 | 典型应用 | 技术文章 | 联系我们 |