




免费预览已结束,剩余28页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 oracle db10gdatafile pwd u01 oradata ORCL datafile oracle db10gdatafile cp dbf ctl log backup 特点 需要将数据库关闭才能做冷备 这样就影响了业务使用 因此在实际生产环境不具实际使用价值 2 2区分冷备份和热备份 2 2 2什么是热备份 数据库在open状态 事务还在活动 此时备份就是热备份 oracle数据库支持热备份 最常用最实用的是用rman进行热备份 三 rman物理备份 Rman是oracle数据库的一个组件 功能强大 既能备份也能恢复 rman可以备份这些文件 数据文件归档日志文件参数文件控制文件 三 rman物理备份 恢复原理 基础整库备份 归档日志 日志重演 恢复到想要恢复的时间点因此必须开启归档模式 让数据库的在线重做日志保存到归档日志目录里 这样才能利用基点备份 归档日志重演数据库到指定时间而如果使用非归档模式 则数据库不会保存在线重做日志 数据丢失后将不能利用基点备份重演日志 通常用rman做物理备份 查看归档是否开启 使用sys或system用户用sqlplus登录数据库 SYS orcl archiveloglistDatabaselogmodeArchiveModeAutomaticarchivalEnabledArchivedestination u01 app oracle admin orcl archivelog 或者 SQL selectlog modefromv database LOG MODE ARCHIVELOG oracle db rmantarget 使用rman登录数据库connectedtotargetdatabase TESTDB DBID 2592324560 RMAN backupdatabaseformat 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 dbf channelORA 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 root dbbackup ls lhtotal811M rw r 1oracleoinstall795MSep509 23fullbak 05oj2uvl 1 1 rw r 1oracleoinstall15MSep509 24fullbak 06oj2v1n 1 1 3 2rman备份恢复场景示例 现在已经做了全备 即基点备份 如果我们需要恢复数据库 我们就可以使用这个全备的rman备份做基点 加上归档日志来恢复 如创建一个表并插入数据 如果此时突然发生磁盘磁盘损坏 导致数据文件损坏及数据库异常终止 可以按如下方法恢复 SQL createtablet idnumber namevarchar2 30 Tablecreated SQL insertintotvalues 1 mcl 1rowcreated SQL insertintotvalues 2 admin 1rowcreated SQL insertintotvalues 3 dba 1rowcreated SQL commit 1 在mcl用户下新建一张表 并插入数据 SQL select fromt IDNAME 1mcl2admin3dbaSQL altersystemswitchlogfile Systemaltered 2 假设此时磁盘发生损坏 并强制关闭了数据库 强制关闭数据库SQL shutdownabortORACLEinstanceshutdown 删除数据文件 oracle dbtestdb lscurrent 269 808996433goldengate dbfredo03 dbfTESTDBundotbs2 dbfcurrent 269 808996433 bakredo01 dbfsysaux dbfts bbed dbfundotbs3 dbfcurrent bakredo02 dbfsystem dbfts mcl dbfusers dbf oracle dbtestdb rm rf 启动数据库SQL startupORACLEinstancestarted TotalSystemGlobalArea331350016bytesFixedSize2083720bytesVariableSize117441656bytesDatabaseBuffers205520896bytesRedoBuffers6303744bytesORA 00205 errorinidentifyingcontrolfile checkalertlogformoreinfoSQL selectinstance name statusfromv Instance INSTANCE NAMESTATUS testdbSTARTED 3 恢复控制文件 RMAN restorecontrolfilefrom 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控制文件SQL alterdatabasemount Databasealtered SQL selectinstance name statusfromv Instance INSTANCE NAMESTATUS testdbMOUNTED 4 恢复数据文件包括两步 restore recover RMAN restoredatabase 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表 oracle dbbackup 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 RMAN recoverdatabase 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 dbf ORA 00310 archivedlogcontainssequence17 sequence18requiredORA 00334 archivedlog u01 app oracle arch 1 17 823348175 dbf 5 恢复数据文件continue包括两步 restore recover SQL archiveloglistDatabaselogmodeArchiveModeAutomaticarchivalEnabledArchivedestination u01 app oracle archOldestonlinelogsequence15Nextlogsequencetoarchive17Currentlogsequence17 6 打开数据库 由于数据库的当前联机日志已经被删除 因此需要resetlogs方式重建redolog 并打开数据库 SQL alterdatabaseopenresetlogs Databasealtered 7 验证数据 SQL select 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功能 非必须 SQL alterdatabaseenableblockchangetracking SQL select 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 SQL selectuserenv language fromdual USERENV LANGUAGE AMERICAN AMERICA AL32UTF8 4 1exp示例 1 查询数据库的字符集 2 设置NLS LANG环境变量 避免导出时字符集转换 oracle dbbackup exportNLS LANG AMERICAN AMERICA AL32UTF8 3 exp导出数据 oracle dbbackup expmcl mcltables mcl tfile backup mcl t dmpExport Release10 2 0 4 0 ProductiononThuSep516 23 442013Copyright c 1982 2007 Oracle Allrightsreserved Connectedto OracleDatabase10gEnterpriseEditionRelease10 2 0 4 0 64bitProductionWiththePartitioning OLAP DataMiningandRealApplicationTestingoptionsExportdoneinAL32UTF8charactersetandAL16UTF16NCHARcharactersetAbouttoexportspecifiedtablesviaConventionalPath exportingtableT3rowsexportedExportterminatedsuccessfullywithoutwarnings oracle dbbackup mkdir p backup dir dump SQL createdirectorydir dumpas backup dir dump Directorycreated 4 2expdp示例 1 建目录及目录对象 2 导出数据 oracle dbbackup expdpmcl mcldirectory dir dumptables mcl tdumpfile mcl t expdp dmplogfile expdp mcl t logExport Release10 2 0 4 0 64bitProductiononThursday 05September 201316 44 30Copyright c 2003 2007 Oracle Allrightsreserved Connectedto OracleDatabase10gEnterpriseEditionRelease10 2 0 4 0 64bitProductionWiththePartitioning OLAP DataMiningandRealApplicationTestingoptionsStarting MCL 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 exported MCL T 5 242KB3rowsMastertable MCL SYS EXPORT TABLE 01 successfullyloaded unloaded DumpfilesetforMCL SYS EXPORT TABLE 01is backup dir dump mcl t expdp dmpJob MCL SYS EXPORT TABLE 01 successfullycompletedat16 44 52 4 3一个实际生产环境逻辑备份示例 生产库环境 10 2 0 5rac数据库操作系统平台 HUPX11 31备份库环境 10 2 0 1单机数据库操作系统平台 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连接并可以分布在不同地理位置 通过冗余数据来提供数据保护 dataguard通过日志同步机制保证冗余
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 两栖类养殖工职业考核试卷及答案
- 变压器试验工理念考核试卷及答案
- 索具防腐蚀处理工艺考核试卷及答案
- 稻谷油脂酶解蛋白提取工艺开发考核试卷及答案
- 信息技术应用试题及答案大全
- 医学影像设备测试卷附答案
- 技术推广公司合伙协议书
- 针织专业试题及答案
- 药学相关专业试题及答案
- 河北省唐县第一中学2025-2026学年高二上学期开学考试历史试题(原卷版)
- 食品仓库记录管理制度
- 企业团委管理制度
- 冻干粉培训课件
- 公路应急抢修合同标准文本
- 半导体物理学全套课件
- 第一章-发型发展简史
- 智能计算系统:从深度学习到大模型 第2版课件 9、第九章-大模型计算系统
- 企业所得税汇算清缴政策培训会课件-于永勤
- 《北京市道路桥梁试验检测费用定额》
- 2024年下半年湖北黄冈黄梅县事业单位招聘“三支一扶”服务期满人员17人易考易错模拟试题(共500题)试卷后附参考答案
- 《小儿神经系统查体》课件
评论
0/150
提交评论