浅一下oracle热备份users表空间

前端之家收集整理的这篇文章主要介绍了浅一下oracle热备份users表空间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

数据库要运行在归档模式下:
archive log list
shutdown immediate
startup mount
alter database archivelog;
alter database open;
archive log list

热备份users表空间:

(1)实验环境相关信息查看

创建备份路径

  1. mkdir-p/home/oracle/hotbk/

这里为了测试更改归档文件的路径

  1. mkdir/home/oracle/arc_orcl_dest1/
  2. altersystemsetlog_archive_dest_1='location=/home/oracle/arc_orcl_dest1/';
  3. selectsequence#,namefromv$archived_log;
  4. altersystemswitchlogfile;
  5. altersystemswitchlogfile;
  6. altersystemswitchlogfile;
  7. selectsequence#,namefromv$archived_log;

查看数据文件

  1. sql>selectnamefromv$datafile;
  2. NAME
  3. ----------------------------------------------------------------------------------------------------
  4. /u01/app/oracle/oradata/orcl/system01.dbf
  5. /u01/app/oracle/oradata/orcl/sysaux01.dbf
  6. /u01/app/oracle/oradata/orcl/undotbs01.dbf
  7. /u01/app/oracle/oradata/orcl/users01.dbf
  8. Elapsed:00:00:00.00

查看表空间

  1. sql>selectnamefromv$tablespace;
  2. NAME
  3. ------------------------------
  4. SYSTEM
  5. SYSAUX
  6. UNDOTBS1
  7. USERS
  8. TEMP
  9. Elapsed:00:00:00.00

查看备份信息

  1. sql>select*fromv$backup;
  2. FILE#STATUSCHANGE#TIME
  3. -----------------------------------------------
  4. 1NOTACTIVE0
  5. 2NOTACTIVE0
  6. 3NOTACTIVE0
  7. 4NOTACTIVE102772627-SEP-16
  8. Elapsed:00:00:00.00
  1. sql>selectname,file#fromv$datafile
  2. 2;
  3. NAME
  4. ----------------------------------------------------------------------------------------------------
  5. FILE#
  6. ----------
  7. /u01/app/oracle/oradata/orcl/system01.dbf
  8. 1
  9. /u01/app/oracle/oradata/orcl/sysaux01.dbf
  10. 2
  11. /u01/app/oracle/oradata/orcl/undotbs01.dbf
  12. 3
  13. /u01/app/oracle/oradata/orcl/users01.dbf
  14. 4
  15. Elapsed:00:00:00.00

查看文件号及其检查点的编号

  1. sql>selectfile#,checkpoint_change#fromv$datafile;
  2. FILE#CHECKPOINT_CHANGE#
  3. ----------------------------
  4. 11027476
  5. 21027476
  6. 31027476
  7. 41027726
  8. Elapsed:00:00:00.01
  1. sql>selectfile#,checkpoint_change#fromv$datafile_header;
  2. FILE#CHECKPOINT_CHANGE#
  3. ----------------------------
  4. 11027476
  5. 21027476
  6. 31027476
  7. 41027726
  8. Elapsed:00:00:00.01

(2)真正开始备份
这里备份users这个表空间。

  1. altertablespaceusersbeginbackup;
  2. !cp-v/u01/app/oracle/oradata/orcl/users01.dbf/home/oracle/hotbk/
  3. altertablespaceusersendbackup;

查看备份点

  1. sql>select*fromv$backup;
  2. FILE#STATUSCHANGE#TIME
  3. -----------------------------------------------
  4. 1NOTACTIVE0
  5. 2NOTACTIVE0
  6. 3NOTACTIVE0
  7. 4NOTACTIVE102845427-SEP-16
  8. Elapsed:00:00:00.00

(3)模拟数据修改
sql> select owner,table_name from dba_tables where tablespace_name='USERS';
create table scott.ob2 as select * from dba_objects;
select count(*) from scott.ob2;
commit;
alter system switch logfile;
查看数据变化情况

  1. sql>selectfile#,checkpoint_change#fromv$datafile;
  2. FILE#CHECKPOINT_CHANGE#
  3. ----------------------------
  4. 11028188
  5. 21028188
  6. 31028188
  7. 41028454
  8. Elapsed:00:00:00.00
  9. sql>selectfile#,checkpoint_change#fromv$datafile_header;
  10. FILE#CHECKPOINT_CHANGE#
  11. ----------------------------
  12. 11028188
  13. 21028188
  14. 31028188
  15. 41028454
  16. Elapsed:00:00:00.00

和之前的比较,发现checkpoint_change发生了变化。


查看有没有修复的数据块:

  1. sql>select*fromv$recover_file;
  2. norowsselected
  3. Elapsed:00:00:00.00


模拟数据文件损坏

  1. sql>!rm-f/u01/app/oracle/oradata/orcl/users01.dbf

###### alter system flush buffer_cache;这里不要执行
## startup force

  1. sql>shutdownimmediate;
  2. Databaseclosed.
  3. Databasedismounted.
  4. ORACLEinstanceshutdown.
  5. sql>startup
  6. ORACLEinstancestarted.
  7. TotalSystemGlobalArea4041949184bytes
  8. FixedSize2259520bytes
  9. VariableSize889193920bytes
  10. DatabaseBuffers3137339392bytes
  11. RedoBuffers13156352bytes
  12. Databasemounted.
  13. ORA-01157:cannotidentify/lockdatafile4-seeDBWRtracefile
  14. ORA-01110:datafile4:'/u01/app/oracle/oradata/orcl/users01.dbf'

select * from v$recover_file;

  1. sql>select*fromv$recover_file;
  2. FILE#ONLINEONLINE_ERROR
  3. -----------------------------------------------------------------------------------------
  4. CHANGE#TIME
  5. -------------------
  6. 4ONLINEONLINEFILENOTFOUND
  7. 0
  8. Elapsed:00:00:00.01

备注:这里4号文件找不到


还原:使用备份的文件代替丢失的文件

  1. cp/home/oracle/hotbk/users01.dbf/u01/app/oracle/oradata/orcl/users01.dbf


再查看一下情况:
sql> select * from v$recover_file;

FILE# ONLINE ONLINE_ ERROR
---------- ------- ------- -----------------------------------------------------------------
CHANGE# TIME
---------- ---------
4 ONLINE ONLINE
1028454 27-SEP-16
报ERROR错误

恢复:使用备份之后的日志对数据文件进行前滚(把数据修改重现)

  1. recoverdatafile4;

sql> recover datafile 4;
Media recovery complete.
sql> select * from v$recover_file;

no rows selected

Elapsed: 00:00:00.00

sql> alter database open;

Database altered.

Elapsed: 00:00:01.43
sql> select count(*) from scott.ob2;

COUNT(*)
----------
86344

Elapsed: 00:00:00.02

到这里已经搞定了!!!!

写得不好,如果有什么错误请指出,谢谢!!!!

猜你在找的Oracle相关文章