备份表空间

      备份表空间指在数据库处于OPEN状态时备份起数据文件的方法。可以备份表空间的所有数据文件,也可以备份表空间的某个数据文件。注意:备份表空间只适用ARCHIVELOG模式。备份表空间可以分为 1脱机备份 2联机备份

                                                  脱机备份
       脱机备份指当表空间处于OFFLINE状态时,备份表空间所有数据文件或单个数据文件的过程。脱机备份适用ARCHIVELOG模式。优点:会生成较少的重做日志。
缺点:会影响表空间的业务操作。(因为SYSTEM 和正使用的UNDO 表空间都不能被脱机)具体步骤如下:

一 确定表空间所包含的数据文件,当备份表空间时,首先确定其所包含的数据文件。如果备份某个数据文件,则需要确定数据文件所在的表空间。
SQL> select file_name from dba_data_files
  2  where tablespace_name='USERS';

FILE_NAME                                                                      
--------------------------------------------------------------------------------
F:\APP\YANG\ORADATA\ORACL\USERS01.DBF   

二 设置 表空间为脱机状态。数据库在open状态下,复制表空间时必须使表空间offline,此时数据库将不能访问给表空间上的任何对象,从而可以确保其数据文件不会发生改变。                                       

SQL> ALTER tablespace users offline;

表空间已更改。

三  复制数据文件。可以备份表空间的所有数据文件,也可以备份表空间的某个数据文件。

SQL> host copy f:\app\yang\oradata\oracl\users01.dbf f:\

四。设置数据文件为联机。此后,系统可以正常访问该表空间的对象。

SQL> ALTER tablespace users online;

表空间已更改。

                                              联机备份
联机备份指当表空间处于ONLINE状态时,备份表空间所有数据文件或单个数据文件的过程。联机备份适用ARCHIVELOG模式。优点:不影响表空间上的业务操作。
缺点:会生成更多的REDO信息和归档信息。
基本步骤和脱机备份一样。

1) 确定表空间所包含的数据文件,当备份表空间时,首先确定其所包含的数据文件。如果备份某个数据文件,则需要确定数据文件所在的表空间。

SQL> select file_name from dba_data_files
  2  where tablespace_name='USERS';

FILE_NAME                                                                      
--------------------------------------------------------------------------------
F:\APP\YANG\ORADATA\ORACL\USERS01.DBF                                          

2)设置表空间为备份模式,联机备份表空间时,必须将表空间设置为备份模式。此后,系统会在数据文件头块上加锁,使得数据文件头不会发生改变。并且头块会记录将来恢复时的日志序列号,SCN的信息。

SQL> ALTER tablespace users begin backup;

表空间已更改。

3)复制数据文件。可以备份表空间的所有数据文件,也可以备份表空间的某个数据文件。

SQL> host copy f:\app\yang\oradata\oracl\users01.dbf f:\lib

4)设置表空间为正常模式。

SQL> ALTER tablespace users end backup;

处理联机备份失败的情况。

进行联机热备份时,服务器发生故障,如掉电,重新启动服务器,启动数据库时,无法打开数据库,Oracle要求进行介质恢复,因为表空间还处在热备份状态。
模拟现象及解决方法:
1)确定文件
SQL> select file_name from dba_data_files
  2  where tablespace_name='USERS';

FILE_NAME                                                                      
--------------------------------------------------------------------------------
F:\APP\YANG\ORADATA\ORACL\USERS01.DBF                                          

2)将其设置为联机备份模式。

SQL> alter tablespace users begin backup;

表空间已更改。

3)模拟失败。

SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup open
Total System Global Area  535662592 bytes                                      
Fixed Size                  1334380 bytes                                      
Variable Size             159384468 bytes                                      
Database Buffers          369098752 bytes                                      
Redo Buffers                5844992 bytes                                      
数据库装载完毕。
ORA-10873: file 4 needs end backup before opening a database
ORA-01110: 数据文件 4: 'F:\APP\YANG\ORADATA\ORACL\USERS01.DBF'

由于数据文件处于联机备份状态,打开数据库时出现错误提示。为了打开数据库,必须使该文件结束备份状态。

3)通过提示,可以看到datafile 4 处于备份状态。使用如下语句结束其备份状态。
SQL> alter database datafile 4 end backup;

数据库已更改。

当然,有三种方式结束备份状态。

1)如果有多个数据文件处于备份状态,可以使用alter database end backup命令结束联机备份。

2)如果只有某个数据文件处于备份状态,可以使用ALTER DATABASE DATAFILE "具体文件名"或文件号 END BACKUP;

3)另外可以使用recover datafile 4 ;使其结束备份状态。

最后 打开数据库。

SQL> alter database open;

数据库已更改。
  
      由于我只是在试验情况下做的实验,不可能将生产环境中的情况模拟完全。望见谅。。。

如果您有其他的案例,不妨拿来分享一下。。。。

 

时间: 2024-08-02 20:19:53

备份表空间的相关文章

Oracle RMAN中备份表空间名为'TEST'时需要注意的问题

'TEST'算是oracle的一个保留字,因此在有些地方使用时要注意,目前我发现在rman中备份时oracle把它作为保留字对待. TEST在rman里确实是保留字... 备份其它表空间时只需要直接写表空间名字就可以: RMAN> backup tablespace undotbs2,users1,test2; 启动 backup 于 2009/09/01 19:37:14 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 启动全部数据文件备份集 通道 ORA_DISK_1: 正在指

为什么联机备份表空间中的数据文件会产生大量redo,冻结数据文件头的scn(引用)

http://space.itpub.net/7728585/viewspace-545610 在Oracle备份中,我们可以使用alter tablespace ... begin backup将表空间置于联机备份模式,然后用操作系统命令进行数据文件的物理拷贝,达到备份的目的,这个过程中数据文件还是照样联机,并进行正常的数据插入,但会导致比平常更多的REDO记录的产生 产生较多的REDO记录是由热备引起的,因为在热备过程中,我们采用copy/ocopy命令,这个是属于操作系统的命令,他和Ora

SYSTEM 表空间管理及备份恢复

--============================= -- SYSTEM 表空间管理及备份恢复 --=============================       SYSTEM表空间是Oracle数据库最重要的一个表空间,存放了一些DDL语言产生的信息以及PL/SQL包.视图.函数.过程等,称之为数据字典, 因此该表空间也具有其特殊性,下面描述SYSTEM表空间的相关特性及备份与恢复.        一.SYSTEM表空间的管理     1.建议不存放用户数据,避免用户错误导致

Oracle 表空间与数据文件

--============================== --Oracle 表空间与数据文件 --============================== /* 一.概念     表空间:是一个或多个数据文件的逻辑集合     表空间逻辑存储对象:永久段-->如表与索引                         临时段-->如临时表数据与排序段                      回滚段-->用于事物回滚或闪回内存的撤销数据     表空间分类:系统表空间(sys

Oracle RMAN完全恢复案例(五)新建表空间没有备份

案例5: --新建表空间没有备份,datafile 被破坏 1)测试环境 07:52:16 SQL> create tablespace lx 07:52:24   2   datafile '/u01/app/oracle/oradata/prod/lx01.dbf' size 10m; Tablespace created. 07:52:38 SQL> conn scott/tiger Connected. 07:52:40 SQL> 07:52:40 SQL> create

oracle手工完全恢复(五)新建的表空间,没有备份,datafile被删除

案例4:recover datafile --新建的表空间,没有备份,datafile被删除 恢复步骤:起库,通过V$recover_file 查看需要恢复的文件,由于没有备份,只能将数据文件offline,进行数据文件重建,再进行recover datafile ,online即可 (1)模拟环境 SQL> create tablespace cuug 2  datafile '/u01/app/oracle/oradata/anny/cuug01.dbf' size 10m; Tablesp

备份和恢复Oracle只读表空间的方法

--====================== -- 只读表空间的备份与恢复 --====================== 一.只读表空间的特性 使用只读表空间避免对静态数据的频繁备份 当使用alter tablespace tbs read only时,数据文件会执行检查点进程(将所有脏缓冲区的内容写至磁盘), 当前的SCN号会被标注,同时存储了SCN的数据文件头部被冻结.控制文件内也会记录该数据文件的冻结信息. 可以清除只读表空间的对象 二.只读表空间的备份 一般情况下,只读表空间只需

Oracle备份数据导入到其他的表空间(只设置默认表空间无效)

  我们在导入一个Oracle备份的数据文件(*.dmp)到另外一个数据库的用户下时,如果需要更换表空间,可以采用下几个办法. 假设导出用户名:EXP_USER 表空间为:EXP_TSPACE 导入用户名:IMP_USER 表空间为:IMP_TSPACE 1.设置导入用户的默认表空间以及权限. a)建表语句如下: create user IMP_USER Sql代码 identified by "密码" default tablespace IMP_TSPACE temporary t

使用rman增量备份来更新传输表空间

要使用rman增量备份来更新传输表空间需要了解传输表空间与rman的增量备份.这里主要介绍使用增量备份来更新传输表空间,就不介绍传输表空间与rman增量备份.下面是使用rman增量备份来更新传输表空间的操作.目标主机是weblogic29,原主机是weblogic28. 1.在两台数据库服务器上配置NFS 配置/etc/exports nfs允许挂载的目录及权限需在文件/etc/exports中进行定义.例如,我们要将数据文件所在目录 /u01/app/oracle/oradata/jytest