邪恶八进制信息安全团队技术讨论组's Archiver

pub!1c 2006-3-28 00:14

[转载]Oracle数据库管理系统:大数据的备份

<P>信息来源:<FONT color=#cc0000>TechTarget</FONT></P><FONT color=#cc0000>
<P style="TEXT-INDENT: 2em"> <STRONG>问:公司里的oracle数据库有20G之大(这是一个方案的大小.原来这个方案有30G,我已经把能删的数据都删了),怎么备份?感觉备份一次好慢啊.专家有什么指导一下的吗?(另:20G的数据库是不是备份也要20G这样?)我希望能每周备份一次,最好每天一次.</STRONG>
<P>  答:<STRONG>方法一:首选需要在UNIX下创建一个管道(只创建一次即可):</STRONG></P>
<P>  $mknod ./exp_pipe p</P>
<P>  $ ls -l exp_pipe</P>
<P>  prw-rw-r-- 1 report group 0 Mar 17 05:20 exp_pipe</P>
<P>  然后通过管道,将EXP导出的数据直接压缩,注意:下面二行要写在同一个shell脚本中。</P>
<P>  compress < ./exp_pipe > ./tmp_now.dmp.Z &</P>
<P>  exp user/passwd@数据库连接串 file=./exp_pipe direct=y compress=no log=./exp.log</P>
<P>  20G的DMP文件,压缩后的大小在4G左右。</P>
<P>  <STRONG>方法二:考虑到机器的速度和效率的问题,一般不建议使用exp对数据量大的数据库进行备份,因为比较慢。</STRONG>oracle的rman备份可以支持增量备份,你可以自己设置一个备份策略,好比每周日做一次数据库全备份(level 0 级的备份),然后周一周二做增量备份(level 1 级的备份),周三在做一次数据库全备份(level 0),最后周四、周五、周六做数据库的增量备份(level 1)。这样既可以保证你的备份在大部分时间内比较快,而且也可一保证在需要恢复时较快。具体的备份策略要根据你的要求而定,我只是举个例子。</P>
<P>  <STRONG>介绍一下什么是Oracle的rman备份:</STRONG></P>
<P>  Oracle 的RMAN备份- -</P>
<P>  查看那当前使用那个spfile文件 :</P>
<P>  SQL> select name,value from v$parameter where name='spfile';</P>
<P>  1。检查数据库的归档方式。如果不是规定方式,则要修改数据库为归档方式。</P>
<P>  1.1 以dba帐号登陆,</P>
<P>  $ sqlplus '/as sysdba';</P>
<P>  SQL> archive log list;</P>
<P>  Database log mode No Archive Mode #非归档方式</P>
<P>  Automatic archival Enabled</P>
<P>  Archive destination /oracle/bakram/log_archive</P>
<P>  Oldest online log sequence 161</P>
<P>  Current log sequence 163</P>
<P style="TEXT-INDENT: 2em">1.2 如果第一步为 No Archive Mode ,则将数据库修改修改为归档方式</P>
<P>  1.2.1 建立存档路径.</P>
<P>  $mkdir /oracle/bakram/log_archive</P>
<P>  1.2.2 在/oracle/OracleHome/dbs/建立一文件 firstSpfile.ora</P>
<P>  文件内容为:</P>
<P>  SPFILE="/oracle/OracleHome/dbs/spfileorcyehoo.ora" # 实例名称</P>
<P>  log_archive_start=true;</P>
<P>  log_archive_format=ARC%T%S.arc #格式</P>
<P>  log_archive_dest=/oracle/bakram/log_archive #存放的路径</P>
<P>  1.3 停止数据库</P>
<P>  $/oracle/dbstop.sh</P>
<P>  1.4 修改归档方式</P>
<P>  1.4.1 建立一个dbstartmount.sh文件</P>
<P>  --------</P>
<P>  echo "begin to start oracle mount..."</P>
<P>  lsnrctl start</P>
<P>  sqlplus /nolog <<EOF< p>
<P>  connect /as sysdba</P>
<P>  startup mount</P>
<P>  exit</P>
<P>  exit</P>
<P>  sleep 10</P>
<P>  echo "oracle have started oracle mount..."</P>
<P>  --------</P>
<P style="TEXT-INDENT: 2em">执行./dbstartmount.sh</P>
<P>  SQL>alert database archivelog;</P>
<P>  Database altered.</P>
<P>  将数据库打开</P>
<P>  SQL> alert database open;</P>
<P>  Database altered.</P>
<P>  SQL></P>
<P>  1.5.配置dbstart.sh。 启动数据库</P>
<P>  $vi /oracle/dbstart.sh #编辑启动脚本</P>
<P>  ---------------------------------------------</P>
<P>  echo "begin to start oracle..."</P>
<P>  lsnrctl start</P>
<P>  sqlplus /nolog <<EOF< p>
<P>  connect /as sysdba</P>
<P>  startup pfile="/oracle/OracleHome/dbs/firstSpfile.ora" #修改这里。即启动时加载自己配置的文件。</P>
<P>  exit</P>
<P>  exit</P>
<P>  sleep 10</P>
<P>  echo "oracle have started..."</P>
<P>  --------------------------------------</P>
<P>  2. 创建RMAN目录</P>
<P>  $ sqlplus system/data#yes</P>
<P>  2.1创建一个独立的表空间</P>
<P>  SQL> create tablespace back datafile 'back_css.dmp' size 50m;</P>
<P style="TEXT-INDENT: 2em">2.2创建RMAN用户</P>
<P>  SQL> create user rman identified by rman default tablespace back temporary tablespace temp;</P>
<P>  2.3给RMAN授予权限</P>
<P>  SQL>grant connect,resource,recovery_catalog_owner to rman;</P>
<P>  2.4打开RMAN</P>
<P>  $RMAN</P>
<P>  2.5连接数据库</P>
<P>  RMAN>connect catalog rman/rman;</P>
<P>  2.6 创建恢复目录</P>
<P>  RMAN>create catalog tablespace back;</P>
<P>  3. 注册目标数据库(需要备份的数据库)</P>
<P>  3.1 注册数据库</P>
<P>  $rman target sys/data#yes catalog rman/rman@yehoo; #yehoo为实例名。</P>
<P>  ----</P>
<P>  Recovery Manager: Release 9.2.0.1.0 - Production</P>
<P>  Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.</P>
<P>  connected to target database: YEHOO (DBID=2840368994)</P>
<P>  connected to recovery catalog database</P>
<P>  ----</P>
<P>  RMAN> register database;</P>
<P>  3.2 查询恢复目录</P>
<P>  怎么能知道我们的oracle9i是OLTP还是DSS</P>
<P>  4。备份</P>
<P>  备份表空间:</P>
<P>  backup tag 'tsuser' format '/oracle/css_20041209_%u_%s_%p' tablespace css;</P>
<P>  5. 维护rman</P>
<P>  5.1 查看现有备份</P>
<P>  RMAN> list backup;</P>
<P>  5.2 列出过期备份</P>
<P>  RMAN> report obsolete</P>
<P>  6. 选择备份策略<BR></P></FONT>

页: [1]
© 1999-2008 EvilOctal Security Team