中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 数据库
解决方案:Oracl数据库中大数据的备份
作者:oneworld 时间:2006-09-26 11:33 出处:chinaitlab 责编:月夜寒箫
              摘要:解决方案:Oracl数据库中大数据的备份

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

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. 选择备份策略

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有