当前位置:文档之家› 2016年9月1日rman备份恢复脚本

2016年9月1日rman备份恢复脚本

2016年9月1日rman备份恢复脚本
2016年9月1日rman备份恢复脚本

rman备份恢复

1.通过rman备份文件恢复spfile

2.通过rman备份文件恢复controlfile

3.通过rman备份文件恢复datafile

4.利用恢复回来的controlfile和datafile生成redolog

5.测试交易是否存在,并全备

我系统环境所有的文件如下:

[oracle@fowaydbs]$ pwd

/opt/oracle/10g/dbs

[oracle@fowaydbs]$ ls

initdw.ora

init.ora

[oracle@fowaydbs]$ls /opt/oracle/oradata

已没有任何资料

[oracle@fowaydbs]$ls /opt/oracle/admin

已没有任何资料

[oracle@fowaydbs] ls /opt/oracle/flash_recovery_area/ ORCL

[oracle@fowaydbs]ls

/opt/oracle/flash_recovery_area/ORCL/backupset/

2008_07_18

[oracle@fowaydbs]ls

/opt/oracle/flash_recovery_area/ORCL/backupset/2008_07_ 18/

o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp

o1_mf_nnndf_TAG20080718T203240_482fkb0k_.bkp

在我这台电脑上, ,系统中所有的ORCL相关的数据文件,参数文件,日志文件,控制文件全部不在了, 没有其他可用的备份文件了,只有rman备份的文件在,这可怎么办呢?

没办法只能恢复了,可怎么恢复呢?

要恢复数据文件用rman备份? 能吗? 当然不能了,因为restore 必须在mount or open状态下.

参数文件,控制文件都没有怎么mount?

要mount必须有参数文件,控制文件,为此我们必须解决这2个难题了.

在解决难题前先准备ORCL的必须的目录:

[oracle@fowaydbs]mkdir /opt/oracle/oradata/orcl

[oracle@fowaydbs]mkdir /opt/oracle/admin/orcl/adump –p [oracle@fowaydbs]mkdir /opt/oracle/admin/orcl/cdump [oracle@fowaydbs]mkdir /opt/oracle/admin/orcl/bdump [oracle@fowaydbs]mkdir /opt/oracle/admin/orcl/udump [oracle@fowaydbs]mkdir /opt/oracle/admin/orcl/dpdump [oracle@fowaydbs]mkdir /opt/oracle/admin/orcl/pfile

难题1:spfile

有人说没参数文件我新建立一个pfile,当然这个办法是可行的,不过在10g中rman备份是自动备份了spfile的,所以我们可以利用rman来恢复spfile了.

[oracle@fowaydbs]rman target / nocatalog

Recovery Manager: Release 10.2.0.4.0 - Production on Fri Jul 18 21:21:47 2008

Copyright (c) 1982, 2005, Oracle.

All rights reserved.

connected to target database (not started)

RMAN> list backup;

RMAN-00571:

======================================================= ====

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571:

======================================================= ====

RMAN-03002: failure of list command at 07/18/2008 21:24:37 RMAN-06403: could not obtain a fully authorized session ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

Linux Error: 2: No such file or directorylist copy;

RMAN-00571:

======================================================= ====

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571:

======================================================= ====

RMAN-03002: failure of list command at 07/18/2008 21:24:51 RMAN-06403: could not obtain a fully authorized session ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

Linux Error: 2: No such file or directory

看到上面的是正常的,因为数据库没有启动呢.

于是我们先启动数据库到nomout下

RMAN>startup nomount

startup failed: ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file '/opt/oracle/10g/dbs/initorcl.ora'

starting Oracle instance without parameter file for retrival of spfile

Oracle instance started

Total System Global Area

159383552 bytes

Fixed Size

1218268 bytes

Variable Size

54528292 bytes

Database Buffers

100663296 bytes

Redo Buffers

2973696 bytes

RMAN>list backup;

RMAN>list copy;

将与上次执行看到的一样,此时也是正常的,不必担心,下面就是利用rman备份文件来解决难题1了.

RMAN> restore spfile

from

'/opt/oracle/flash_recovery_area/ORCL/backupset/2008_07

_18/o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp'; Starting restore at 18-JUL-08

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=36 devtype=DISK

channel ORA_DISK_1: autobackup found: /opt/oracle/flash_recovery_area/ORCL/backupset/2008_07_ 18/o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp

channel ORA_DISK_1: SPFILE restore from autobackup complete

Finished restore at 18-JUL-08

下面是来验证spfileorcl.ora文件是否已存在:

[oracle@fowaydbs]$ pwd

/opt/oracle/10g/dbs

[oracle@fowaydbs]$ ls

initdw.ora

init.ora

spfileorcl.ora

恭喜你:spfile已恢复了

有了参数文件,就需要解决控制文件恢复了

难题2. 控制文件恢复

这个又怎么恢复呢? 用rman的自动备份控制文件的rman备份吗? 是的没错,只有从rman备份文件中提取出来的controlfile才能使用rman备份文件恢复datafile的.

那么这里有来种办法来实现从rman备份文件中提取出controlfie了.

方法1.

RMAN>restore controlfile from ‘/…备份文件..’;

恢复的控制文件将放在$ORACLE_HOME/dbs/cncontrl.dbf不过这个方法有时恢复的控制文件中记录的dbname与实际不一致.

方法2: 利用dbms_backup_restore提取controlfile

步骤:

[oracle@fowaydbs]$sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on Fri Jul 18 21:38:21 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn /as sysdba

Connected.

由于在刚才使用rman时执行了startup nomount,所以这里是connected,下面我们到nomount状态

SQL> startup force nomount

ORACLE instance started.

Total System Global Area 167772160 bytes

Fixed Size 1218316 bytes

Variable Size 62916852 bytes

Database Buffers 100663296 bytes

Redo Buffers 2973696 bytes

SQL>DECLARE

2devtype varchar2(256);

3done boolean;

4BEGIN

5devtype:=sys.dbms_backup_restore.deviceAllocate(type=> '',ident=>'T1');

6sys.dbms_backup_restore.restoreSetDatafile;

7sys.dbms_backup_restore.restoreControlfileTo(cfname=>' /opt/oracle/oradata/orcl/control01.ctl');

8sys.dbms_backup_restore.restoreBackupPiece(done=>done, handle=>'/opt/oracle/flash_recovery_area/ORCL/backupset /2008_07_18/o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bk p',params=>null);

9 sys.dbms_backup_restore.deviceDeallocate;

10 end;

11/

PL/SQL procedure successfully completed.

下面验证control01.ctl是否恢复:

[oracle@fowaydbs]$ ls /opt/oracle/oradata/orcl/

control01.ctl

[oracle@fowaydbs]$

看到了control01.ctl 恭喜你:难题2 解决了.

于是我们可以启动数据库到mount状态了.

[oracle@fowaydbs]$sqlplus /nolog

SQL*Plus: Release 10.2.0.4 - Production on Fri Jul 18 21:45:32 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn /as sysdba

Connected.

SQL> startup force mount

ORACLE instance started.

Total System Global Area 167772160 bytes

Fixed Size 1218316 bytes

Variable Size 62916852 bytes

Database Buffers 100663296 bytes

Redo Buffers 2973696 bytes

ORA-00205: error in identifying control file, check alert log for more info

我们已经恢复了控制文件了,怎么还是有错误呢,其实不用担心,看看spfile中的记录先

SQL> show parameter control_files

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

control_files string /opt/oracle/oradata/orcl/contr

ol01.ctl, /opt/oracle/oradata/

orcl/control02.ctl, /opt/oracl

e/oradata/orcl/control03.ctl

SQL>

既然如此,我们就把控制文件同步下好了.

SQL> ho cp /opt/oracle/oradata/orcl/control01.ctl /opt/oracle/oradata/orcl/control02.ctl

SQL> ho cp /opt/oracle/oradata/orcl/control01.ctl /opt/oracle/oradata/orcl/control03.ctl

SQL> alter database mount;

Database altered.

SQL> ho ls /opt/oracle/oradata/orcl/

control01.ctl control02.ctl control03.ctl

好了到这里我们已经成功解决了难题2了.

有了恢复后的控制文件,我们就可以使用rman查看与使用以前的rman备份了.

恢复datafile 步骤:

rman target / nocatalog

Recovery Manager: Release 10.2.0.4 - Production on Fri Jul 18 21:49:10 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: ORCL (DBID=1188209463, not open)

using target database control file instead of recovery catalog

RMAN>

看到了红色部分了吗,太好了终于看到了正常的rman登陆信息了.

那就list copy|backup 看看能找到我们的

o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp

o1_mf_nnndf_TAG20080718T203240_482fkb0k_.bkp

文件吗.

RMAN> list copy;

specification does not match any archive log in the recovery catalog

RMAN> list backup;

List of Backup Sets

===================

BS Key Type LV Size Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

1 Full 495.41M DISK 00:00:41 18-JUL-08

BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20080718T203240

Piece Name: /opt/oracle/flash_recovery_area/ORCL/backupset/2008_07_ 18/o1_mf_nnndf_TAG20080718T203240_482fkb0k_.bkp

List of Datafiles in backup set 1

File LV Type Ckp SCN Ckp Time Name

---- -- ---- ---------- --------- ----

1 Full 453304 18-JUL-08 /opt/oracle/oradata/orcl/system01.dbf

2 Full 453304 18-JUL-08 /opt/oracle/oradata/orcl/undotbs01.dbf

3 Full 45330

4 18-JUL-08 /opt/oracle/oradata/orcl/sysaux01.dbf

4 Full 453304 18-JUL-08 /opt/oracle/oradata/orcl/users01.dbf

RMAN>

太好了,总于可以使用restore,recover来恢复datafile了.

RMAN> restore database;

Starting restore at 18-JUL-08

Starting implicit crosscheck backup at 18-JUL-08

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=156 devtype=DISK Crosschecked 1 objects

Finished implicit crosscheck backup at 18-JUL-08 Starting implicit crosscheck copy at 18-JUL-08 using channel ORA_DISK_1

Finished implicit crosscheck copy at 18-JUL-08 searching for all files in the recovery area cataloging files...

cataloging done

List of Cataloged Files

=======================

File Name: /opt/oracle/flash_recovery_area/ORCL/backupset/2008_07_ 18/o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafilebackupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoringdatafile 00001 to /opt/oracle/oradata/orcl/system01.dbf

restoringdatafile 00002 to /opt/oracle/oradata/orcl/undotbs01.dbf

restoringdatafile 00003 to /opt/oracle/oradata/orcl/sysaux01.dbf

实验8-Oracle数据库备份与恢复

实验8 Oracle数据库备份与恢复 1 实验目的 (1)掌握Oracle数据库各种物理备份方法。 (2)掌握Oracle数据库各种物理恢复方法。 (3)掌握利用RMAN工具进行数据库的备份与恢复。 (4)掌握数据的导入与导出操作。 2 实验要求 (1)对BOOKSALES数据库进行一次冷备份。 (2)对BOOKSALES数据库进行一次热备份。 (3)利用RMAN工具对BOOKSALES数据库的数据文件、表空间、控制文件、初始化参数 文件、归档日志文件进行备份。 (4)利用热备份恢复数据库。 (5)利用RMAN备份恢复数据库。 (6)利用备份进行数据库的不完全恢复。 3 实验步骤 (1)关闭BOOKSALES数据库,进行一次完全冷备份。 select file_name from dba_data_files; select member from v$logfile; select value from v$parameter where name='control_files';

(2)启动数据库后,在数据库中创建一个名为cold表,并插入数据,以改变数据库的状态。 CREATE TABLE COLD( ID NUMBER PRIMARY KEY, NAME VARCHAR2(25) ); (3)利用数据库冷备份恢复BOOKSALES数据库到备份时刻的状态并查看恢复后是否

存在cold表。 (4)将BOOKSALES数据库设置为归档模式。 1.1 shutdown immediate 正常关闭数据 1.2 startup mount;将数据库启动到mount状态 3)、关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ora-38774错误。 alter database flashback off 1.3 alter database archivelog;发出设置归档模式的命令 1.4 alter database open;打开数据库 1.5 再次正常关闭数据库,并备份所有的数据文件和控制文件 1.6archive log list;在将数据库设置为归档模式后,可以执行此命令进行确认 1.6.1 Database log mode 为Archive Mode说明当前的数据库为归档模式 1.6.2 Automatic archival为Enable说明启动了自动归档。

ORACLE11G RMAN备份恢复到异机数据库

ORACLE11G RMAN备份恢复到异机数据库 1. 主数据库环境 操作系统版本 : Centos6.7 x64 数据库版本 : Oracle 11.2.0.4 x64 数据库名 : prb 数据库SID : prb db_unique_name : prb instance_name : prb IP : 10.0.8.100 2. 备库环境 操作系统版本 : Centos6.7 x64 数据库版本 : Oracle 11.2.0.4 x64 (只安装oracle数据库软件,no netca dbca) 数据库名 : prb 数据库SID : prb db_unique_name: prb instance_name : prb IP:10.0.8.101 将参数文件备份、控制文件备份、数据文件备份、以及归档备份到目标主机 1 此处实验环境为同平台,同字节序,同版本,源机器和目标机器相同的目录结构。 2 目标机器只需要安装oracle只安装oracle数据库软件,no netca dbca 3 第一次利用备份恢复测试环境,之后从源机器拷贝备份到目标机器并在控制文件中注册,再见行恢复测试。 备份数据库 backup format '/u01/prb/rmanbk/fulldb_%d_%U' database include current controlfile plus archivelog delete input; orapwd file='/u01/app/oracle/product/11.2.0.4/db_1/dbs/orapwprb' password=oracle entries=10 force=y 1rman 连接到源数据库 prd-db1-> rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Wed Aug 17 19:23:27 2016 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: PRB (DBID=1906641159) RMAN> 2 分别列出参数文件备份,控制文件备份,数据文件备份,以及归档备份的名字 参数文件备份如下: RMAN> list backup of spfile; using target database control file instead of recovery catalog List of Backup Sets ===================

rman全量备份脚本

#!/bin/bash -x export ORACLE_HOME=/opt/oracle/product/11.2.4/db_1 export LOG=/backup/log export ARCHDIR=/backup/arch export DBDIR=/backup/db export DATE=$(date +"%m_%d_%y") export DBNAME=$1 export ORACLE_SID=$DBNAME $ORACLE_HOME/bin/rman target / log=$LOG/rman_$DATE.log << ! crosscheck backup; delete noprompt expired backup; run{ allocate channel c1 type disk; allocate channel c2 type disk; backup as compressed backupset database include current controlfile format '/backup/db/db_%U'; sql 'alter system archive log current'; backup as compressed backupset archivelog all not backed up format '/backup/arch/arch_%U' ; release channel c1; release channel c2; } exit; ! find $LOG -mtime +8 -exec rm {} \; find $ARCHDIR -mtime +8 -exec rm {} \; find $DBDIR -mtime +2 -exec rm {} \;

实验十一Oracle数据库备份与恢复

实验十一Oracle数据库备份与恢复 【实验目的与要求】 1. 常见数据备份与恢复的方法 2.学会Oracle备份方案的制定 【实验内容与步骤】 1. Oracle物理备份与恢复 准备工作: (1)查看数据库是否运行于归档模式下: 请给出查询的结果: (2)关闭数据库,做一个完全的冷备份。 提示: a.使用shutdown命令关闭数据库; b.复制数据文件、日志文件和控制文件到安全地方 (3) 把数据库改为归档模式 设置成自动归档 SQL> alter system set log_archive_start = true scope=spfile;

注意:本实验中的很多命令路径参数需根据自己的实现环境做出修改!! 实验11-1 数据库系统数据文件和回退段遭破坏的情况下的恢复。此时数据库的状态是关闭的。 (1)先启动数据库,创建新用户scott,并用scott用户建立test表,并插入两条数据。创建表空间的四个步骤: /*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace user_temp tempfile 'D:\ user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间 */ create tablespace user_data logging datafile 'D:\ user_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第3步:创建用户并指定表空间 */ create user scott identified by tiger default tablespace user_data temporary tablespace user_temp; /*第4步:给用户授予权限 */ grant connect,resource,dba to scott; SQL> create table test (id int,name varchar2(10)); 表已创建。 SQL> insert into test values(1001,’zhangfei’); 已创建 1 行。 SQL> insert into test values(1002,’guanyu’); 已创建 1 行。 SQL> commit; 提交完成。 (2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。 SQL> shutdown abort

RMAN备份与恢复之完全备份和增量备份

完全备份: 完全备份是指对数据库中使用过的所有数据块进行备份,当然,没有使用过的数据块是不做备份的。在进行完全备份时,RMAN将数据文件中所有的非空白数据块都复制到备份集中。在RMAN中,可以对数据文件进行完全备份或者增量备份,但是对控制文件和日志文件只能进行完全备份。在一个完全数据库备份中,将所有的数据库文件,复制到闪回恢复区。 完全备份实例: 【例】通过BACKUP FULL语句,对数据库执行完全备份。使用TAG参数和FORMAT参数,指定备份文件位置以及备份文件的名称格式。如下: RMAN>RUN{ 2> #BACKUP THE COMPLETE DATABASE 3> ALLOCATE CHANNEL ch1 TYPE DISK; 4> BACKUP FULL 5> TAG full_db_backup FORMAT"E:\app\backup\db_t%t_s%s_p%p" (database); 6> RELEASE CHANNEL ch1; 7> } 【例】在RMAN中执行LIST命令,查看建立的备份集与备份段信息,如下: RMAN> LIST BACKUP OF DATABASE; 增量备份: 增量备份就是将那些与前一次备份相比发生变化的数据块复制到备份集中。进行增量备份时,RMAN会读取整个数据文件,通过RMAN可以为单独的数据文件、表空间、或者整个数据库进行增量备份。在RMAN中建立的增量备份可以具有不同的级别,每个级别都使用一个不小于0的整数来标识,也就是在BACKUP命令中使用LEVEL关键字指定的,例如LEVEL = 0表示备份级别为0,LEVEL = 1表示备份级别为1。 增量备份的方式:

Oracle 11g 基于RMAN的备份与恢复

Oracle 11g 基于RMAN的备份与恢复 备份整个数据库 C:\Users\huangluxiang>rman target/ RMAN> backup database; RMAN> exit (退出) (1)重做日志损坏 SQL> conn /as sysdba 已连接到空闲例程。 SQL> startup mount; ORACLE 例程已经启动。 Total System Global Area 1071333376 bytes Fixed Size 1375792 bytes Variable Size 729809360 bytes Database Buffers 335544320 bytes Redo Buffers 4603904 bytes 数据库装载完毕。 SQL> recover database until cancel; 完成介质恢复。 SQL> alter database open resetlogs; 数据库已更改。 SQL> archive log list; 数据库日志模式存档模式 自动存档启用 存档终点USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 1 下一个存档日志序列 1 当前日志序列 1 备注:恢复Oracle数据库,应该备份整个数据库 (2)数据库丢失数据文件,控制文件,重做日志文件 C:\Users\huangluxiang>rman target/ RMAN> restore controlfile from autobackup; RMAN>alter database mount; RMAN> restore database; SQL> conn /as sysdba 已连接。 SQL> recover database using backup controlfile until cancel; ORA-00279: 更改990116 (在12/13/2013 14:06:05 生成) 对于线程1 是必需的 ORA-00289: 建议: C:\APP\HUANGLUXIANG\FLASH_RECOVERY_AREA\DLNU\ARCHIVELOG\2013_12_13\ O1_MF_1_5_%U_ .ARC ORA-00280: 更改990116 (用于线程1) 在序列#5 中 指定日志: {=suggested | filename | AUTO | CANCEL}

RMAN备份命令

RMAN备份命令(转摘) 1、切换服务器归档模式,如果已经是归档模式可跳过此步: %sqlplus /nolog (启动sqlplus) SQL> conn / as sysdba (以DBA身份连接数据库) SQL> shutdown immediate; (立即关闭数据库) SQL> startup mount (启动实例并加载数据库,但不打开) SQL> alter database archivelog; (更改数据库为归档模式) SQL> alter database open; (打开数据库) SQL> alter system archive log start; (启用自动归档) SQL> exit (退出) 2、连接: %rman target=rman/rman@mydb (启动恢复管理器) //rman target=sys/system@testora 3、基本设置: RMAN> configure default device type to disk; (设置默认的备份设备为磁盘) RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数) RMAN> configure channel 1 device type disk format '/backup1/backup_%U' ; (设置备份的文件格式,只适用于磁盘设备) RMAN> configure channel 2 device type disk format '/backup2/backup_%U' ; (设置备份的文件格式,只适用于磁盘设备) RMAN> configure controlfile autobackup on; (打开控制文件与服务器参

实验九:数据库备份及恢复

实验九:数据库备份及恢复 一、实验目的 1.熟悉数据库备份及恢复机制; 2.了解SQL Server的数据备份和恢复机制; 3.掌握SQL-Server中数据库备份和恢复的方法。 二、实验环境 已安装SQL Server 2005 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解创建备份设备和进行数据库完全备份操作的方法; 2.了解进行数据库恢复的步骤; 3.完成实验报告。 五、实验内容及步骤 以管理员帐号登录SQL Server Management Studio,以原有数据库stu为基础,请使用Management Stuio界面方式或T-SQL 语句实现以下操作: 1.针对数据库stu创建完全数据库备份集stu.bak,目标磁盘为D:\ user \ stu.bak; BACKUP DATABASE student TO DISK='C:\user\stu.bak' 2.在数据库stu中新建数据表ceshi,内容自定,然后针对数据库stu创建 差异备份; CREATE TABLE ceshi ( Sno char(9)NOT NULL primary key, Sname char(6)NOT NULL, Ssex char(2)NULL, Sage int NULL, Sdept varchar(8)NULL ) GO BACKUP DATABASE student TO DISK='C:\user\stu_differential.bak' WITH DIFFERENTIAL 3.向数据库stu的数据表ceshi插入部分记录,然后针对数据库stu创建 事务日志备份;

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

数据库rman 备份恢复文档 Rman 简介 RMAN是ORACLE!供的恢复和备份工具,是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。与传统工具相比,RMAN 具有独特的优势:跳过未使用的数据块。当备份一个RMAN 备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。RMAr使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。二.系统规划数据库备份文件不建议与系统盘( C 盘)、oracle 数据文件存放盘( D 盘)存放在一起,本文单独存放于 E 盘。 注:在进行以下操作前要根据自己的环境建立如下目录“”,“' E:\archivelog_backup ”,“ E:/orabackup_script/ ”。本文用到的命令中的标点均为英文字符下的标点。三.设置oracle 数据库为归档模式(ARCHIVELOG)按以下步骤操作,检查oracle 数据库是否为归档模式。 1. 选择“开始”“系统” “运行”,输入cmd按回车。 2. 输入“ sqlplus ”,按回车。 3. 输入“ system / as sysdba ”,按回车。 4. 输入数据库system 账号的密码,按回车。 5. 查看数据库归档模式,输入“ archive log list; ”,按回车。如下图所示。

C : XDocuments and Settings\Adminis :tpator>sqIplus SQL*Flus: Re lease 10,2.0.1.0 - Production on 星期二 1 月 8 22:2S :02 201^ Copi/i*ight (c> 1982, Oracle. All rights i^eserved. 旌接到: lOracle Database 10^ Enterprise Edition Release 16.2.0.1.0 - 64b±t Production With the Partit ion Ing, OLAP and D&ta Min inct opt ions 档模式: 2. 关闭数据库。输入“ shutdown immediate; ”,按回车。 3. 启动数据库到mount 状态。输入“ startup mount; ”,按回车。 4. 更改数据库的归档模式。输入“ alter database archivelog; ”,按回车。 5. 打开数据库。输入“ alter database open; ”,按回车。 Me 模 日列 hi 忐 黑 B 档 点壘 心 澤-4^ 的日 L>-?m 『早前L> SQ 数自 4 廿 乘肖 SQ 85; mE 存档模式 如果“数据库日志模式”为“非存档模式” ,则需按照如下步骤开启归 1.设置数据库日志归档路径。 输入“ alter system set log_archive_dest= 车。 archivelog_backup scope=spfile; ,按回 户名匕 ten / as s i^sdha

rman备份方法

以下都是使用rman增量备份,主要是从数据库大小和备份还原所用时间两个方面考虑。 0级备份表示数据库的全备份,默认不包括只读表空间。 1级备份表示小于等于1级备份以来的数据库变化情况。 2级备份表示小于等于2级别分以来数据库的变化情况。 3级,4级的意思和1级相似。 1、一月一次0级备份,两周一次1级备份,一周一次2级备份,每天一次3级备份。 此备份方案将备份时间分散,可以说是节省了备份的时间,而且节省了许多存储备份的空间,但是这造成还原时间增加了许多。 2、两周一次0级备份,一周一次1级备份,每天一次2级备份。 此备份方案相对方案2在备份时间上增长,还原时间缩短,存储备份的空间也相对有少量的增加。 3、一周一次0级备份,每天一次1级备份。 此方案平凡的对数据库进行全备份,占用操作系统的资源相对方案2和方案3大了很多,而且占用更多存储空间,但是此方案节省了很多恢复的时间。 数据库的备份方案选择主要调节备份和还原所用时间之间的平衡,使其对生产系统的影响降到最小。如果备份时间过长会长时间的占用I/O和内存资源,造成生产环境文件读取速度慢;如果还原时间太长,则拖延了系统恢复后正常上线的时间。对于现在的数据库系统,案2和方案3在备份时间上和方案4相差无几,在备份存储上比方案4节省不少,但是在还原时间上却大大超过方案4。 为了数据的安全性,建议不用方案1作为主要备份。而对于2,3,4,在实际生产环境中,根据现在数据库大小和每天产生的数据量大小的估计,方案4最适合。虽然平凡的0级备份对操作系统的资源占用很大,但是从测试的情况看,每次0级备份所发的时间是20分钟左右,1级备份所用的时间是6分钟左右,而且每次0级备份都在周末比较空闲的00:00进行,对生产环境的影响可以忽略不计。在备份存储方面,一次0级备份占用空间30G,每天1级备份占用空间是600M左右,一周的全部备份文件大小在120G左右,E盘存储空间大小正好适合于两周数据的存储,可以在1-2周手动的清理过期的备份集一次。 所以综合考虑,方案4最适合现在的生产环境。不过当数据库大小增加到200G以上时,0级备份时间与还原时间分配不平衡时,可以换用方案3;当数据库大小增加到1T以上时,可以考虑用方案2或者制定其他的方案。

实验10数据库备份与还原

实验10 数据库备份与还原 创建备份 (1)选择【stu】数据库右击,单击【属性】。 (2)单击【选项】页,将【恢复模式】设置为【完整】。 (3)选择【stu】数据库右击,依次选择【任务】、【备份】,将打开【备份数据库】对话框 备份数据库 (4)在【备份类型】列表框中,选择【完整】。注意:创建完整数据库备份之后,才可以创建差异数据库备份。 注:选择【差异】即进行差异备份;选择【事务日志】即进行日志备份;若要备份日志尾部(即活动的日志),则需在【选择页】窗格中单击【选项】,再选中【备份日志尾部,并使数据库处于还原状态】。 (5)对于【备份组件】,选择【数据库】。 (6)单击【添加】按钮,打开【选择备份目标】对话框:

选择备份目标 (8)选择备份路径和输入备份文件名。 若想将数据库备份到备份设备上,则应在选择备份设备作为备份目标(如果不存在备份设备,应该先创建),再选择相应的备份设备即可。 创建备份设备 (1)右击【备份设备】,然后单击【新建备份设备】,打开【备份设备】对话框:

(2)在【设备名称】文本框中输入新建设备名,如【dev1】。 (3)在【文件】框中指定备份设备对应的备份文件及路径。 还原备份 在【还原数据库】对话框的【要还原的源】部分中选择【从数据库】,以从 SQL Server 识别的备份集中还原。也可选择【从设备】并指定备份文件和包含要存储的备份的设备来从备用备份中还原。 (1)选择【数据库】右击,依次选择【任务】、【还原】,将出现【还原数据库】对话框: 还原数据库 (2)在【常规】页上,还原数据库的名称将显示在【目标数据库】列表框中。若要创建新数据库,请在列表框中输入数据库名。此处输入【stu】。 (3)选择【源设备】,在【备份媒体】列表框中选择【文件】,单击【添加】按钮选择【】返回【指定备份】对话框:

RMAN自动备份

查看是否归档 1.在linux终端中输入su – oracle转移到ORACLE用户下 2.键入:sqlplus system/oracle as sysdba (以DBA身份连接数据库) 3.键入:archive log list;(查看是否归档) 4.SQL>archive log list Database log mode Archive Mode(如果是Archive Mode,则已经归档,可以跳过设置归档,如果不是Archive Mode,则继续执行下一步:设置归档) Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 10484 Next log sequence to archive 10486 Current log sequence 10486 设置归档 5.键入:shutdown immediate; (立即关闭数据库) 6.键入:startup mount (启动实例并加载数据库,但不打开) 7.键入:alter database archivelog; (更改数据库为归档模式) 8.键入:alter database open; (打开数据库) 设置备份策略 1.为了完善备份以及磁盘空间,则应该设置备份策略 2.键入:quit;(设置归档后退出SQLPLUS) 3.键入:RMAN(进入恢复管理器) 4.rman>connect target / (连接进入目标数据库) 5.Rman>show all;(查看所有配置参数) 6.Rman> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; 保留7天的备份 7.Rman>quit;(退出) 在执行备份之前,我们应该设置一个存放备份的路径

RMAN备份及恢复

Linux下Oracle9i RMAN备份及恢复步骤介 1、切换服务器设置归档模式,如果已经是归档模式可跳过此步: %sqlplus /nolog (启动sqlplus) SQL> conn / as sysdba (以DBA身份连接数据库) SQL> shutdown immediate; (立即关闭数据库) SQL> startup mount (启动实例并加载数据库,但不打开) SQL> alter database archivelog; (更改数据库为归档模式) SQL> alter database open; (打开数据库) SQL> alter system archive log start; (启用自动归档) SQL> exit (退出) 2、连接: %rman target=sys/password@mydb (启动恢复管理器) 3、基本设置: RMAN> configure default device type to disk; (设置默认的备份设备为磁盘) RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数) RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备) RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备) RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份) RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式) 4、查看所有设置:

2016年9月1日rman备份恢复脚本

rman备份恢复 1.通过rman备份文件恢复spfile 2.通过rman备份文件恢复controlfile 3.通过rman备份文件恢复datafile 4.利用恢复回来的controlfile和datafile生成redolog 5.测试交易是否存在,并全备 我系统环境所有的文件如下: [oracle@fowaydbs]$ pwd /opt/oracle/10g/dbs [oracle@fowaydbs]$ ls initdw.ora init.ora [oracle@fowaydbs]$ls /opt/oracle/oradata 已没有任何资料 [oracle@fowaydbs]$ls /opt/oracle/admin 已没有任何资料 [oracle@fowaydbs] ls /opt/oracle/flash_recovery_area/ ORCL [oracle@fowaydbs]ls /opt/oracle/flash_recovery_area/ORCL/backupset/

2008_07_18 [oracle@fowaydbs]ls /opt/oracle/flash_recovery_area/ORCL/backupset/2008_07_ 18/ o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp o1_mf_nnndf_TAG20080718T203240_482fkb0k_.bkp 在我这台电脑上, ,系统中所有的ORCL相关的数据文件,参数文件,日志文件,控制文件全部不在了, 没有其他可用的备份文件了,只有rman备份的文件在,这可怎么办呢? 没办法只能恢复了,可怎么恢复呢? 要恢复数据文件用rman备份? 能吗? 当然不能了,因为restore 必须在mount or open状态下. 参数文件,控制文件都没有怎么mount? 要mount必须有参数文件,控制文件,为此我们必须解决这2个难题了. 在解决难题前先准备ORCL的必须的目录: [oracle@fowaydbs]mkdir /opt/oracle/oradata/orcl

RMAN备份经典理解

ORACLE RMAN增量备份经典理解2014-03-29 09:37:46 分类:Oracle Oracle中,增量备份时分等级的,级别从0开始,一级一级递增,不过实际上用的最多的也就是0级和1级了,0级增量备份是后面级别的增量备份的基础,0级备份实际上就是一个完全备份,与普通的完全备份唯一的不同点是0级备份可以作为其他级别增量备份的基础,而普通的完全备份是不能的。 从级别1开始,Oracle的增量备份分为差异增量备份和积累增量备份两种,其中差异增量备份备份的是自上一次同级别的差异备份或者是上一次更高级别的备份完成之后的数据库发生改变的数据块;而积累增量备份则是备份的自上一次上一级增量备份完成以来数据库发生改变的数据块。在《Backup and Recovery User’s Guide》的“增量备份”一节中有两幅图很形象的描述了这两个增量备份之间的异同: 差异增量备份图示

积累增量备份图示 -------------------------------------------------------------------------------------> > rman 全备与0、1级增量备份 1、简单来说,rman全库备份只需要backup database;(未压缩),或者backup as compressed backupset database; (压缩)。即可完全备份,如下: RMAN> backup database; Starting backup at 08-OCT-13 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1

RMAN增量备份与恢复

增量备份计划案例 一、增量备份计划关键命令 星期日: RMAN> backup incremental level=0 database; 星期一: RMAN> backup incremental level=2 database; 星期二: RMAN> backup incremental level=2 database; 星期三: RMAN> backup incremental level=1 database; 星期四: RMAN> backup incremental level=2 database; 星期五: RMAN> backup incremental level=2 database; 星期六: RMAN> backup incremental level=2 database; 二、增量备份计划与恢复实例: 恢复管理器: Release 10.2.0.1.0 - Production on 星期六3月22 14:47:30 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到目标数据库: ORCL (DBID=1177145004) RMAN> backup incremental level=0 database; 启动backup 于22-3月-08 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道ORA_DISK_1: sid=122 devtype=DISK 通道ORA_DISK_1: 启动增量级别0 数据文件备份集 通道ORA_DISK_1: 正在指定备份集中的数据文件 输入数据文件fno=00001 name=C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF 输入数据文件fno=00003 name=C:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF 输入数据文件fno=00007 name=C:\ORACLE\ORADATA\ORCL\PERFSTAT.DBF 输入数据文件fno=00005 name=C:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF 输入数据文件fno=00002 name=C:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF 输入数据文件fno=00004 name=C:\ORACLE\ORADATA\ORCL\USERS01.DBF 输入数据文件fno=00006 name=C:\ORACLE\ORADATA\ORCL\TTT.DBF 通道ORA_DISK_1: 正在启动段 1 于22-3月-08 通道ORA_DISK_1: 已完成段 1 于22-3月-08 段句柄=C:\ORACLE\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_03_22\O1 _MF_NNND0_TAG20080322T144756_3Y9BWXK2_.BKP 标记=TAG20080322T144756 注释=NONE 通道ORA_DISK_1: 备份集已完成, 经过时间:00:01:45 完成backup 于22-3月-08 启动Control File and SPFILE Autobackup 于22-3月-08 段

rman备份恢复操作命令

首先确定/u02/rman目录是否存在 export ORACLE_SID=数据库实例名 rman备份操作: 使用sys用户登录rman rman target sys/syscode #进入rman run{ #备份数据库 ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT '/u02/rman/test_%U'; ALLOCATE CHANNEL CH2 DEVICE TYPE DISK FORMAT '/u02/rman/test_%U'; BACKUP incremental level 0 DATABASE plus archivelog delete input; RELEASE CHANNEL CH1; RELEASE CHANNEL CH2; } list backupset; #备份完毕,记录scn (备份时记录备份完成的SCN号,此SCN号作为数据库恢复的时间点,必须记录下来) #SCN号类似如下: rman 恢复操作 1、首次进行恢复 使用sys用户登录rman rman target sys/syscode #进入rman shutdown immediate #停止数据库 startup mount; #启动实例 run{ set until scn ********; #**为备份时记录的SCN号 restore database; #还原数据库 recover database; #恢复数据库 sql 'alter database open resetlogs'; #打开数据库 } 2、多次恢复 在使用备份文件恢复数据库,用open resetlogs方式打开数据之后,如果需要再次恢复数据库,需要指定数据库的incarnation. 使用sys用户登录rman rman target sys/syscode #进入rman shutdown immediate #停止数据库 startup mount; #启动实例 list backupset; #选择scn (备份时记录备份完的SCN号) #SCN号类似如下:

数据库实验5 数据库的备份和恢复

实验五数据库的备份和恢复 [实验目的] 1.了解SQL Server的数据备份和恢复机制 2.掌握SQL Server的数据备份和恢复的方法,以便学生可以在课余时间在自己的机 器上继续完成实验要求。 [实验时数] 1 学时 [实验内容] 1.用企业管理器创建一个备份设备。 2.为学生选课数据库设置一个备份计划,要求每当CPU空闲时进行数据库备份。 3.为图书借阅数据库设置一个备份计划,要求每月1号进行数据库备份。 4.在企业管理器中恢复学生选课数据库。 5.修改学生选课数据库备份计划,要求每星期对数据库备份一次。 [实验方法] 1.创建、查看和删除备份设备 (1)创建备份设备 在企业管理器中,扩展要操作的SQL服务器,在管理文件夹中找到备份文件夹。用鼠标右键单击该文件夹后,在弹出菜单中选择“新建备份设备”项,如图5- 错误!未定义书签。所示。随后会出现如图5-39所示的备份设备属性对话框。 图5- 错误!未定义书签。备份文件夹的弹出菜单图5- 错误!未定义书 签。备份设备属性对话框 在备份设备属性对话框中,执行下列操作:输入备份设备的逻辑名字;确定备份设备的文件名;单击[确定]按钮。在确定备份设备的文件名时,需要单击文件名栏最右边的“…”按键,并在弹出文件名对话框中确定或改变备份设备的默认磁盘文件路径和文件名。 (2)查看备份设备的相关信息 查看备份设备的相关信息时,需要执行的操作是:在企业管理器中扩展服务器,选择管理文件夹和备份文件夹,在细节窗口中找到要查看的备份设备;用鼠标右键单击该备份设备,在弹出菜单上选择“属性”项,会弹出与图5-39相似的备份设备属性对话框;用鼠标

rman备份策略及备份脚本

Rman归档模式下的热备份策略及实施方案 一、归档模式设置: 1.查看归档状态为非归档 SQL> select log_mode from v$database; LOG_MODE ------------ NOARCHIVELOG archive状态Disabled SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination /archivelog Oldest online log sequence 2 Current log sequence 4 2.设置数据库为归档模式 SQL> shutdown immediate; SQL> startup mount; SQL> alter database archivelog; SQL> alter system set log_archive_start=true scope=spfile; SQL> shutdown immediate; SQL> startup; SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /archivelog Oldest online log sequence 2 Next log sequence to archive 4 Current log sequence 4 二、rman配置准备: 在Rman中,已设置了参数每次备份自动备份控制文件和参数文件,其配置命令为: $ rman target / RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; --设置控制文件和参数文件自动备份 RMAN> set controlfileautobackup format for device type disk to '/backupora/%F'; --设置自动备份控制文件存放位置

windows rman备份脚本

、每天夜间1点执行; 2、数据库全备,同时备份控制文件及归档日志文件,备份文件保存至:D:\backup\目录下,并在完成归档日志文件备份后,自动删除已备份的归档日志; 3、备份保留7天,过期则自动删除; 4、保留操作日志备查; 以Windows环境为例(linux环境下与此基本类似,rman的脚本您甚至连改都不用改,就把调用rman脚本的命令行改改就行了): 1、编写rman批处理文件 保存至:E:\oracleScript\backup\database_backup_jssweb.rman RUN { CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F'; ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U'; BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10 PLUS ARCHIVELOG FILESPERSET 20 DELETE ALL INPUT; RELEASE CHANNEL CH1;

ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK; CROSSCHECK BACKUPSET; DELETE NOPROMPT OBSOLETE; SKIP选项说明 SKIP INACCESSIBLE:表示跳过不可读的文件。我们知道一些offline的数据文件只要存在于磁盘上就仍然可被读取,但是可能有些文件已经被删除或移到它处造成不可读,加上这个参数就会跳过这些文件; SKIP OFFLINE:跳过offline的数据文件; SKIP READONLY:跳过那些所在表空间为read-only的数据文件; 注意哟,你从网上搜索rman备份脚本,可能有些脚本中会出现一项:sql 'alter system archive log current';这句是让archivelog日志归档,实际上完全没必要,我们在第三节的时候讲过,通过plus archivelog方式备份时,rman会自动对当前的archivelog进行归档。 2、编写dos批处理 保存至:E:\oracleScript\backup\database_backup_jssweb.bat 设定要备份的数据库sid为jssweb,将日志按照日期输出到E:\oracleScript\backup\logs\目录。set oracle_sid=jssweb rman target / msglog E:\oracleScript\backup\logs\%date:~0,10%.log cmdfile=E:\oracleScript\backup\database_backup_jssweb.rman

相关主题
文本预览
相关文档 最新文档