windows下的oracle数据库rman自动备份和恢复文档.docx

上传人:b****5 文档编号:6537492 上传时间:2023-01-07 格式:DOCX 页数:31 大小:3.86MB
下载 相关 举报
windows下的oracle数据库rman自动备份和恢复文档.docx_第1页
第1页 / 共31页
windows下的oracle数据库rman自动备份和恢复文档.docx_第2页
第2页 / 共31页
windows下的oracle数据库rman自动备份和恢复文档.docx_第3页
第3页 / 共31页
windows下的oracle数据库rman自动备份和恢复文档.docx_第4页
第4页 / 共31页
windows下的oracle数据库rman自动备份和恢复文档.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

windows下的oracle数据库rman自动备份和恢复文档.docx

《windows下的oracle数据库rman自动备份和恢复文档.docx》由会员分享,可在线阅读,更多相关《windows下的oracle数据库rman自动备份和恢复文档.docx(31页珍藏版)》请在冰豆网上搜索。

windows下的oracle数据库rman自动备份和恢复文档.docx

windows下的oracle数据库rman自动备份和恢复文档

windows下的oracle数据库rman自动备份和恢复文档

一.Rman简介

RMAN是ORACLE提供的复原和备份工具,是随Oracle服务器软件一同安装的工具软件,它能够用来备份和复原数据库文件、归档日志和操纵文件,用来执行完全或不完全的数据库复原。

与传统工具相比,RMAN具有专门的优势:

跃过未使用的数据块。

当备份一个RMAN备份集时,RMAN可不能备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。

RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。

二.系统规划

数据库备份文件不建议与系统盘〔C盘)、oracle数据文件存放盘〔D盘〕存放在一起,本文单独存放于E盘。

注:

在进行以下操作前要依照自己的环境建立如下名目〝E:

\orabackup\〞,〝’E:

\archivelog_backup〞,〝E:

/orabackup_script/〞。

本文用到的命令中的标点均为英文字符下的标点。

三.设置oracle数据库为归档模式(ARCHIVELOG)

按以下步骤操作,检查oracle数据库是否为归档模式。

1.选择〝开始〞→〝系统〞→〝运行〞,输入cmd,按回车。

2.输入〝sqlplus〞,按回车。

3.输入〝system/assysdba〞,按回车。

4.输入数据库system账号的密码,按回车。

5.查看数据库归档模式,输入〝archiveloglist;〞,按回车。

如以下图所示。

假如〝数据库日志模式〞为〝非存档模式〞,那么需按照如下步骤开启归档模式:

1.设置数据库日志归档路径。

输入〝altersystemsetlog_archive_dest=’E:

\archivelog_backup’scope=spfile;〞,按回车。

2.关闭数据库。

输入〝shutdownimmediate;〞,按回车。

3.启动数据库到mount状态。

输入〝startupmount;〞,按回车。

4.更换数据库的归档模式。

输入〝alterdatabasearchivelog;〞,按回车。

5.打开数据库。

输入〝alterdatabaseopen;〞,按回车。

6.验证数据库是否已归档。

输入〝alterdatabasearchivelog;〞,按回车。

如上图所示,假设〝自动存档〞为〝启用〞模式,那么数据库差不多启用自动归档模式。

四.Oracle数据备份策略

通过OracleRMAN实现数据的增量备份,每周进行两次Level0的数据确全备份,其余时刻进行Level1的增量备份,;同时每天对Oraclearchivelog进行两次备份〔备份次数及备份时刻点应依照实际运行情形加以调整〕,。

如此的备份策略的目的时一旦发生故障需要进行数据库复原时,只需要复原一个全备份和至多两个增量备份,大大加快了数据库的备份速度。

在进行数据库recover时,实际上只需要最后一天的archivelog。

 

LEVEL01101110

DAYSunMonTueWedThuFriStatSun

Rman备份策略示意图

五.备份脚本的编写

1.编写脚本前要更换rman的默认配置选项

(1)选择〝开始〞→〝系统〞→〝运行〞,输入cmd,按回车。

(2)输入〝rmantarget/〞,按回车。

(3)开启操纵文件自动备份。

输入〝configurecontrolfileautobackupon;〞,按回车。

(4)更换操纵文件备份路径。

输入〝CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO‘E:

\orabackup\%F’;〞,按回车。

(5)备份保留策略。

输入〝CONFIGURERETENTIONPOLICYTORECOVERYWINDOWOF7DAYS;〞。

基于时刻的备份保留策略,保留最近7天的备份文件,能够将数据库系统复原到最近七天内的任意时刻。

任何超过最近七天的数据库备份将被标记为obsolete。

2.按照制定的备份策略编写备份脚本

(1)设置显示文件的扩展名

选择〝开始〞→〝设置〞→〝操纵面板〞→〝文件夹选项〞,

打开文件夹选项设置页面后,点击上方标签栏的中间,即查看标签栏。

在查看标签中,向下拖动右边进度条,找到隐藏文件扩展名那个选项,将前面小方框中取消选定。

设置完成,点击确定退出。

(2)做一个文件后缀为.bat的0级备份批处理文件E:

/orabackup_script/auto_level_0_rman.bat。

内容如下:

remrunrman

rmancmdfile=level_0_rman.txtmsglog=e:

/orabackup/level_0_rmanlog%date:

~0,10%.log

然后新建一个〝E:

/orabackup_script/level_0_rman.txt〞文本文件。

内容如下:

connecttarget/

listbackup;

reportobsolete;

deleteobsolete;

run{

allocatechannelch1devicetypedisk;

allocatechannelch2devicetypedisk;

backupascompressedbackupsetincrementallevel0database

format'e:

/orabackup/full_%d_%T_%s'

plusarchivelog

format'e:

/orabackup/arch_%d_%T_%s'

deleteallinput;

releasechannelch1;

releasechannelch2;}

(2)做一个文件后缀为.bat的1级备份批处理文件E:

/orabackup_script/auto_level_1_rman.bat。

内容如下:

remrunrman

rmancmdfile=level_1_rman.txtmsglog=e:

/orabackup/level_1_rmanlog%date:

~0,10%.log

然后新建一个〝E:

/orabackup_script/level_1_rman.txt〞文本文件。

内容如下:

connecttarget/

listbackup;

reportobsolete;

deleteobsolete;

run{

allocatechannelch1devicetypedisk;

allocatechannelch2devicetypedisk;

backupascompressedbackupsetincrementallevel1database

format'e:

/orabackup/level_%d_%T_%s'

plusarchivelog

format'e:

/orabackup/arch_%d_%T_%s'

deleteallinput;

releasechannelch1;

releasechannelch2;}

3.归档备份脚本

(1)新建一个文件类型扩展名为.bat的批处理文件,文件名称为〝E:

/orabackup_script/auto_arch_rman.bat〞

remrunrman

rmancmdfile=arch_rman.txtmsglog=e:

/orabackup/arch_rmanlog%date:

~0,10%.log

〔2〕新建一个E:

/orabackup_script/arch_rman.txt文本文件

connecttarget/

run{

backuparchivelogalldeleteinputformat'e:

/orabackup/arch_%d_%T_%s';

}

※注意:

备份脚本存放在E:

/orabackup_script名目

六.设置windows定时任务〔以windowsserver2003为例〕

数据库备份策略:

全库每周三、日备份1次,其余时刻做一级备份,归档1天1次

1.设置定时任务每周做一次全库备份

(1)开始—>设置--→操纵面板-→任务打算-→添加任务打算。

操作步骤如下图:

(2)找到你所写的0级备份脚本,然后点击打开

(3)设置1级备份的定时任务,重复步骤一。

然后找到1级备份任务脚本然后打开。

2.设置定时任务每天做一次联机日志归档备份

开始—>设置--→操纵面板-→任务打算-→添加任务打算。

操作步骤如下图:

六.利用rsync实现rman备份数据的异地备份

1.系统环境

windows2003

rsync服务端:

172.16.1.246〔远端备份机器〕

rsync客户端:

172.16.1.151(oracle数据库安装端)

服务端:

cwRsyncServer_4.1.0_Installer

客户端:

cwRsync_4.1.0_Installer

2.rsync服务端安装配置

(1)双击cwRsyncServer_4.1.0_Installer.exe然后就一路下一步,安装cwRsync服务端默认有一个治理员账户SvcCWRSYNC,那个地点修改为administrator,密码为其对应的密码

安装完成后,在〝开始〞→〝治理工具〞→〝服务〞里面就能够看到cwRsync对应的服务了,安装完成后将手动启动改为自动启动服务。

 

(2)修改rsyncd.conf配置文件〔一样在C:

\ProgramFiles\ICW\rsyncd.conf〕

usechroot=false#不使用chroot

strictmodes=false#静态模式

hostsallow=*#所有IP均可

logfile=rsyncd.log#log文件名,能够指定路径

uid=0#不指定uid,不加这一行将无法使用任何账户

gid=0#不指定gid

#Moduledefinitions

#Remembercygwinnamingconventions:

c:

\workbecomes/cygwin/c/work

#

[test]

path=/cygdrive/d/oracle_backup

readonly=false#关闭只读

transferlogging=yes#记录传输日志

authusers=root#用户名

hostsallow=*#所有IP均可

secretsfile=/cygdrive/c/rsyncd.secrets#密码文件位置

(3)创建密码文件C:

\rsyncd.secrets内容为root:

123qwe

(4)配置文件修改完成后,就手动启动RsyncServer服务,netstat-an,看873端口监听没。

3.rsync客户端安装配置

(1)双击cwRsync_4.1.0_Installer.exe,然后一路下一步。

(2)编写批处理文件定时同步更新

分别在编写的rman备份脚本auto_level_0_rman.bat、auto_level_1_rman.bat和auto_arch_rman.bat后面加入

"C:

\ProgramFiles\cwRsync\bin\rsync"-avzP–progress/cygdrive/E/orabackup/root@172.16.1.246:

:

test

\passwd.txt>>d:

\rsync_%date:

~0,10%.log

(3)创建密码文件C:

\passwd.txt内容为123qwe

(4)参数说明

-a参数,相当于-rlptgoD,

-r是递归

-l是链接文件,意思是拷贝链接文件;

-p表示保持文件原有权限;

-t保持文件原有时刻;

-g保持文件原有用户组;

-o保持文件原有属主;

-D相当于块设备文件;

-z传输时压缩;

-P传输进度;

-vverbose,详细模式输出;

-u是只同步差不多更新的文件,幸免没有更新的文件被重复更新一次,只是要注意两者机器时钟的同步;

--progress显示备份过程;

--delete删除那些DST中SRC没有的文件,用作同步文件用;

 

七、使用rman备份文件复原oracle数据库

1.参数文件spfile损坏复原

(1)选择〝开始〞→〝系统〞→〝运行〞,输入cmd,按回车。

(2)输入〝setoracle_sid=orcl〞,按回车。

〔oracle_sid依照自己库的设置填写〕

(3)输入〝rmantarget/〞,按回车

(4)输入〝setdbid=1335848290〞,按回车。

Dbid具体值,请从rman日志文件e:

/orabackup/full_rmanlog%date:

~0,10%.log中查找

(5)关闭数据库。

输入〝shutdownimmediate;〞,按回车。

(6)将数据库启动到nomount状态。

输入〝startupnomount;〞按回车

(7)复原spfile参数文件。

输入〝restorespfileto〝D:

\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA〞from〝D:

\ORABACKUP\C-1335848290-20210218-04〞;〞,按回车。

〝D:

\ORABACKUP\C-1335848290-20210218-04〞从距离磁盘崩溃时刻最近生成的备份日志文件中获得。

(8)关闭数据库。

输入〝shutdownimmediate;〞,按回车。

(9)启动数据库。

输入〝startup〞,按回车。

2.操纵文件丢失复原

数据库启动报错ORA-00205

检查oracle的报警日志包含如下报错:

说明oracle数据库操纵文件有损坏,需要对其进行复原。

步骤如下所示。

(1)选择〝开始〞→〝系统〞→〝运行〞,输入cmd,按回车。

(2)输入〝rmantarget/〞,按回车

(3)输入〝setdbid=1335848290〞,按回车。

dbid具体值,请从rman日志文件e:

/orabackup/full_rmanlog%date:

~0,10%.log中查找

(4)关闭数据库。

输入〝shutdownimmediate;〞,按回车。

(5)将数据库启动到mount状态。

输入〝startupnomount;〞按回车

(6)复原操纵文件。

输入〝restorecontrolfilefrom〝D:

\ORABACKUP\C-1335848290-20210218-04〞;〞,按回车

(8)启动数据库到mount。

输入〝alterdatabasemount;〞,按回车。

(9)复原数据库。

输入〝recoverdatabase;〞,按回车。

(10)启动数据库。

输入〝alterdatabaseopenresetlogs;〞,按回车。

3.数据库指定数据文件复原

启动数据库的时候报错

或者查看oracle数据库的报警日志显现错误

假如显现以上报错说明数据库中file_id为7的文件显现错误。

需要复原。

步骤如下所示。

(1)选择〝开始〞→〝系统〞→〝运行〞,输入cmd,按回车。

(2)输入〝setoracle_sid=orcl〞,按回车。

〔oracle_sid依照自己库的设置填写〕

(3)输入〝rmantarget/〞,按回车

(4)查看数据库的启动级别。

输入〝selectstatusfromv$instance;〞,按回车。

假如返回status对应的值为非mount和非open。

关闭数据库。

输入〝shutdownimmediate;〞,按回车。

将数据库启动到mount状态。

输入〝startupmount;〞按回车

(5)数据库启动状态为mount,按如下所示输入,输入完成后,按回车。

run{

restoredatafile7;

recoverdatafile7;}

之后启动数据库,输入〝alterdatabaseopen;〞,输入回车。

〔6〕假如数据库启动状态为open,按如下输入,输入完成之后,输入回车。

run{

sql'alterdatabasedatafile7offlineimmediate';

restoredatafile7;

recoverdatafile7;

sql'alterdatabaesdatafile7online';}

4.数据文件丢失全库复原

(1)选择〝开始〞→〝系统〞→〝运行〞,输入cmd,按回车。

(2)输入〝setoracle_sid=orcl〞,按回车。

〔oracle_sid依照自己库的设置填写〕

(3)输入〝rmantarget/〞,按回车

(5)关闭数据库。

输入〝shutdownimmediate;〞,按回车。

(6)将数据库启动到mount状态。

输入〝startupmount;〞按回车

(7)还原数据库数据文件。

输入〝restoredatabase;〞,按回车。

(8)复原数据库增量备份及归档日志文件。

输入〝recoverdatabase;〞,按回车。

(9)打开数据库。

输入〝alterdatabaseopenresetlogs;〞,按回车。

5.数据主机磁盘损坏复原

(1)重建oracle数据库,是使数据库的名目结构与源数据库名目结构相同。

(2)将远程备份的备份文件拷贝至〝E:

\orabackup\〞名目下。

(3)选择〝开始〞→〝系统〞→〝运行〞,输入cmd,按回车。

(4)输入〝rmantarget/〞,按回车。

(5)关闭数据库。

输入〝shutdownimmediate;〞,按回车。

(6)D:

\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA(oracle

的spfile参数文件)文件删除。

(7)将D:

\oracle\product\10.2.0\oradata\orcl下〔oracle数据文件储备名目〕除TEMP01.DBF外的文件删除

(8)将数据库启动到nomount状态。

输入〝startupnomount;〞按回车

 

(9)输入〝setdbid=1335848290〞,按回车。

dbid具体值,请从rman日志文件e:

/orabackup/full_rmanlog%date:

~0,10%.log中查找

(10)复原spfile参数文件。

输入〝restorespfileto〝D:

\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA〞from〝D:

\ORABACKUP\C-1335848290-20210218-04〞;〞,按回车。

〝D:

\ORABACKUP\C-1335848290-20210218-04〞从距离磁盘崩溃时刻最近生成的备份日志文件中获得。

(11)关闭数据库。

输入〝shutdownimmediate;〞,按回车。

(12)将数据库启动到mount状态。

输入〝startupnomount;〞按回车.

(10)复原操纵文件。

输入〝restorecontrolfilefrom〝D:

\ORABACKUP\C-1335848290-20210218-04〞;〞,

按回车。

(〝D:

\ORABACKUP\C-1335848290-20210218-04〞获得方法同(10))

(11)启动数据库到mount状态。

输入〝startupmount;〞按回车。

(12)复原数据文件。

输入〝restoredatabase;〞,按回车。

(13)复原归档日志文件。

输入〝recoverdatabase;〞,按回车。

(14)启动数据库。

输入〞alterdatabaseopenresetlogs;〞。

6.误操作复原—误删除表或者数据

(1)重建oracle数据库,是使数据库的名目结构与源数据库名目结构相同。

(2)将远程备份的备份文件拷贝至〝E:

\orabackup\〞名目下。

(3)选择〝开始〞→〝系统〞→〝运行〞,输入cmd,按回车。

(4)输入〝rmantarget/〞,按回车。

(5)关闭数据库。

输入〝shutdownimmediate;〞,按回车。

(6)D:

\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA(oracle

的spfile参数文件)文件删除。

(7)将D:

\oracle\product\10.2.0\oradata\orcl下〔oracle数据文件储备名目〕文件全部删除

〔8〕输入以下内容,并按回车。

run{

startupnomount;

restorespfileto"D:

\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA"from"D:

\ORABACKUP\C-1335848290-20210219-05";

shutdownimmediate;

startupnomount;

restorecontrolfilefrom"D:

\ORABACKUP\C-1335848290-20210219-05";

alterdatabasemount;

setuntiltime"to_date('2021-02-1909:

08:

30','yyyy-mm-ddhh24:

mi:

ss')";

restoredatabase;

recoverdatabase;

}

注:

〝D:

\ORABACKUP\C-1335848290-20210219-05〞从最后一次生成的备份日志文件中获得。

〝2021-02-1909:

08:

30〞发生误操作之前的时刻点。

(9)启动数据库,输入〞alterdatabaseopenresetlogs;〞,按回车。

(10)登陆数据库检查自己删除的表,或者数据是否存在且完整。

假如完整连续第十步。

〔11〕复原误删除的数据,在克隆库执行如下操作导出数据。

expscott/tigerfile=c:

\1.dmptables=tquery='wheredeptno=10'log=c:

\1.log

注:

命令中scott/tiger为用户名/密码,t为要复原数据所在表的名称。

用query选出部分符合条件的行。

将克隆库系统中c:

\1.dmp拷贝到源数据库系统c:

\名目下,并在元数据库系统执行imp命令复原。

操作

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1