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





版权声明: 原创作品,赞成转载,转载时请务必以超链接办法标明文章 原始情由 、作者信息和本声明。不然将穷究法律责任。