




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle数据安全,01,02,04,03,备份与容灾的重要性,备份与容灾概况,逻辑备份,物理备份,05,容灾,一.为什么要进行备份和容灾?,1.1.数据库系统故障案例1:如某客户的IT设备机房突然停电,造成存储磁盘损坏,数据文件也因此损坏,来电后数据库无法启动,如果没有备份,则数据库恢复工作将非常艰难.案例2:某客户的oracle数据库系统采用aix小机做硬件平台,但由于此小机购买年份较早,早过了维保期,某天突然宕机,操作系统无法启动,由于没有专业的小机维护人员,小机始终无法启动,业务也因此无法运行,幸好有异机备份,在短时间内恢复了数据。案例3:某客户要新装一套rac数据库,但由于安装过程报错,需要删除软件并重新安装,但不小心连到了生产数据库,删除了生产库的数据库软件,类似误删除操作还有很多惨痛的案例,一.为什么要进行备份和容灾?,1.2.应用程序故障案例:某客户的软件系统在试运行期间,由于需要上新的功能模块,开发人员添加一个栏目时发现添加有问题,需要删掉此栏目,结果删除的时候把上级目录也删掉了,导致整个目录的其他栏目都删掉了,此问题是软件的一个bug,而此时undo回滚表空间的内容也已经冲掉了,如果没有备份,数据将很难找回来。1.3.人为失误案例:某客户维护一张表时,认为数据不再需要了,就truncatetablet_xxx,结果后来又证明那张表还有需要的数据,但后悔已经来不及了,二.备份和容灾概况,我们有哪些方式避免各种自然灾害、人为失误及应用程序故障?Oracle为我们提供了多种备份和容灾方式:1.冷备份(操作系统copy数据文件)2.Rman物理备份3.逻辑备份(exp/expdp)4.rac5.数据卫士(Dataguard)6.Goldengate其他厂商提供的备份和容灾方式:IBM的FlashCopyEMC的SRDF等存储复制技术,2.1区分物理备份和逻辑备份,物理备份就是转储ORACLE物理文件(如数据文件、控制文件、归档日志文件等),一旦数据库发生故障,可以利用这些文件进行还原;逻辑备份就是对数据库对象(如用户、表、存储过程等)利用EXPORT等工具进行导出工作,可以利用IMPORT等工具把逻辑备份文件导入到数据库。,特点:物理备份备份的是数据文件、归档日志等底层文件,是真正适用于生产环境的备份,强烈推荐生产库采用物理备份逻辑备份是按一定的格式导出业务数据,适合特定场合,两种备份都不能直接查看数据,需要用相应的工具导入或还原才能读取数据,2.2.1什么是冷备份?数据库没有打开的情况下,使用操作系统命令或rman进行备份,由于数据库没有打开,数据库的数据是干净一致的,不存在活动事务。方式:使用操作系统命令直接复制数据文件到另外一个目录即可,windows下直接复制粘贴,其他平台如linux下:cp,oracledb10gdatafile$pwd/u01/oradata/ORCL/datafileoracledb10gdatafile$cp*.dbf*.ctl*.log/backup/,特点:需要将数据库关闭才能做冷备,这样就影响了业务使用,因此在实际生产环境不具实际使用价值,2.2区分冷备份和热备份,2.2.2什么是热备份?数据库在open状态,事务还在活动,此时备份就是热备份,oracle数据库支持热备份,最常用最实用的是用rman进行热备份,三.rman物理备份,Rman是oracle数据库的一个组件,功能强大,既能备份也能恢复,rman可以备份这些文件:数据文件归档日志文件参数文件控制文件,三.rman物理备份,恢复原理:基础整库备份+归档日志(+日志重演)恢复到想要恢复的时间点因此必须开启归档模式,让数据库的在线重做日志保存到归档日志目录里,这样才能利用基点备份+归档日志重演数据库到指定时间而如果使用非归档模式,则数据库不会保存在线重做日志,数据丢失后将不能利用基点备份重演日志,通常用rman做物理备份。查看归档是否开启:,使用sys或system用户用sqlplus登录数据库:SYSorclarchiveloglistDatabaselogmodeArchiveModeAutomaticarchivalEnabledArchivedestination/u01/app/oracle/admin/orcl/archivelog,或者:SQLselectlog_modefromv$database;LOG_MODE-ARCHIVELOG,oracledb$rmantarget/-使用rman登录数据库connectedtotargetdatabase:TESTDB(DBID=2592324560)RMANbackupdatabaseformat/backup/fullbak_%U;Startingbackupat2013/09/0509:23:00usingtargetdatabasecontrolfileinsteadofrecoverycatalogallocatedchannel:ORA_DISK_1channelORA_DISK_1:sid=145devtype=DISKchannelORA_DISK_1:startingfulldatafilebackupsetchannelORA_DISK_1:specifyingdatafile(s)inbackupsetinputdatafilefno=00001name=/u01/app/oracle/oradata/testdb/system.dbfinputdatafilefno=00003name=/u01/app/oracle/oradata/testdb/sysaux.dbfinputdatafilefno=00004name=/u01/app/oracle/oradata/testdb/users.dbfchannelORA_DISK_1:startingpiece1at2013/09/0509:23:01channelORA_DISK_1:finishedpiece1at2013/09/0509:24:07piecehandle=/backup/fullbak_05oj2uvl_1_1tag=TAG20130905T092301comment=NONEchannelORA_DISK_1:backupsetcomplete,elapsedtime:00:01:06channelORA_DISK_1:startingfulldatafilebackupsetchannelORA_DISK_1:specifyingdatafile(s)inbackupsetincludingcurrentcontrolfileinbackupsetincludingcurrentSPFILEinbackupsetchannelORA_DISK_1:startingpiece1at2013/09/0509:24:10channelORA_DISK_1:finishedpiece1at2013/09/0509:24:11piecehandle=/backup/fullbak_06oj2v1n_1_1tag=TAG20130905T092301comment=NONEchannelORA_DISK_1:backupsetcomplete,elapsedtime:00:00:04Finishedbackupat2013/09/0509:24:11,3.1备份过程示例:,可以看出备份全库时包括两部分:一个数据文件的备份集,其中包括了所有的数据文件,一个控制文件+spfile的备份集,包括了控制文件和spfile,rootdbbackup#ls-lhtotal811M-rw-r-1oracleoinstall795MSep509:23fullbak_05oj2uvl_1_1-rw-r-1oracleoinstall15MSep509:24fullbak_06oj2v1n_1_1,3.2rman备份恢复场景示例:现在已经做了全备,即基点备份,如果我们需要恢复数据库,我们就可以使用这个全备的rman备份做基点,加上归档日志来恢复,如创建一个表并插入数据,如果此时突然发生磁盘磁盘损坏,导致数据文件损坏及数据库异常终止,可以按如下方法恢复:,SQLcreatetablet(idnumber,namevarchar2(30);Tablecreated.SQLinsertintotvalues(1,mcl);1rowcreated.SQLinsertintotvalues(2,admin);1rowcreated.SQLinsertintotvalues(3,dba);1rowcreated.SQLcommit;,1.在mcl用户下新建一张表,并插入数据,SQLselect*fromt;IDNAME-1mcl2admin3dbaSQLaltersystemswitchlogfile;Systemaltered.,2.假设此时磁盘发生损坏,并强制关闭了数据库,-强制关闭数据库SQLshutdownabortORACLEinstanceshutdown.-删除数据文件oracledbtestdb$lscurrent.269.808996433goldengate.dbfredo03.dbfTESTDBundotbs2.dbfcurrent.269.808996433.bakredo01.dbfsysaux.dbfts_bbed.dbfundotbs3.dbfcurrent.bakredo02.dbfsystem.dbfts_mcl.dbfusers.dbforacledbtestdb$rm-rf*-启动数据库SQLstartupORACLEinstancestarted.TotalSystemGlobalArea331350016bytesFixedSize2083720bytesVariableSize117441656bytesDatabaseBuffers205520896bytesRedoBuffers6303744bytesORA-00205:errorinidentifyingcontrolfile,checkalertlogformoreinfoSQLselectinstance_name,statusfromv$Instance;INSTANCE_NAMESTATUS-testdbSTARTED,3.恢复控制文件,RMANrestorecontrolfilefrom/backup/fullbak_06oj2v1n_1_1;Startingrestoreat2013/09/0510:46:47usingtargetdatabasecontrolfileinsteadofrecoverycatalogallocatedchannel:ORA_DISK_1channelORA_DISK_1:sid=156devtype=DISKchannelORA_DISK_1:restoringcontrolfilechannelORA_DISK_1:restorecomplete,elapsedtime:00:00:03outputfilename=/u01/app/oracle/oradata/testdb/current.269.808996433Finishedrestoreat2013/09/0510:46:51-mount控制文件SQLalterdatabasemount;Databasealtered.SQLselectinstance_name,statusfromv$Instance;INSTANCE_NAMESTATUS-testdbMOUNTED,4.恢复数据文件包括两步:restore、recover,RMANrestoredatabase;Startingrestoreat2013/09/0512:42:18usingchannelORA_DISK_1channelORA_DISK_1:startingdatafilebackupsetrestorechannelORA_DISK_1:specifyingdatafile(s)torestorefrombackupsetrestoringdatafile00001to/u01/app/oracle/oradata/testdb/system.dbfrestoringdatafile00002to/u01/app/oracle/oradata/testdb/ts_mcl.dbfrestoringdatafile00003to/u01/app/oracle/oradata/testdb/sysaux.dbfrestoringdatafile00004to/u01/app/oracle/oradata/testdb/users.dbfrestoringdatafile00005to/u01/app/oracle/oradata/testdb/ts_bbed.dbfrestoringdatafile00006to/u01/app/oracle/oradata/testdb/goldengate.dbfrestoringdatafile00007to/u01/app/oracle/oradata/testdb/undotbs2.dbfrestoringdatafile00008to/u01/app/oracle/oradata/testdb/undotbs3.dbfchannelORA_DISK_1:readingfrombackuppiece/backup/fullbak_05oj2uvl_1_1channelORA_DISK_1:restoredbackuppiece1piecehandle=/backup/fullbak_05oj2uvl_1_1tag=TAG20130905T092301channelORA_DISK_1:restorecomplete,elapsedtime:00:00:55Finishedrestoreat2013/09/0512:43:13,Restore其实就是把备份还原出来,但此时还是备份时的数据状态,也就是建mcl.t表之前的状态,数据文件目录的文件现在都回来了,但注意此时数据并没有mcl.t表,oracledbbackup$ls-lh/u01/app/oracle/oradata/testdb/total1.2G-rw-r-1oracleoinstall15MSep512:45current.269.808996433-rw-r-1oracleoinstall21MSep512:42goldengate.dbf-rw-r-1oracleoinstall301MSep512:42sysaux.dbf-rw-r-1oracleoinstall521MSep512:43system.dbf-rw-r-1oracleoinstall11MSep512:42ts_bbed.dbf-rw-r-1oracleoinstall1.1MSep512:42ts_mcl.dbf-rw-r-1oracleoinstall51MSep512:42undotbs2.dbf-rw-r-1oracleoinstall51MSep512:42undotbs3.dbf-rw-r-1oracleoinstall213MSep512:42users.dbf,RMANrecoverdatabase;Startingrecoverat2013/09/0512:53:46usingchannelORA_DISK_1startingmediarecoveryarchivelogfilename=/u01/app/oracle/arch/1_17_823348175.dbfthread=1sequence=17archivelogfilename=/u01/app/oracle/arch/1_17_823348175.dbfthread=1sequence=18RMAN-00571:=RMAN-00569:=ERRORMESSAGESTACKFOLLOWS=RMAN-00571:=RMAN-03002:failureofrecovercommandat09/05/201312:53:53RMAN-11003:failureduringparse/executionofSQLstatement:alterdatabaserecoverlogfile/u01/app/oracle/arch/1_17_823348175.dbfORA-00310:archivedlogcontainssequence17;sequence18requiredORA-00334:archivedlog:/u01/app/oracle/arch/1_17_823348175.dbf,5.恢复数据文件continue包括两步:restore、recover,SQLarchiveloglistDatabaselogmodeArchiveModeAutomaticarchivalEnabledArchivedestination/u01/app/oracle/archOldestonlinelogsequence15Nextlogsequencetoarchive17Currentlogsequence17,6.打开数据库,由于数据库的当前联机日志已经被删除,因此需要resetlogs方式重建redolog,并打开数据库,SQLalterdatabaseopenresetlogs;Databasealtered.,7.验证数据,SQLselect*frommcl.t;IDNAME-1mcl2admin3dba,总结:备份不是目的,恢复才是目的。恢复时需要一个基点备份(restore出来),然后在此基础上重演归档日志和在线日志(recover过程),恢复到故障发生的那一刻,3.3生产环境下备份作业(适合小数据量),1.准备一个空间足够的备份盘,并mount到/backup目录,2.创建相关备份目录,mkdir-p/backup/oracle/testdb/archbackupmkdir-p/backup/oracle/testdb/fullbackupmkdir-p/backup/oracle/testdb/ctlbackupmkdir-p/backup/oracle/testdb/scriptmkdir-p/backup/oracle/testdb/logmkdir-p/backup/oracle/testdb/otherchown-Roracle:oinstall/backup/chmod-R775/backup/,3.上传备份脚本到/backup/oracle/testdb/script/,4.制定任务计划定时执行备份:,crontab-e02*/backup/oracle/testdb/script/startrman.sh,3.4生产环境下增量备份作业(适合大数据量),增量备份的级别:增量备份可以有n多个级别,从0级、1级、2级这样顺序排列直到n级(n为小于等于4的正整数)。增量备份分类:差异增量备份(备份同级和小于同级的变化数据)累计增量备份(备份小于同级的变化数据),差异增量备份,周日:全库备份周一:只备份level0之后有变化的数据块周二:只备份周一以来所有变化的数据块周三:只备份周二以来所有变化的数据块,累计增量备份,周日:全库备份周一:备份周日level0之后有变化的数据块周二:备份周日以来所有变化的数据块周三:备份周日以来所有变化的数据块,差异增量备份特点:只备份小于同级的数据变化,但恢复时需要读取更多的备份集,因此备份时间短,恢复时间长。累计增量备份特点:只备份小于等于同级的数据变化,但恢复时可以读取更少的备份集,因此备份时间长,恢复时间短。,实际生产环境备份示例:,1.创建备份磁盘及目录,建立相关目录(参考上节),部署备份作业步骤:,2.上传备份脚本到/backup/oracle/testdb/script目录,3.开启备份的blockchangetrace功能(非必须),SQLalterdatabaseenableblockchangetracking;SQLselect*fromv$block_change_tracking;STATUSFILENAMEBYTES-ENABLED+DATADG/urpdb/changetracking/ctf.303.82387916712681216,crontab-e02*/backup/oracle/testdb/script/startrman.sh,4.制定备份自动,注意:以上脚本需要根据实际数据库名做修改,四.逻辑备份,逻辑备份包括exp/expdp:其中exp是oracle比较古老的数据导出工具了,oracle10g及以后建议使用expdp导数据,因为后者速度更快,使用更加灵活,两者之间最大的区别在于:exp可以把数据导出到客户端,也可以导出到服务器端,但expdp只能导出到服务器端,逻辑导出的特点:优点:逻辑导出可以只导出部分对象,方式灵活,导出的dmp文件可以跨平台、跨操作系统、跨数据库版本导入到别的数据库中,因此这种平台无关、版本无关的特性适合数据迁移(1T以下)、数据备份。缺点:导出那一刻数据就已经固定了,无法利用数据库日志进行重演而恢复到最新的状态,但有时候也不需要这种功能。另外导出速度快,导入速度慢,不适合大数据量的导入,但对于中小型数据库(1T以下)使用场景很多。,exp/expdp分为三种导出模式:表模式:导出一个表或多个表,在导出时指定tables=xxx.xxx用户模式:导出一个schema下的所有对象全库模式:full=y,SQLselectuserenv(language)fromdual;USERENV(LANGUAGE)-AMERICAN_AMERICA.AL32UTF8,4.1exp示例:,1.查询数据库的字符集,2.设置NLS_LANG环境变量,避免导出时字符集转换,oracledbbackup$exportNLS_LANG=AMERICAN_AMERICA.AL32UTF8,3.exp导出数据,oracledbbackup$expmcl/mcltables=mcl.tfile=/backup/mcl_t.dmpExport:Release.0-ProductiononThuSep516:23:442013Copyright(c)1982,2007,Oracle.Allrightsreserved.Connectedto:OracleDatabase10gEnterpriseEditionRelease.0-64bitProductionWiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptionsExportdoneinAL32UTF8charactersetandAL16UTF16NCHARcharactersetAbouttoexportspecifiedtablesviaConventionalPath.exportingtableT3rowsexportedExportterminatedsuccessfullywithoutwarnings.,oracledbbackup$mkdir-p/backup/dir_dump/SQLcreatedirectorydir_dumpas/backup/dir_dump;Directorycreated.,4.2expdp示例:,1.建目录及目录对象:,2.导出数据:,oracledbbackup$expdpmcl/mcldirectory=dir_dumptables=mcl.tdumpfile=mcl_t_expdp.dmplogfile=expdp_mcl_t.logExport:Release.0-64bitProductiononThursday,05September,201316:44:30Copyright(c)2003,2007,Oracle.Allrightsreserved.Connectedto:OracleDatabase10gEnterpriseEditionRelease.0-64bitProductionWiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptionsStartingMCL.SYS_EXPORT_TABLE_01:mcl/*directory=dir_dumptables=mcl.tdumpfile=mcl_t_expdp.dmplogfile=expdp_mcl_t.logEstimateinprogressusingBLOCKSmethod.ProcessingobjecttypeTABLE_EXPORT/TABLE/TABLE_DATATotalestimationusingBLOCKSmethod:64KBProcessingobjecttypeTABLE_EXPORT/TABLE/TABLEProcessingobjecttypeTABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS.exportedMCL.T5.242KB3rowsMastertableMCL.SYS_EXPORT_TABLE_01successfullyloaded/unloaded*DumpfilesetforMCL.SYS_EXPORT_TABLE_01is:/backup/dir_dump/mcl_t_expdp.dmpJobMCL.SYS_EXPORT_TABLE_01successfullycompletedat16:44:52,4.3一个实际生产环境逻辑备份示例:,生产库环境:rac数据库操作系统平台:HUPX11.31备份库环境:单机数据库操作系统平台:AIX5.3,逻辑备份需求:主库有rman物理备份,但为了加固数据安全,防止因存储控制器损坏等问题造成数据全部丢失,利旧AIX小机做逻辑备份,数据文件总大小为196G,expdp导出并压缩后的实际数据为5G,业务用户约50个,每天夜里备份完所有的业务用户数据后,使用scp复制到备库,并在主库保留7天数据,备库上保留14天。,5.其他灾备,5.1rac,RAC是为了满足人们对系统的高可靠性、高速性以及VLDB(大规模数据库)的需求而开发设计的一项集群处理技术。另外,它还能提高系统的吞吐量,并有效支持更多的用户,RAC可以让多个节点的多个实例同时访问同一个数据库。这样,系统就可以把一个大的任务分为几个子任务,给不同的节点去执行,从而横向扩展服务器内存、cpu压力。,Rac的优点:多个数据库服务器担任实例,同时能对外提供服务,可以提供负载均衡和故障切换,任何一台数据库服务器发生故障,业务均不会受到影响,对服务器单点故障能起到很好的保护作用.Rac的缺点:在共享存储上只有1份数据,如果存储发生故障,数据可能会丢失,RTO时间也比较长,从性能角度上讲,如果软件本身的性能比较差(如sql比较低效),扩容成rac也不能解决性能问题,另外如果硬件比较差,如存储读写慢、内网速度慢,rac本身就是性能瓶颈;部署要求:两台相同硬件架构(甚至型号)的数据库服务器,每台数据库服务器至少两块网卡,一台共享存储,至少一台光纤交换机;,5.1rac,5.2dataguard,dataguard包含一个生产数据库(单机或者rac)和一个或更多备份数据库(也可以是单机或rac)。在DataGuard配置中的数据库可以通过oracleNet连接并可以分布在不同地理位置,通过冗余数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塑料制品设计创新与用户体验优化考核试卷
- 嵌入式考试必看问题试题及答案
- 行政组织理论的行业应用分析试题及答案
- 石棉在消防安全中的应用考核试卷
- 监理师考试考点突破试题及答案2025年
- 计算机设备回收与环保考核试卷
- 嵌入式系统中的时钟管理技术试题及答案
- 公路工程项目管理能力的提升方法试题及答案
- 坐姿习惯养成管理制度
- 基地农户养殖管理制度
- 混凝土采购组织供应、运输、售后服务方案
- 软件开发外包合同范本
- 古代文言文与现代汉语的语法对比研究
- 幼儿园中班端午节安全教育
- 质量管理七种工具
- 安全教育培训记录表
- 设备检维修申请单
- 成年人正畸治疗-成年人的辅助性矫治(口腔正畸学课件)
- 甘油栓的制备
- 超星尔雅学习通《红色经典影片与近现代中国发展》章节测试答案
- 浙江山塘综合整治工作探讨
评论
0/150
提交评论