解决方案:Oracl数据库中大数据的备份

文章作者 100test 发表时间 2007:03:14 13:39:08
来源 100Test.Com百考试题网


问:公司里的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> 0select 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>

1.5.配置dbstart.sh。 启动数据库
 
 $vi /oracle/dbstart.sh #编辑启动脚本
  ---------------------------------------------
  echo begin to start oracle...
  lsnrctl start
  sqlplus /nolog <
  connect /as sysdba
  startup pfile=/oracle/oraclehome/dbs/firstspfile.ora #修改这里。即启动时加载自己配置的文件。
  exit
  exit
  sleep 10
  echo oracle have started...
  --------------------------------------


  2. 创建rman目录
  $ sqlplus system/data#yes
  2.1创建一个独立的表空间
  sql> create tablespace back datafile back_css.dmp size 50m.
  2.2创建rman用户
  sql> create user rman identified by rman default tablespace back temporary tablespace temp.
  2.3给rman授予权限
  sql>grant connect,resource,recovery_catalog_owner to rman.
  2.4打开rman
  $rman
  2.5连接数据库
  rman>connect catalog rman/rman.
  2.6 创建恢复目录
  rman>create catalog tablespace back.
3. 注册目标数据库(需要备份的数据库)
  3.1 注册数据库
  $rman target sys/data#yes catalog rman/rman@yehoo. #yehoo为实例名。
  ----
  recovery manager: release 9.2.0.1.0 - production
  copyright (c) 1995, 2002, oracle corporation. all rights reserved.
  connected to target database: yehoo (dbid=2840368994)
  connected to recovery catalog database
  ----
  rman> register database.



  3.2 查询恢复目录
  怎么能知道我们的oracle9i是oltp还是dss
  4。备份
  备份表空间:
  backup tag tsuser format /oracle/css_20041209_%u_%s_%p tablespace css.
  5. 维护rman
  5.1 查看现有备份
  rman> list backup.
  5.2 列出过期备份
  rman> report obsolete
  6. 选择备份策略

相关文章


使用Web服务虚拟化Oracle数据库
SQLServer索引结构及其使用之一
法国前5家电子商务网站访问量及活跃用户比例
网络设备商齐聚国会山反对网络中立性法案
解决方案:Oracl数据库中大数据的备份
Oracle初始化参数设置
让oracle自动启动方法
SQLServer索引结构及其使用之二
减少ORACLE中的磁盘I_O
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛