ORACLE最简单有效的备份恢复方案
- 格式:doc
- 大小:120.00 KB
- 文档页数:7
oracle数据库备份与恢复方案目录一、编写目的 (1)二、备份工具及备份方式 (1)三、软件备份 (1)四、软件恢复 (1)五、数据备份 (2)六、备份的存储 (2)七、备份数据的保存规定 (2)八、备份介质的格式 (3)九、数据恢复 (4)一、编写目的本文档主要说明公司项目在实施现场的软件及数据的备份和恢复方案。
二、备份工具及备份方式1.备份工具Oracle RMAN(Recovery Manager):是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle 工具。
RMAN只能用于ORACLE8或更高的版本中。
它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。
RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。
2.备份方式(1)自动备份:由Windows 计划任务调度完成;(2)手工备份:完成特殊情况下的备份,分热备份和冷备份,热备份是指在不关闭数据库情况下进行备份,冷备份则需要停止Oracle实例服务。
三、软件备份1.以七天为一个周期每天23:00将所有软件拷贝到其他存储介质上2.超出七天的备份依次删除3.每月一号将上月最后7天的备份文件刻录到光盘上四、软件恢复1.找出最近的备份程序覆盖到正式运行环境的相应目录中五、数据备份1.业务系统或数据库在打重要补丁或升级的前后,必须按要求对业务系统进行停机备份或非停机备份,备份需包含应用和数据库的文件系统及数据,备份方式为手工备份,使用RMAN执行备份;2.系统日常备份:作为7*24运行的重要系统,必须最小化数据丢失的同时,还需要尽可能缩短恢复时间,数据库的日常备份策略如下:(1)确保数据库处于ArchiliveLog模式;(2)每日凌晨01:00执行数据库全备份,含控制文件备份;(3)每四小时间隔执行数据库归档日志备份,含控制文件备份;(4)每间隔两周执行数据库与应用系统文件备份,执行时间:数据库服务器在第一周的周六05:00,应用服务器在第一周的周六7:00。
Oracle 备份恢复方案第一章基础知识一、备份内容:备份数据库一般包括备份数据库文件、控制文件、归档重做日志文件和INIT.OTRA文件,如果有可能,备份还应包括可执行代码和配置文件。
二、备份方法分类:主要的备份方法有物理备份、逻辑备份和恢复管理器(RMAN)备份。
1.物理备份是实际物理数据库文件从一处拷贝到另一处的备份,它使用操作系统提供的拷贝命令来完成,包括操作系统备份(NT下一般不用)、冷备份和热备份;2.逻辑备份是利用SQL从数据库中抽取数据并存入二进制文件,这些数据可以重新导入原来的数据库,或者以后导入其它数据库,ORACLE提供的EXPORT/IMPORT工具可用于进行数据库的导入和导出。
3.恢复管理器RMAN(Recovery Manager)为Oracle 8新引入,能够完成数据库的备份与恢复任务,既可以在图形用户界面GUI中使用,也可以在CLI (命令行)中使用。
三种方法各有长短,DBA应该综合灵活运用。
第二章物理备份和恢复一、冷备份步骤如下:1、关闭数据库实例:命令行下关闭数据库有三种方式:normal,immediate,和abort,对于备份而言,immediate方式最好,因为这种方式既避免了normal方式下因用户忘记退出而造成的等待,且因为Oracle进行了回滚和检查点操作,可以保证数据库的一致和完整性。
推荐在控制面板的服务窗口下关闭专用服务,可以彻底的关闭数据库,这里的数据库服务名为OracleServiceZZYD。
2、拷贝所有与数据库相关的物理文件:包括控制文件、重做日志文件和数据库文件,这里拷贝目录E:\ZZYD即可,另外最好把监听器配置文件(d:\orace\ora81\network\admin\目录下的listener.ora和tnsnames.ora)也拷贝下来。
3、完成拷贝后重新启动数据库。
二、热备份步骤:热备份是一个复杂的过程,这是因为每个表空间都是一个完整的备份过程。
ORACLE备份恢复经典案例第一章. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。
因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。
恢复过程大致可以分为复原(Restore)与恢复(Restore)过程。
数据库恢复可以分为以下两类:1.1实例故障的一致性恢复当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实例故障,此时需要实例恢复。
实例恢复将数据库恢复到故障之前的事务一致状态。
如果在在线后备发现实例故障,则需介质恢复。
在其它情况ORACLE在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。
如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:(1)为了解恢复数据文件中没有记录的数据,进行向前滚。
该数据记录在在线日志,包括对回滚段的内容恢复。
(2)回滚未提交的事务,按步1重新生成回滚段所指定的操作。
(3)释放在故障时正在处理事务所持有的资源。
(4)解决在故障时正经历一阶段提交的任何悬而未决的分布事务。
1.2介质故障或文件错误的不一致恢复介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。
文件错误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。
这种状态下的数据库都是不一致的,需要DBA手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行的归档方式和备份方式。
(1)完全介质恢复可恢复全部丢失的修改。
一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。
对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。
(2)不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。
GS下Oracle数据库备份恢复
注意:在对数据库做任何备份恢复操作时,请先备份数据库,以免丢失数据
本文将以一个例子来说明GS下oracle数据库帐套的备份恢复
原有数据库:cwbase002
恢复数据库:cwbase003
1.首先备份原有数据库cwbase002,使用如下命令:密码和oracle 服务名请改动
exp LC0029999/password@oradb file=d:\back\1\002.dmp owner=LC0029999 2.备份完成后会得到d:\back\1\002.dmp这个文件。
接下来,如果需要恢复到cwbase003,如果cwbase003已经存在的话,如果cwbase003正在使用,请谨慎处理,在确定cwbase003没用的话,删除cwbase003这个库,执行如下sql:Drop user lc0039999 cascade ;
如果cwbase003不存在,请新建lc0039999用户后再导入。
lc0039999需要有dba、resource角色,和unlimited tables权限,表空间用cwbase3,临时表用temp
3.在建好了lc0039999这个用户后,执行如下sql执行数据库恢复:密码和oracle 服务
名请改动
Imp lc0039999/password@oradb file= d:\back\1\002.dmp fromuser=LC0029999 touser=LC0039999
4.在恢复完数据库后,需要修改lc0039999用户下的syap表和system用户下
appinstmantab表,具体配置请查询数据依据帐套信息进行修改。
简单易懂的linux下oracle数据库备份方法在Linux环境下,对Oracle数据库进行备份是一项至关重要的工作,以确保数据的安全性和完整性。
下面将为您介绍一种简单易懂的Oracle数据库备份方法。
一、准备工作1.确保已安装Oracle数据库,并正确配置环境变量。
2.确保有足够的权限(如:dba权限)进行数据库备份操作。
3.了解数据库的名称、表空间等信息,以便进行正确的备份。
二、备份方法1.使用RMAN工具进行备份RMAN(Recovery Manager)是Oracle提供的一个强大的备份和恢复工具。
以下是一个简单的RMAN备份示例:a.连接到目标数据库:```rman target /```b.使用RMAN进行备份:```backup database;```这将备份整个数据库,包括控制文件和归档日志。
c.退出RMAN:```exit;```2.使用Oracle SQL命令进行备份a.使用SQL*Plus连接到目标数据库:```sqlplus / as sysdba```b.使用SQL命令备份整个数据库:```alter database backup controlfile to trace;```这将生成控制文件的备份脚本。
c.使用SQL命令备份表空间:```backup tablespace <表空间名称> to disk;```这将备份指定的表空间。
d.退出SQL*Plus:```exit;```三、备份文件的存储1.将备份文件存储在安全的磁带上或磁盘上。
2.建议将备份文件存储在不同的物理位置,以防止数据丢失。
四、定期检查备份1.定期检查备份文件是否完整、可用。
2.定期进行恢复测试,以确保备份的有效性。
通过以上步骤,您已经了解了一种简单易懂的Linux下Oracle数据库备份方法。
Oracle数据库备份与恢复的三种方法当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。
如果平时对数据库做了备份,那么此时恢复数据就显得很容易。
由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7 为例,来讲述一下数据库的备份和恢复。
ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。
导出备份是一种逻辑备份,冷备份和热备份是物理备份。
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)、“累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。
oracle归档模式备份恢复Oracle归档模式1Oracle归档模式设置1.1以系统管理员身份登录sqlplus /nologSQL>connect sys/oracle as sysdba;Connected.1.2检查当前数据库是否为归档模式SQL> archive log list;Database log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 8Current log sequence 101.3设置归档模式1.全数据库脱机备份(重要),详见全数据库的脱机备份(冷备份)步骤。
2.启动数据库至mount状态SQL> startup mount;3.设置数据库为归档模式SQL> alter database archivelog;Database altered.4.检查数据库归档模式是否开启SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 8Next log sequence to archive 10Current log sequence 105.启动数据库SQL>alter database open;2Oracle归档模式管理2.1启用自动归档修改初始化参数LOG_ARCHIVE_START = TRUE,此值在下次启动数据库时生效。
或SQL>alter system archive log start;下述命令设置实例的当前归档进程数为4:SQL>alter system set log_archive_max_processes=4;2.2停止自动归档修改初始化参数LOG_ARCHIVE_START = FALSE,此值在下次启动数据库时生效。
oracle还原数据库步骤
1. 停止数据库:使用shutdown命令关闭数据库。
2. 恢复控制文件:从备份中恢复控制文件。
3. 恢复数据文件和日志文件:使用RMAN工具恢复备份的数据文件和日志文件。
4. 打开数据库:使用alter database open命令打开数据库并允许访问。
5. 应用归档日志:如果备份不包含最新的归档日志,需要应用归档日志来使数据库达到最新状态。
6. 检查数据:使用数据库工具对数据库进行检查,确保数据完整性和一致性。
7. 启动数据库:通过启动监听器、实例和服务来启动数据库。
以上就是oracle还原数据库的基本步骤。
注意在还原数据库之前要确认备份文件的完整性和可用性,并且备份和还原都需要进行必要的权限和角色设置。
第一章备份和恢复的基本概念1. 数据丢失的分类数据丢失可分为逻辑丢失和物理丢失。
逻辑丢失:用户错误操作和应用程序错误造成数据丢失。
物理丢失:数据库物理结构破坏。
2. 备份和恢复的分类逻辑备份和逻辑恢复。
物理备份和物理恢复。
物理恢复的原则:所有的文件必须在时间点上一致。
崩溃恢复(Crash Recovery)与实例恢复(Instance Recovery):包括缓存恢复(Cache Recovery)和事务恢复(Transaction Recovery)。
缓存恢复:利用联机重做日志文件进行恢复。
事务恢复:回退(rollback)未提交的事务。
系统自动做的。
介质恢复(Media Recovery):利用归档重做日志文件和联机重做日志文件进行恢复。
修复(restore)(找出文件)和恢复(recover)(使与其他文件同步)。
3. 逻辑备份和物理备份逻辑备份和物理备份的内容。
物理备份可分为冷备份和热备份。
如何要进行热备份,数据库必须要处于归档模式。
如何要进行冷备份,数据库可以是归档模式,也可以是非归档模式。
冷备份只能将数据库恢复到备份时的状态。
热备份可以将数据库恢复到故障时的状态,或者将数据库恢复到一个指定的时间点(称为基于时间点的恢复)。
物理备份的方式:整库、表空间、数据文件、控制文件、归档重做日志文件、SPfile或Pfile、密码文件、网络文件(listener.ora和tnsnames.ora)。
联机重做日志文件不备份!一致性备份(Consistent Backup):shutdown immediate/normal时备份。
不需要重做日志来进行恢复。
非一致性备份(Inconsistent Backup):open时或shutdown abort时备份。
需要重做日志来进行恢复。
(如果联机重做日志文件丢失,需要有所有数据文件的备份。
)逻辑备份和物理备份的适用策略:逻辑备份只能防止逻辑丢失。
物理备份既能防止逻辑丢失,又能防止物理丢失。
oracle数据库备份与还原方法一、Oracle数据库备份方法。
1.1 冷备份。
冷备份是在数据库关闭状态下进行的备份。
这就好比是给一个睡着的人做全身检查,一切都是静止的,好操作。
你得把数据库相关的文件,像数据文件、控制文件、重做日志文件等一股脑儿地拷贝到一个安全的地方。
这种备份方法简单直接,但是呢,在备份期间数据库是不能使用的,就像你要修东西得先把它停下来一样,有点不方便。
不过它恢复起来也相对容易,就像把之前拷贝走的东西再原封不动地拿回来就好。
1.2 热备份。
热备份可就不一样啦,它是在数据库运行的时候进行备份的。
这就像是给一个正在跑步的人换鞋子,难度不小。
热备份主要是利用归档模式,对表空间或者数据文件进行备份。
这种方式不影响数据库的正常使用,就像在火车行驶的时候给它换个小零件,火车还能继续跑。
但是热备份的操作相对复杂一些,需要对Oracle数据库有比较深入的了解,不然很容易搞砸,那可就“偷鸡不成蚀把米”了。
1.3 逻辑备份。
逻辑备份呢,是通过Oracle的工具,比如EXP或者EXPDP来进行的。
这就像是把数据库里的数据按照一定的逻辑规则整理出来,打包带走。
它可以备份特定的表、用户或者整个数据库。
这种备份方式比较灵活,就像你可以从一个大仓库里挑选你想要备份的东西。
但是逻辑备份的速度可能会比较慢,特别是数据量很大的时候,就像小马拉大车,有点吃力。
二、Oracle数据库还原方法。
2.1 冷备份还原。
如果是冷备份还原,那就简单多啦。
首先把数据库关闭,然后把之前备份的文件再拷贝回原来的位置,就像把东西放回原位一样。
不过要注意文件的权限和路径,可不能张冠李戴。
一切就绪后,再启动数据库,就大功告成了。
这就像把修好的东西重新启动,又能正常工作了。
2.2 热备份还原。
热备份还原就复杂得多了。
首先要根据备份的情况,确定需要还原的表空间或者数据文件。
然后利用归档日志和备份文件进行恢复。
这过程就像走钢丝,得小心翼翼的。
ORCLE数据库备份和还原一、数据库备份一般Oracle数据库备份可以在命令提示行里用exp命令,格式如下:exp eam2004_sb2/eam2004_sb2@ora01 owner=eam2004_sb2file=d:\eam%date:~0,4%%date:~5,2%%date:~8,2%%time:~ 0,2%h.dmp“eam2004_sb2/eam2004_sb2@ora01”意思是以用户名/密码连接到服务名为ora01的数据库;“owner=eam2004_sb2”意思是要导出的数据库用户为“eam2004_sb2”。
“file”后面的参数是备份存放的路径和文件名,文件名以‘eam’+yyyymmddhh的格式命名,自己根据实际情况可以修改。
例如:exp shjc201246/shjc201246@ORACL owner=shjc201246 file=g:\shjc2012419.dmp二、数据库还原a.首先打开PL/SQL工具,用管理员用户登录到oracle数据库。
填写“sys”填写sys密码选择本机oracle数据库服务名选择本机“SYSDBA”填写完后点击“OK”b.登录PL/SQL后,创建一个新的数据库用户。
1、在左边找到“users”项选中,点击鼠标右键2、右键菜单中选择“new...”创建的数据库用户名创建的数据库用户密码选择“users”选择“TEMP”选择“DEFAULT”3、按图上信息填写后点击此按钮4、切换到“roleprivileges”标签5、填写“dba”6、点击此按钮注:此处授“dba”的权限是oracle数据库管理员的权限,及拥有所有权限。
若授dba权限过大则可以只授resource/ connect/ imp_full_database/ exp_full_database四个角色组:c.用新建的用户登录PL/SQL,然后导入数据库。
1、点击此按钮弹出登录界面填写刚才创建的用户名填写刚才创建的用户密码选择“Normal”2、按图上信息填写后点击此按钮3、打开菜单“tools”的“Import Tables”一般情况下,按此方法导入数据库不会遇见什么问题。
标题1、Oracle数据库服务器定时备份,UCACHE企业级云灾备标题2、Oracle数据库备份/恢复、UCACHE企业级云灾备使用UCACHE灾备云进行Oracle实时复制数据、搬迁数据功能来设计Oracle数据库备份/恢复解决方案,支持定时备份、实时备份,增量备份,同时可开展异地灾备,是Oracle数据库灾备/恢复的完美解决方案。
Oracle数据库系统是美国Oracle 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,目前最流行的客户服务器(CLIENT/ 或B/S 体系结构的数据库之一,Oracle 数据库本身提供了对数据库物理文件进行冷备份和在线备份两种方式。
在线备份类型包括:完全备份、差异增量备份、累积增量备份。
其中差异增量备份,备份的是自上一次同级别的差异备份或者是上一次更高级别的备份完成之后的数据库发生改变的数据块;而累积增量备份则是备份的自上一次上一级增量备份完成以来数据库发生改变的数据块。
Oracle定时/实时备份Oracle复制物理方案是通过配置实时复制源端和目标端的生产机,将源端的数据库配置成主库角色(primary role)目标端的数据库配置成备库角色(stand by role),主库可以正常的进行各种数据库操作产生日志,备库未到open 状态不能数据变更。
通过从主库向备库传送日志,备库应用接收到的日志来保证数据同步,还可以实现源端和目标端的主备库角色手动切换和故障切换功能。
Oracle完全备份方案是数据源的一个完整副本,包含从备份开始处所有的数据块,包含备份数据库实例的归档日志。
Oracle增量备份方案包含从最近一次备份以来被修改或添加的数据。
Oracle数据库灾难恢复1. Oracle实例恢复使用UCACHE灾备云之前的Oracle数据库备份集来实现数据库的还原,然后使用归档日志及联机日志将数据库恢复到最新状态,恢复时需要停止数据库的生产业务。
2. Oracle文件恢复使用UCACHE灾备云单独恢复不同类型的物理文件,包含控制文件、日志文件、参数文件、数据文件,在用户需要单独恢复各类型的文件时,可以选择此种恢复方式。
Oracle数据库数据丢失恢复的⼏种⽅法总结根据oracle数据库的特点和提供的⼯具,主要⽅法有以下⼏种⽅法:1. 利⽤逻辑备份使⽤import⼯具丢失数据的表2. 利⽤物理备份来通过还原数据⽂件并进⾏不完全恢复3. 利⽤dbms_logmnr包从redo log⽂件中恢复4. 利⽤flashback特性恢复数据前提为了⽅便使⽤⽅法的介绍,上述恢复⽅法都将基于以下场景进⾏:系统管理员在前⼀天晚上11点⽤export对数据库做了全库逻辑备份,然后对所有数据⽂件进⾏了热备份。
第⼆天上午10点,系统管理员在修改表TFUNDASSET的数据时,由于修改语句的条件写错了,导致⼀批记录(⼏千条)的ztm字段被修改成了错误的值,⽽且已经提交。
这个表是资产表,相对⽽⾔数据变化不频繁。
⼀、利⽤逻辑备份使⽤import⼯具恢复丢失的数据export/import是oracle提供的⽤于对数据库进⾏逻辑备份的⼯具。
该⼯具适⽤于备份那些数据量不⼤、业务量不多的数据库系统。
因为如果在前⼀天晚上11点⽤export做了逻辑备份,那么当今天上午10点数据库意外崩溃时,从备份起到数据库崩溃的这段时间⾥的数据修改操作(包括DDL和DML)都会丢失。
如果丢失数据内的表上的数据是相对⽐较稳定,也就是说该表上基本没有DML操作,例如标准代码表、分区表⾥的历史数据,那么采⽤import来导⼊该表可以⽐较完整的恢复数据。
如果该表是经常变化的业务表,那么这些丢失的数据只能根据业务情况从纸质记录恢复,或者其他途径恢复。
▲⽰例如下:这个表是⼀个资产表。
相对来说,今天系统运⾏中修改的数据较少,丢失的数据量可以承受或者可以从别的途径恢复。
那就可以⽤import来恢复。
⽅法⼀:1、把这个表的数据备份到另⼀个表:2、删除该表的记录:3、执⾏下⾯的命令:这个命令中在关键字tables中指定需要导⼊的表名字,ignore=y表⽰忽略表已经存在的错误。
4、导⼊结束后,检查表中的记录,并⽤适当的⽅法恢复当天的修改。
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数据库的备份与恢复案例详解⽬录1 逻辑备份/恢复(导出/导⼊)1.必备参数2.owner参数3.tables参数4.关于inctype参数2 物理备份/恢复1.冷备份/恢复2.热备份/恢复3 利⽤PL/SQL Developer备份数据库在Oracle数据库的使⽤过程中,备份与恢复是经常遇到的操作。
Oracle中的备份分为两⼤类:逻辑备份和物理备份。
其中物理备份⼜分为两类:冷备份和热备份。
本节将简要讲述如何利⽤各种备份⼿段进⾏Oracle数据库的备份与恢复。
1 逻辑备份/恢复(导出/导⼊)逻辑备份是指利⽤exp命令进⾏备份。
利⽤该命令进⾏备份,简单易⾏,也不影响正常的数据库操作。
因此,经常被作为⽇常备份的⼿段。
exp命令可以添加多个参数选项,以实现不同的导出策略。
可以通过exp –?命令进⾏查看。
其中,常⽤参数包括:owner、table和inctype。
1.必备参数对于⼀个导出命令,可以只使⽤必备参数,如范例1所⽰。
【范例1】演⽰导出命令的使⽤。
C:\Documents and Settings\Administrator>exp system/abc123 file=d:/b.dmp【代码说明】system/abc123为登录数据库时所使⽤的⽤户名和密码;file=d:/b.dmp指定数据导出所存放的⽂件完整路径。
这⾥需要注意的是,该命令并未指定登录到哪个数据库实例,因此,将使⽤系统环境变量ORACLE_SID所指定的数据库实例。
注意:另外⼀种特殊情况为,在环境变量列表中找不到ORACLE_SID,那么,可以在注册表中搜索ORACLE_SID项。
Oracle也会参考注册表中该项的值来设置环境。
2.owner参数owner参数,可以指定⼀个⽤户名列表。
导出时,将只导出⽤户名列表中⽤户所拥有的对象,如范例2所⽰。
【范例2】演⽰owner参数的使⽤。
C:\Documents and Settings\Administrator>exp system/abc123 owner=(test, oracle) file=d:/b.dmp【代码说明】owner=(test, oracle)指定exp命令仅仅导出test和oracle两个⽤户所拥有的对象。
oracle数据库备份与恢复方法
Oracle数据库备份与恢复是确保数据安全和可靠性的重要方面。
备份是指将数据库中的数据复制到另一个位置,以便在数据丢失或
损坏时进行恢复。
恢复则是指在发生故障或数据丢失时,通过备份
数据来恢复数据库到之前的状态。
一、备份方法:
1. 物理备份,物理备份是通过操作系统级别的工具(如RMAN)将数据库文件直接复制到备份位置。
可以使用RMAN命令行或图形界
面工具来执行物理备份。
2. 逻辑备份,逻辑备份是通过导出数据到逻辑文件(如SQL脚
本或数据泵文件)来进行备份。
可以使用expdp和impdp命令来执
行逻辑备份和恢复。
二、恢复方法:
1. 完全恢复,在数据库严重损坏或丢失时,可以使用完全备份
进行完全恢复。
这涉及将数据库恢复到备份时的状态,并应用任何
后续的归档日志以实现完整的恢复。
2. 不完全恢复,在某些情况下,可能只需恢复部分数据文件或表空间。
这可以通过RMAN进行部分恢复来实现。
除了上述备份和恢复方法外,还有一些其他注意事项和最佳实践:
定期备份,建立合理的备份策略,包括完整备份、增量备份和归档日志备份,以确保数据的及时备份和恢复。
测试恢复,定期测试备份和恢复过程,以确保备份数据的完整性和可用性。
数据库保护,使用冗余服务器、存储冗余和灾难恢复计划来保护数据库免受硬件故障、自然灾害和人为错误的影响。
综上所述,Oracle数据库备份与恢复是确保数据安全和可靠性的重要措施,通过合理的备份策略和恢复方法,可以最大程度地保护数据库免受数据丢失和损坏的影响。
Oracle11gR2 实现数据库备份与恢复
一、导出数据库(数据库备份)
1.Cmd exp
2.输入用户名scott及密码:Tiger
3.enter (默认)
4.输入要备份的文件名称如mydata.dmp
5.选择导出的内容U –>用户T->代表的是表
6.导入权限、导出表数据、及数据压缩选项
这样就完成数据备份了,,备份数据所在位置为默认目录
二、导入数据(imp)恢复备份数据
1.cmd ->imp(导入数据命令)
2.输入用户名:scott和密码:Tiger
3.对仅导入数据、选项进行选择
4.导入文件填写
5.对冲去进行默认操作、对只导入文件内容、等进行莫荣选择
6.对导入权限、导入表数据、导入整个导出文件选项进行选择
7.数据备份就完成了,,在pl/sqL工具中查询下删除掉的数据是否恢复就知道了。
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;数据库已更改。