开发者社区> yangyi_dba> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

备份表空间

简介:       备份表空间指在数据库处于OPEN状态时备份起数据文件的方法。可以备份表空间的所有数据文件,也可以备份表空间的某个数据文件。注意:备份表空间只适用ARCHIVELOG模式。
+关注继续查看

      备份表空间指在数据库处于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;

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

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


 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
线性表从第i个元素插入
线性表从第i个元素插入
50 0
mysql备份单个表恢复失败
问题 备份数据库 mysqldump -uroot -p database_name tab1 > test.sql; # 远程加 -h 恢复数据库 使用的是source,进入数据库以后 use database_name; source test.
5905 0
mysql集群的备份与还原
应用场景 当使用mysql集群数据库的时候,有时候会误删一些数据,那么数据就缺失了完整性,现在需要将数据进行备份,将误删的数据还原出来,这样保证数据的完整性。
1209 0
树莓派 之 备份树莓派
脚本来自官方论坛的一个 帖子,版权归属原作者jinx 可配合crontab定时执行备份 sudo touch bkup_rpimage.sh sudo touch bkup_rpimage.
740 0
RMAN使用备份按时间点传输表空间
使用until time或者SCN来执行transport tablespace 如果在执行传输表空间操作时,对transport tablespace命令指定了目标时间,那么RMAN将在辅助实例中使用备份将表空间还原到目标时间之前并执行按时间点恢复将辅助数据库恢复到指定的目标时间点。
859 0
+关注
yangyi_dba
数据库相关技术专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
数据库异地备份及不还原快速查询备份集最佳实践
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载