Oracle数据文件的备份与恢复

数据文件中包含数据库中的用户数据或应用程序数据。是oracle体系结构中非常重要要的一部分。因此对数据文件的备份与恢复时每一位DBA的必修课。

本次测试的思路是分为4个步骤1.通过增加数据文件的大小,向表空间中添加新表新数据来调整数据库结构。2.备份数据文件和控制文件。3.删除数据文件,然后进行恢复。4.确认恢复过来的数据文件中是否完整,先前添加的表和数据是否完整。

第一步:1.增加表空间大小。

首先我们先查看一下每个表空间的大小。

SQL> selecttablespace_name,sum(bytes/1024/1024) as FreeSize

2  from dba_free_space

3  group by tablespace_name;

TABLESPACE_NAME                  FREESIZE

------------------------------ ----------

SYSAUX                            31.1875

UNDOTBS1                            77.75

USERS                               .5625

SYSTEM                             6.5625

EXAMPLE                             21.25

由上可知:目前5个表空间基本空间都不足,因为我们基本不会使用example例子表空间,所以接下来只为其他4个表空间添加数据文件。

我们先查一下每一个表空间和数据文件的对应关系和位置。

SQL> Select tablespace_name, file_namefrom dba_data_files;

TABLESPACE_NAME

------------------------------

FILE_NAME

-------------------------------------------------------------------------------

EXAMPLE

C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF

USERS

C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF

UNDOTBS1

C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF

TABLESPACE_NAME

------------------------------

FILE_NAME

-------------------------------------------------------------------------------

SYSAUX

C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF

SYSTEM

C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF

接下来就开始添加128M数据文件。

SQL> alter tablespace system add datafile'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SY

STEM02.DBF ' size 128M;

altertablespace system add datafile 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM0

2.DBF

*

第 1 行出现错误:

ORA-01119: 创建数据库文件 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM02.DBF

' 时出错

ORA-27040: 文件创建错误, 无法创建文件

OSD-04002: 无法打开文件

O/S-Error: (OS 123) 文件名、目录名或卷标语法不正确。

实际操作时容易出现了如上错误,原因是:'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SY

STEM02.DBF ' 两个单引号之间(尤其是头和尾)存在空格,所以在word编辑后再往数据库中执行时一定要格外小心。

接下来就很顺利了

SQL> alter tablespace system add datafile'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM02.DBF' size 128M;

Tablespace altered.

SQL> alter tablespace sysaux add datafile'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX02.DBF' size 128M;

Tablespace altered.

SQL> alter tablespace undotbs1 add datafile'C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS02.DBF' size 128M;

Tablespace altered.

SQL> alter tablespace users add datafile'C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS02.DBF' size 128M;

Tablespace altered.

查看一下表空间是否已经变大。

SQL> selecttablespace_name,sum(bytes/1024/1024) as FreeSize

2  from dba_free_space

3  group by tablespace_name;

TABLESPACE_NAME                  FREESIZE

------------------------------ ----------

SYSAUX                             157.75

UNDOTBS1                           205.75

USERS                            127.5625

SYSTEM                           133.5625

EXAMPLE                             21.25

由上结果可知:已经添加数据文件成功,表空间已经变大。

2.接下来我们继续在表空间中创建新的表,并添加数据。

2.1首先是创建一个账户,并赋权。

SQL> create user test identified byszc12345 default tablespace users temporary

tablespace temp;

用户已创建。

SQL> grant connect,resource to test;

授权成功。

2.2 创建一个testtable表,并添加数据

鉴于方便,我们直接复制scott用户的dept表中的数据。

首先是赋权test可以select scott用户的dept表。

SQL> grant select on scott.dept to test;

授权成功。

然后创建testtable表,内容为dept的表内容。

SQL> create table testtable as select *from scott.dept;

表已创建。

SQL> select *  from testtable;

DEPTNO DNAME          LOC

---------- -------------- -------------

90 tec                guangzhou

70 tec                beijing

10 ACCOUNTING     NEW YORK

20 RESEARCH       DALLAS

30 SALES           CHICAGO

40 OPERATIONS     BOSTON

60 tec               shanghai

已选择7行。

接下来我们先备份数据文件和控制文件,下面的是一位大牛的原话,我直接粘贴了:

“切记:每次对数据库结构(调整表空间,增减数据文件)后,最好能立即备份一次数据库,并备份一次控制文件!一个好的DBA不是会多少奇怪的花样,弄一些稀奇古怪的参数来显示自己的博学,而是踏踏实实的做好每个简单的细节!细节决定成败!”

第二步:备份数据文件和控制文件。

1.先查看数据文件的位置,为备份做准备

Select tablespace_name, file_name fromdba_data_files order by tablespace_name;

2.表空间设置为热备份模式。

SQL> alter tablespace SYSAUX beginbackup;

表空间已更改。

SQL> alter tablespace SYSTEM beginbackup;

表空间已更改。

SQL> alter tablespace UNDOTBS1 beginbackup;

表空间已更改。

SQL> alter tablespace USERS beginbackup;

表空间已更改。

3.将数据文件复制一份到备份目录中。

4.关闭表空间的热备份模式。

SQL> alter tablespace SYSAUX end backup;

表空间已更改。

SQL> alter tablespace SYSTEM end backup;

表空间已更改。

SQL> alter tablespace UNDOTBS1 endbackup;

表空间已更改。

SQL> alter tablespace USERS end backup;

表空间已更改。

5.日志切换

SQL> Alter system switch logfile;

系统已更改。

6.备份控制文件

SQL> Alter database backup controlfileto 'c:\oracle\orcl\control02.bak';

数据库已更改。

7.再日志切换

SQL> Alter system switch logfile;

系统已更改。

第三步:删除users表空间的数据文件

Shutdown immediate;然后删除USERS01.DBF和USERS02.DBF,然后startup。

第四步:恢复数据文件并测试数据完整性

重启后会提示:

SQL> startup

ORA-32004: obsolete or deprecatedparameter(s) specified for RDBMS insta

ORACLE 例程已经启动。

Total System Global Area  778387456 bytes

Fixed Size                  1374808 bytes

Variable Size             260048296 bytes

Database Buffers          511705088 bytes

Redo Buffers                5259264 bytes

数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 4: 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'

这时就先将之前的备份,复制到数据文件指定的目录。

之后执行命令恢复即可。

SQL> recover database;

完成介质恢复。

通过上述结果会看到,恢复的售后不需要手工干预,是以因为这里没有提示手工干预,是因为我提前早已设置到归档目录,并将配置添加到spfile文件中,所以默认情况下就可以找到,否则还是会提示手工输入的。

验证一下数据文件是否完整。

SQL> conn sys/oracle as sysdba;

已连接。

SQL> alter database open;

数据库已更改。

SQL> conn test/szc12345

已连接。

SQL> select * from testtable;

DEPTNO DNAME          LOC

---------- -------------- -------------

90 tec               guangzhou

70 tec               beijing

10 ACCOUNTING     NEW YORK

20 RESEARCH       DALLAS

30 SALES          CHICAGO

40 OPERATIONS     BOSTON

60 tec              shanghai

已选择7行。

由上可知:数据很完整。整个的数据文件的备份与恢复就全部做完了,相对比较简单,就是过程感觉麻烦一点。

转载于:https://blog.51cto.com/greetwin/1208043

Oracle数据文件的备份与恢复相关推荐

  1. oracle物理文件删除如何恢复,Oracle数据文件物理删除后的恢复

    做系统管理的都是这样,难免会误删文件,某天要是把某个Oracle数据文件删除,那该如何恢复呢?(这里数据库是OPEN的,并且未关闭) 建立测试表空间 创建测试用户 插入测试数据 删除数据文件 恢复数据 ...

  2. oracle 文件大小为零,windows Oracle数据文件大小为0的恢复case

    本站文章除注明转载外,均为本站原创: 转载自love wife love life -Roger 的Oracle技术博客 本文链接地址: windows Oracle数据文件大小为0的恢复case 一 ...

  3. oracle查看数据被谁删掉了,oracle数据文件被误删恢复

    ----数据文件被误恢复方法有两种.如果发现数据文件被删除咯,此时数据库是open状态,可以直接通过句柄恢复,如果发现数据库已经宕机了,就只能用其他方式咯.具体方法,如下: 1.利用句柄恢复数据文件 ...

  4. oracle数据文件被误删或损坏故障处理

    oracle数据文件被删或损坏故障描述: 数据库数据文件由于误操作被删除掉或由于磁盘坏掉导致数据文件损坏,数据库每十分钟读取损坏数据库文件失败后会提示: ORA-01116: 打开数据库文件 78 时 ...

  5. 在HPUX中IA64和PA-RISC两种架构下Oracle数据文件

    最近刚购回一台IA64的HP小机,装好Oracle后,经测试可以把PA-RISC架构下的oracle数据文件直接copy 过来使用.之前有看过一个在HP小机上RAC的异构就是说PA-RISC和IA64 ...

  6. oracle 查询数据库io,查看Oracle数据文件和磁盘i/o情况

    查看Oracle数据文件和磁盘i/o情况 --查询当前用户使用了多少还原表空间 select d.username,c.name,b.writes from v$transaction a,v$rol ...

  7. 复用Oracle数据文件,Oracle控制文件的备份、恢复以及多路复用

    前言 今天给大家带来有关Oracle控制文件的技术分享.不积跬步无以至千里,不积小流无以成江海.Oracle技术博大精深,以我一个人的力量,那无异于蜉蝣于天地,沧海之一粟.在此,笔者抛砖引玉,希望读者 ...

  8. Oracle数据文件转移

    如何把数据文件从C盘移动到D盘呢? 很简单,三个步骤就行了 第一步:把表空间Offline,把表空间的数据文件移动到D盘指定的目录. 第二步:修改表空间文件路径alter database renam ...

  9. Oracle数据文件、用户、schema、实例

    接上一篇关于Oracle的表空间.数据文件.用户的随笔,我凭自己的认识又画了一张关于数据文件.用户.schema.实例的关系图,不对的地方还请各位指正. 注:1.改变用户的缺省schema:alter ...

最新文章

  1. 12小时进制的时间输出的编辑代码
  2. MongoDB部署副本集
  3. wpf使用入式mysql_使用 WPF 和 MySQL 搭建小型人资管理系统——主要页面
  4. 有关系统环境变量的设置问题
  5. Android 系统(218)---Android的事件分发机制以及滑动冲突的解决
  6. 董明珠今晚开启抖音直播首秀;传苹果将去掉 iPhone 闪电接口;PyTorch 1.5 发布 | 极客头条...
  7. CodeVS 1031 质数环(DP)
  8. 数据流中的中位数 Find Median from Data Stream
  9. 五寸照片尺寸是多少?如何自己制作证件照?
  10. 【IoT】 产品设计:结构设计之PCB板框图设计
  11. 秋招Java岗,心态大崩,今年的面试真的有必要这么卷吗?
  12. 计算机管理无法打开权限不足,win10管理员权限不足怎么设置_win10管理员权限不足如何解决...
  13. 伙伴云品牌升级:logo换新,调性更潮
  14. 未加载coreavcdecoder.ax所用的符号
  15. Nature计算社会科学特刊:如何对21世纪人类社会进行有意义的度量?
  16. Stduino学习(二十四)敲击传感器模块
  17. 设计一个算法求象棋这些棋子各代表哪些数字
  18. 【数据库】期末复习:SQL语句、关系代数的运算、范式的定义和判断、求最小函数依赖集、ER图转关系模式
  19. ERP实施-新能源-三元锂电池
  20. Python-七段数码管的绘制

热门文章

  1. OpenCV | OpenCV中cvgoodFeaturesToTrack函数详细注释
  2. 从零起步CMFCToolBar用法详解
  3. 电子工程可以报考二建_毕业证上财务管理专业,可以报考二建吗?
  4. windows上dmg转换cdr_云主机装黑果实践(6):处理云主机上变色龙启动后置过程:驱动和黑屏...
  5. 共建智慧海关 第四范式打造快、准、稳海关单证识别系统
  6. 儿童节,今天我们不做大人
  7. 【Python】挑战SQL:图解Pandas的数据合并merge
  8. 【推荐系统】五个工业风满满的 Look-alike 算法
  9. 【CV】多目标跟踪:监控领域你必须要了解的算法
  10. 李航老师《统计学习方法》的代码实现、课件、作业等相关资源的最全汇总