ORACLE备份策略

Oracle备份策略
从一个项目启动之初DBA就应该参与其中配合开发设计人员一起从数据库的可靠性、可用性方面出发制定一套完备的数据库设计方案,并根据客户要求考虑存储结构和数据安全等方面提出相应的数据库部署方案和备份策略。后期DBA的管理工作才能更得心应手并且能根据系统运行情况适时提出性能优化建议。当然这一系列工作可不是像这样简单的说说就能做好,今天讨论的重点也不是这些。我这里想说的是前期DBA的参与肯定是数据库备份策略亦或是数据库的性能优化的基础,今天根据我之前的学习经验简单记录下几种常见的备份策略以便自己未来复习所用,有利用到一些书中的信息,请作者见谅。
在数据库的整个生命周期类,或多或少的都会遇到一些问题导致数据库不能正常运行。建立一整套完备的数据库备份和恢复机制就显得尤为重要。
一、 EXP\IMP方式的逻辑备份
EXP和IMP不仅可用于实现逻辑备份和逻辑恢复,还可用于实现许多其他功能。导出和导入具有以下作用:
(1)使用导出和导入可以重新组织表
(2)使用导出和导入可以在用户之间移动对象
(3)使用导出和导入可以在数据库之间移动对象
(4)使用导出和导入可以升级数据库导其他平台
(5)使用导出和导入可以实现逻辑备份和恢复
1、EXP导出
导出是使用实用工具EXP将数据库对象的结构及其数据转储到特定OS文件中的过程,导出包括导出表、导出方案和导出数据库3中方式
(1)导出表
导出表是指使用EXP工具将一个或多个表的结构和数据存储到OS文件中,导出表是时TABLES选项完成的。
exp fmis1500/fmis1500@vpd001 tables=dept,emp file=a.dmp
exp system/123@vpd001 tables=fmis1500.dept,fmis1500.emp file=a.dmp
(2)导出方案
导出方案是指使用EXP工具将一个或多个方案中的所有对象和数据存储到OS文件中,导出方案是使用OWNER选项完成的。当用户导出其自身方案的所有对象时,可以不知道OWNER选项。
exp fmis1500/fmis1500@vpd001  file=a.dmp
exp system/123@vpd001 WNER=fmis1500 file=a.dmp
(3)导出数据库
导出数据库是指使用EXP将所有数据库对象及其数据存储到特定OS文件中,导出数据库是使用FULL选项完成的。
exp system/123@vpd001 FULL=y file=a.dmp
2、IMP导入
导入是指使用实用工具IMP将EXP导出文件中的对象及其数据装载到oracle数据库中,导入包括导入表、导入方案和导入数据库。
(1)导入表
普通用户可以直接导入其所拥有的表,但如果要将表导入到其他用户中,则要求该用户必须有DBA角色。
imp fmis1500/fmis1500@vpd001 file=a.dmp tables=dept,emp
imp sys/123@vpd001 file=a.dmp tables=dept,emp fromuser=fmis1500 touser=cs
(2)导入方案
imp fmis1500/fmis1500@vpd001 file=a.dmp
imp 'sys/123@gddlhz as sysdba' file=D:\hzzsk_dmp\ods.dmp fromuser=fmis1500 touser=cs
(3)导入数据库
imp sys/123@vpd001 file=a.dmp full=y
这种方式的优点是方法简单可跨平台。缺点也很明显,导入导出的前提是必须在数据库正常运行前提下才能进行。
二、 RMAN方式的物理备份
一套简单的RMAN可以包括RMAN命令行与目标数据库。在RMAN命令行中用户可以执行数据库备份或恢复命令,也可以执行定制的批处理任务。恢复目录信息在RMAN中称为RMAN资料档案库,oracle采用两种方式存储恢复目录信息:存储在目标数据库的控制文件中或者存储在另外一套oracle数据库中。如果采用数据库方式存储恢复目录信息,则这个数据库称为RMAN的“恢复目录数据库”。辅助数据库是目标数据库的一个复制品。通过对辅助数据库使用那些从目标数据库拿来的归档日志,并将其应用到辅助数据库中,用户可以保持两者的同步。
1、RMAN中常用命令:
SHOW命令  显示RMAN备份环境配置   RMAN>show all;
REPORT命令  报告备份集信息   RMAN>report need backup redundancy 2 database;
LIST命令   列出数据库备份信息 RMAN>list backup of database;
DELETE命令  删除备份集   RMAN>delete obsolete;
BACKUP命令  执行数据库备份  RMAN>backup database;
RESTORE命令  将备份集装载到目标数据库中  RMAN>restore database;
RECOVER命令  执行恢复操作  RMAN>recover database;

2、完成备份操作第一步是连接到要备份的目标数据库
$rman
RMAN>connect target/
执行数据库备份:
(1)数据库全库备份,目标备份包括所有数据文件、控制文件、参数文件
(2)数据库增量备份,目标备份包括所有数据文件中变化了的部分
(3)活跃的表空间局部备份
(4)活跃的数据文件局部备份
(5)归档日志文件的备份
(6)控制文件的备份
(7)针对备份集的再次备份

--数据库完全备份步骤:
$rman
RMAN>connect target/
检查默认备份通道类型
RMAN>show DEFAULT DEVICE TYPE;
在备份过程中,可以通过指定备份文件名的格式来指定备份文件的存在位置。在oracle 10g和11g中,如不指定,则磁盘备份将放置在闪回恢复区。
RMAN>run{
     allocate channel c1 device type disk;
     backup database FORMAT'/flash_recovery_area/backup_%U.backupset'
plus archivelog delete input;
     release channel c1;
}
备份完后
RMAN>list backup of database;
RMAN>list backup summary;

--数据库备份集增量备份
仅备份那些自从前一次备份起发生了改变的数据块。未发生变化的数据块则存储在以前的备份集中。增量备份方式支持数据文件级、表空间级、数据库级的备份。
增量备份操作以增量级别作为所需备份内容的鉴别标准。增量备份可以是不同级别的增量,从增量级别0开始,依次往上。其中级别0的增量相当于完全备份。
RMAN>run{
     allocate channel c1 device type disk;
     backup incremental level=0 database FORMAT'E:/arc/%U'
plus archivelog delete input;
     release channel c1;
}
增量备份-1级备份
RMAN>run{
     allocate channel c1 device type disk;
     allocate channel c2 device type disk;
     backup incremental level=1 database FORMAT'E:/arc/%U'
plus archivelog delete input;
     release channel c1;
     release channel c2;
}

--限制备份大小和备份压缩
备份片段文件有如下两种类型:一种是包含数据文件、控制文件、参数文件的备份集,另一种是包含归档日志文件的备份集。
oracle提供了限制备份片段大小的语法,使备份操作更具灵活性。限制可通过备份时指定备份通道的MAXPIECESIZE选项实现。
allocate channel c1 device type disk MAXPIECESIZE=1G;

如果采用自动分配通道方式,也可以直接设置RMAN的通道属性,这样,当利用自动通道创建备份集时,都会默认按照这个指定的大小创建备份文件。
RMAN>CONFIGURE CHANNEL device type disk maxpiecesize=1g;

采用压缩的方式能有效减小备份集大小
RMAN>run{
     allocate channel c1 device type disk format'E:/arc/1_%U';
     allocate channel c2 device type disk format'E:/arc/2_%U';
     backup as compressed backupset incremental level=1 database
plus archivelog delete input;
     release channel c1;
     release channel c2;
}


--备份局部的数据文件
RMAN中可以通过指定数据文件名或直接使用数据文件编号的方式,使用BACKUP DATAFILE命令进行数据文件的局部备份。
查看数据文件编号、文件名、表空间名的对应关系。
SQL>select file_id,file_name,tablespace_name from dba_data_files;
备份数据文件:
RMAN>run{
     allocate channel c1 device type disk;
     allocate channel c2 device type disk;
    BACKUP DATAFILE 4,5 FILESPERSET=1;
     release channel c1;
     release channel c2;
}
也可以备份表空间来达到同样效果:
RMAN>run{
     allocate channel c1 device type disk;
     allocate channel c2 device type disk;
    BACKUP TABLESPACE USERS,EXAMPLE FILESPERSET=1;
     release channel c1;
     release channel c2;
}

--备份归档日志
在数据库恢复时,通过装载数据库完全备份和增量备份后可以将数据库恢复到备份点,再通过归档日志继续恢复以恢复数据库备份任务后发生的业务数据,实现数据库的完全恢复。
备份归档日志文件时,可以通过BACKUP ARCHIVELOG命令的UNTIL或SEQUENCE选项来指定备份的归档日志范围。如果指定,则当前联机重做日志不进行归档处理,也不参与备份。如果备份是全部归档文件,则oracle会对当前联机重做日志进行归档处理,归档出来的归档日志参与本次备份。
在备份数据库时,可以备份归档文件:
RMAN>run{
     allocate channel c1 device type disk format'E:/arc/1_%U';
     allocate channel c2 device type disk format'E:/arc/2_%U';
     backup as compressed backupset incremental level=1 database
plus archivelog delete input;
     release channel c1;
     release channel c2;
}


--进行更为安全的备份
创建双份备份文件,提高备份的可靠性;
创建加密的备份文件,提高备份的安全性;
--创建多份备份集
在创建多份备份集时,RMAN最多允许4份备份集
RMAN>run{
     allocate channel c1 device type disk format'E:/arc/1_%U';
     allocate channel c2 device type disk format'E:/arc/2_%U';
     backup copies 2 database plus archivelog delete input;
     release channel c1;
     release channel c2;
}
--创建加密的备份
防止被恢复到其他环境下的方式被窃取。
首先需要创建保存密钥的“钱夹”目录,
$mkdir wallet
查看数据库中是否有sqlnet.ora文件,如果没有,则利用网络配置工具“netca”进行配置
$cd $ORACLE_HOME/network/admin
$ls
打开sqlnet.ora文件,设置参数ENCRYTION_WALLET_LOCATION,指定透明数据加密专用“钱夹”,
NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)
ENCRYTION_WALLET_LOCATION=(SOURCE=
              (METHOD=FILE)
                (METHOD_DATA=
                  (DIRECTORY=/db/oracle/wallet)))
下面以sys用户进入SQL*PLUS,生成“wenping”:
SQL>alter system set encryption key authenticated by "wenping";
查看密钥是否生成
$ls /db/oracle/wallet
回到RMAN环境,设置RMAN备份密钥
RMAN>show all;
如果是关闭状态就打开
RMAN>CONFIGURE ENCRYPTION FOR DATABASE ON;
至此,数据库备份加密配置完成。执行加密备份的RMAN备份命令与不加密的备份命令完全相同。
另外,在数据库重新启动后,“钱夹”需要重启,如果不启动“钱夹”,备份将失败。
SQL>alter system set encryption wallet open authenticated by "wenping";

然后就是备份策略:比如每周六的0:00对数据库进行0级增量备份;每周其他六天的0:00对数据库进行1级增量备份
通过RMAN备份的优点时,就算数据库意外损坏也能通过RMAN备份快速恢复到某一时间带点。并且解决了平台统一、设备兼容、数据检查和备份自动化的问题。是一种实用性很高的备份。
三、 冷备份
其实不管是EXP\IMP还是RMAN备份都是在数据库运行状态下的备份,统称为热备。而在数据库关闭状态下也可以进行备份,顾名思义当然就是冷备份了。
冷备份数据库是将数据库关闭之后备份所有关键性文件。
  优点:
   1、只需拷贝文件即可,非常快速;
   2、只需将文件拷贝回去,就可以恢复到某一时间点上;
   3、与数据库归档模式结合可以使数据库很好恢复;
   4、维护量少,安全性高;
  缺点:
   1、数据库必须是关闭的;
   2、单独使用冷备份时,数据库只能完成基于某一时间点上的恢复;
   3、冷备份不能按表和用户恢复
 操作:
1、先查看数据文件、控制文件位置;
select name from v$datafile;
select name from v$controlfile;
2、以DBA用户关闭数据库:
  SQL>con / as sysdba;
  SQL>shutdown normal
3、恢复数据文件,复制时应该讲文件复制到单独的一个磁盘上,控制文件是相互镜像的,所以复制一个即可;
 cp /oracle/oradata/ora/*.dbf /u01/app/oracle/bac
 cp /oracle/oradata/ora/*.ctl /u01/app/oracle/bac
4、启动实例打开数据库;
  SQL>con / as sysdba;
 SQL>startup
恢复时只需将备份的复制回原目录下,覆盖原目录的数据文件和控制文件后,再重启服务即可;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27795470/viewspace-744863/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27795470/viewspace-744863/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值