Oracle备份与容灾详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
--启动数据库 SQL> startup ORACLE instance started. Total System Global Area 331350016 bytes Fixed Size 2083720 bytes Variable Size 117441656 bytes Database Buffers 205520896 bytes Redo Buffers 6303744 bytes ORA-00205: error in identifying control file, check alert log for more info SQL> select instance_name,status from v$Instance; INSTANCE_NAME STATUS ---------------- -----------testdb STARTED
特点:
物理备份备份的是数据文件、归档日志等底层文件,是真正适用于生产环境 的备份,强烈推荐生产库采用物理备份 逻辑备份是按一定的格式导出业务数据,适合特定场合,两种备份都不能直 接查看数据,需要用相应的工具导入或还原才能读取数据
2.2 区分冷备份和热备份
2.2.1 什么是冷备份? 数据库没有打开的情况下,使用操作系统命令或rman进行备份,由于数据库没有 打开,数据库的数据是干净一致的,不存在活动事务。 方式: 使用操作系统命令直接复制数据文件到另外一个目录即可,windows下直接复制粘 贴,其他平台 如linux下:cp
Oracle 数据安全
01
备份与容灾的重要性
02
备份与容灾概况
03
物理备份
04
逻辑备份
05
容灾
一. 为什么要进行备份和容灾?
1.1. 数据库系统故障 案例1:如某客户的IT设备机房突然停电,造成存储磁盘损坏,数据文 件也因此损坏,来电后数据库无法启动,如果没有备份,则数据库恢复 工作将非常艰难. 案例2:某客户的oracle数据库系统采用aix小机做硬件平台,但由于此 小机购买年份较早,早过了维保期,某天突然宕机,操作系统无法启动, 由于没有专业的小机维护人员,小机始终无法启动,业务也因此无法运 行,幸好有异机备份,在短时间内恢复了数据。 案例3:某客户要新装一套rac数据库,但由于安装过程报错,需要删除 软件并重新安装,但不小心连到了生产数据库,删除了生产库的数据库 软件,类似误删除操作还有很多惨痛的案例…
其他厂商提供的备份和容灾方式:
IBM的FlashCopy EMC的SRDF等存储复制技术
2.1 区分物理备份和逻辑备份
物理备份就是转储ORACLE物理文件(如数据文件、控制文件、归档日志文
件等),一旦数据库发生故障,可以利用这些文件进行还原; 逻辑备份就是对数据库对象(如用户、表、存储过程等)利用EXPORT等工具 进行导出工作,可以利用IMPORT等工具把逻辑备份文件导入到数据库。
LOG_MODE -----------ARCHIVELOG
恢复到来自百度文库
3.1 备份过程示例:
[oracle@db ~]$ rman target / --使用rman登录数据库 connected to target database: TESTDB (DBID=2592324560) RMAN> backup database format '/backup/fullbak_%U'; Starting backup at 2013/09/05 09:23:00 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=145 devtype=DISK channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00001 name=/u01/app/oracle/oradata/testdb/system.dbf input datafile fno=00003 name=/u01/app/oracle/oradata/testdb/sysaux.dbf input datafile fno=00004 name=/u01/app/oracle/oradata/testdb/users.dbf … channel ORA_DISK_1: starting piece 1 at 2013/09/05 09:23:01 channel ORA_DISK_1: finished piece 1 at 2013/09/05 09:24:07 piece handle=/backup/fullbak_05oj2uvl_1_1 tag=TAG20130905T092301 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:01:06 channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset including current control file in backupset including current SPFILE in backupset channel ORA_DISK_1: starting piece 1 at 2013/09/05 09:24:10 channel ORA_DISK_1: finished piece 1 at 2013/09/05 09:24:11 piece handle=/backup/fullbak_06oj2v1n_1_1 tag=TAG20130905T092301 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:04 Finished backup at 2013/09/05 09:24:11
3.恢复控制文件
RMAN> restore controlfile from '/backup/fullbak_06oj2v1n_1_1'; Starting restore at 2013/09/05 10:46:47 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=156 devtype=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:03 output filename=/u01/app/oracle/oradata/testdb/current.269.808996433 Finished restore at 2013/09/05 10:46:51 --mount控制文件 SQL> alter database mount; Database altered. SQL> select instance_name,status from v$Instance; INSTANCE_NAME STATUS ---------------- -----------testdb MOUNTED
三. rman物理备份
Rman是oracle数据库的一个组件,功能强大,既能备份也能恢复
rman可以备份 这些文件:
数据文件 归档日志文件
参数文件 控制文件
三. rman物理备份
恢复原理:基础整库备份+归档日志(+日志重演) 想要恢复的时间点 因此必须开启归档模式,让数据库的在线重做日志保存到归档日志目录 里,这样才能利用基点备份+归档日志重演数据库到指定时间 而如果使用非归档模式,则数据库不会保存在线重做日志,数据丢失后 将不能利用基点备份重演日志,通常用rman做物理备份。 查看归档是否开启:
可以看出备份全库时包括两部分:一个数据文件的备份集,其中包括了所有的 数据文件,一个控制文件+spfile的备份集,包括了控制文件和spfile
[root@db backup]# ls -lh total 811M -rw-r----- 1 oracle oinstall 795M Sep 5 09:23 fullbak_05oj2uvl_1_1 -rw-r----- 1 oracle oinstall 15M Sep 5 09:24 fullbak_06oj2v1n_1_1
一.为什么要进行备份和容灾?
1.2. 应用程序故障 案例:某客户的软件系统在试运行期间,由于需要上新的功能模块,开 发人员添加一个栏目时发现添加有问题,需要删掉此栏目,结果删除的 时候把上级目录也删掉了,导致整个目录的其他栏目都删掉了,此问题 是软件的一个bug,而此时undo回滚表空间的内容也已经冲掉了,如果 没有备份,数据将很难找回来。 1.3. 人为失误 案例:某客户维护一张表时,认为数据不再需要了,就truncate table t_xxx,结果后来又证明那张表还有需要的数据,但后悔已经来不及了…
2.假设此时磁盘发生损坏,并强制关闭了数据库
--强制关闭数据库 SQL> shutdown abort ORACLE instance shut down. --删除数据文件 [oracle@db testdb]$ ls current.269.808996433 goldengate.dbf redo03.dbf TESTDB undotbs2.dbf current.269.808996433.bak redo01.dbf sysaux.dbf ts_bbed.dbf undotbs3.dbf current.bak redo02.dbf system.dbf ts_mcl.dbf users.dbf [oracle@db testdb]$ rm -rf *
3.2 rman备份恢复场景示例: 现在已经做了全备,即基点备份,如果我们需要恢复数据库,我们就可以使用 这个全备的rman备份做基点,加上归档日志来恢复,如创建一个表并插入数 据,如果此时突然发生磁盘磁盘损坏,导致数据文件损坏及数据库异常终止, 可以按如下方法恢复: 1.在mcl用户下新建一张表,并插入数据
SQL> create table t (id number,name varchar2(30)); Table created. SQL> insert into t values (1,'mcl'); 1 row created. SQL> insert into t values (2,'admin'); 1 row created. SQL> insert into t values (3,'dba'); 1 row created. SQL> commit; SQL> select * from t; ID NAME ---------- -----------------------------1 mcl 2 admin 3 dba SQL> alter system switch logfile; System altered.
[oracle@db10g datafile]$ pwd /u01/oradata/ORCL/datafile [oracle@db10g datafile]$ cp *.dbf *.ctl *.log /backup/
特点:需要将数据库关闭才能做冷备,这样就影响了业务使用,因此在实际生 产环境不具实际使用价值 2.2.2 什么是热备份? 数据库在open状态,事务还在活动,此时备份就是热备份,oracle数据库支持热 备份,最常用最实用的是用rman进行热备份
二. 备份和容灾概况
我们有哪些方式避免各种自然灾害、人为失误及应用程序故障? Oracle为我们提供了多种备份和容灾方式:
1.冷备份(操作系统copy数据文件)
2.Rman物理备份 3.逻辑备份(exp/expdp)
4.rac
5.数据卫士(Dataguard) 6.Goldengate
使用sys或system用户用sqlplus登录数据库: SYS@orcl>archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/admin/orcl/archivelog 或者: SQL> select log_mode from v$database;
相关文档
最新文档