Oracle还原步骤实例

合集下载

oracle追加还原实例 -回复

oracle追加还原实例 -回复

oracle追加还原实例-回复Oracle是一种功能强大的数据库管理系统,被广泛应用于大型企业和组织中。

在使用Oracle数据库时,经常会遇到需要追加和还原实例的情况。

追加实例是指在现有数据库服务器上增加一个新的实例,而还原实例是指将数据库恢复到之前的某个时间点或版本。

以下将一步一步回答如何追加和还原Oracle实例。

追加实例:1. 确定新实例的名称和相关配置参数。

首先,需要决定新实例的名称,这个名称应该与现有实例有所区别,避免命名冲突。

此外,还需要配置一些与新实例相关的参数,例如内存大小、日志文件大小等。

2. 复制现有实例的模板文件。

在Oracle数据库中,每个实例都有一个对应的初始化参数文件(init.ora)作为配置。

可以将现有实例的参数文件复制一份,并根据需要修改其中的配置项。

3. 创建新的实例目录和相关文件。

在操作系统的文件系统中,需要为新实例创建一个独立的目录,并在其中创建新实例需要的相关文件,例如控制文件、日志文件、数据文件等。

4. 修改新实例的配置文件。

根据新实例的配置需求,在初始化参数文件中进行相应的修改,例如修改控制文件路径、日志文件路径等。

5. 启动新实例。

使用Oracle提供的SQL*Plus工具,连接到数据库服务器,并使用STARTUP命令启动新实例。

在启动过程中,Oracle将会读取新实例的配置文件,并加载相应的参数和文件。

6. 测试新实例。

一旦新实例启动成功,可以通过连接到新实例并执行一些简单的SQL语句来测试其是否正常工作。

如果测试通过,则表示新实例追加成功。

还原实例:1. 确定还原的时间点或版本。

首先,需要确定要还原到的时间点或数据库版本。

可以根据需求选择恢复到最近的备份,或者指定一个特定的时间点,例如昨天的某个时刻。

2. 备份数据库。

在进行还原之前,需要先对数据库进行备份,以防还原过程中出现任何意外情况。

3. 关闭数据库实例。

在还原之前,需要先关闭数据库实例。

Oracle Rac备份恢复

Oracle Rac备份恢复

Oracle Rac备份恢复概述RAC 技术这两年热度不断提升,随着ORACLE推广力度不断加大以及时间的推移,RAC特性也在逐步被人所熟悉。

做为重要的数据库维护操作–备份恢复,本文将通过实际操作,演示RAC数据库环境中,MBA 实现RMAN备份与恢复。

首先要明确一点,通过RMAN创建备份集时,必须保证连接到的实例能够访问所有节点所生成的归档日志,否则会导致备份失败。

所以针对rac备份,MBA有一下2种情况。

∙各节点生成的归档文件放到共享存储上,这样自然可以确保每个节点都能够访问到,比如将归档存放到ORACLE的ASM或其它集群文件系统。

∙各节点生成的归档文件放在本地,创建共享目录作为MBA备份时使用的临时目录。

针对以上2种情况都需要开启数据库的归档模式,建立备份用户,并授予dba,sysdba的权限。

∙开启数据库归档模式(仅供参考)1) 关闭所有节点数据库实例[grid@node1 ~]$ srvctl stop database -d racdb2) 修改服务器配置参数SQL> startup mountSQL> alter system set cluster_database=false scope=spfile;注:cluster_database是用来确定数据库是否在rac环境的集群中。

如果cluster_database=true,那么对于rac数据库来说,无法在一个节点上mount exclusive数据库,也就无法更改archivelog模式。

SQL> shutdown immediate3) 开启归档模式SQL> startup mountSQL> alter database archivelog;SQL> alter database open;4) 恢复服务器配置参数SQL> alter system set cluster_database=true scope=spfile;SQL> shutdown immediate;5) 打开所有节点数据库实例[grid@node1 ~]$ srvctl start database -d racdb6) 检查归档日志是否已启用SQL> archive log list;数据库日志模式存档模式自动存档启用存档终点USE_DB_RECOVERY_FILE_DEST最早的联机日志序列98下一个存档日志序列99当前日志序列99创建备份使用的用户以及授权SQL> create user backup identified by backup;SQL> grant dba,sysdba to backup;1. 归档文件放到共享存储上1.1备份1.1.1编辑MarsServer.xml修改每个Oracle Agent端MarsServer.xml文件以下为MarsServer.xml文件内容<?xml version=”1.0″ encoding=”GB2312″?><MBA><ServerParameter><ServerName>192.168.50.106</ServerName><ServerPort>41001</ServerPort><LocalIP>192.168.50.158</LocalIP> <!–使用的是虚拟ip–><Log>6</Log><TemporaryPath></TemporaryPath><BindLocalIP>0</BindLocalIP><Encoding>GB18030</Encoding></ServerParameter><MarsOracleAgent><racdb><!– 1. 虚拟IP以及端口号,Host=,PORT=,这里例子是192.168.50.158,192.168.50.159,端口号是1521 –><!– 2. 数据库名,SERVICE_NAME = ,这里的例子是racdb–><JdbcUrl>(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.50.158)(PORT = 1521))(ADDRESS = (PROTOCOL =TCP)(HOST =192.168.50.159)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = racdb)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))</JdbcUrl><!–当前OracleAgent所在机器上的实例名,根据实际情况修改–><NodeInstanceName>racdb1</NodeInstanceName><!–其他机器上的实例名,可能是多个–><OtherNodeInstance><!–某一个具体的实例名–><NodeInstanceName>racdb2</NodeInstanceName></OtherNodeInstance></racdb><BlockSize>262144</BlockSize></MarsOracleAgent></MBA>注:汉字部分,为解释,配置文件不需要出现重启各个节点Oracle Agent服务#/usr/local/mba/scripts/MBAOracleAgent.sh restart1.1.2发送备份任务1)添加实例Racdb为公共实例名192.168.50.158 是虚IP2)以backup用户连接实例,发备份任务RMAN备份方式必须备份控制、日志和所有的表空间选择RMAN备份方式,勾选RAC选项备份成功1.2恢复1.2.1准备使用sqlplus工具连接数据库执行shutdown immediate命令。

ORACLE数据泵还原(IMPDP命令)

ORACLE数据泵还原(IMPDP命令)

ORACLE数据泵还原(IMPDP命令)Oracle数据库还原IMPDP命令是相对于EXPDP命令的,⽅向是反向的。

即对于数据库备份进⾏还原操作。

⼀、知晓IMPDP命令C:\>impdp -helpImport: Release 11.1.0.7.0 - Production on 星期六, 28 9⽉, 2013 15:37:03Copyright (c) 2003, 2007, Oracle. All rights reserved.数据泵导⼊实⽤程序提供了⼀种⽤于在 Oracle 数据库之间传输数据对象的机制。

该实⽤程序可以使⽤以下命令进⾏调⽤:⽰例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp您可以控制导⼊的运⾏⽅式。

具体⽅法是: 在 'impdp' 命令后输⼊各种参数。

要指定各参数, 请使⽤关键字:格式: impdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)⽰例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmpUSERID 必须是命令⾏中的第⼀个参数。

关键字说明 (默认)------------------------------------------------------------------------------ATTACH 连接到现有作业, 例如 ATTACH [=作业名]。

CONTENT 指定要加载的数据, 其中有效关键字为:(ALL),DATA_ONLY和METADATA_ONLY。

DATA_OPTIONS 数据层标记,其中唯⼀有效的值为:SKIP_CONSTRAINT_ERRORS-约束条件错误不严重。

DIRECTORY 供转储⽂件,⽇志⽂件和sql⽂件使⽤的⽬录对象。

oracle11g还原数据库步骤__概述说明以及解释

oracle11g还原数据库步骤__概述说明以及解释

oracle11g还原数据库步骤概述说明以及解释引言部分的内容可以按照如下方式撰写:1. 引言1.1 概述引言部分将介绍本篇文章的主题,即Oracle 11g数据库还原步骤。

数据库还原是一项至关重要的任务,它可以帮助恢复丢失或损坏的数据,并确保系统的连续性和可靠性。

在本文中,我们将深入探讨Oracle 11g数据库还原的步骤和过程,以及执行还原操作前需要注意的准备工作。

1.2 文章结构在本文中,我们将按照以下顺序来讨论Oracle 11g数据库还原:- 首先,我们将介绍Oracle 11g数据库还原的重要性,阐述为什么必须进行数据库还原操作。

- 其次,我们将概述Oracle 11g数据库还原的步骤,并列出每个步骤的简要说明。

- 第三部分我们将详细描述执行数据库还原操作前所需进行的准备工作。

- 接下来,我们将提供执行数据库还原操作的详细步骤,包括必要时涉及到的命令和工具。

- 最后,我们将讨论完成数据库还原后进行验证和测试的方法与技巧。

1.3 目的本文旨在为读者提供有关Oracle 11g数据库还原的全面指南。

通过学习本文,读者将能够了解数据库还原的重要性、掌握进行数据库还原操作的步骤和技巧,并且能够有效地验证和测试还原后的数据库。

我们希望这篇文章能够帮助读者在数据库还原过程中避免常见错误,并提供相关提示和建议。

2. 正文:2.1 Oracle 11g数据库还原的重要性在数据库管理中,数据的安全性和完整性是至关重要的。

由于各种原因,比如硬件故障、用户误操作或者系统遭受攻击,数据库可能会丢失或损坏。

因此,在这些情况下,数据库还原变得非常重要。

Oracle 11g数据库还原是指恢复已经丢失或被损坏的数据到其先前可用状态的过程。

2.2 Oracle 11g数据库还原的步骤概述数据库还原通常包括以下主要步骤:- 备份介质准备:确定可用的备份介质,并确保其处于良好状态。

- 目标库环境准备:在目标库上创建必需的目录结构,并配置参数以适应还原操作。

数据库恢复实例

数据库恢复实例

仅仅丢失一个普通用户数据文件的恢复A(联机恢复)(例如,丢失D:\BACKUPDB\USERS01.DBF)准备工作, 通过下面的工作,如果完全恢复,应该可以看到;insert into test1 values(2);SQL> conn lunar/lunarSQL> select * from tab;TESTBACKUP3 TABLESQL> create table test1 (a number);SQL> insert into test1 values(1);SQL> alter system switch logfile;SQL> commit;SQL> alter system switch logfile;SQL> insert into test1 values(2);SQL> commit;SQL> alter system switch logfile;SQL> conn internalSQL> archive log list数据库日志模式存档模式自动存档启用存档终点d:\BACKUPDB\archive最早的概要信息日志序列3下一个存档日志序列5当前日志序列5shutdown abort关闭例程,模拟数据文件丢失SQL> shutdown abortORACLE 例程已经关闭。

Mount数据库SQL> startup mount数据库装载完毕。

使损坏的数据文件脱机SQL> alter database datafile 'D:\BACKUPDB\USERS01.DBF' offline;打开数据库SQL> alter database open;拷贝刚才热备的数据文件(USERS01.DBF)恢复损坏的数据文件SQL> recover datafile 'D:\BACKUPDB\USERS01.DBF';ORA-00279: ?? 424116 (? 10/20/2002 20:42:04 ??) ???? 1 ????ORA-00289: ??: D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARCORA-00280: ?? 424116 ???? 1 ???? # 1 ???指定日志: {<RET>=suggested | filename | AUTO | CANCEL}autoORA-00279: ?? 424125 (? 10/20/2002 20:44:14 ??) ???? 1 ????ORA-00289: ??: D:\BACKUPDB\ARCHIVE\BACKUPT001S00002.ARCORA-00280: ?? 424125 ???? 1 ???? # 2 ???ORA-00278: ??????????? 'D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC' ……………………..已应用的日志。

DBF文件恢复ORACLE数据库的方法

DBF文件恢复ORACLE数据库的方法

DBF文件恢复ORACLE数据库的方法1. 确认DBF文件是否已损坏:首先,你需要确定DBF文件是否已损坏或丢失。

可以通过使用操作系统的文件浏览器或使用Oracle数据字典查看相关信息。

-文件浏览器:打开操作系统的文件浏览器,浏览数据库文件目录,确认DBF文件是否存在、是否损坏。

- Oracle数据字典:连接到Oracle数据库,执行以下SQL语句查询表空间和数据文件信息:```sqlSELECT tablespace_name, file_name, status FROMdba_data_files;```如果查询的结果中一些DBF文件的状态为`INVALID`,则表示该文件可能损坏。

2. 尝试修复损坏的DBF文件:如果确认DBF文件损坏,可以尝试使用Oracle提供的工具来修复。

- DBVERIFY:DBVERIFY是Oracle自带的一个用于验证数据文件完整性的工具。

如果DBF文件没有物理损坏,只是逻辑上出现错误,可以使用DBVERIFY来修复。

```sql$ dbv file=dbf_file_name```运行DBVERIFY命令后,将会在命令行中看到DBF文件的验证结果。

- RMAN:RMAN是Oracle数据库管理工具,可以用于备份和恢复数据库。

可以使用RMAN来恢复备份的DBF文件并替换掉损坏的文件。

```sqlRMAN>RUNSET DBID <database_id>;RESTOREDATABASE;RECOVERDATABASE;}```运行以上RMAN命令将会从备份中恢复数据库和对应的DBF文件。

3.从备份还原DBF文件:如果没有备份或无法修复DBF文件,可以尝试从最近可用的备份中还原DBF文件。

以下是使用RMAN还原DBF文件的步骤:-创建一个临时控制文件:```sqlRMAN> CREATE CONTROLFILE SET DATABASE '<database_name>' RESETLOGS NOARCHIVELOGMAXLOGFILES <file_count> MAXLOGMEMBERS <file_count> MAXDATAFILES <file_count>MAXINSTANCES <instance_count> MAXLOGHISTORY <history_count>;```-还原DBF文件```sqlRMAN>RESTOREDATABASE;```-打开数据库```sqlRMAN>RECOVERDATABASE;RMAN>ALTERDATABASEOPEN;```4.数据恢复服务:如果以上方法都无法恢复DBF文件,或者备份不可用,那么可以考虑使用专业的数据恢复服务。

Windows系统崩溃后快速恢复Oracle数据库的妙招

Windows系统崩溃后快速恢复Oracle数据库的妙招
增长 速 度远 远 赶不 上 数据 量 的增 长速 度 ,这 使 大数 据 的传 输 和存 储 面 临重 大挑 战 。 因此 ,信 息系 统要 具 备超 大 容量 的数 据 高速 传 输 能力 ,使 大 数据 能够 顺 畅 、高 效地 流动 。 另外 ,信 息系 统要 具 备超 大 容量 的数 据 存储 能 力 ,使存 储 容 量 更 大 、传 输 时延 更 小 , 从 而 能 智 能 化 地 存 储 各 种 数 据 ,具有 良好 的 兼容 性和抗 毁 能力 。 3 . 3 数据 处 理能 力 。大 数据 的 获取 、传 输和 存 储只 是 问题 之 一 ,更 大 的难 题 是 如何 从 冗 杂 的 大 数 据 中 剥 茧 抽 丝, 自 动 化 、智 能化地 识 别最 有 价值 的信 息 , 并进 行分 析
用 数据 的前提 ,也是 决 策者 进行 制 定 决策 的依 据 。 因此 , 大 数据 时 代必 须 具备 比以往 更 强 的数据 获取 能 力 ,从 而积
累起 足 够 的数据 ,信 息系 统必 须加 强数 据获 取手 段建 设 。 3 . 2 数据 传 输和 存 储 能力 。 当前 ,大 数据 的移 动 是信 息 系统 的 最大 开 销 。同 时 ,现有 信 息系 统数 据 存储 能 力 的
《《《《《《 上接 第8 4 页
甚至相 互冲 突 的数 据 中整合 信息 , 获 取对 复杂 情 景 的更深 层
的理解 ; 可供 人们检 验 已有预 测, 探 索未知信 息, 同时提供 快 速、 可检 验 、 易理 解 . 的评估 和更 有 效的交 流手段 。 可视化 是 人们 理解 复杂现 象 , 诊释 复杂数 据 的重 要手段和 途径 。 2 . 9 大 数 据应 用 。 ( 1 )视 频 搜 索 ; ( 2 ) 内容分 析 ;

oracle数据库还原的详细流程

oracle数据库还原的详细流程

oracle数据库还原的详细流程
Oracle数据库还原的详细流程如下:
1. 关闭Oracle数据库服务:在开始还原之前,需要确保Oracle数据库服务已经关闭。

这样可以避免在还原过程中发生数据冲突或损坏。

2. 确认数据库备份:在开始还原之前,需要确认数据库的备份情况。

数据库的备份可以分为完全备份和增量备份两种。

完全备份是指对整个数据库进行备份,而增量备份是在完全备份的基础上,对新增或修改的数据进行备份。

可以通过查看备份记录或者与负责备份的人员进行沟通来确认备份情况。

3. 选择合适的还原方式:根据备份文件的位置和可用资源,选择适合的还原方式。

例如,如果备份文件在本地磁盘上,可以选择磁盘还原;如果备份文件在云端,可以选择云存储还原。

4. 执行还原操作:根据选择的还原方式,执行相应的操作。

例如,在磁盘还原中,需要将备份文件复制到目标磁盘中。

在云存储还原中,需要将备份文件从云存储下载到本地或直接在云平台上进行还原。

5. 启动Oracle数据库服务:完成还原后,启动Oracle数据库服务,验证数据是否正确加载并可用。

请注意,以上步骤仅供参考,具体操作可能因实际情况而有所不同。

在进行数据库还原时,建议参考Oracle官方文档或咨询专业人士以获取更准确的信息和指导。

oracle回退delete语句

oracle回退delete语句

一、介绍在数据库管理系统中,delete语句用于删除表中的数据记录。

然而,有时候用户可能会错误地执行delete语句,导致删除了重要的数据。

在这种情况下,需要进行回退操作来恢复被误删除的数据记录。

二、oracle回退delete语句的方法1. 使用flashback技术Oracle数据库提供了flashback技术,可以通过回退操作来恢复被删除的数据记录。

使用flashback技术需要先确定数据库中是否启用了flashback功能,如果启用了,则可以使用flashback查询被删除的数据记录,然后通过flashback操作将数据记录回退至删除前的状态。

2. 使用备份和恢复如果数据库中没有启用flashback功能,可以通过数据库备份和恢复来回退delete语句。

首先需要找到数据库中删除数据之前的备份,然后进行数据恢复操作,将备份中的数据恢复至数据库中,从而实现回退操作。

3. 使用日志文件Oracle数据库中的日志文件记录了数据库中的所有操作,包括delete 语句的执行情况。

通过查询日志文件,可以找到被删除的数据记录,然后使用日志文件中的信息进行数据恢复操作,将数据记录回退至删除前的状态。

三、注意事项在进行回退delete语句的操作时,需要注意以下几点:1. 数据库备份的重要性及时做好数据库的备份工作非常重要,可以在意外删除数据时提供及时的恢复操作。

2. 谨慎执行delete语句在执行delete语句时,务必要谨慎操作,确保不会误删除重要数据记录。

3. 使用flashback技术需谨慎虽然flashback技术可以实现数据回退操作,但也需要谨慎操作,以免对数据库产生不必要的影响。

四、结论在数据库管理中,回退delete语句是一项非常重要的操作,可以帮助恢复误删除的数据记录,保证数据库的完整性和稳定性。

在日常的数据库管理工作中,需要时刻关注数据库的备份情况,谨慎执行delete 语句,并掌握回退delete语句的操作方法,以保障数据库的安全性和稳定性。

Oracle数据库备份与恢复的三种方法

Oracle数据库备份与恢复的三种方法

Oracle数据库备份与恢复的三种⽅法备份与恢复的三种⽅法Oracle数据库有三种标准的备份⽅法,它们分别是导出/导⼊(EXP/IMP)、热备份和冷备份。

导出备件是⼀种逻辑备份,冷备份和热备份是物理备份。

⼀、导出/导⼊(Export/Import) 利⽤Export可将数据从数据库中提取出来,利⽤Import则可将提取出来的数据送回到Oracle数据库中去。

1、简单导出数据(Export)和导⼊数据(Import) Oracle⽀持三种⽅式类型的输出: (1)、表⽅式(T⽅式),将指定表的数据导出。

(2)、⽤户⽅式(U⽅式),将指定⽤户的所有对象及数据导出。

(3)、全库⽅式(Full⽅式),瘵数据库中的所有对象导出。

数据导⼊(Import)的过程是数据导出(Export)的逆过程,分别将数据⽂件导⼊数据库和将数据库数据导出到数据⽂件。

2、增量导出/导⼊ 增量导出是⼀种常⽤的数据备份⽅法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。

在进⾏此种导出时,不要求回答任何问题。

导出⽂件名缺省为export.dmp,如果不希望⾃⼰的输出⽂件定名为export.dmp,必须在命令⾏中指出要⽤的⽂件名。

增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,⽐如:exp system/manager inctype=complete file=040731.dmp (2)、“增量型”增量导出 备份上⼀次备份后改变的数据,⽐如:exp system/manager inctype=incremental file=040731.dmp (3)、“累积型”增量导出 累计型导出⽅式是导出⾃上次“完全”导出之后数据库中变化了的信息。

⽐如:exp system/manager inctype=cumulative file=040731.dmp 数据库管理员可以排定⼀个备份⽇程表,⽤数据导出的三个不同⽅式合理⾼效的完成。

ORACLE表备份恢复测试用例

ORACLE表备份恢复测试用例

1.准备工作在ORACLE中创建表SQL> create table test(name char(8),age int);Table created.SQL> select * from test;no rows selectedSQL> insert into test values('aaa',22);1 row created.SQL> commit;Commit complete.SQL> select * from test;NAME AGE-------- ----------aaa 222.准备工作在安腾普管理控制台创建Oracle备份应用添加ORACLE相关参数,包括ORACLE_HOME、ORALE_SID软件库文件等◆如果填写的各项参数都正确,点ORACLE应用图标右键还原和归档管理器就能展开ORACLE数据库结构如下◆定义ORACLE备份的介质池◆在作用管理器中可以查看ORACLE备份结果3.进行ORACLE表备份恢复测试◆恢复前将数据库的表dropSQL> drop table test;Table dropped.SQL> conn /as sysdbaConnected.SQL> shutdown immediate; Database closed.Database dismounted.ORACLE instance shut down.SQL>进入还原和归档管理器,启动还原操作数据库还原后,对数据库进行recoverSQL> startup mount;ORACLE instance started.Total System Global Area 5010685952 bytesFixed Size 2212936 bytesVariable Size 3221228472 bytesDatabase Buffers 1744830464 bytesRedo Buffers 42414080 bytesDatabase mounted.SQL> recover database using backup controlfile until cancel;ORA-00279: change 1040140 generated at 03/04/2015 02:54:36 needed for thread 1 ORA-00289: suggestion : /u01/app/11.2.0/arch/1_11_873425412.dbfORA-00280: change 1040140 for thread 1 is in sequence #11Specify log: {<RET>=suggested | filename | AUTO | CANCEL}ORA-00279: change 1040340 generated at 03/04/2015 02:55:15 needed for thread 1 ORA-00289: suggestion : /u01/app/11.2.0/arch/1_12_873425412.dbfORA-00280: change 1040340 for thread 1 is in sequence #12ORA-00278: log file '/u01/app/11.2.0/arch/1_11_873425412.dbf' no longer needed for this recoverySpecify log: {<RET>=suggested | filename | AUTO | CANCEL}Log applied.Media recovery complete.SQL>SQL> alter database open resetlogs;Database altered.4.检查还原的数据SQL> conn zwh/zwh Connected.SQL> select * from test; NAME AGE-------- ----------aaa 22SQL>。

Oracle单实例迁移到RAC实例--使用RMAN异机恢复

Oracle单实例迁移到RAC实例--使用RMAN异机恢复

Oracle单实例迁移到RAC实例--使⽤RMAN异机恢复Oracle 官⽹有关单实例迁移到RAC的⼀个步骤说明:How to Convert 10g Single-Instance database to 10g RAC using Manual Conversion procedure [ID 747457.1]RMAN 备份异机恢复并创建新DBID⼀. ⼤致操作步骤如下:1. 安装Clusterware 和 ASM 实例2. 备份源库,并将备份集copy到rac 节点上3. 在RAC 上还原并修改初始化参数⽂件,还原控制⽂件和数据⽂件4. 增加undo 表空间和redo log 线程组,创建密钥⽂件5. 配置RAC监听6. 将数据库等资源添加到CRS注意:迁移的2个db版本版本要⼀致。

包括⼩版本。

⽐如10.2.0.4.0.我这个测试的时候是从10.2.0.1.0 迁移到10.2.0.4.0. 结果在open resetlogs的时候报错了,必须要先升级后,才能打开。

Redhat 5.4 Orcle RAC 数据库从10.2.0.1升级到 10.2.0.4⼆. 具体操作步骤2.1 安装Clusterware 和ASM 实例这个参考Blog:Redhat 5.4 Oracle 10g RAC Openfiler+Multipath + RAW+ ASM 安装⽂档安装之后的进程如下:[oracle@rac1 u01]$ sh crs_stat.shName Target State Host------------------------------ ---------- --------- -------ora.rac1.ASM1.asm ONLINE ONLINE rac1ora.rac1.gsd ONLINE ONLINE rac1ora.rac1.ons ONLINE ONLINE rac1ora.rac1.vip ONLINE ONLINE rac1ora.rac2.ASM2.asm ONLINE ONLINE rac2ora.rac2.gsd ONLINE ONLINE rac2ora.rac2.ons ONLINE ONLINE rac2ora.rac2.vip ONLINE ONLINE rac22.2 在源库⽤RMAN 备份,并将备份⽂件copy到rac上相关备份脚本,参考Blog:Linux 平台下 RMAN 全备和增量备份 shell 脚本Nocatalog 下的RMAN 增量备份 shell脚本源库实例名:anqing,为了确认迁移成功,我们现在源库上创建⼀个表dave,并插⼊⼀条记录。

oracle备份如何到异机还原

oracle备份如何到异机还原

oracle备份如何到异机还原作者:ocpyang情景描述:有朋友问,MSSQLSERVER将数据库备份还原到其它机器很方便,基本就是傻瓜式操作,oracle有控制文件、参数文件一堆东西,觉得还原很复杂;其实不然,我抽出了点时间,简单演示下案例,朋友们,参考下!为了简单快速,我才用RMAN备份和还原--说明:(1).RMAN备份到异机恢复的时候,db_name需要相同。

如果说要想改成其他的实例名,可以在恢复成功后,用nid命令修改。

实例名的信息会记录到控制文件里,所以如果在恢复的时候,如果实例名不一致,恢复的时候会报错。

(2).恢复的路径和源库不一致时,就需要在restore命令中使用set 命令指定新位置,并且使用switch datafile all将变更信息更新的到控制文件中。

测试环境:源数据库服务器A,安装在E,备份目录已在E盘;源数据库服务器B,安装在F盘.------------------------------------一、源数据库准备工作--------------------------------------1. 查询DBIDSQL> select name,dbid from v$database;NAME DBID--------- ----------ORCL 1320546556--2. 备份源数据DBrun {configure retention policy to recovery window of 14 days;configure controlfileautobackup on; --自动开启控制文件备份configure controlfileautobackup format for device type disk to'E:\backup\controlfile\bak_%F';allocate channel c1 device type disk format 'E:\backup\data\bak_%u'; allocate channel c2 device type disk format 'E:\backup\data\bak_%u'; sql 'alter system archive log current';backup incremental level=0 database skip inaccessibleplus archivelogfilesperset 20delete all input;release channel c1;release channel c2;}allocate channel for maintenance device type disk;crosscheck backupset;delete noprompt obsolete;--或run {configure retention policy to recovery window of 14 days;allocate channel c1 device type disk format 'E:\backup\data\bak_%u'; allocate channel c2 device type disk format 'E:\backup\data\bak_%u'; sql 'alter system archive log current';backup incremental level=0 database skip inaccessibleplus archivelogfilesperset 20delete all input;--手动直接指明备份文件名和路径backup current controlfile tag='bak_ctrollfile'format='E:\backup\controlfile\bak_ctl_file_%U_%T';backup spfile tag='bak_spfile' format='E:\backup\controlfile\bak_spfile_%U_%T'; release channel c1;release channel c2;}allocate channel for maintenance device type disk;crosscheck backupset;delete noprompt obsolete;--3.手动备份spfilecreatepfile='E:\backup\inittest.ora' from spfile;------------------------------------二、目标库准备工作:---------------------------------------步骤1. 创建口令文件--如果有就不需要新建.orapwd file=F:\app\Administrator\product\11.2.0\dbhome_1\database\PWDorcl.ora password=password--步骤2.恢复参数文件--方法1.源数据库spfile并拷贝到B数据库服务器\\192.168.2.25\e$\backup\inittest.ORA复制到E:\bk\inittest.ORA--步骤3.编辑参数文件中的文件路径如路径和原来一样,则不需修改eg:- *_DUMP_DEST- LOG_ARCHIVE_DEST*- CONTROL_FILES---实例:orcl.__db_cache_size=939524096orcl.__java_pool_size=16777216orcl.__large_pool_size=16777216orcl.__oracle_base='F:\app\Administrator'#修改路径orcl.__pga_aggregate_target=855638016orcl.__sga_target=2550136832orcl.__shared_io_pool_size=0orcl.__shared_pool_size=1526726656orcl.__streams_pool_size=16777216*.audit_file_dest='F:\app\Administrator\admin\orcl\adump' #修改路径*.audit_trail='db'*.compatible='11.2.0.0.0'#修改路径*.control_files='F:\app\Administrator\oradata\orcl\control01.ctl','F:\app\Administrator\orada ta\orcl\control02.ctl','F:\app\Administrator\oradata\orcl\control03.ctl'*.db_block_size=8192*.db_domain=''*.db_name='orcl'*.db_recovery_file_dest='F:\arch' #修改路径*.db_recovery_file_dest_size=6442450944*.diagnostic_dest='F:\app\Administrator' #修改路径*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'*.log_archive_dest_1='location=f:\arch' #修改路径*.nls_date_format='yyyy-mm-ddhh:mi:ss'*.open_cursors=300*.optimizer_capture_sql_plan_baselines=TRUE*.pga_aggregate_target=845152256*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.sga_target=2536505344*.skip_unusable_indexes=TRUE*.undo_tablespace='UNDOTBS1'--步骤4.重启实例,使用已编辑好的参数文件将用pfile将B数据库服务器启动到nomout状态rman target /startupnomountpfile='e:\bk\inittest.ora'--步骤5.恢复控制文件,装载数据库rman target /setdbid 1320546556restorecontrolfile from 'e:\bk\controlfile\BAK_CTL_FILE_6LO6SON4_1_1_20130412';启动restore 于2013-04-11 13:58:58使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道ORA_DISK_1: SID=129 设备类型=DISK通道ORA_DISK_1: 正在还原控制文件通道ORA_DISK_1: 还原完成, 用时: 00:00:01输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL完成restore 于2013-04-11 13:59:00--步骤6.将DB启动到mout状态alter database mount;数据库已装载释放的通道: ORA_DISK_1--加载备份目录CATALOG START WITH 'E:\bk';搜索与样式E:\bk 匹配的所有文件数据库未知文件的列表====================================文件名: E:\bk\controlfile\BAK_C-1320546556-20130411-03文件名: E:\bk\controlfile\BAK_CTL_FILE_65O6QILO_1_1_20130411 文件名: E:\bk\controlfile\BAK_SPFILE_66O6QILQ_1_1_20130411文件名: E:\bk\data\BAK_60O6QIGV文件名: E:\bk\data\BAK_61O6QIGV文件名: E:\bk\data\BAK_62O6QIH1文件名: E:\bk\data\BAK_63O6QIH1文件名: E:\bk\data\BAK_64O6QILM是否确实要将上述文件列入目录(输入YES 或NO)? yes正在编制文件目录...目录编制完毕已列入目录的文件的列表======================文件名: E:\bk\controlfile\BAK_C-1320546556-20130411-03文件名: E:\bk\controlfile\BAK_CTL_FILE_65O6QILO_1_1_20130411 文件名: E:\bk\controlfile\BAK_SPFILE_66O6QILQ_1_1_20130411文件名: E:\bk\data\BAK_60O6QIGV文件名: E:\bk\data\BAK_61O6QIGV文件名: E:\bk\data\BAK_62O6QIH1文件名: E:\bk\data\BAK_63O6QIH1文件名: E:\bk\data\BAK_64O6QILM--步骤7.restore 数据库7.1 恢复目录不同的情况:到Target 库查询一下:SQL> select trim(file_id),trim(file_name) from dba_data_files ORDER BY FILE_ID ASC;1 E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF2 E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF3 E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF4 E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF6 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY02.DBF7 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY03.DBF8 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY04.DBF9 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY05.DBF11 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY06.DBF12 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY07.DBF13 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY08.DBF14 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY09.DBF15 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY10.DBF16 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY01.DBF17 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY11.DBF18 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY12.DBF19 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY13.DBF20 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY14.DBF21 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY15.DBF22 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY16.DBF23 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY17.DBF24 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY18.DBF25 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY19.DBF26 E:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY20.DBFSQL>select trim(file_id),trim(file_name) from dba_temp_files;1 E:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBFselect 'SET NEWNAME FOR DATAFILE'|| ' '||file_id||' '||'TO'|| ' '||''''||trim(file_name)||'''' ||';' from dba_data_files ORDER BY FILE_ID ASC;---如下实例:RUN{# rename the datafilesSET NEWNAME FOR DATAFILE 1 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'; SET NEWNAME FOR DATAFILE 2 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF'; SET NEWNAME FOR DATAFILE 3 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF'; SET NEWNAME FOR DATAFILE 4 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'; SET NEWNAME FOR DATAFILE 6 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY02.DBF'; SET NEWNAME FOR DATAFILE 7 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY03.DBF'; SET NEWNAME FOR DATAFILE 8 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY04.DBF'; SET NEWNAME FOR DATAFILE 9 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY05.DBF'; SET NEWNAME FOR DATAFILE 11 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY06.DBF'; SET NEWNAME FOR DATAFILE 12 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY07.DBF'; SET NEWNAME FOR DATAFILE 13 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY08.DBF'; SET NEWNAME FOR DATAFILE 14 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY09.DBF'; SET NEWNAME FOR DATAFILE 15 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY10.DBF'; SET NEWNAME FOR DATAFILE 16 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY01.DBF'; SET NEWNAME FOR DATAFILE 17 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY11.DBF';SET NEWNAME FOR DATAFILE 18 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY12.DBF';SET NEWNAME FOR DATAFILE 19 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY13.DBF';SET NEWNAME FOR DATAFILE 20 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY14.DBF';SET NEWNAME FOR DATAFILE 21 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY15.DBF';SET NEWNAME FOR DATAFILE 22 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY16.DBF';SET NEWNAME FOR DATAFILE 23 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY17.DBF';SET NEWNAME FOR DATAFILE 24 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY18.DBF';SET NEWNAME FOR DATAFILE 25 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY19.DBF';SET NEWNAME FOR DATAFILE 26 TO'F:\APP\ADMINISTRATOR\ORADATA\ORCL\VPAY20.DBF';SQL "ALTER DATABASE RENAME FILE''E:\app\Administrator\oradata\orcl\REDO01.LOG''TO ''F:\app\Administrator\oradata\orcl\REDO01.LOG'' ";SQL "ALTER DATABASE RENAME FILE''E:\app\Administrator\oradata\orcl\REDO02.LOG''TO ''F:\app\Administrator\oradata\orcl\REDO02.LOG'' ";SQL "ALTER DATABASE RENAME FILE''E:\app\Administrator\oradata\orcl\REDO03.LOG''TO ''F:\app\Administrator\oradata\orcl\REDO03.LOG'' ";RESTORE DATABASE;SWITCH DATAFILE ALL;}对switch datafile all的说明:--对于nocatalog模式下,rman备份的信息是保存在控制文件里的,包括文件的路径信息。

Oracle-RAC环境数据备份与恢复方案

Oracle-RAC环境数据备份与恢复方案

Oracle RAC 环境数据备份与恢复方案【导读】某企业因项目需要在Oracle RAC集群环境下,根据实际情况对Oracle数据库进行备份;使用生产环境的rman全备数据,进行恢复数据搭建测试环境。

本文将详细介绍此案例中Oracle数据库rman全备份过程、Oracle RAC 环境下rman备份数据如何恢复至单机服务器。

考虑到非常的实用,将实施经验分享给更多同行进行交流学习。

一、背景环境生产环境使用两台DELL R840 服务器,安装了 linux centos 7.6操作系统,并配置多路径,使用 EMC untiy 作为共享存储,分配了2个1T LUN 存储数据库文件,1个500G LUN存放归档数据,3个30G LUN存放 OCR 、FALSH、GIMR 数据。

Oracle RAC 软件版本是19C 19.0.0.0.0。

二、数据备份1、备份策略为保障oracle rac 集群数据安全,因项目组要求设计数据库备份方案。

考虑到服务器RAC1与RAC2每台服务器自带2T本地可用容量,每次全备产生约400GB数据文件。

可将奇数天备份到RAC1,偶数天备份到RAC2,4*400GB=1.6TB,每台服务器可以备份4天的全量数据。

空间非常的富余,不计划使用rman的增量备份,直接全量备份近8天数据,恢复也较为方便。

2、备份过程在RAC1主机下执行,(RAC2同理)首先Oracle 数据库开启归档,归档模式下,才可以进行数据库的热备份、联机备份、手工备份等。

非归档模式下,只能进行冷备份。

当然我们rman备份是在线备份。

如下图:接着,创建rman脚本目录创建备份执行脚本,并加入定时任务创建备份数据清理脚本,并加入定时任务,只备份近4次数据,脚本会自动判断最近一次rman备份是否成功,不成功将不删除备份数据。

这里我调用了zabora.sh 脚本判断rman备份状态,sql语句也比较简单。

定时任务(RAC1)定时任务 (RAC2)记得重启定时任务创建rman执行脚本,用于被上述执行脚本调用3、测试验证第一次可手动执行备份任务,不等到凌晨自动执行查看日志log备份完成如下图:三、数据恢复因为本项目使用的是全备数据,无增量。

ORACLE数据库如何恢复

ORACLE数据库如何恢复

ORACLE数据库如何恢复(邝俊标)ORACLE数据库备份与恢复与ORACLE的结构密切相关,大家先弄清ORACLE 物理结构有哪些?逻辑结构是有哪些?它们的作用是什么?弄明白这些以后,具体怎么备份、怎么恢复就需要了解下ORACLE本身是怎么管理数据库的有那些相关的ORACLE系统表?ORACLE的后台进程是怎么管理的?最后就要知道相关的ORACLE命令、语法,根据系统提示错误灵活处理了。

ORACLE 恢复主要有下面的几种问题:一、数据文件丢失恢复:二、OS备份下的基于时间的恢复三、损坏联机日志的恢复四、损坏当前联机日志恢复五损坏控制文件的恢复六、损坏回滚数据文件的恢复七、损坏临时数据文件的恢复一、数据文件丢失恢复:1、查看报警文件或动态视图v$recover_fileSQL>select * from v$recover_file;2、脱机数据文件SQL> alter database datafile 'file#' offline drop;3、打开数据库,拷贝备份回来(restore),恢复(recover)该数据文件,并联机SQL> alter database open;4、拷贝备份从备份处copy d:\databak\ users01.dbf d:\oracle\oradata\orcl;5、恢复该数据文件SQL> recover datafile 'file#';SQL> recover database; (多个数据文件丢失,恢复整个数据库)6、恢复成功,联机该数据文件SQL> alter database datafile 'file#' online;说明:1) 采用热备份,需要运行在归档模式下,可以实现数据库的完全恢复,也就是说,从备份后到数据库崩溃时的数据都不会丢失。

2) 可以采用全备份数据库的方式备份,对于特殊情况,也可以只备份特定的数据文件,如只备份用户表空间(一般情况下对于某些写特别频繁的数据文件,可以单独加大备份频率)3) 如果在恢复过程中,发现损坏的是多个数据文件,即可以采用一个一个数据文件的恢复方法(第5步中需要对数据文件一一脱机,第6步中需要对数据文件分别恢复),也可以采用整个数据库的恢复方法。

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

实验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 V ARCHAR2(25));(3)利用数据库冷备份恢复BOOKSALES数据库到备份时刻的状态并查看恢复后是否存在cold表。

(4)将BOOKSALES数据库设置为归档模式。

1.1 shutdown immediate 正常关闭数据1.2 startup mount;将数据库启动到mount状态3)、关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ora-38774错误。

alter database flashback off1.3 alter database archivelog;发出设置归档模式的命令1.4 alter database open;打开数据库1.5 再次正常关闭数据库,并备份所有的数据文件和控制文件1.6 archive log list;在将数据库设置为归档模式后,可以执行此命令进行确认1.6.1 Database log mode 为Archive Mode说明当前的数据库为归档模式1.6.2 Automatic archival为Enable说明启动了自动归档。

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

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=%1set oracle_password=%2set local_tnsname=%3set url=%oracle_username%/%oracle_password%if not %local_tnsname% == "" set url=%url%@%local_tnsname%if exist %oracle_username%_old.dmp del %oracle_username%_old.dmpif exist %oracle_username%_old.log del %oracle_username%_old.logif exist %oracle_username%.dmp ren %oracle_username%.dmp %oracle_username%_old.dmpif exist %oracle_username%.log ren %oracle_username%.log %oracle_username%_old.logexp %url% file=%oracle_username%.DMP log=%oracle_username%.LOG该脚本是一个通用的最简单的exp脚本;意思就是:备份之间,把以前的备份文件修改名字,后面加上_old ,如果本来就有old文件,就删除之;之后,就开始备份;备份的文件目录和该脚本一致(这样做最简单);所以总是会出现一新一旧两个文件;当然只要最新的就行了,所以理论上只要一份文件;但是考虑有可能备份的时候突然报错,这样old文件还在,将就着使用,否者新的是坏的,旧的也没了;有的人做一周7天逻辑循环备份,我觉得没有必要,要那么多旧的备份文件何用,浪费空间;1.1.2然后再做一个bat文件,比如是my_exp.bat内容是:call exp_backup.bat USER PASSWORD ""如果是在服务器自身上备份,就不需要写入数据库服务名;如果有多个用户数据需要备份;那么就在my_exp.bat继续添加:call exp_backup.bat USER1 PASSWORD1 ""….My_EXP.BAT可以做成windows的执行计划,每天不忙的时候执行一次;1.2 exp备份的恢复下面就是恢复的最简单方法:1.2.1.把电脑上当前用户彻底删除,用命令,这样就可以把对象彻底清除;DROP USER XXX CASCADE1.2.2.再创建该用户CREATE USER xxxxIDENTIFIED BY xxxxDEFAULT TABLESPACE xxxxTEMPORARY TABLESPACE TEMP并赋予权限:GRANT DBA TO xxxx WITH ADMIN OPTION1.2.3用IMP恢复C:\> imp xxxx/xxxx FILE=xxxx.DMP LOG=xxxx.LOG FULL=Y2.10G后的数据泵expdp备份和恢复2.1 expdp 备份据说这个比exp有很多优点,这个我就不说了,大家可以自己参考资料;不过我测试下来,如果数据量小expdp 还是不如exp的;但是还是建议是使用expdp,因为数据会慢慢变大的,用expdp更好些;我最看重的是:expdp备份的文件涵盖的东西更多;所以恢复的时候方便;删除用户后,可以不用再创建用户恢复;实现方法和exp类似:不过,它的目录不像EXP那么直接,需要使用oracle的目录对象;所以2.1.1第一步先创建一个目录对象,比如:SQL>create or replace directory LOGIC_BUCKUPas 'd:\OACLE_BACKUP\逻辑备份';2.1.2建立一个通用脚本,比如叫EXPDP_BACKUP.BAT内容是:set oracle_username=%1set oracle_password=%2set local_tnsname=%3set url=%oracle_username%/%oracle_password%if not %local_tnsname% == "" set url=%url%@%local_tnsname%if exist %oracle_username%_old_dump.dmp del %oracle_username%_old_dump.dmpif exist %oracle_username%_old_dump.log del %oracle_username%_old_dump.logif exist %oracle_username%_dump.dmp ren %oracle_username%_dump.dmp %oracle_username%_old_dump.dmpif exist %oracle_username%_dump.log ren %oracle_username%_dump.log %oracle_username%_old_dump.logEXPDP %url% DIRECTORY=LOGIC_BACKUP DUMPFILE=%oracle_username%_DUMP.DMP LOGFILE=%oracle_username%_DUMP.LOG PARALLEL=2该方法与上面的dmp备份类似;2.1.3然后再做一个bat文件,比如是my_expdp.bat内容是:call expdp_backup.bat USER PASSWORD ""如果是在服务器自身上备份,就不需要写入数据库服务名;如果有多个用户数据需要备份;那么就在my_exp.bat继续添加:call expdp_backup.bat USER1 PASSWORD1 ""……同dmp备份一样,My_EXPdp.BAT也可以做成windows的执行计划,每天不忙的时候执行一次;2.2 expdp备份的恢复下面就是恢复的最简单方法:2.2.1.把电脑上当前用户彻底删除,用命令,这样就可以把对象彻底清除;DROP USER XXXX CASCADE2.2.2.用另外一个权限较高的用户(最好不是sys,比如是YYYY) 导入:C:\>IMPDP yyyy/yyyy DUMPFILE=xxxx_DUMP.DMP LOGFILE=xxxx_DUMP.LOG DIRECTORY=LOGIC_BUCKUPPARALLEL=2(这里的LOGIC_BUCKUP是oracle的对象目录,要和xxxx_dump.dup存放的目录一致)这样就OK了,也即是说用户不需要创建,数据泵文件含有了用户以及它原来的权限;从这点来讲,是不是比IMP导入更为方便;好了,两种逻辑备份讲完了,下面重点说一下RMAN备份;因为在生产系统中,逻辑备份作用不大的,因为它不能实时的备份数据,所以逻辑备份更多的时候是给开发人员互相导入数据和存储过程之类用的;RMAN备份的原理还是有点复杂的,很多细节的我也不是很清楚,不过没关系,我们可以整理出一套最简单的备份方案:3.RMAN备份和恢复3.1. RMAN备份3.1.1 首先把数据库参数关注一下,关注下面两个参数第一个参数:db_recovery_file_dest_size,上图中的大小是默认的4G,也就是归档模式下,archivelog的所有归档日志文件大小总和,如果超过这个数,就会导致数据库出问题;所以要非常小心,因而建议修改大一些,比如修改成20G;当然最本质的方法,是要按时清理无用的归档日志;第二个参数:db_recovery_file_dest ,这个参数非常重要,是11G里,存放rman备份集和归档日志的地方;默认是放在flash_recovery_area目录下的,因为我的系统的flash_recovery_area 和数据库文件在同一个硬盘,所以修改了;3.1.2.关注redo日志文件,每组里要有两个成员,1个在数据库文件的硬盘下,1个在备份文件的硬盘下,因为日志文件写入最频繁,RMAN无法对它备份,或者说任何备份工具都无法对redo日志备份;不过redo它自己可以做冗余,两个文件只要有一个在,即可;比如:3.1.3做一个最简单的rman备份脚本;3.1.3.1首先做一个txt,比如是:autorman.txt内容是:sql 'alter system archive log current';backup database;delete noprompt obsolete;这三句话的作用分别是:1.对当前redo日志进行归档;2.备份数据库3.删除无效的archive日志和rman备份集3.1.3.2 做一个bat 调用上面的autorman.txt,比如是:autorman.bat内容是:rman target / @autorman.txt然后就在winddows下做一个执行计划,每天或没隔几天,自动执行一下这个autorman.bat当然备份之前,要用rman>show all 看一下参数设置,有没有自动备份控制文件,如果没有,要加上;3.2 rman恢复Rman恢复非常简单;下面说一下步骤:3.2.1 假如最新一次全备是3天前的,先随便建立一个新表,比如是test_rman,随便插几条数据;用来测试还原后,这个最新的对象是否也给恢复了;现在用sqlplus登陆,shutdown 数据库,然后把oracle的数据库文件全部删除(控制文件,redo日志文件,数据库文件);3.2.2 用sql> startup nomount 启动数据库的参数文件,参数文件和数据库文件不在同一个硬盘,所以没丢;这时候如果执行sql>alter database mount 会报错,因为mount会加载控制文件,而控制文件已经丢了;3.3.3.把以前控制文件所在的目录建立好,否者rman找不到控制文件恢复路径;然后执行RMAN> restore controlfile from autobackup;这样控制文件就回复了,有了控制文件就好办了;3.2.4. 以为有了控制文件,所以在sqlplus里,可以装载数据库Sql>alter database mount3.2.5 数据库被装载后,说明控制文件生效了,这时候,所有的数据库信息都出来了;所以可以用rman还原数据库了:RMAN> RESTORE database;3.2.6 恢复数据库:RMAN> recover database;2.2.7 数据库现在已经全部回复好,可以重新启动了:SQL> alter database open resetlogs;数据库已更改。

oracle回收站恢复表的原理

oracle回收站恢复表的原理

一、介绍Oracle回收站Oracle数据库在删除表或数据时,并不是立即将数据从数据库中删除,而是将其放入一个特殊的地方,这个地方就是Oracle回收站(Recycle Bin)。

回收站可以在一定程度上防止误删数据,同时也为恢复操作提供了便利。

二、恢复表的原理当我们在Oracle数据库中删除表时,实际上是将表移动到了回收站中,而不是直接删除。

这样,我们就可以通过简单的步骤将表恢复到原来的状态。

三、使用FLASHBACK TABLE语句恢复表1. 使用FLASHBACK TABLE语句可以很方便的将回收站中的表恢复到原来的状态。

这条语句的具体用法如下:```FLASHBACK TABLE 表名 TO BEFORE DROP;```2. 使用该语句之前,我们需要确认一下回收站中是否存在需要恢复的表,可以通过以下语句查询回收站中的表信息:```SELECT * FROM recyclebin;```4. 通过FLASHBACK TABLE语句,我们可以将回收站中的表还原到删除之前的状态,这样就可以避免了数据的永久丢失。

四、使用FLASHBACK DROP语句恢复表1. 另一种恢复表的方法是使用FLASHBACK DROP语句,该语句可以用来还原回收站中的对象,其具体用法如下:```FLASHBACK DROP TABLE 表名 TO BEFORE DROP;```2. 通过以上语句,我们可以将回收站中的表直接还原到删除之前的状态,同样可以避免数据的永久丢失。

五、恢复表的注意事项1. 在进行表恢复之前,我们需要充分确认需要恢复的表是否存在于回收站中,可以通过查询回收站的表信息来进行确认。

2. 在进行表恢复之前,我们需要对数据库进行备份,以避免意外情况导致数据的进一步损失。

3. 在进行表恢复操作时,需要谨慎操作,避免对其他数据产生影响。

4. 在恢复表后,需要对数据库进行一些必要的检查,以确保数据的完整性和一致性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CREATE SMALLFILE TABLESPACE "ORA_BASE_GROUP" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_BASE_GROUP' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_SYSTEM_GROUP_IDX" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_SYSTEM_GROUP_IDX' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_TICKET_GROUP_IDX" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_TICKET_GROUP_IDX' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
在windows系统上还原数据库的步骤:不管数据安装到windows还是linux上,均可以使用以下步骤还原数据库
还原万业通数据库时
先输入set oracle_sid=数据库名
再输入sqlplus / as sysdba
然后按步骤往下做
这样防止有多个数据库时导入错数据库
一、新建数据库后,在一台windows机器(以下简称机器A)上建立指向数据库的连接(使用Net Manager建立)
CREATE SMALLFILE TABLESPACE "ORA_BALANCE_GROUP" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_BALANCE_GROUP' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_SALE_GROUP" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_SALE_GROUP' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_POS_GROUP_IDX" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_POS_GROUP_IDX' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_QUERY_GROUP" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_QUERY_GROUP' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
或者
二:进入命令行
输入:lsnrctl start 即可启动
lsnrctl stop 停止服务
lsnrctl status 查看状态
二、在机器A上,进入cmd,进入sqlplus
sqlplus / as sysdba
--2.创建表空间
--建表空间 将F:\oracle\product\10.2.0\oradata\orcl路径改为服务器实际路径
CREATE SMALLFILE TABLESPACE "ORA_CARD_GROUP" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_CARD_GROUP' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_QUERY_GROUP_IDX" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_QUERY_GROUP_IDX' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
GRANT CREATE VIEW TO ceshi ;
GRANT CREATE TABLE TO ceshi ;
GRANT CREATE TRIGGER TO ceshi ;
GRANT CREATE SEQUENCE TO ceshi ;
五、退出sqlplus,回到cmd下
exit
六、还原数据库
imp ceshi/ceshi@orcl full=y file=D:\yspt20120326.dmp
七、用PL/SQL连接数据库,编译失效对象
如何启动oracle监听程序
一:打开服务
启动OracleOraDb10g_home1TNSListener服务
CREATE SMALLFILE TABLESPACE "ORA_POS_GROUP" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_POS_GROUP' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_TICKET_GROUP" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_TICKET_GROUP' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_CARD_GROUP_IDX" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_CARD_GROUP_IDX' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_SYSTEM_GROUP" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_SYSTEM_GROUP' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE SMALLFILE TABLESPACE "ORA_BASE_GROUP_IDX" DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\ORA_BASE_GROUP_IDX' SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
三、创建用户
create user ceshi identified by ceshi;
四、给用户赋予权限
--建用户 将ceshi改为实际用户名
GRANT CONNECT , DBA TO ceshi ;
GRANT SELECT ON DBA_OBJECTS TO ceshi ;
相关文档
最新文档