Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104622042
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-05-23 13:40:53

 来源:  

问:里的oracle数据库有20G之大(这是一个方案的大小.原来这个方案有30G,我已经把能删的数据都删了),怎么备份?感觉备份一次好慢啊.有什么指导一下的吗?(另:20G的数据库是不是备份也要20G这样?)我希望能每周备份一次,最好每天一次.

  答:方法一:首选需要在UNIX下创建一个管道(只创建一次即可):

   $mknod ./exp_pipe p
   $ ls -l exp_pipe
  prw-rw-r-- 1 report group 0 Mar 17 05:20 exp_pipe

  然后通过管道,将EXP导出的数据直接压缩,注意:下面二行要写在同一个shell脚本中。

  compress < ./exp_pipe >./tmp_now.dmp.Z &
  exp user/passwd@数据库串 file=./exp_pipe direct=y compress=no log=./exp.log
  20G的DMP文件,压缩后的大小在4G左右。

  方法二:考虑到的速度和效率的问题,一般不建议使用exp对数据量大的数据库进行备份,因为比较慢。

  
oracle的rman备份可以支持增量备份,你可以自己设置一个备份策略,好比每周日做一次数据库全备份(level 0 级的备份),然后周一周二做增量备份(level 1 级的备份),周三在做一次数据库全备份(level 0),最后周四、周五、周六做数据库的增量备份(level 1)。这样既可以保证你的备份在大部分时间内比较快,而且也可一保证在需要恢复时较快。具体的备份策略要根据你的要求而定,我只是举个例子。

  介绍一下什么是Oracle的rman备份:

  Oracle 的RMAN备份- -

  查看那当前使用那个spfile文件 :

  SQL>select name,value from v $parameter where name='spfile';

  1。检查数据库的归档方式。如果不是规定方式,则要修改数据库为归档方式。

1.1 以dba帐号登陆,

   $ sqlplus '/as sysdba';
  SQL>archive log list;
  Database log mode No Archive Mode #非归档方式
  Automatic archival Enabled
  Archive destination /oracle/bakram/log_archive
  Oldest online log sequence 161
  Current log sequence 163

  1.2 如果第一步为 No Archive Mode ,则将数据库修改修改为归档方式

  1.2.1 建立存档路径.

   $mkdir /oracle/bakram/log_archive

  1.2.2 在/oracle/OracleHome/dbs/建立一文件 firstSpfile.ora

  文件内容为:

  SPFILE="/oracle/OracleHome/dbs/spfileorcyehoo.ora" # 实例名称
  log_archive_start=true;
  log_archive_format=ARC%T%S.arc #格式
  log_archive_dest=/oracle/bakram/log_archive #存放的路径

  1.3 停止数据库

   $/oracle/dbstop.sh

  1.4 修改归档方式

  1.4.1 建立一个dbstartmount.sh文件

  --------
  echo "begin to start oracle mount..."
  lsnrctl start
  sqlplus /nolog <
  connect /as sysdba
  startup mount
  exit
  exit
  sleep 10
  echo "oracle have started oracle mount..."
  --------
  执行./dbstartmount.sh
  SQL>alert database archivelog;
  Database altered.
  将数据库打开
  SQL>alert database open;
  Database altered.
  SQL>
阅读(274) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~