当前位置:文档之家› 一个完整的Oracle rman备份恢复参考示例

一个完整的Oracle rman备份恢复参考示例

一个完整的Oracle rman备份恢复参考示例
一个完整的Oracle rman备份恢复参考示例

1、建rman库作为repository

$more createrman_db1.sh

set echo on

spool makedb1.log

create database rman

datafile '/export/home/oracle/oradata/rman_data/system.dbf' size 50m autoextend on next 640K

logfile '/export/home/oracle/oradata/rman_data/redo0101.log' SIZE 10M,

'/export/home/oracle/oradata/rman_data/redo0201.log' SIZE 10M

maxdatafiles 30

maxinstances 8

maxlogfiles 64

character set US7ASCII

national character set US7ASCII

;

disconnect

spool off

exit

@/export/home/oracle/8.1.6/rdbms/admin/catalog.sql;

REM ********** ALTER SYSTEM TABLESPACE *********

ALTER TABLESPACE SYSTEM

DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR EASE 50);

ALTER TABLESPACE SYSTEM

MINIMUM EXTENT 64K;

REM ********** TABLESPACE FOR ROLLBACK **********

CREATE TABLESPACE RBS DATAFILE '/export/home/oracle/oradata/rman_data/rbs.dbf' s ize 50m

AUTOEXTEND ON NEXT 512K

MINIMUM EXTENT 512K

DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 10 MAXEXTENTS UNLIMITED PC TINCREASE 0 );

REM ********** TABLESPACE FOR TEMPORARY **********

CREATE TABLESPACE TEMP DATAFILE '/export/home/oracle/oradata/rman_data/temp.dbf' size 50m

AUTOEXTEND ON NEXT 64K

MINIMUM EXTENT 64K

DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR EASE 0) TEMPORARY;

REM **** Creating four rollback segments ****************

CREATE PUBLIC ROLLBACK SEGMENT RBS_0 TABLESPACE RBS

STORAGE ( OPTIMAL 64000K );

ALTER ROLLBACK SEGMENT "RBS_0" ONLINE;

REM **** SYS and SYSTEM users ****************

alter user sys temporary tablespace TEMP;

alter user system temporary tablespace TEMP;

disconnect

spool off

exit

$more createrman_db3.sh

spool crdb3.log

@/export/home/oracle/8.1.6/rdbms/admin/catproc.sql

@/export/home/oracle/8.1.6/rdbms/admin/caths.sql

@/export/home/oracle/8.1.6/rdbms/admin/otrcsvr.sql

connect system/manager

@/export/home/oracle/8.1.6/sqlplus/admin/pupbld.sql

disconnect

spool off

exit

2、建repository存放的表空间和rman用户

$more createrman_db4.sh

connect internal

create tablespace rman_ts

datafile '/export/home/oracle/oradata/rman_data/rman_ts.dbf' size 20M default storage (initial 100K next 100K pctincrease 0); create user rman_hainan identified by rman_hainan

temporary tablespace TEMP

default tablespace rman_ts quota unlimited on

rman_ts;

grant recovery_catalog_owner to rman_hainan;

grant connect ,resource to rman_hainan;

3、建catalog,注册目标数据库

$more createrman_db5.sh

rman catalog rman_hainan/rman_hainan@rman msglog=rman.log

create catalog ;

exit;

rman target sys/oracle@db1

connect catalog rman_hainan/rman_hainan@rman

register database;

exit;

4、可以开始做备份了

5、做全备

$more rmanshell

. /export/home/oracle/.profile

rman rcvcat rman_hainan/rman_hainan@rman target / cmdfile /export/home/oracle/ba ckup_level0.rcv log /export/home/oracle/backup.log

$more backup_level0.rcv

resync catalog;

run {

allocate channel t1 type disk;

backup

incremental level 0

skip inaccessible

tag hot_db_bk_level0

filesperset 3

format '/export/home/oracle/bk_%s_%p_%t.bk'

(database);

sql 'alter system archive log current';

backup

filesperset 10

format '/export/home/oracle/a1_%s_%p_%t.ac'

(archivelog all delete input);

backup

format '/export/home/oracle/df_t%t_s%s_p%p.ct'

current controlfile ;

}

6、做增备

$more rmanshell1

rman rcvcat rman_hainan/rman_hainan@rman target / cmdfile backup_level1.rcv log backup.log

$more backup_level1.rcv

resync catalog;

run {

allocate channel t1 type disk;

backup

incremental level 1

skip inaccessible

tag hot_db_bk_level1

filesperset 3

format 'bk_%s_%p_%t.bk1'

(database);

sql 'alter system archive log current';

backup

filesperset 10

format 'a1_%s_%p_%t.ac1'

(archivelog all delete input);

backup current controlfile;

}

1、删除旧的全备

$rman rcvcat rman_hainan/rman_hainan@rman target /

Recovery Manager: Release 8.1.6.0.0 - Production

RMAN-06005: connected to target database: TEST (DBID=1692992254)

RMAN-06008: connected to recovery catalog database

RMAN> list backupset;

RMAN-03022: compiling command: list

List of Backup Sets

Key Recid Stamp LV Set Stamp Set Count Completion Time

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

38 145 399987408 0 399987406 153 11-JUN-00

根据key来删除旧的备份。

RMAN> allocate channel for maintenance type disk;

RMAN> change backupset 169 delete; ----------THIS IS THE COMMAND TO REMOVE THE ENTRY & OS FILE

做完后可以看到list backupset和操作系统的文件都没有了。

2、恢复

(1)将数据库启动到nomount状态:

$svrmgrl

Oracle Server Manager Release 3.1.6.0.0 - Production

Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.

Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production

With the Partitioning option

JServer Release 8.1.6.0.0 - Production

SVRMGR> connect internal

Connected.

SVRMGR> startup nomount;

ORACLE instance started.

Total System Global Area 339275684 bytes

Fixed Size 94116 bytes

Variable Size 318685184 bytes

Database Buffers 16384000 bytes

Redo Buffers 4112384 bytes

SVRMGR> exit

Server Manager complete.

(2)恢复控制文件:

$rman rcvcat rman_hainan/rman_hainan@rman target /

Recovery Manager: Release 8.1.6.0.0 - Production

RMAN-06006: connected to target database: test (not mounted)

RMAN-06008: connected to recovery catalog database

RMAN> run {

2> allocate channel d1 type disk;

3> restore controlfile;

4> release channel d1;

5> }

(3)恢复数据文件

RMAN> run {

2> allocate channel d1 type disk;

3> sql "alter database mount";

4> restore datafile 1;

5> restore datafile 2;

6> restore datafile 3;

7> restore datafile 4;

8> release channel d1;

9> }

(4)恢复日志文件

RMAN> run {

2> set archivelog destination to '/export/home/oracle/admin/test/arch';

3> allocate channel d1 type disk;

4> restore archivelog all;

5> release channel d1;

6> }

会把所有的日志文件恢复。

(5)根据日志做recover

$svrmgrl

Oracle Server Manager Release 3.1.6.0.0 - Production

Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved. Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production

With the Partitioning option

JServer Release 8.1.6.0.0 - Production

SVRMGR> connect internal

Connected.

SVRMGR> recover database using backup controlfile until cancel;

ORA-00279: change 51054 generated at 06/11/2000 11:38:37 needed for thread 1

ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_3.arc

ORA-00280: change 51054 for thread 1 is in sequence #3

Specify log: {=suggested | filename | AUTO | CANCEL}

Log applied.

ORA-00279: change 51058 generated at 06/11/2000 11:38:44 needed for thread 1

ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_4.arc

ORA-00280: change 51058 for thread 1 is in sequence #4

ORA-00278: log file '/export/home/oracle/admin/test/arch/arch_1_3.arc' no longer needed for this recovery

Specify log: {=suggested | filename | AUTO | CANCEL}

Log applied.

ORA-00279: change 51074 generated at 06/11/2000 11:40:20 needed for thread 1

ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_5.arc

ORA-00280: change 51074 for thread 1 is in sequence #5

ORA-00278: log file '/export/home/oracle/admin/test/arch/arch_1_4.arc' no longer needed for this recovery

Specify log: {=suggested | filename | AUTO | CANCEL}

cancel

Media recovery cancelled.

SVRMGR> alter database open resetlogs;

Statement processed.

恢复完成。

SVRMGR> select table_name from user_tables;

TABLE_NAME

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

BONUS

DEPT

EMP

SALGRADE

TEST

TEST_ZMY

ZMY

ZMY_DEPT

ZMY_EMP

9 rows selected.

可以检查看到,所有的都恢复了,包括全备份后的事务。(只要有归档日志,都可以恢复)。

3、恢复后rman数据库的同步

$rman rcvcat rman_hainan/rman_hainan@rman target /

Recovery Manager: Release 8.1.6.0.0 - Production

RMAN-06005: connected to target database: TEST (DBID=1692992254)

RMAN-06008: connected to recovery catalog database

RMAN> reset database;

RMAN-03022: compiling command: reset

RMAN-03023: executing command: reset

RMAN-08006: database registered in recovery catalog

RMAN-03023: executing command: full resync

RMAN-08029: snapshot controlfile name set to default value: ?/dbs/snapcf_@.f RMAN-08002: starting full resync of recovery catalog

RMAN-08004: full resync complete

oracle 备份恢复语句整理(最全)

Oracle备份恢复场景总结 一、数据文件、表空间恢复 1、数据库文件恢复 1>场景一: 问题描述: test.dbf丢失,有RMAN备份。 重启报错: Startup; ORA-01157: cannot identify/lock data file 5 - see DBWR trace file ORA-01110: data file 5: '/oracle/app/oracle/oradata/orcl/test01.dbf' run{ startup mount; allocate channel ch00 type 'SBT_TAPE'; restore datafile 5; recoverdatafile 5; alter database open; release channel ch00; }

2>场景二 问题描述: 模拟test表空间损坏,删除数据文件(恢复到新目录) 旧目录:/oracle/app/oracle/oradata 新目录: /home/oracle run{ allocate channel ch00 type 'SBT_TAPE'; sql 'alter database datafile 5 offline'; setnewname for datafile 5 to '/home/oracle/test01.dbf'; restoredatafile 5; switchdatafile 5; recoverdatafile 5; sql 'alter database datafile 4 online'; release channel ch00; } 说明: set newname for 告诉RMAN 还原数据文件的新位置在哪里。这个命令在restore 前出现。 switch datafile更新controlfile,记录这个新位置。这个命令要在recover 前出现

ORACLE数据备份与数据恢复方案

O R A C L E数据备份与数据恢 复方案 Prepared on 24 November 2020

摘要 结合金华电信IT系统目前正在实施的备份与恢复策略,重点介绍电信业务计算机管理系统(简称97系统)和营销支撑系统的ORALCE数据库备份和恢复方案。 Oracle数据库有三种标准的备份方法,它们分别是导出/导入 (EXP/IMP)、热备份和冷备份。要实现简单导出数据(Export)和导入数据(Import),增量导出/导入的按设定日期自动备份,可考虑,将该部分功能开发成可执行程序,然后结合操作系统整合的任务计划,实现特定时间符合备份规划的备份应用程序的运行,实现数据库的本级备份,结合ftp简单开发,实现多服务器的数据更新同步,实现数据备份的异地自动备份。 关键字:数据库远程异地集中备份 目录

一、前言 目前,数据已成为信息系统的基础核心和重要资源,同时也是各单位的宝贵财富,数据的丢失将导致直接经济损失和用户数据的丢失,严重影响对社会提供正常的服务。另一方面,随着信息技术的迅猛发展和广泛应用,业务数据还将会随业务的开展而快速增加。但由于系统故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如做了备份,恢复数据就显得很容易。由此可见,做好数据库的备份至关重要。因此,建立一个满足当前和将来的数据备份需求的备份系统是必不可少的。传统的数据备份方式主要采用主机内置或外置的磁带机对数据进行冷备份,这种方式在数据量不大、操作系统种类单一、服务器数量有限的情况下,不失为一种既经济又简明的备份手段。但随着计算机规模的扩大,数据量几何级的增长以及分布式网络环境的兴起,将越来越多的业务分布在不同的机器、不同的操作平台上,这种单机的人工冷备份方式越来越不适应当今分布式网络环境。 因此迫切需要建立一个集中的、自动在线的企业级备份系统。备份的内容应当包括基于业务的业务数据,又包括IT系统中重要的日志文件、参数文件、配置文件、控制文件等。本文以ORACLE数据库为例,结合金华电信的几个相关业务系统目前正在实施的备份方案,介绍ORACLE数据库的备份与恢复。 二、金华电信ORACLE数据库的备份与恢复方案 由于金华电信IT系统以前只采用逻辑备份方式进行数据库备份,速度较慢并且数据存储管理都很分散,甚至出现备份数据不完整的现象。为了提高备份数据的效率,提供可靠的数据备份,完善备份系统,保证备份数据的完整性,降低数据备份对网络和服务器的影响,对每个IT系统的备份数据进行集中管理,我们对备份工作进行了改进,将逻辑备份与物理备份相结合,在远程建立了一个异地集中、自动在线的备份系统即网络存储管理系统。(这里用到的物理备份指热备份)其具备的主要功能如下:(1)集中式管理 :网络存储备份管理系统对整个网络的数据进行管理。利用集中式管理工具的帮助,系统管理员可对全网的备份策略进行统一管理,备份服务器可以监控所有机器的备份作业,也可以修改备份策略,并可即时浏览所有目录。所有数据可以备份到同备份服

数据库备份方案

《客户名称》备份管理系统设计方案 上海鸿翼数字计算机网络有限公司

目录 1.项目概述 (3) 2.系统需求分析 (4) 1. (4) 2. (4) 1 (4) 2 (4) 1.1系统现状分析 (4) 1.2备份系统风险评估 (4) 1.3备份系统需求分析 (5) 3.系统备份理念 (5) 1 (5) 2 (5) 3 (5) 3.1系统设计指引 (5) 3.2数据保护技术选择 (6) 3.3连续数据保护 (7) 3.4备份管理系统组成 (7) 4.系统备份结构设计 (9) 1 (9) 2 (9) 3 (9) 4 (9)

4.1整体系统架构设计 (9) 5.系统备份方案介绍 (11) 1 (11) 2 (11) 3 (11) 4 (11) 5 (11) 5.1W INDOWS服务器自身备份 (11) 5.2双机热备 (13) 5.3爱数备份 (14) 6.总结 (17) 1.项目概述

上海鸿翼数字计算机网络有限公司将根据《》的网络实际需求,制定一套完整的集数据备份、灾难恢复、服务器整合及虚拟化一身的方案。一个完整的企业数据备份与恢复解决方案就意味着数据安全与性能(机器和网络)的完美结合,一条龙式的服务标准(产品的服务与支持)。所以在选择备份系统时,既要做到满足系统容量不断增加的需求,又要所用的备份方式能够支持多系统平台操作。要达到这些,就要充分使用网络数据存储系统,在分布式网络环境下,通过专业的数据存储软件,配合系统备份及双机备份,结合相应的硬件和存储设备,对网络的数据备份进行集中管理,从而实现自动化备份、文件归档、数据分级存储和灾难恢复。 2.系统需求分析 1.1系统现状分析 《》网络基础结构是基于Windows平台,现在拥有X台服务器。《》的文档管理系统包含了文件服务器、转档服务器、数据库服务器等企业信息管理系统,为企业的发展提供了强有力的信息化支持。主要数据库包含了Microsoft SQL Server、Oracle、DB2等。 1.2备份系统风险评估 《》的信息系统管理人员十分重视数据的保护,在没有备份软件的情况下,已经采用了重要数据镜像备份、服务器系统镜像备份等常规保护方法,为企业的数据财产提供了安全的保障。但是以上方法很难实现快速备份和灾难后的迅速恢复,很难保证业务的连续性。 根据上面的备份管理系统的风险评估,建议《》使用ESioo安全备份专家软件,配合Windows自带备份和双机虚拟备份,并重新设计相关备份的恢复策略,达到可以快速恢复数据备份和快速恢复文档管理系统备份的水平,从而提高整个企业的数据安全级别。

Linux下Oracle 11g数据库全库自动备份(EXPDP)

使用EXPDP方式备份整个实例 本教程可使用system账户将整个实例备份(包含空表),并自动删除超过6天的历史数据。 1、r oot用户登录服务器 mkdir -p /backup/oracledata#新建Oracle数据库备份目录 chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的 oracle用户(用户oracle与用户组oinstall是在安装 Oracle数据库时设置的) 2、创建目录对象 因为使用expdp命令需要使用到目录对象(directory),所以首先需要创建目录对象,并赋予某个用户对目录对象的操作权限。 操作步骤如下: su – oracle #切换到oracle用户 sqlplus / as sysdba#切换到SQLPLUS环境 执行以下命令: create directory expdp_bak_dir as '/backup/oracledata'; #指定EXPDP输出目录 grant create any directory to system; #授予system权限 3、编辑自动备份脚本 vi /backup/oracledata/ordatabak.sh #新建文件,输入以下代码 #/bin/sh export ORACLE_SID=shuwei export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export NLS_LANG=american_america.zhs16gbk export DATA_DIR=/backup/oracledata now=` date +%Y%m%d%H%M%S ` dmpfile=db$now.dmp echo start exp $dmpfile ... /u01/app/oracle/product/11.2.0/dbhome_1/bin/expdp system/123456@shuwei DUMPFILE=$dmpfile DIRECTORY=expdp_bak_dir full=y echo "Delete the file bakup before 6 days..." find /backup/oracledata/ -mtime +6 -name "*.dmp" -exec rm -rf '{}' \; echo "Delete the file bakup successfully. "

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}

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 ===================

系统运维管理-备份与恢复管理(Ⅰ)

系统运维管理备份与恢复管理(Ⅰ) 版本历史 编制人: 审批人:

目录 目录 (2) 一、要求内容 (3) 二、实施建议 (3) 三、常见问题 (4) 四、实施难点 (4) 五、测评方法 (4) 六、参考资料 (5)

一、要求内容 a)应识别需要定期备份的重要业务信息、系统数据及软件系统等; b)应建立备份与恢复管理相关的安全管理制度,对备份信息的备份方式、备份频度、存储介质和保存期等进行规定; c)应根据数据的重要性和数据对系统运行的影响,制定数据的备份策略和恢复策略,备份策略须指明备份数据的放置场所、文件命名规则、介质替换频率和将数据离站运输的方法; d)应建立控制数据备份和恢复过程的程序,记录备份过程,对需要采取加密或数据隐藏处理的备份数据,进行备份和加密操作时要求两名工作人员在场,所有文件和记录应妥善保存; e)应定期执行恢复程序,检查和测试备份介质的有效性,确保可以在恢复程序规定的时间内完成备份的恢复; f)应根据信息系统的备份技术要求,制定相应的灾难恢复计划,并对其进行测试以确保各个恢复规程的正确性和计划整体的有效性,测试内容包括运行系统恢复、人员协调、备用系统性能测试、通信连接等,根据测试结果,对不适用的规定进行修改或更新。 二、实施建议 制定数据备份的规定,包括备份的策略、计划和内容等信息,备份策略的制定要结合本身数据量多少、数据更新时间等要求进行制定,对备份的数据要进行定期的恢复性测试,保证该备份的可用性。数据的恢复管理不仅仅是灾难恢复的计划,应当针对不同的数据恢复要求和恢复的内容制定多种适当的恢复策略,并定期对策略的有效性进行测试。

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

TSM+ORACLE备份恢复测试报告

Oracle数据库备份恢复测试报告

目录 1.背景概述 (1) 1.1恢复测试目的 (1) 1.2恢复测试方法 (1) 1.3数据库备份架构 (1) 2.恢复所需资源 (2) 2.1主机资源 (2) 2.2实施环境 (2) 3.数据库恢复测试步骤 (3) 3.1安装配置测试主机 (3) 3.2全库恢复 (3) 3.3测试主机-TSM恢复配置 (3) 3.4测试主机-设定数据库环境变量 (4) 3.5测试主机-启动数据库到NOMOUNT状态 (4) 3.6测试主机-恢复控制文件 (4) 3.7测试主机-更改数据库到MOUNT状态 (5) 3.8测试主机-恢复数据文件 (5) 3.9测试主机-恢复归档日志 (9) 3.10测试主机-以RESETLOGS方法打开数据库 (11) 3.11测试主机-重启数据库 (11) 4.恢复结果 (12)

1.背景概述 1.1恢复测试目的 为了验证数据库的备份有效性,我们进行了此次的数据库恢复测试,用来确保 数据库备份的正确性,可恢复性。 1.2恢复测试方法 异机恢复 因为生产数据库已经在使用,我们不能在生产数据库上进行本机恢复测试,为 了不影响生产数据库的正常使用,我们将在测试机上进行恢复测试。 1.3数据库备份架构 1.备份系统采用IBM Tivoli备份软件; 2.带库使用ADIC磁带库。

2.恢复所需资源 2.1主机资源 需要准备恢复的测试主机,最佳做法是恢复测试主机的硬件架构、操作系统版本和生产主机一致。 2.2实施环境

3.数据库恢复测试 步骤 3.1安装配置测试主机 因为测试机完全拷贝备份主机,故测试机与生产机环境一致,确保测试主机已经正常 运行,并能于要恢复的生产主机,备份主机网络连通。 3.2全库恢复 利用TSM软件界面,调用原来所备份的数据库,以及相应的数据库恢复工具RMAN的 脚本,进行ORACLE 数据库系统的全库恢复。 3.3测试主机-TSM恢复配置 因为测试主机与生产主机架构相同,故只需在TSM SERVER上定义SAN server。 如下:

备份和恢复策略

备份和恢复策略 备份策略 如下的备份方案是可行及有效的: ●冷备份 ●全部和部分卸出(数据)(exp/imp) ●以上方法可以组合使用(建议) 备份方案的优缺点: 1 冷备份 备份过程: 关闭数据库,拷贝所有数据库文件(包括控制文件,重作日志文件,数据文件) 恢复过程:将原来数据库数据文件全部删除(控制文件,重作日志文件,数据文件),将备份拷贝回相应目录,数据库重起即可用。 优点:备份方法简单,可靠,速度快且安全的备份。 缺点:只能恢复到备份时间点,有可能有数据丢失,备份时数据库必须关闭,不能恢复单个表或用户。 2 全库倒出/部分倒出(EXP) 备份过程: 采用oracle 工具exp 将全库数据(或部分用户数据)逻辑卸出。 恢复过程: 使用oracle 工具imp将数据倒入。可以进行全库,用户或表级的倒入。 优点: 备份安全、有效。可以从整个数据库备份中能够恢复单个表,当恢复时,能对表重新配置和清除碎块,能方便地在不同的操作系统之间移动数据,能从一个用户移动数据到另一个。备份方法简单,无须关闭数据库。备份时间对于中小规模的数据库可以接受,恢复方式灵活,可以根据故障情况灵活进行恢复,有可能节省大量恢复时间。 缺点:无法做到时间点恢复,有可能丢失部分数据,恢复时间较慢,备份频度要求较高,一般要求备份时间和生产时间分开,否则备份时影响性能。 3 备份后数据的存放 (1)、存放在本机(主机)。 优点:备份和导出速快。主要用于短时间数据存储、或数据转存。

缺点:主机容量上的限制、和主机数据在一起存在安全性问题。 (2)、存放在其它PC机上。 优点:与主机容量无关,数据异地保存有利于用户数据安全。 缺点:备份和导出与网络速度有关。 (3)、备份到磁带上。 优点:容量大,存储数据安全,适用数据长期保存。 缺点:备份速度慢,数据可先备份到磁盘上,经过压缩后 tar 到磁带上。 4 数据的保存时间 (1)、每天用EXP 进行全库导出备份,全库导出的数据可保存一周。 (2)、每月进行数据冷备份,冷备份的数据可按时间保存两份以上。 (3)、每月底进行保存一份全库导出的数据,备份数据可保存一年左右,它主要用于历史数据导入查询用。 备份操作例子: 1、每月做一次全库冷备份。 操作事例: (1)、录登主机,关闭数据库 $svrmgrl svrmgrl>CONNECT INTERNAL svrmgrl> shoudown (2)、拷贝所有数据库文件(包括控制文件,重作日志文件,数据文件) $cp -r /ctaisdata1/* /ctaisdump/cdump/ctaisdata1/ $cp -r /ctaisdata2/* /ctaisdump/cdump/ctaisdata2/ $cp -r /ctaisdata3/* /ctaisdump/cdump/ctaisdata3/ 或建立批处理 ctais_dump.sh cp -r /ctaisdata1/* /ctaisdump/cdump/ctaisdata1/ cp -r /ctaisdata2/* /ctaisdump/cdump/ctaisdata2/ cp -r /ctaisdata3/* /ctaisdump/cdump/ctaisdata3/ 用chmod 777 ctais_dump.sh 变为可执行文件 在ROOT 用户运行

数据库备份策略说明

数据库备份策略说明 1、备份目的 保障项目数据安全,防止服务器故障导致数据无法恢复的情况。 2、备份策略 综述:所有mysql实例已经实现了master、slave结构,我们备份一般在slave服务器进行。部分备份完成之后,会上传一份数据到存储机或者其他服务器进行异机及异地备份,另外备份保存一份。 一、备份方式 1、本机备份 该备份模式,适合于快速恢复数据。比如:误操作删除数据等 2、异机容灾备份 该备份模式,能比较好的规避单机故障问题。 3、异地容灾备份 该备份模式,规避大规模IDC故障(比如:火灾、地震、空调故障等)、数据安全问题 二、备份频率 1、主站www、bbs、blog等核心项目,进行每天完整备份。结合各项目数据库实例master 与slave结构,以及当前slave服务器负载和带宽情况,采用crontab定时备份。 2、对于跟商业有关的项目,备份策略同核心项目。 3、非核心项目90%备份策略采用核心项目备份机制,其他采用每周备份策略。 4、对于近期大规模更新数据或者数据库结构变更的数据库实例,采用人员干预备份模式,即走备份申请流程。 三、备份准备 1、创建备份目录 /opt/phpdba/backup/database 2、脚本编写 详见第四项,备份脚本 3、加入计划任务crontab 4、检查备份情况 5、添加每天检查列表 四、备份脚本

#!/bin/sh LogFile=db$(date +%y%m%d).log week=`date +%w` cd /opt/phpdba/backup/database for DBName in database do NewFile=db$DBName$(date +%y%m%d).tar.gz OldLogFile=db$(date -d '7 days ago' +%y%m%d).log if [ -f $OldLogFile ] then rm -f $OldLogFile >> $LogFile 2>&1 echo "[$OldLogFile]Delete Old log File Success!" >> $LogFile else echo "[$OldLogFile]No Old log File!" >> $LogFile fi case $week in 1) date=`date -d '56 days ago' +%y%m%d` OldFile=db$DBName$date.tar.gz if [ -f $OldFile ] then rm -f $OldFile >> $LogFile 2>&1 echo "[$OldFile]Delete Old File Success!" >> $LogFile else echo "[$OldFile]No Old Backup File!" >> $LogFile fi ;; 2|3|4|5|6|0) date=`date -d '7 days ago' +%y%m%d` OldFile=db$DBName$date.tar.gz if [ -f $OldFile ] then rm -f $OldFile >> $LogFile 2>&1 echo "[$OldFile]Delete Old File Success!" >> $LogFile else echo "[$OldFile]No Old Backup File!" >> $LogFile fi ;; esac if [ -f $NewFile ] then echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile else

ORACLE最简单有效的备份恢复方案

ORACLE 最简单有效的备份恢复方案 ORACLE备份分两种,1.逻辑备份;2.物理备份; 逻辑备份又分两种:传统的exp备份;10g开始支持的expdp数据泵备份; 物理备份主要就是RMAN备份; 最基本的原则是:这些逻辑或物理备份和数据库文件必须放在不同的硬盘上;否者一损俱损;备份就没多大意义了; 如果数据库不是很大,比如在50G以下,那么我们就考虑一些傻话化的全备方案 我现在的备份方案是:两个逻辑备份和RMAN 备份全部用上; 1.传统dmp逻辑备份和恢复 1.1传统dmp逻辑备份,这个是最简单的备份方法; 现在我提供一个简单的脚本: 1.1.1首先建立一个bat文件,名字叫:exp_backup.bat 内容是: set oracle_username=%1 set oracle_password=%2 set local_tnsname=%3 set url=%oracle_username%/%oracle_password% if not %local_tnsname% == "" set url=%url%@%local_tnsname% if exist %oracle_username%_old.dmp del %oracle_username%_old.dmp if exist %oracle_username%_old.log del %oracle_username%_old.log if exist %oracle_username%.dmp ren %oracle_username%.dmp %oracle_username%_old.dmp if exist %oracle_username%.log ren %oracle_username%.log %oracle_username%_old.log exp %url% file=%oracle_username%.DMP log=%oracle_username%.LOG 该脚本是一个通用的最简单的exp脚本; 意思就是:备份之间,把以前的备份文件修改名字,后面加上_old ,如果本来就有old文件,就删除之;之后,就开始备份;备份的文件目录和该脚本一致(这样做最简单); 所以总是会出现一新一旧两个文件;当然只要最新的就行了,所以理论上只要一份文件; 但是考虑有可能备份的时候突然报错,这样old文件还在,将就着使用,否者新的是坏的,旧的也没了;

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数据库恢复方案

目录 数据库恢复方案 (1) 文档控制 (1) 一、相关概念 (3) 1,恢复的两个阶段 (3) 2,Oracle实例启动的三个阶段 (3) 3,RMAN信息的保存位置 (3) 二、完全恢复 (3) (一) 控制文件 (3) 1) 丢失部分控制文件: (3) 2) 丢失全部控制文件 (3) (二) 重做日志文件 (4) 1) 非当前使用的重做日志文件: (4)

2) 当前使用的重做日志文件(未归档): (4) (三) 数据文件 (4) 1) 无归档模式下的完全恢复 (4) 2) 归档模式下的完全恢复 (5) 三、不完全恢复 (6) (一) 基于SCN的不完全恢复 (6) 1) 准备工作 (6) 2) 使用RMAN进行恢复 (7) (二) 基于时间点的不完全恢复 (8) 1) 准备工作 (8) 2) 使用RMAN进行恢复 (8) 四、高级篇 (9)

(一) 使用RMAN进行异机同目录 (9) 1) 准备工作 (9) 2) 通过RMAN进行异机恢复 (10) (二)使用RMAN进行异机异目录 (11) 1) 准备工作 (11) 2) 通过RMAN进行异机恢复 (11) (三)使用RMAN进行在线数据块恢复 (14) 一、相关概念 1,恢复的两个阶段 数据库无论采取哪种方式进行恢复都分为Restore和Recover两个步骤。Restore(还原):把控制文件、重做日志文件和数据文件还原到正确位置。Recover(恢复):恢复还原后的数据文件,使数据库达到一致状态。

2,Oracle实例启动的三个阶段 Oracle实例启动经过三个阶段: l NOMOUNT(未装载):读入参数文件,验证参数文件中的目录是否存在。 l MOUNT(装载):读入参数文件指定位置的控制文件。 l OPEN(打开):验证控制文件中指定的重做日志文件和数据文件是否正确、数据文件是否一致,然后读入数据文件中的数据。 所以按照如下顺序使数据库正确打开。 1) SHUTDOWN(关闭)状态下,确保参数文件指定的文件夹存在,启动到NOMMUNT 状态。 2) NOMOUNT状态下,保证控制文件的位置和命名与参数文件中相同,控制文件中指定的重做日志文件和数据文件存在,然后启动到MOUNT状态。 3) MOUNT状态下,执行RMAN还原和恢复操作。

系统备份策略

系统备份策略 1.为什么要做备份 备份是防止用户数据丢失的重要手段,备份的最终目的是确保数据的安全,我们知道以下各种灾难总是难以避免: Hardware(disk) Failure 尽管现在多数存贮设备都具有冗余功能,但也不能确保不出现数据丢失(例如种种原因出现两个以上的硬盘同时损坏等) Database /Application Corruption 数据库和应用中总是存在bug,或是由于管理上的疏漏而出现数据库表空间和堆栈等溢出而导致数据被破坏等等。 Administrator Error 系统管理员在日常维护过程中总是难免会犯错而出现误删数据等。 User Error 用户的错误往往也会使数据需要恢复到从前某个时段的状态。 Site Disater 生活中有很多不可抗因素和自然灾害如:火灾,洪水,地震,雷击等会造成数据彻底丢失。 2. 备份什么 操作系统的文件及配置 硬盘空间文件系统的划分信息 用户profile及个人目录 应用及数据库系统的执行代码及文件 用户数据 3.备份的分类方式 OS/Database Backup Incremental/Full Backup Online/Offline Backup Local/Network Backup 4. 典型的系统备份策略

数据库数据通常时刻在变,因而要每天作备份,而应用系统及OS 通常在其本身版本升级,打补丁,配置调整后要重做全备份。总之原则是,当系统信息全部丢失时,依靠手头的备份能够以最快的速度进行恢复,且信息损失最少或没有损失。 为了达到这一目的,我们在备份时一定要注意做到: ①组织一种适合自己实际情况的备份策略。 ②将磁带存储在异地。 ③定期清洗磁头。 ④不要使用有故障的磁带。 一般来说,我们有三种不同的备份策略,这三种备份策略的区别在于备份所使用磁带的数量不同,这三种策略分别是: ①三带轮换策略:适合小型系统,能保存三个星期内的网络数据。 如果采用三带轮换策略,我们必须拥有三盘磁带,称为磁带1、磁带2、磁带3。在第一个星期的星期一我们用磁带1作一次完全备份,然后在剩下的几天作部分备份(只备份新的或改动过的文件〕。在第二个星期的星期一我们用磁带2作一次完全备份,在剩下的几天作部分备份。同理,第三个星期用磁带3备份。在第四个星期时,我们将取出磁带1,重新开始新一轮备份。 ②六带轮换策略:能保存两个星期内的数据。 如果采用三带轮换策略,这就意味着我们从星期一到星期四的每天都分别使用一盘磁带进行部分备份,然后再用一盘在星期五作完全备份,剩下那盘留在下个星期五作完全备份。这样我们就可以存储最近两个星期的所有数据。这个备份策略可以用下图表示: 星期一 星期二 星期三 星期四 部分备份

Linux下Oracle数据库自动备份脚本

Linux下Oracle数据库自动备份脚本 1.用PL/SQL登录数据库 2.设置空表可导出 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; --然后执行查询出来的语句 3.查看数据库的字符集 查看database中的NLS_CHARACTERSET的值 a、select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'; b、select * from v$nls_parameters where parameter='NLS_CHARACTERSET'; PARAMETER VALUE ----------------- ---------- NLS_CHARACTERSET ZHS16GBK 4.登录linuxOracle服务器 5.创建investDBbak目录(目录随意创建,在脚本中修改即可) mkdirinvestDBbak 6.在investDBbak下创建DBBak目录、Shell目录 mkdirDBBak mkdirshell 7.在shell目录下创建invest_test_dbbak.sh文件 vi invest_test_dbbak.sh 8.复制内容 #!/bin/sh export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export DATA_DIR=/home/oracle/investDatabak/dbbak/data export LOGS_DIR=/home/oracle/investDatabak/dbbak/log export DELTIME=`date -d "15 days ago" +%Y%m%d` export BAKUPTIME=`date +%Y%m%d%H%M%S` export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK mkdir -p $DATA_DIR mkdir -p $LOGS_DIR echo "Starting bakup..." echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp"

ORACLE 11G HA NBU异机恢复过程

ORACLE 11G AIX HA ----NBU异机恢复过程 恢复前提 1.两台机器上NUB软件都已经安装好 2.指定Master SERVER 上的/usr/openv/netbackup/bp.conf恢复源 FORCE_RESTORE_MEDIA_SERVER = 生产库hostname 测试库hostname 从生产库恢复到测试库。 操作目的 节点POTLDB01 数据库恢复到POTLDB02 即在节点POTLDB01上运行,并在节点POTLDB01上备份,恢复到POTLDB02上 节点POTLDB01机器检查过程 1.检查环境变量检查 root@POTLDB01:/usr/openv/rmanscript#ps -ef |grep smon root 385272 467274 0 10:40:22 pts/2 0:00 grep smon oracle 655484 1 0 Jul 25 - 0:06 ora_smon_portaldb 机器名字 root@POTLDB01:/usr/openv/rmanscript#hostname POTLDB01 root@POTLDB01:/usr/openv/rmanscript#pwd ---rman脚本位置 /usr/openv/rmanscript root@POTLDB01:/usr/openv/rmanscript#ls hot_database_portaldb.sh hot_database_portaldb.sh.out hot_database_portaldb.sh_bak /etc/hosts文件 172.16.3.115 POTLDB01_boot 172.16.3.116 POTLDB02_boot 172.16.3.116 POTLDB02 172.16.3.115 POTLDB01 1.1.3.115 POTLDB01_stby 1.1.3.116 POTLDB02_stby

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