db2恢复备份数据库(如何让DB2数据库数据备份与恢复的效率更高)
本文目录
- 如何让DB2数据库数据备份与恢复的效率更高
- DB2中,怎么把A数据库的完整备份恢复至B数据库中!
- DB2数据库和表恢复
- 如何在linux下实现db2数据库备份和恢复
- DB2 分区数据库备份与恢复操作如何进行 (1)
- Window下备份的DB2数据库,在Linux下怎么恢复
如何让DB2数据库数据备份与恢复的效率更高
亡羊补牢这一成语在数据库领域同样适用,但是亡羊之后不仅要补牢,还要恢复原来的羊。在DB2数据库中,数据的备份和恢复同样重要。在日常的工作中,DB2数据库数据备份与恢复的频率很高,但是如果效率很低,会占用很多时间,并且对使用者的数据恢复和使用产生很差的影响。那么,便成为很多数据库管理员需要深入研究的问题。 一、了解数据的逻辑存储结构。 如果以前有Oracle数据库经验的管理员,那么了解DB2数据库的逻辑存储结构就比较容易了,因为两者在这方面很类似。对于DB2数据库来说,其逻辑存储结构主要分为数据表、表空间与数据库三个级别。数据表包含在表空间之中,而表空间又包含在数据库当中。换一句话说,一个DB2数据库包含多个表空间,而每个表空间又包含了多个数据表。一个数据表示不能够保存在多个表空间当中的。同理,一个表空间也不能够保存在多个数据库之中。这跟小学的实施,班级里分组类似。一个班(相当于一个数据库)分为四个小组(每个小组相当于一个表空间),然后每个小组又是由一个个的学生组成的(一个个学生相当于一个个数据表)。这个组织结构可以有什么好处呢?此时学校校长(相当于数据库管理员)就可以按照班级、小组为单位对数据进行管理,也可以对学生进行一对一的面谈,从而提高数据库管理的灵活性。 而对于数据备份与恢复作业来说,采用如此的逻辑结构,数据库管理员既可以对整个数据库进行备份与恢复(对整个班级进行管理);也可以以表空间为单位,对表空间中的所有数据表进行备份与恢复操作(以小组为单位进行管理);甚至可以对单独的数据表进行备份与恢复的操作(对单个学生进行管理)。即可以分别从数据表、表空间、数据库三个级别来进行备份与恢复的操作。这分级别的管理,不仅增强了操作的灵活性,而且还可以提高备份与操作的效率。如现在用户需要对某个表进行更新,如需要调整价格表中的价格。此时数据库管理员就只需要对价格表进行更新即可,而不需要对整个数据库进行备份。显然这可以减少备份的时间。若出现问题的话,也只需要对这张表中的内容进行恢复。这也可以在很大程度上减少恢复的时间。恢复一张表肯定比恢复整个数据库所用的时间要少的多。 二、合理规划表空间提高数据库备份恢复性能。 既然数据库备份与恢复可以按三个级别来进行,那么数据库管理员可以根据这个特性来合理规划表空间,以提高数据库备份与恢复的性能。如在DB2数据库中,虽然对于LOB等大容量数据类型提供了很好的支持。但是,毕竟其容量比较大,有时候其所占的数据库容量可能达到整个数据库的二分之一。为此这些大容量的数据类型就成为了数据库备份与恢复作业作业的性能瓶颈。如果在数据库备份与恢复的时候,不备份这些LOB数据类型的数据,那么数据库备份与恢复的时间可能会减少三分之一,甚至二分之一。 为此笔者建议,在规划数据表的时候,最好将LOB数据类型的数据与其他数据分成两张表来存放。如在一个产品信息表的表中,包含一个产品图片的字段,这个字段就是一个LOB数据类型。虽然可以将它们设计在同一个表中。不过笔者还是建议将他们分为两个表来存放,然后通过关键字将他们连接起来。最后将这个两张表分别存放到不同的表空间中。如将有LOB数据类型的表统一保存在LOB表空间中。如此有什么好处呢?当数据库进行备份时,平时可以只对非LOB表空间中的数据进行备份。由于LOB表空间中的一些信息一般不怎么会更新,就可以一个星期更新一次。或者让其在数据库比较空闲的时间进行备份。经过一段时间的测试,可以发现每天或者每周数据库的空闲时断。如此规划的话,就可以将平时备份的效率提高。同理,在恢复的时候也可以按照表空间级别来进行恢复,从而缩短数据库恢复的时间。 这个方案的核心就是将LOB等大容量数据类型的数据与普通表独立开来,并且存放在不同的表空间中。然后将LOB表空间与非LOB表空间进行分开管理,分开备份与恢复,从而提高数据库备份与恢复的效率。为此在建立表时将LOB数据类型与其他数据类型分开存放是关键。 三、对于图片等LOB数据类型的另类处理方式。 当数据库中LOB数据类型比较多的时候,往往会在很大程度上影响数据库的性能。不仅数据备份与恢复会受到影响,连平时的查询也会受到牵连。为此笔者有时候给企业部署DB2数据库系统的时候,往往会建议他们,不要将图片等信息存放在数据库中。那么当用户需要查询图片信息时,该如何处理呢?笔者建议他们将图片统一放到网络上的一个共享服务器中。然后在数据库中只存放这个图片的路径。最后在客户端界面设计时,可以创建一个指向图片的链接。当用户需要访问某个产品的图片信息时,则只需要点击产品管理界面上的图片链接,就可以打开这张图片。在这种情况下,数据库实际存储的只是图片的路径(也就是一个普通的字符型字段),而不是图片本身。故可以提高客户端窗口显示的速度,同时也可以提高数据库备份与恢复的效率。 四、为系统设置合适的并行度与缓存来提高数据库备份与恢复性能。 数据库备份与恢复的性能除了跟数据类型有关之外,还跟系统的并行度与缓冲区有关。通常情况下,如果硬件设备支持的话,增加并行度与增加缓冲区的大小可以提高数据库备份与恢复的性能。为此在对DB2数据库进行备份的时候,可以通过给并行度、缓冲区树木和缓冲区大小分配合适的值来提高数据库备份与恢复的性能。如一般情况下,笔者建议将数据库缓冲区的大小设置为数据内存的二倍到三倍。如果备份中包含大容量的数据类型,可以适当提高整个比例。并且将数据库缓冲区的数目设置为硬盘I/O缓冲数目的两倍。如此设置之后,数据库的备份与恢复性能能够得到很大的改善。 不过需要注意的是,这个调整会受到服务器硬件资源的限制。当服务器内存等硬件设备不支持这么大的数据缓冲区与数据缓冲区数目时,反而会因为没有足够的内存分配给缓冲区,从而导致数据备份与恢复的失败。为此笔者建议,在调整数据缓冲区的时候,需要特别注意。一般来说,调整好这些参数之后,需要持续追踪一段时间,以确保这些调整不会影响到数据库的正常备份与恢复,不会与数据库的硬件配置相冲突。
DB2中,怎么把A数据库的完整备份恢复至B数据库中!
backup命令备份出来的数据库,比如simpleA,只能回复成simpleA的数据库;按照你的需求,可以使用db2move的方式,进行导入和导出,这样可以实现把A数据库的完整备份恢复至B数据库中。命令具体使用方法:cd /opt/backup/mkdir 2011-11-16cd 2011-11-16db2move simpleA export -u username -p password ##导出到当前目录db2move simpleB import -u username -p password ##从当前目录导入
DB2数据库和表恢复
1. 如何恢复误删的表使用recover dropped table功能即可要求是: 误删的表建立且数据注入之后,有该数据库的备份通过db2 list history dropped table all for dbname找到误删表的Backup ID以及该表的DDL语句恢复误删表所在表空间 db2 restore db dbname tablespace(tbspname) taken at xxxx在前滚中指定误删表 backup id,输出表数据db2 rollforward db dbname to end of logs tablespace(误删表所在表空间名字) recover dropped table backup id to /home/db2inst在/home/db2inst目录下的node0000目录下有一个data文件,是误删表的数据通过DDL重建表,并使用LOAD将DATA文件导入表中即可.没有做过备份的话,如果你拷贝的文件夹完整的话(既有元数据,又有数据库数据),可以uncatalog db dbname,然后将拷贝的文件夹拷贝回来,并catalog db dbname就可以了.
如何在linux下实现db2数据库备份和恢复
通过如下备份脚本备份的数据库进行恢复
备份脚本:
. /home/db2admin/sqllib/db2profile db2 backup db datedb online to /dbbackup/date include logs cd /dbbackup/datetoday=`date +”%Y%m%d”` file1=”*$today*” ftpfile=`ls $file1` echo $ftpfile lftp -c “open ftp地址;user 用户名密码@\$0;put $ftpfile” find /dbbackup/date -ctime +15 -exec rm {} \;
恢复命令:
通过root命令登录到服务器上后切换到数据库用户名下用su – db2admin命令。
进入到备份文件存放目录
执行如下命令
$ db2 restore db datedb from /hom
DB2 分区数据库备份与恢复操作如何进行 (1)
恢复以及带有 OVERFLOW 选项的前滚操作。对于 DB2 的分区数据库,某些直接发出的 DB2 命令只作用于当前一个分区,备份和恢复(BACKUP/RESTORE)就属于这一类命令。但是对于硬盘数据恢复分区数据库,由于同一数据库的数据分布在多个分区上。则对它的备份和恢复操作就要考虑到各分区上数据的完整及同步问题,因此可以在 DB2 命令前加上 db2_all 命令,以便 DB2 命令在数据库的各个分区上被执行,而无需分别对每个分区重复发出相同的命令。另外在 DB2 中,启用了前滚数据恢复模式的数据库,使用的是归档日志方式,而非缺省的循环日志方式。这样,在进行恢复操作时,可在利用 RESTORE 命令恢复了数据库或表空间的备份后,再通过前滚命令(ROLLFORWARD)命令前滚归档日志中的事务,恢复数据库备份时间点之后提交的事务,最大程度的保护数据库的数据。与备份和恢复命令不同的是,前滚命令仅能通过在分区数据库的编目分区上运行,来实现数据库各分区的前滚操作。下面就以一个启用了前滚恢复模式的分区数据库 SAMPLE 为例介绍其备份、恢复以及前滚操作的具体步骤。这里假设该数据库创建在一台服务器上,具有四硬盘数据恢复个分区,其编目分区为0号分区。一. 对分区数据库的备份操作:前面已经介绍了,备份操作仅作用于分区数据库的当前分区,所以要使用“db2_all”的命令实现对所有分区进行备份(这里使用联机备份方式),即:db2_all "db2 backup db sample online" 但是上述命令对各分区的备份是以串行方式进行的,为提高备份操作的性能,还有一种可使分区间以并行方式进行的方法。即在上述命令的 DB2 命令前加上以下选项来实现命令的并行:《《+分区号《 :表示后续命令作用于该分区。《《-分区号《 :表示后续命令作用于除该分区之外的其它分区。||《《-分区号《 或 《《-分区号; :表示后续命令作用数据恢复于除该分区之外的其它分区,并且是以并行方式进行的。但由于备份和恢复操作要求独占编目分区,因此在对其它分区进行并行方式的备份操作之前,首先必须完成该分区的备份操作。其方法为:db2_all "《《+0《 db2 backup db sample online" -- 对编目分区的备份db2_all "||《《-0《 db2 backup db sample online" -- 对其它分区硬盘数据恢复的并行备份注:分区数据库的备份结束后会为每个分区都产生一个备份映象文件。
Window下备份的DB2数据库,在Linux下怎么恢复
将windows下的数据库备份文件直接复制到LINUX下,在LINUX下创建一个同名空库,然后执行restore db命令,应该成功的。另外一种方法是可以用db2look取得windows数据库的DDL语句,到LINUX系统下执行一遍。数据依靠windows下执行EXPORT命令导出,LINUX下IMPORT。
更多文章:
java和javaee有什么区别(javaEE和java有什么不同)
2024年8月22日 22:00
玳瑁辟邪真有那么厉害(玳瑁五行属什么,鬼魂怕什么东西什么东西辟邪)
2024年8月28日 04:10
showmodaldialog(showmodaldialog老出现滚动条是怎么回事直接用浏览器打开不会)
2024年7月18日 14:57
bc范式怎么判断(求数据库高手,解决有关范式的问题,谢谢!!)
2023年6月3日 22:20
svg图片是什么(ppt图标svg和eps和png有什么区别)
2024年7月9日 09:22
fedora歌剧(意大利歌曲《我亲爱的》的作者以及歌曲创作背景 是什么 急切求解 谢谢)
2024年6月27日 09:09
.net代码注释?请问这段.NET代码 每句话都是什么意思要详细的注释谢谢帮助!!
2024年7月4日 17:46