oracle数据库恢复方案
- 格式:docx
- 大小:24.31 KB
- 文档页数:48
rac数据库RMAN 备份与恢复一、数据库备份在主库上通过rman 每天对数据库进行备份,并且保留两份备份在主库删除归档和进行rman 备份的脚本:[oracle@rac1 arch]$ pwd/opt/app/arch[oracle@rac1 arch]$ more del_arch.shexport ORACLE_SID=orcl1export ORACLE_BASE=/opt/app/oracleexport ORACLE_TERM=xtermexport ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1source /opt/app/arch/orcl1/del_arch.listsource /opt/app/arch/orcl2/del_arch.list/opt/app/oracle/product/10.2.0/db_1/bin/rman target / log='/opt/app/arch/rman.log' <<EOFdelete obsolete recovery window of 3 days;crosscheck archivelog all;delete noprompt obsolete;delete noprompt expired archivelog all;crosscheck backup;delete noprompt expired backup;backup format='/opt/app/arch/rman/orcl_full_%U_%T' tag='orcl_full' database;backup current controlfile tag='orcl_ctlfile'format='/opt/app/arch/rman/orcl_ctlfile_%U_%T';backup spfile tag='orcl_spfile'format='/opt/app/arch/rman/orcl_spfile_%U_%T';exitEOF执行时间:[oracle@rac1 arch]$ crontab -l30 02 * * 0 /opt/app/arch/del_arch.sh30 02 * * 1 /opt/app/arch/del_arch.sh30 02 * * 2 /opt/app/arch/del_arch.sh30 02 * * 3 /opt/app/arch/del_arch.sh30 02 * * 4 /opt/app/arch/del_arch.sh30 02 * * 5 /opt/app/arch/del_arch.sh30 02 * * 6 /opt/app/arch/del_arch.sh每天的备份文件放在/opt/app/arch/rman/目录下二、数据库恢复如果数据库出现故障,可以从备份文件中恢复数据库,最早可以恢复到两天前的备份时间点RAC 下的RMAN 讲究的是备份和还原的策略要一致。
oracle数据库rman备份计划及恢复1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。
2.rman备份脚本: a.RMAN 0级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 0 tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset database;sql "alter system archive log current";backup filesperset 3 format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} b.RMAN 1级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 1 tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset database;sql 'alter system archive log current';backup filesperset 3 format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p'archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} c.rman删除备份命令(在保留最近⼀天备份的情况下,删除其他备份):DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 1 DAYS; d.操作系统层⾯运⾏rman备份或删除命令(windows/linux):rman target sys/rf4rfvbgt56yhn@rfdb nocatalog CMDFILE 'D:\app\rman\rman_file\level_0.txt' log=E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\log\rman_level_0.log export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1export ORACLE_SID=atestexport PATH=$ORACLE_HOME/bin:$PATHrman target sys/123456@atest nocatalog CMDFILE '/u01/rman/rman.sh' log=/u01/rman/rman.log00 02 * * 1 bash /u01/rman_file/run_rman_0.sh00 02 * * 3 bash /u01/rman_file/run_rman_0.sh00 02 * * 5 bash /u01/rman_file/run_rman_0.sh00 04 * * * bash /u01/rman_file/run_delete.sh34 11 * * * bash /u01/rman_file/run_rman_0.sh e.rman参数设置:RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;3.rman恢复a.拷贝datafile,controlfile和spfile的rman备份,以及完整的archivelog和完好的redolog⽂件到新的数据库。
1ORACLE 数据库数据备份和恢复操作手册1.1. ORACLE 参数设置进入 CMD 操作界面,使用sqlplus 连接数据库,图例 1 数据库连接操作连接语法: sqlplus system/Oracle2013@orcl参数说明参数说明备注sqlplus 语法命令system 数据库管理员用户名Oracle2013 system 用户密码数据库安装目录的tnsnames.ora 文件中可以找到orcl 数据库连接标示符Oracle11G 目录:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN图例 2 成功连接数据库环境变量设置 (在 Sqlplus 中执行 )create or replace directory <dir_name> as‘c:\tmpdir’;参数说明参数说明备注dir_name c:\tmpdir 路径名称文件路径也可以是另外的随意目录,用单引号括起来。
图例 3 环境变量设置1.2.数据备份备份脚本: expdp system/Oracle2013@orcl directory=file_pathdumpfile=ARADMIN.dat logfile=ARADMIN.log schemas=ARADMIN参数说明参数说明备注expdp 语法命令system 数据库管理员用户名Oracle2013 system 用户密码数据库安装目录的 tnsnames.ora 文件中可以找到orcl 数据库连接标示符Oracle11G 目录:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMINdirectory 文件目录名称导出数据库文件的存放目录dumpfile 数据库文件名称导出数据库文件的文件名logfile 数据库日志文件名称导出数据库的日志文件名称schemas 数据库用户操作:图例 4 数据库备份操作成功导出。
除了system表空间的数据文件(mount)之外,其它数据文件可以在open(mount也可以)状态下恢复。
open状态下恢复数据文件可以减少数据库停用的时间,所以应该在open状态下恢复这些数据文件。
示例一:数据文件被误删除数据库关闭状态下删除非系统表空间数据文件。
启动数据库到mount状态。
脱机丢失的数据文件,alter database datafile n offline。
打开数据库,alter database open。
转储数据文件,restore datafile n。
使用recover datafile n 应用归档日志。
联机数据文件,alter database datafile n online。
--数据库关闭状态下删除非系统表空间数据文件。
1.[oracle@localhost ~]$ rm $ORACLE_BASE/product/10.2.0/oradatabak/example01.dbf;2.SQL> select file#,error from v$recover_file;3.FILE# ERROR4.---------- -----------------------------------------------------------------5. 5 FILE NOT FOUND6.SQL> select file#,name from v$datafile where file#=5;7.FILE# NAME8.---------- --------------------------------------------------------------------------------9. 5 /oracle/10g/oracle/product/10.2.0/oradatabak/example01.dbf10.--恢复数据文件11.RMAN> run {12.startup force mount;13.sql 'alter database datafile 5 offline';14.sql 'alter database open';15.restore datafile 5;16.recover datafile 5;17.sql 'alter database datafile 5 online';18.8> }示例二:数据文件所在磁盘出现损坏数据库关闭状态下删除非系统表空间数据文件。
oracle 数据库快速恢复区域使用规则
Oracle数据库的快速恢复区域是用于存放所有与备份恢复操作相关的文件的地方,包括控制文件在线镜像、在线重做日志、归档日志、外来归档日志、控制文件镜像复制、数据文件镜像复制、RMAN备份片和闪回日志。
这些文件由Oracle数据库维护,并按照Oracle托管文件(OMF)格式生成文件名。
启用快速恢复区域后,它将成为RMAN备份的默认存放位置。
如果没有在RMAN 配置或在backup命令中指明路径,RMAN备份片、镜像复制、控制文件自动备份等都会进入快速恢复区。
启用快速恢复区域时,需要考虑以下规则:
1. 位置选择:快速恢复区域的位置必须在集群文件系统、ASM或共享目录上。
2. 大小设置:首先使用参数DB_RECOVERY_FILE_DEST_SIZE设置快速恢复区域的大小。
理想情况下,快速恢复区域应足够大,可以包含控制文件、在线redo 日志、归档redo日志和闪回日志。
它应能够包含所选备份策略使用的数据库的所有数据文件的一个拷贝和增量备份。
在绝对最小的情况下,快速恢复区域必须足够大以包含不在磁带上的归档日志。
3. 无需关闭和重启数据库实例:这些参数可以在需要或不需要关闭和重启数据库实例的情况下启用快速恢复区域。
以上内容仅供参考,如需更多信息,建议访问Oracle数据库官网或咨询专业技术人员。
使用RMAN备份与还原Oracle数据库原理一、数据库备份概念对于Oracle数据库,备份方式包括物理备份和逻辑备份。
1、物理备份将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。
该方法实现数据库的完整恢复,但数据库必须运行在归档模式下(业务数据库在非归档模式下运行),且需要极大的外部存储设备,例如磁带库,具体包括冷备份和热备份。
冷备份和热备份是物理备份(也称低级备份),它涉及到组成数据库的文件,但不考虑逻辑内容。
使用RMAN备份与还原ORACLE数据库的方式,属于物理备份方法。
2、逻辑备份利用SQL语言从数据库中抽取数据并存于二进制文件的过程。
业务数据库采用此种方式,此方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备,包括导出/导入(EXPORT/IMPORT)。
这种方法包括读取一系列的数据库日志,并写入文件中,这些日志的读取与其所处位置无关。
二、RMAN备份方式使用RMAN备份Oracle数据库,包括以下三种备份概念。
1、完全备份(Full Backup)与增量备份(Incremental Backup)完全备份与增量备份是针对数据文件而言,控制文件和归档日志文件不能进行增量备份。
当然,后两者可以做备份优化。
2、打开备份(Open Backup)或关闭备份(Closed Backup)数据库打开状态下进行备份即是打开备份,数据库关闭状态下(加载状态)进行的备份即关闭备份。
3、一致备份(Consistent Backup)与不一致备份(Inconsistent Backup)数据库打开状态或不干净关闭状态(shutdown abort)进行的备份是不一致备份,利用不一致的备份修复数据库后还需要做数据库的恢复。
在数据库干净关闭状态进行的备份是一致备份,利用一致备份修复数据库后不需要做数据库的恢复。
三、备份策略由于数据库占据物理空间较大,每次都进行全库备份,对存储介质要求比较高,也会造成空间的冗余浪费,故而在实际的数据备份过程中,通常采用增量备份的方法。
ORACLE数据库的备份与恢复差异增量备份就是备份往前第一个备份级别小于或等于当前备份级别开始到现在的变化。
累计增量备份就是备份往前第一个备份级别小于当前备份级别开始到现在的变化。
0级备份也就是全备份,但0级备份可以在此基础之上再进行备份,但全备份就不可以。
Oracle rman 备份一、数据库全备份方法(nocatalog)1 注意rman有两个,要执行db_1/bin下那个(可以通过修改oracle变量来达到)2 在执行ramn之前要确认当前数据库是否处理Archive Mode模式,并处于Enabled下查看方式:如果不是可以通过如下方式打开并修改:SQL>startup mountSQL>alter database archivelogSQL>alter database open3全备份数据库:A先连接数据库HERMINGB查看备份列表中是否有以前备份的文件C执行全数据库备份4备份完之后可以查看一下备份出来的文件信息:5备份文件存放路径为:二、0级数据库备份A 以nocatalog方式使用rmanB连接数据库C执行0级数据库备份注:全备份与0级备份的相同点是都是将数据库全部备份下来。
全备份与0级备份的不同点是全备份不能作为增量备份,而0级可以作为增量备份。
1级备份就在0级备份的基础上进行的。
三、1级增量备份(基于0级备份之上)总结:可以将备份出来的文件考到其他介质上进行保存,并进行删除。
如果要恢复时请将该文件放回到这文件夹下,并要保存文件名不变。
说明:口令文件因为可以重新设置,所以不用备份,重做日志文件不能在非nocatalog中备份。
四、备份archivelog(参数文件+数据文件+控制文件+归档日志文件)先备份完再删除归档备份五、备份表空间A 查看有哪些表空间B备份名为TBS1的表空间六、备份控制文件七、镜像备份说明:5为TBS1表空间的编号,及对TBS1表空间进行镜像备份。
oracle中expimp备份还原工具的使用详解Oracle数据库的exp和imp命令是数据库备份和恢复的常用工具。
本文将详细介绍exp和imp命令的用法和具体步骤。
一、exp命令exp命令用于将Oracle数据库中的数据和对象导出到一个二进制文件中,以进行备份或迁移。
以下是exp命令的详细步骤:1. 登录到Oracle数据库的命令行界面。
2. 输入以下命令启动exp工具:其中,username是要导出数据的用户名,password是对应的密码,connection_string是连接数据库的字符串,包括主机名、端口号和服务名等信息。
3. exp工具启动后,会提示输入导出内容的方式。
可以选择导出全库、特定表或特定用户的数据。
输入相应的选项并按Enter键确定。
4. 接下来,exp工具会要求输入导出的目标文件名。
输入文件名并按Enter键确定。
5. 导出过程将开始执行。
exp工具会逐一导出数据库的数据和对象,并将其存储在目标文件中。
此过程可能需要一些时间,取决于数据库的大小和复杂性。
6. 导出完成后,在命令行中会显示相应的导出信息。
可以根据需要选择是否结束exp工具。
二、imp命令imp命令用于将exp命令导出的二进制文件恢复到Oracle数据库中。
以下是imp命令的详细步骤:1. 登录到Oracle数据库的命令行界面。
2. 输入以下命令启动imp工具:其中,username是要导入数据的用户名,password是对应的密码,connection_string是连接数据库的字符串,包括主机名、端口号和服务名等信息。
3. imp工具启动后,会提示输入导入内容的方式。
可以选择导入全库、特定表或特定用户的数据。
输入相应的选项并按Enter键确定。
4. 接下来,imp工具会要求输入导入的源文件名。
输入文件名并按Enter键确定。
5. 导入过程将开始执行。
imp工具会读取源文件中的数据和对象,并将其恢复到目标数据库中。
一、概述数据库作为企业重要的信息基础设施,承载着大量的业务数据和关键信息。
在数据库运行过程中,难免会出现各种各样的问题,其中安全漏洞和性能问题是最为常见的。
为了解决这些问题,Oracle公司会定期发布数据库补丁修复程序,用于修复数据库中的安全漏洞和性能问题。
本文将介绍Oracle数据库补丁修复的流程,帮助管理员和DBA了解如何正确地应用补丁修复程序,并提高数据库的安全性和稳定性。
二、准备工作1. 确定数据库版本在应用补丁修复程序之前,首先需要确认当前数据库的版本号。
不同版本的数据库补丁修复程序是针对特定版本的,如果错误地应用了不适用于当前数据库版本的补丁修复程序,会导致数据库出现更严重的问题。
2. 下载补丁修复程序访问Oracle冠方全球信息站,找到适用于当前数据库版本的补丁修复程序,并进行下载。
3. 备份数据库在应用补丁修复程序之前,务必对数据库进行全量备份。
在应用过程中出现问题,可以及时恢复数据,避免数据丢失。
三、应用补丁修复程序1. 解压补丁文件将下载的补丁修复程序文件解压到合适的目录。
2. 关闭数据库在应用补丁修复程序之前,需要先关闭数据库实例,确保数据库处于停机状态。
3. 运行补丁程序打开命令行工具,进入到补丁修复程序所在的目录,运行补丁程序,根据提示进行操作。
在应用补丁修复程序的过程中,可能会出现一些需要确认的信息,如是否继续、是否覆盖已有文件等,需要仔细审查并进行确认。
4. 启动数据库在补丁程序应用完成之后,重新启动数据库实例,确保数据库正常运行。
四、验证补丁修复效果1. 查询补丁信息使用SQL查询语句,查看数据库中已应用的补丁修复程序信息,确认补丁是否成功应用。
2. 运行测试运行一系列测试用例,验证数据库的安全性和性能是否得到提升。
如果发现问题,及时排查并解决。
五、总结数据库补丁修复是保障数据库安全和稳定运行的重要措施。
正确地应用补丁修复程序,可以及时修复数据库中的安全漏洞和性能问题,降低数据泄露和数据库崩溃的风险。
Oracle DG 方案1. 简介Oracle Data Guard(DG)是Oracle数据库提供的一种高可用性和灾难恢复解决方案。
它通过在主数据库和一个或多个辅助数据库之间建立物理或逻辑复制,实现数据的实时备份和同步,从而提供了数据的可用性和保护。
2. 物理复制2.1 主数据库配置在主数据库上配置DG,需要执行以下步骤:•创建物理复制所需的日志传输服务•配置主数据库的归档模式•启用日志传输和应用服务首先,我们需要创建一个可用于日志传输的网络服务,以便主数据库可以将归档日志传输到辅助数据库。
然后,将主数据库配置为归档模式,确保归档日志可以被传输和应用到辅助数据库上。
最后,需要启用日志传输和应用服务,以确保日志的实时传输和辅助数据库的数据同步。
2.2 辅助数据库配置在辅助数据库上配置DG,需要执行以下步骤:•创建辅助数据库实例•配置辅助数据库的连接和归档信息•启动辅助数据库实例•应用主数据库的归档日志首先,需要创建一个辅助数据库实例,该实例将用于接收和应用主数据库的归档日志。
然后,需要配置辅助数据库的连接信息,以确保它可以与主数据库进行通信,并获取归档日志。
接下来,启动辅助数据库实例,并配置归档日志的应用方式。
3. 逻辑复制逻辑复制是另一种Oracle DG的实现方式,它基于逻辑单位(如表或模式)的复制,而不是物理上的块复制。
逻辑复制可以在主数据库和辅助数据库之间实现数据的实时同步和备份。
3.1 主数据库配置在主数据库上配置逻辑复制,需要执行以下步骤:•创建逻辑复制所需的逻辑连接和组织形式•配置主数据库的归档模式(可选)•启用逻辑复制首先,我们需要创建逻辑复制所需的逻辑连接和组织形式。
逻辑连接是主数据库和辅助数据库之间的连接,它使得数据可以被传输和同步。
接下来,如果需要,我们可以将主数据库配置为归档模式,以便归档日志可以被传输和应用到辅助数据库上。
最后,启用逻辑复制,以确保数据的实时同步。
3.2 辅助数据库配置在辅助数据库上配置逻辑复制,需要执行以下步骤:•创建逻辑复制所需的逻辑连接和组织形式•启用逻辑复制服务首先,我们需要创建逻辑复制所需的逻辑连接和组织形式,以确保辅助数据库可以与主数据库进行通信,并接收和同步数据。
ORACLE 数据库故障解决方案引言概述:ORACLE 数据库是目前最常用的企业级数据库之一,然而在使用过程中,难免会遇到各种故障。
本文将介绍一些常见的 ORACLE 数据库故障解决方案,帮助读者更好地应对数据库故障。
一、数据库连接问题的解决方案:1.1 检查网络连接:确保数据库服务器和客户端之间的网络连接正常。
可以通过 ping 命令或者其他网络工具来测试网络连通性。
1.2 检查监听器状态:监听器是用于监听数据库连接请求的服务,如果监听器未启动或者出现异常,可能导致数据库连接失败。
可以使用 lsnrctl 命令来检查监听器的状态,并根据需要启动或重启监听器。
1.3 检查防火墙设置:防火墙可能会阻止数据库连接请求通过特定的端口,导致连接失败。
确保防火墙的设置允许数据库连接请求通过所需的端口。
二、数据库备份与恢复问题的解决方案:2.1 定期备份数据库:定期备份数据库是防止数据丢失的重要手段。
可以使用RMAN (Recovery Manager) 工具进行数据库备份,可以选择全量备份、增量备份或者归档日志备份等方式。
2.2 恢复数据库:当数据库出现故障时,可以使用备份文件进行数据库恢复。
可以通过 RMAN 工具进行数据库恢复,根据备份类型选择相应的恢复策略。
2.3 监控数据库恢复过程:在进行数据库恢复时,需要密切监控恢复过程,确保恢复过程的顺利进行。
可以使用 RMAN 工具提供的恢复状态查询命令来监控恢复进度。
三、数据库性能问题的解决方案:3.1 优化 SQL 查询语句:SQL 查询语句是数据库性能的关键因素之一。
通过优化 SQL 查询语句,可以提高数据库的查询效率。
可以使用 EXPLAIN PLAN 命令来分析查询语句的执行计划,并根据需要进行索引优化或者重写查询语句。
3.2 调整数据库参数:数据库参数的设置对数据库性能有很大影响。
可以通过修改数据库参数来优化数据库性能,如调整缓冲区大小、并发连接数等。
25、恢复没有备份的数据文件在数据文件崩溃之前没有任何备份的情况下,要恢复这个文件通常要符合如下条件:●所需恢复的数据文件不属于系统表空间或还原/回滚段表空间。
●由于介质损坏或用户错误操作导致数据文件的丢失,但是这个文件从来就没有备份过。
●在创建本次丢失的数据文件之前数据库处于归档模式下。
●从这个数据文件创建以来所有的归档日志文件都完整无损。
步骤:1、如果数据库是在打开状态,使用数据字典dba_data_files获取要恢复的数据文件所对应的表空间及它所对应的状态。
SQL>select tablespace_name,table_name,status from dba_data_file;2、如果数据库处在联机状态,使用数据库字典dba_tablespace获取要恢复的表空间信息,通过表空间V$database获取要恢复的数据文件是否处在联机状态。
3、如果表空间处于联机状态,要先将表空间脱机状态,也可以将数据文件设为脱机,打开数据库。
如果数据已经关闭,启动到mount状态将数据文件脱机,再打开数据库。
(1)如果数据库处于打开状态SQL>alter database datafile ‘c:\test.dbf’ offline;(2)如果数据库处于关闭状态SQL>startup mount;SQL>alter database datafile ‘c:\test.dbf’ offline;SQL>alter database open;4、使用v$recover_file查看数据文件的恢复状态5、在数据库打开状态下,使用alter database create datafile重建数据文件结构。
SQL>alter database create datafile ‘c:\test.dbf’ as‘c:\test.dbf’;6、再次使用v$recover_file查看数据文件的恢复状态7、使用:recover tablespace “表空间”,也可以使用recover datafile “数据文件”把数据从归档日志文件盒重做日志文件重新写入已经修复的数据文件。
数据库恢复的几种方法数据库恢复是指在数据库发生故障或数据丢失的情况下,通过一系列方法来恢复数据库到正常运行状态的过程。
数据库恢复方法的选择取决于故障的类型和程度,以及数据库的备份策略。
下面将介绍几种常见的数据库恢复方法。
1. 增量备份恢复:增量备份是指只备份数据库中自上次完整备份以来发生变化的数据部分。
在数据库发生故障时,可以先恢复最近的完整备份,然后再应用增量备份中的日志,将数据库恢复到故障发生前的状态。
这种方法的优点是备份时间短,恢复速度快,但需要保证日志的完整性和顺序性。
2. 事务日志恢复:事务日志是记录数据库中每个事务的操作和状态变化的日志文件。
当数据库发生故障时,可以通过事务日志来进行恢复。
具体步骤包括将数据库恢复到最近的完整备份状态,然后将事务日志中未提交的事务重新执行,从而达到恢复数据库的目的。
3. 热备份恢复:热备份是指在数据库运行期间进行备份操作,而不需要停止数据库服务。
当数据库发生故障时,可以直接使用热备份来恢复数据库。
这种方法的优点是备份对用户透明,不影响数据库的正常使用,但需要保证备份的一致性和完整性。
4. 数据库镜像恢复:数据库镜像是指将数据库的一个副本实时同步到另一个服务器上。
当主数据库发生故障时,可以切换到镜像数据库来实现快速恢复。
镜像恢复的优点是恢复时间短,对用户透明,但需要保证镜像的同步性和一致性。
5. 数据库导出导入恢复:如果数据库无法直接恢复,可以将数据库中的数据导出到其他文件格式,然后再导入到新的数据库中。
这种方法的优点是可以在不同数据库之间进行迁移和恢复,但需要保证数据导出导入的准确性和完整性。
6. 数据库重建恢复:如果数据库无法通过上述方法进行恢复,或者数据损坏严重,可以考虑进行数据库重建。
具体步骤包括创建一个新的数据库,并重新定义表结构和导入数据。
这种方法的缺点是需要重新建立索引和关联关系,恢复时间较长。
总结起来,数据库恢复的方法有增量备份恢复、事务日志恢复、热备份恢复、数据库镜像恢复、数据库导出导入恢复和数据库重建恢复等。
oracle 数据库快速恢复区域使用规则全文共四篇示例,供读者参考第一篇示例:Oracle数据库是一种广泛应用的关系型数据库管理系统,需要进行正常备份以保证数据的安全性。
而在数据库备份时,快速恢复区域(Fast Recovery Area)是一个非常重要的技术点,它可以帮助我们更快速地恢复数据库。
快速恢复区域是Oracle数据库中的一个特殊区域,用于存储数据库备份、归档日志和其他恢复所需的文件。
它的作用是提供一种集中化管理数据库恢复所需的文件,简化了数据库恢复的过程。
在这个区域中,我们可以设置自动备份、归档和删除策略,让数据库的维护更加自动化和高效。
在使用快速恢复区域时,我们需要遵守一些规则和最佳实践,以确保数据库的恢复过程顺利进行。
我们需要合理规划快速恢复区域的大小,确保它能够容纳备份、归档和恢复所需的文件。
一般情况下,快速恢复区域的大小应该是数据库总空间的2%到3%。
我们需要定期清理快速恢复区域中的过期文件,以释放磁盘空间并避免不必要的资源浪费。
可以通过设置自动删除策略或手动清理方式来实现,定期检查和清理是保证快速恢复区域高效运行的关键。
在使用快速恢复区域时,还需要注意备份和归档日志的生成和管理。
及时备份数据库是保证数据安全性的重要手段,而有效管理归档日志可以帮助数据库顺利进行恢复。
在设置快速恢复区域时,我们需要根据数据库的运行情况和备份策略来合理配置备份和归档日志的生成和保留时间。
快速恢复区域也可以和RMAN(Recovery Manager)工具配合使用,实现更高效的数据库备份和恢复。
RMAN是Oracle提供的专业数据库备份和恢复工具,可以与快速恢复区域无缝集成,实现自动备份、恢复和监控功能。
通过配合使用RMAN和快速恢复区域,可以有效降低数据库备份和恢复的成本和风险。
快速恢复区域是Oracle数据库中一个非常重要的概念,合理使用和管理它可以帮助我们更快速、安全地恢复数据库。
在使用快速恢复区域时,我们需要遵守规则和最佳实践,合理规划快速恢复区域的大小、定期清理过期文件、有效管理备份和归档日志,并配合使用RMAN工具,从而提高数据库的安全性和可靠性。
Symantec Backup exec 恢复Recovery Oracle 数据库要原始服务器或具有相同名称和SID 的服务器处于联机状态。
还原将重定向到的服务器上的文件夹结构也需要是相同的。
要在Oracle 实例或数据库丢失、删除或损坏后进行完整恢复,必须按照下列步骤将新的或备用的Oracle 服务器用于恢复:1. 使用与不再可用的原始数据库相同的名称重新创建Oracle 数据库。
2. 找到并重命名pwd.ora文件。
3. 创建新的pwd.ora文件。
要创建新的pwd.ora文件:a. 打开命令提示符。
b. 键入以下命令:orapwd file=path\pwdsid.ora password=继续灾难恢复:4. 在命令提示符下,键入以下命令:RMAN5. 键入CONNECT TARGET ;6. 键入SHUTDOWN ABORT;7. 键入STARTUP NOMOUNT;8. 键入SET DBID;9. 转到Backup Exec 介质服务器。
10. 在导航栏上,单击Restore(还原)旁边的箭头,然后单击New Restore Job(新建还原作业)。
11. 在Properties(属性)窗格中的Source(源)下,单击Selections(选择)。
12. 选择要还原的适当Control File(控制文件)。
13. 在Restore job properties(还原作业属性)窗格中的Destination(目标)下,单击Oracle Redirection(Oracle 重定向)。
14. 选中与Restore Oracle instance to server(将Oracle 实例还原到服务器)选项对应的框。
输入用于访问新的或备用Oracle 服务器的帐户凭据,然后单击Run Now(立即运行)。
注意:还原作业将由于恢复部分遇到不一致的存档日志而失败。
进行灾难恢复时通常会发生此情况。
ORACLE数据库数据泵备份与恢复EXPDP和IMPDP是服务端的⼯具程序,他们只能在ORACLE服务端使⽤,不能在客户端使⽤。
IMP只适⽤于EXP导出的⽂件,不适⽤于EXPDP导出⽂件;IMPDP只适⽤于EXPDP导出的⽂件,⽽不适⽤于EXP导出⽂件。
⼀、expdp和impdp的使⽤1.创建⽬录create directory DBBAK as '/bak'; #DBBAK名称可以随便命名需要⼿⼯创建/bak,并且此⽬录oracle⽤户有读取写⼊权限2.查看所有⽬录select * from dba_directories;3.给test⽤户赋予在指定⽬录的操作权限,最好⽤root⽤户赋予。
grant read,write on directory DBBAK to test;4.导出数据1)按⽤户导expdp test/test@orcl schemas=test dumpfile=expdp.dmp DIRECTORY=DBBAK logfile=expdp.log2)并⾏进程parallelexpdp test/test@orcl directory=DBBAK dumpfile=expdp1.dmp parallel=10 job_name=test13)按表名导expdp test/test@orcl TABLES=table01,table02 dumpfile=expdp2.dmp DIRECTORY=DBBAK;4)按查询条件导expdp test/test@orcl directory=DBBAK dumpfile=expdp4.dmp Tables=table01 query='WHERE id=001';5)按表空间导expdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test,USERS;6)导整个数据库expdp system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;5、创建表空间及⽤户create tablespace test datafile '+data/test/datafile/data01.dbf' size 32000M;alter tablespace test add datafile '+data2/test/datafile/users02.dbf' size 32000M;create user test identified by test default tablespace TEST temporary tablespace TEMP;grant connect,resource,dba to test;grant read,write on directory DBBAK to test;6、还原数据1)导到指定⽤户下impdp test1/test1@orcl DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=test logfile=impdp.log2)改变表的ownerimpdp system/system DIRECTORY=DBBAK DUMPFILE=expdp2.dmp TABLES=test.table01REMAP_SCHEMA=test1:table11;3)导⼊表空间impdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test;4)导⼊数据库impdb system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/system DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION7、查看数据是否⼀致select OBJECT_TYPE,COUNT(*) from all_objects where OWNER='TEST' group by OBJECT_TYPE;⼆、expdp详细参数可以通过 expdp help=y查看1.CONTENT 指定要导出的数据其中有效关键字为:(ALL), (默认)导出结构和数据DATA_ONLY:只导出数据METADATA_ONLY:只导出结构2.DIRECTORY 供转储⽂件和⽇志⽂件使⽤的⽬录对象3.DUMPFILE ⽬标转储⽂件 (expdat.dmp) 的列表例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.d4.INCLUDE 包括特定的对象类型例如 INCLUDE=PACKAGE,FUNCTION,PROCEDURE,TABLE:"='EMP'"5.EXCLUDE 排除特定的对象类型与INCLUDE相反6.TABLES 标识要导出的表的列表7.SCHEMAS 要导出的⽅案的列表可⽀持多个schemas=(user01,user02,user03)8.TABLESPACES 标识要导出的表空间的列表9.ATTACH 连接到现有作业, 例如 ATTACH [=作业名]PRESSIONALL :对导出的元数据和表数据都进⾏压缩,得到的导出⽂件是最⼩的,耗时也是最长的。
目录 数据库恢复方案...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还原和恢复操作。 4) OPEN状态下,读入数据文件和重做日志文件。 我们要保证Oracle在各个阶段读入的文件和目录指向正确的路径。 如果更改了某个文件的位置,要把其相应的参数文件和控制文件中的信息要一同更新。
3,RMAN信息的保存位置 NOCATALOG(非恢复目录)模式时,RMAN把备份文件的辅助信息保存在控制文件中。 CATALOG(恢复目录)模式时,RMAN把备份文件的辅助信息保存在一个数据库中。
下面将通过若干实验来总结Oracle的各种崩溃情况下的恢复。
二、 完全恢复 (一) 控制文件 丢失控制文件只需要执行“还原”步骤。 1) 丢失部分控制文件: 1, 关闭数据库 2, 手动复制剩余控制文件并改名成丢失的控制文件名 3, 启动数据库 数据库中所有控制文件是完全相同的,使用DBCA创建数据库会默认产生三个控制文件,建议多路复用控制文件(把多个控制文件放到不同磁盘上),保证数据库的可用性。
2) 丢失全部控制文件 1, 关闭数据库 2, 启动数据库到NOMOUNT状态 3, 重建控制文件 4, 启动数据库
重建控制文件有以下两种方法: 1,找到警告日志,根据其信息创建控制文件。警告日志位于bdump文件夹中,命名为alert_{oracle_sid}.log,启动失败等信息也可以在这里找到。
2,找到跟踪文件,根据其SQL语句重建控制文件。跟踪文件位于udump文件夹下,使用下述命令备份控制文件到跟踪文件。
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
(二) 重做日志文件 丢失非当前状态的重做日志文件需要执行“还原”步骤,丢失当前状态的重做日志文件需要“恢复”步骤。
重做日志文件按状态分为当前、非当前、已归档和未归档四种,需要用不同的命令来打开数据库。
1) 非当前使用的重做日志文件: 1,已归档: SQL> ALTER DATABASE CLEAR LOGFILE GROUP #; 2,未归档: SQL> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP #;
2) 当前使用的重做日志文件(未归档): SQL> ALTER DATABASE MOUNT; SQL> RECOVER DATABASE UNTIL CANCEL; SQL> ALTER DATABASE OPEN RESETLOGS;
如果清除了未归档的重做日志文件(当前使用的重做日志文件为未归档),会丢失这个重做日志文件包含的信息,导致日后恢复时无法完全恢复,所以清除未归档的重做日志文件后要立刻全备份数据库。
(三) 数据文件 1) 无归档模式下的完全恢复 无归档模式一般采用exp导出或者手工冷备份方式进行备份恢复。 手工冷备份方式: 1,创建表 SQL> create table tb(a integer,b integer); 表已创建。 2,插入数据 SQL> insert into tb(a,b) values(1,1); 已创建1行。 SQL> insert into tb(a,b) values (2,2); 已创建1行。 SQL> commit; 提交完成。 3,关闭数据库,手工删除数据文件模拟数据文件损坏 SQL> shutdown immediate; 4,打开数据库 SQL> startup open; ORACLE例程已经启动。 Total System Global Area 167772160 bytes Fixed Size 1247900 bytes Variable Size 62915940 bytes Database Buffers 100663296 bytes Redo Buffers 2945024 bytes 数据库装载完毕。 ORA-01157:无法标识/锁定数据文件4 -请参阅DBWR跟踪文件 ORA-01110:数据文件4: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF' 5,手工还原数据文件,打开数据库 SQL> alter database open; 6,查询数据 SQL> select * from tb; A B ---------- ---------- 1 1 2 2
数据库恢复完成,数据没有丢失。
2) 归档模式下的完全恢复 归档模式下可采用RMAN备份,手工备份与exp导出方式进行备份,推荐使用RMAN方式进行安全可靠的备份。 RMAN方式: 丢失数据文件需要先“还原”,再“恢复”数据文件到一致状态。 1,查看test表中数据 SQL> select * from tb; A B ---------- ---------- 1 1 2 2
2,备份数据库 RMAN TARGET/ RMAN> BACKUP DATABASE; 3,插入数据,切换日志文件 SQL> insert into tb(a,b) values(3,3); 已创建1行。 SQL> insert into tb(a,b) values(4,4); 已创建1行。 SQL> commit; 提交完成。 SQL> alter system switch logfile; 4,关闭数据库,手动删除USERS01.DBF SQL> SHUTDOWN IMMEDIATE; 5,启动数据库到MOUNT状态 SQL> STARTUP MOUNT: 6, 还原该数据文件 RMAN> RESTORE DATAFILE 4; 7, 恢复该数据文件 RMAN> RECOVER DATABASE; 8, 打开数据库 RMAN> ALTER DATABASE OPEN; 数据库已更改。 9, 查看数据是否丢失 SQL> select * from tb; A B ---------- ---------- 1 1 2 2 3 3 4 4
数据库恢复完成,数据没有丢失。
三、 不完全恢复 (一) 基于SCN的不完全恢复 1) 准备工作 1,备份数据库 rman target/ RMAN> backup database; 2,创建表 SQL> create table tb(a integer); 表已创建。 3,插入数据 SQL> insert into tb(a) values(1); 已创建1行。 SQL> insert into tb(a) values(2); 已创建1行。 SQL> commit; 提交完成。 4,查看数据 SQL> select * from tb; A