Oracle备份与恢复

#! https://zhuanlan.zhihu.com/p/621038712

Oracle备份与恢复

备份即保存数据库的副本。
恢复就是把以前从数据库中备份的文件还原到数据库中。
本文将学习1 如何备份数据库 2 如何恢复数据库

1 数据库备份

数据库备份就是将数据库的内容全部复制出来保存到计算机的另一个位置或者其他存储设备上。
数据库备份分为物理备份和逻辑备份。

物理备份只指通常所说的归档模式备份(又叫热备份)和非归档模式备份(又叫冷备份)。
归档模式备份是当数据库的模式设置成归档模式时对数据库进行的备份
非归档模式备份是当数据库的模式设置成非归档模式时对数据库的备份

逻辑备份主要是针对数据库的导入和导出操作。Oracle10g后进入数据泵,使用EXPDP/IMPDP的方式对数据进行导入导出操作。

1.1 脱机备份

脱机备份称为冷备份,使用管理员身份的用户使用shutdown命令关闭数据库的服务,之后复制需要的文件。
包括把数据文件和控制文件等相关的内容复制到其他磁盘路径。
如果数据库出现问题,就可以把从数据库中复制出来的相关内容再复制回原来的数据库目录中。

1.2 联机备份

联机备份称为热备份呢,是在数据库的归档模式下进行的备份。查看日志命令如下
archive log list

使用下列命令将数据库日志模式改为归档模式

alter system set log_archive_start=true scope=spfile; --修改系统给的日志方式
shutdown immediate; --关闭数据库
startup mount; --启动mount实例,但是不启动数据库
alter database archivelog; --更改数据库为归档日志模式

2 数据库恢复

数据库恢复就是把从数据库中备份出来的数据重新还原给原来的数据库,数据库的恢复技术分为完全恢复和不完全恢复两种。
完全恢复是指把数据库恢复到数据库失败时的数据库状态。
不完全恢复是指将数据库恢复到数据库失败前的某一时刻的数据库状态。

数据库恢复也分为物理恢复和逻辑恢复。
物理恢复就是把从数据库中备份的文件重新复制到原来的数据库中;
逻辑恢复就是把从数据库中导出的数据再导入到原来的数据库

3 物理 备份/恢复表空间test

3.1 备份表空间TEST
alter database open; --(1)改变数据库的状态为open
alter tablespace test begin backup; --(2)开始备份表空间
--(3)打开oradata文件夹(一般数据库对象存放在该文件),把文件复制到磁盘中的另一个文件夹或其他磁盘上。
`alter tablespace TEST end backup; --(4结束表空间备份)`

3.2 恢复表空间中数据文件
  1. 对当前日志进行归档
    alter system archive log current
  2. 切换日志文件
    由于在一个数据库中一般有三个日志文件,所以需要使用3次下面的语句来切换日志文件
    alter system switch logfile
  3. 关闭数据库服务
    为了房子表空间中的数据文件丢失,先把数据库关闭,然后删除TEST表空间中的数据文件TESTONE.DBF
    shutdown immediate; --关闭数据库
  4. 删除数据文件并重新启动数据库
    删除数据文件首先要找到存放数据文件的位置,在默认情况下数据文件会存放在书库的ORADATA文件夹下,
    也有在创建表空间添加数据文件时指定的目录。
    如果不清楚文件的位置,可以在DOS窗口下的v$datafile数据字典中查看数据文件的位置,找到后直接删除即可。
    然后启动数据库 startup 会显示错误提示,丢失数据文件
  5. 将数据文件设置成脱机状态并删除
    在恢复数据文件之前,需要先把数据文件设置成脱机状态offline,并删除该文件
    alter database datafile 10 offline drop;
  6. 把数据库文件设置成open
    alter database open
  7. 恢复数据文件
    在数据库的状态是open时就可以恢复数据文件了,命令如下
    recover datafile 10 auto
  8. 设置数据文件为联机状态
    在恢复玩数据库后还需要把数据文件设置成联机状态
    alter database datafile 10 online

至此,完成了数据文件的回复操作,可以重启数据库验证是否恢复成功。

4 逻辑备份和恢复数据库

4.1 逻辑导出数据 --EXP–

EXP不是在SQLplus状态下,而是DOS命令窗口下完成的

 exp username/password --导出用户
 exp username/password file="filename.dmp" tablespaces="tablesapces_name" 
 --filename:存放备份的表空间的 数据文件 tablesapces_name:要备份的表空间的名称
4.2 使用EXPDP导出数据

数据泵技术是在数据库之间或者在数据库与操作系统之间传输数据的工具。
EXPDP是数据泵导出的工具,它可以把数据库中对象导出到操作系统中。
使用EXPDP要先创建目录对象,通过这个对象就可以找到备份数据的数据库服务器,
并且使用EXPDP工具备份出来的数据必须存放在目录对象对应的操作系统的目录中。
下面是EXPDP导出数据流程:

  1. 创建目录对象
    create directory directory_name as 'file_name'; --directory_name创建的目录名称,file_name,存放数据的文件夹名
  2. 给使用目录的用户赋权限
    新创建的目录对象不是任何用户都可以使用的,只有拥有该目录使用权的用户才能使用,
    所以要为使用该目录的用户赋一个权限。赋权限的语句如下:
    grant read, write on directory directory_name to username
  3. 导出表
    前面已经创建好目录,EXPDP工具也是在DOS窗口下实现的
    expdp username/password directory=directory_name dumpfile=file_name tables=table_name
    directory_name:存放导出数据的目录名称 file_name:导出数据存放的文件名 table_name:准备导出的表名,对于多个表可以用逗号隔开。
4.3 使用IMP导入数据

imp username/password file=file_name.dmp tables=table_name

4.3 使用IMPDP导入数据

使用EXPDP导入数据前提是数据是使用EXPDP导出的

impdp username/password directory=directory_name dumpfile=file_name tables=table_name

参考文献:

《Oracle从入门到精通》

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Oracle数据库备份还原数据库管理工作中非常重要的一部分,以下是一些基本步骤: 备份: 1. 选择备份方式:Oracle数据库备份可以使用物理备份和逻辑备份。物理备份备份整个数据库的副本,包括数据文件、控制文件和日志文件。逻辑备份则是备份数据库中的逻辑对象,如表、视图、存储过程等。 2. 选择备份工具:Oracle提供了多种备份工具,如RMAN、expdp、datapump等。其中,RMAN是最常用的备份工具。 3. 设置备份参数:根据备份需求,设置备份参数。例如,备份类型、备份目录、备份频率、备份策略等。 4. 执行备份:根据设置的备份参数,执行备份任务。 还原: 1. 准备还原环境:在还原之前,需要准备好还原环境,包括还原的目录、数据库实例、监听器等。还原目录应该与备份目录分开,以免还原过程中覆盖原有备份。 2. 选择还原方式:根据备份类型,选择相应的还原方式。如果是物理备份,则需要使用RMAN还原;如果是逻辑备份,则可以使用impdp或datapump还原。 3. 设置还原参数:设置还原参数,如还原目录、还原的表空间、还原的时间点等。 4. 执行还原:根据设置的还原参数,执行还原任务。 需要注意的是,在备份还原过程中,应该保持数据的一致性和完整性,以免造成数据损失或错误。同时,备份还原的频率应该根据业务需求和数据重要性进行合理设置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值