注: 备份文件的命名最好加上日期,这样便于以后的恢复工作。
操作如下:
$ tar -cvf full'date +%Y-%m-%d-%H-%M'.dmp abc
$ tar -cvf full'date +%Y-%m-%d-%H-%M-%S'.dmp abc
(3)。 利用cron定时备份数据库:
Linux、Unix提供了定时服务cron程序,能够在确定的时间中执行一系列任务,因此数据库的备份必须和cron合作来完成,或者使用/etc下的daily,weekly,monthly文件做定时的数据库备份操作。
例如:编写Oracle逻辑备份的sh文件,并用cron程序来制定备份的时间。
i. 编辑完全备份的脚本文件(exp_comp.sh):
rq='date +"%m%d"'
su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/
export/db_comp$rq.dmp"
ii. 编辑累计备份的脚本文件(exp_cumu.sh):
rq=' date +"%m%d"'
su - oracle -c"exp system/manager full=y inctype=cumulative file=/oracle
/export/db_cumu$rq.dmp"
iii. 编辑增量备份的脚本文件(exp_incr.sh):
rq='date +"%m%d" '
su - oracle -c"exp system/manager full=y inctype=incremental file=/oracle
/export/db_incr$rq.dmp"
iv. 编辑root用户crontab文件,将上面的脚本命令用cron程序来制定数据库备份的时间:
$ vi /var/spool/cron/crontabs/root
v. 在/var/spool/cron/crontabs/root文件中增加以下内容:
0 2 1 * * /oracle/exp_comp.sh
30 2 * * 0-5 /oracle/exp_incr.sh
45 2 * * 6 /oracle/exp_cumu.sh
当然上面这个时间表可以根据不同的需求来改变。比如按照上面的数据库的备份安排表来做这个cron程序的制定,如下所示:
星期一:完全导出(A)
星期二:增量导出(B)
星期三:增量导出(C)
星期四:增量导出(D)
星期五:累计导出(E)
星期六:增量导出(F)
星期日:增量导出(G)
(4)。使用Export/Import的注意事项:
在做Export和Import的时候千万请注意您的字符集设置,如果在做Export或Import的时候,UINX的环境变量如果和字符集设置不一致的话, 将导致数据库恢复的信息不能正确读取,特别是数据库采用的非缺省值的中文字符集。切记一定要求保持一致,如果有特殊的要求请先联系Oracle售后支持部。下面介绍怎样确定Oracle数据库的字符集设置和操作系统的环境变量:
$ sqlplus sys/manager
SQL> select * from NLS_DATABASE_PARAMETERS;
PARAMETER VALUE
------------------------- -----------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSET UTF8
环境变量应设置
$ export NLS_LANG=American_america.UTF8
Export/Import支持的增量和累计备份实际上是表级的,即上一次备份之后变化的表将全表卸载,而不是变化的记录。因此,在以OLTP应用为主的数据库中,由于保存主要业务数据的表处于频繁的录入和更新之中,增量和累计卸载并不能显着提高备份的效率。
在做整个数据库Import时,缺省状态下以一个Table为一个Transaction,所以如果存在一些表的数据量很大, 建议使用commit=y并且要提供一个较大的buffer值,同时建立一个临时Rollback segment ,它的default storage参数initial 和 next要设置大一些,并要将这个Rollback Segment Online,同时offline 其他小的rollback segments.确保一个Table能完整import .因为在做import时, 数据库将自动创建索引,及完整性约束, 为了加快数据加载的速度及一次成功的概率,可以考虑在export之前首先disable所有的完整性约束, 在import之后在enable所有的完整性约束。而对索引,可以考虑单独export索引。通过使用命令 "imp indexfile=……" 在import数据之后来单独创建索引。
如果希望在export数据库时,直接将产生的dmp文件写到外设上, 你可以使用 " exp file=设备名… Volsize=设备的容量".
由于export出来的文件可能较大,而某些操作系统(如Linux)对文件大小有限制,如不能大于2G.因此可将dmp文件设置为指定大小的若干文件。如:
$exp sys/manager buffer=4096000 file=(full1.dmp,full2.dmp,full3.dmp,full4.dmp) filesize=2G Full=y inctype=complete log=full.log
结语:
主要是搜集下一些平时比较常用的东西,文章长了点,但确实还是不错的。很详细,也很完整,涉及这方面的朋友没事就多看看吧。另外丢个群:28558272 欢迎大家一起来交流。