Oracle备份方式

Oracle备份方式数据库备份与恢复命令导出/导入(Export/Import);冷备份;热备份;rman数据备份与恢复命令导入导出imp/exp冷备份冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信

大家好,欢迎来到IT知识分享网。

数据库备份与恢复

  • 命令导出/导入(Export/Import);
  • 冷备份;
  • 热备份;
  • rman数据备份与恢复

image

命令导入导出

imp/exp

冷备份

冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。

冷备份文件内容

冷备份须拷贝的文件: 所有数据文件、所有控制文件、所有联机REDO LOG文件、Init.ora文件(可选)。
冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

备份DBF文件

1.关闭数据库
如不知道文件位置,关闭数据库之前先查询出控制文件、数据文件、日志文件的位置。

sqlplus /nolog
connect /as sysdba
shutdown normal;

image

2.拷贝全部的数据文件、全部的REDO日志文件、全部的控制文件、初始化参数文件(ora文件)。

-- 控制文件
select name from v$controlfile;
-- 数据文件,查看表空间DBF物理文件位置也可以查看v$datafile
select v$tablespace.name,v$datafile.name from v$tablespace, v$datafile where v$tablespace.ts#= v$datafile.ts#;
-- 日志文件
select member from v$logfile;

-- 初始化参数文件,这个文件夹下的ora文件(可不备份)
SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile';

通过sql查看相关文件的具体位置。把全部的DBF数据文件(不用备份temp文件)、全部的CTL控制文件、全部的LOG日志文件拷贝出来。
image

3.重启Oracle数据库
即使服务没有启动,sqlplus也可以连接登录。

sqlplus /nolog
connect /as sysdba
startup

image

恢复DBF文件

sqlplus /nolog
connect /as sysdba
#关闭ORACLE数据库
shutdown immediate;

#把控制文件、数据文件、日志文件覆盖到oracle位置。

#启动ORACLE数据库
startup;

如果只恢复dbf文件,控制文件和日志文件没有放回去,会报如下错误:
image

#恢复文件
recover datafile 'D:\ORACLE\ORADATA\SYSTEM01.DBF';
alter database open;

冷备份优缺点

优点
●非常快速、容易的备份方法,只需简单拷贝文件;
●非常容易恢复到某个时间点上,只需将文件再拷贝回去;
●能与归档方法相结合,做数据库“最佳状态”的恢复;
●低度维护,高度安全。
缺点
●单独使用时,只能提供到“某一时间点上”的恢复;
●实施冷备份的全过程中,数据库必须是关闭状态,因此会影响正常工作;
●不能按表或按用户恢复。

热备份

热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。

更改数据库为归档模式

#查看归档模式
archive log list;

#更改数据库为归档模式
sqlplus /nolog
connect /as sysdba
shutdown immediate;  #立即关闭数据库

startup mount;  #启动实例并加载数据库,但不打开
alter database archivelog;  #更改数据库为归档模式
alter database open;  #打开数据库
alter system archive log start;  #启用自动归档

exit;

image

热备份步骤

  1. 备份数据文件
    备份表空间的dbf数据文件
#设置表空间为备份状态
alter tablespace tbl_sp begin backup;

#备份tbl_sp表空间的数据文件
select v$tablespace.name,v$datafile.name from v$tablespace, v$datafile where v$tablespace.ts#= v$datafile.ts#;

#回复表空间为正常状态
alter tablespace tbl_sp end backup;
  1. 备份归档日志文件
    备份redo日志文件
    最早的概要日志序列到当前日志序列的联机redo日志全部拷贝备份。
#强迫日志切换,让Oracle直接使用下一个日志组,而不管当前使用的日志组是否写满
alter system switch logfile;
#获取当前的日志顺序号
archive log list
  1. 备份控制文件
    将控制文件重构在trace文件中,直接打开trace可以查看重构控制文件的命令
    trace文件提供了两种创建控制文件的脚本,分别针对两种不同的应用场景:NORESETLOGS适用于当前redo log可用,而RESETLOGS适用于当前redo log不可用。
#获得控制文件备份
alter database backup controlfile to trace;

#为session加上标记,方便查找trace文件
alter session set tracefile_identifier='bak_control';

#将当前controlfile文件的创建语句放到了trace文件中
alter database backup controlfile to trace;

#获得当前trace文件生成路径
select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));

#找到刚才生成的文件并打开查看内容

image

恢复

dbf文件损坏恢复

#将损坏的表空间文件脱机
alter database datafile 'D:\ORACLE\DATABASE\INS_DATA.DBF' offline;
#把dbf文件复制回去
cp D:/backup/INS_DATA.DBF D:\ORACLE\DATABASE\INS_DATA.DBF
#恢复数据文津
recover datafile 'D:\ORACLE\DATABASE\INS_DATA.DBF';

alter database datafile 'D:\ORACLE\DATABASE\INS_DATA.DBF' online;

重构控制文件

1.执行脚本,重建控制文件

(CREATE CONTROLFILE REUSE DATABASE "ORCL"
 RESETLOGS
  NOARCHIVELOG......)

2.执行介质恢复
RECOVER DATABASE USING BACKUP CONTROLFILE
3.打开数据库ALTER DATABASE OPEN RESETLOGS;
4.添加临时表空间

热备份优缺点

优点
●可在表空间或数据库文件级备份,备份的时间短;
●备份时数据库仍可使用;
●可以恢复到某一时间点上;
●恢复快速。
缺点
●不能出错,否则将不能正常恢复数据;
●维护较困难,需要一定的oracle数据库知识。

rman

RMAN是Oracle数据库软件自带的备份/恢复工具。RMAN只能用于9i或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。

备份

备份数据文件
#连接数据库
rman target / log D:\backup\rman_logs.txt

#没有显式指定FORMAT参数,rman会自动为每个备份片段命名,并保存在ORACLE_HOME/database目录下
BACKUP DATABASE;
#整库备份
BACKUP DATABASE FORMAT 'D:\backup';
#查看创建的全库备份
LIST BACKUP OF DATABASE;

#备份表空间
backup tablespace TBLSP_NAME;
#查看指定的表空间备份
LIST BACKUP OF TABLESPACE TBLSP_NAME;

#备份指定数据文件
select file_name,file_id,tablespace_name from dba_data_files; #查看数据文件机器序号
#备份指定序号的文件
BACKUP DATAFILE num;
#查看指定数据文件的备份
LIST BACKUP OF DATAFILE num;
备份控制文件
#通过rman做任何备份操作的同时,都会自动对控制文件做备份
CONFIGURE CONTROLFILE AUTOBACKUP ON;

#手动备份控制文件
BACKUP CURRENT CONTROLFILE;

#执行BACKUP时指定INCLUDE CURRENT CONTROLFILE参数
BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;

#查看备份的控制文件
LIST BACKUP OF CONTROLFILE;

备份归档日志文件

归档日志对于数据库介质恢复相当关键,虽然不像控制文件那样一旦损坏则数据库马上崩溃。但归档日志文件能确保我们将数据库恢复到备份之前的任意时刻。
在RMAN中备份归档日志有两种方式:

#备份归档日志
BACKUP ARCHIVELOG ALL;

#BACKUP过程中利用PLUS ARCHIVELOG参数备份
BACKUP DATABASE PLUS ARCHIVELOG;

增量备份

如果数据库运行于不归档模式下,那么你只能在数据库干净关闭的情况下(以NORMAL、IMMEDIATE、TRANSACTIONAL方式关闭)才能进行一致性的增量备份,如果数据库运行于归档模式下,那即可以在数据库关闭状态进行,也可以在数据库打开状态进行备份。

0级增量备份(level 0 incremental backup):相当于全备,可以作为其他增量的父级。
注意: 完整备份(full backup)不能成为增量备份策略的一部分; 不能作为后续增量备份的父级。

n级增量备份(level n incremental backup)可分两种:
差异增量备份(A differential incremental backup ):备份上一次备份(0或<=n级备份)后发生变化的数据;

累计增量备份(A cumulative incremental backup):用于备份上一次0级备份以后所有发生变化的数据;

#建立增量备份的父级LEVEL=0的全库备份
BACKUP INCREMENTAL LEVEL=0 DATABASE;


恢复

restore 是用备份的数据文件去还原,文件级的恢复。就是物理文件还原。

restore database   #还原所有的数据文件。
restore tablespace   #还原特定表空间的数据文件。
restore datafile   #还原特定的数据文件。
restore controlfile    #还原控制文件。
restore archivelog    #还原归档日志文件。

recover 是恢复,数据级的恢复。逻辑上恢复,比如应用归档日志、重做日志,全部同步保持一致。

recover database   #恢复所有的数据文件。
recover tablespace   #恢复特定表空间的数据文件。
recover datafile   #恢复特定的数据文件。

参考: https://blog.csdn.net/Aria_Miazzy/article/details/96477912

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30677.html

(0)
上一篇 2023-10-15 20:33
下一篇 2023-10-28 19:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信