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

2016-02-19 18:33 2 1 收藏

图老师小编精心整理的解决方案:Oracl数据库中大数据的备份希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.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 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  
SQLalert 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目录

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)


  $ 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授予权限

  SQLgrant connect,resource,recovery_catalog_owner to rman;

  2.4打开RMAN

  $RMAN

  2.5连接数据库

  RMANconnect catalog rman/rman;

  2.6 创建恢复目录

  RMANcreate 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 查询恢复目录

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  怎么能知道我们的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. 选择备份策略

来源:https://www.tulaoshi.com/n/20160219/1618141.html

延伸阅读
        ORA-01650:unable to extend rollback segment NAME by NUM intablespace NAME         产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配...
标签: MySQL mysql数据库
随着网络的普及,基于网络的应用也越来越多。网络 数据库 就是其中之一。通过一台或几台服务器可以为很多客户提供服务,这种方式给人们带来了很多方便,但也给不法分子造成了可乘之机。由于数据都是通过网络传输的,这就可以在传输的过程中被截获,或者通过非常手段进入数据库。由于以上原因,数据库安全就显得十分重要。因此,本文就以上问题讨...
标签: ASP
  文件1:BackupDB.asp <%@ Language=VBScript % <HTML <HEAD <META name=VI60_defaultClientScript content=VBScript <META NAME="GENERATOR" Content="Microsoft FrontPage 4.0" <SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript <!-- Sub btnbak_onclick if frmbak.txtsvr.value=&quo...
利用下面的列出的技巧来确保你不会在每周一次的数据库备份过程中忘记关键步骤。 每周一次备份主数据库。如果你创建、修改或者停止一个数据库,添加新的SQL Server消息,添加或者停止连接服务器,或者添加记录设备,那就进行手工备份。 每天备份一次msdb数据库。它一般非常小,但很重要,因为它包含了所有的SQL Server工作、操作...
相信为数不少的系统管理员每天都在做着同一样的工作——对数据进行备份。一旦哪一天疏忽了,而这一天系统又恰恰发生了故障,需要进行数据恢复,那么此时就无能为力了。假如每天设定一个固定的时间,系统自动进行备份,那该多好啊!下面笔者结合实践经验,谈一谈UNIX环境下Oracle数据库的自动备份,以起到抛砖引玉的作用。 我们计划让数...

经验教程

991

收藏

40
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部