Oracle11gR2 实现数据库备份与恢复(exp、imp)

合集下载

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数据库还原的步骤概述数据库还原通常包括以下主要步骤:- 备份介质准备:确定可用的备份介质,并确保其处于良好状态。

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

Oracle11G导入导出(imp和exp)少表解决方法

Oracle11G导入导出(imp和exp)少表解决方法

Oracle 11G R2 用exp无法导出空表解决方法Oracle 11G在用EXPORT导出时,空表不能导出11G R2中有个新特性,当表无数据时,不分配segment,以节省空间解决方法:一、insert一行,再rollback就产生segment了。

该方法是在在空表中插入数据,再删除,则产生segment。

导出时则可导出空表。

二、设置deferred_segment_creation 参数该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。

修改SQL语句:alter system set deferred_segment_creation=false scope=both;需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。

如需导出之前的空表,只能用第一种方法。

三、用以下这句查找空表select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表,注意:数据库插入数据前,修改11g_R2参数可以导出空表查找空表select 'alter table '||table_name||' allocate extent;' from user_tables wherenum_rows=0四、Oracle 10g以后增加了expdp和impdp工具,用此工具也可以导出空的表oracle expdp/impdp 用法详解1)创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。

create directory db_bak as 'd:\test\dump';2)查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)select * from dba_directories;3)给system用户赋予在指定目录的操作权限,最好以system等管理员赋予。

(完整版)Oracle数据库备份和恢复操作手册.doc

(完整版)Oracle数据库备份和恢复操作手册.doc

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 数据库备份操作成功导出。

ORACLE11G数据库热备份恢复的方法

ORACLE11G数据库热备份恢复的方法

ORACLE11G数据库热备份恢复的方法ology系统当中的部分表和视图不能被导出。

且exp的导出命令不会出现错误日志。

后来查资料找到了另一种解决数据备份恢复的方法:用expdp和impdp命令导出导入数据则没有上述问题。

完整的从服务器创建数据库备份恢复到本机测试环境的脚本如下:注,红色部分可能环境不同需要调整的变量。

--按win+R键打开运行、输入cmd进入命令行--输入Oralce命令行命令:slplus /nolog--sysdba身份登录Oracle数据库conn sys/Oracle1234$@orcl as sysdba--更改oracle配置参数alter system set &uot_allow_level_without_connect_by&uot=true;--创建临时报空间create temporarytablespaceecology_temptempfile'D:\Developer\oracle\orad ata\orcl\ecology_temp.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local;--创建报空间create tablespaceecology logging datafile'D:\Developer\oracle\oradata\orcl\ecology.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local;--创建备份输出目录(如果此目录在服务上不存在,则需要手动创建)create directory dmpdir as 'D:\ecology_data';--创建用户create user ecology identified by ecology default tablespace ecology temporarytablespaceecology_temp;--给ecology用户授权grant connect, resource, exp_full_database, imp_full_database to ecology;grant create session to ecolo。

Oracle-11gR2-deferred-segment-creation-与-exp_imp-说明

Oracle-11gR2-deferred-segment-creation-与-exp_imp-说明
注意: Thisnew feature in not applicable to SYS and the SYSTEM users as the segment to thetable is created along with the table creation.
--该特性不适用SYS 和 SYSTEM 用户
--手工分配segment。 这里方法很多,insert一条数据,或者使用alter 命令来操作。
--方法1 使用allocateextent,这里我们只对t2 操作
SQL&gt; select 'alter table'||table_name||' allocate extent(size 64k);'
. . exporting table T1 35 rows exported
EXP-00011: ICD.T2 doesnot exist
EXP-00011: ICD.T3 doesnot exist
Export terminated successfully withwarnings.
--提示我们t2 和 t3表不存在
deferred_segment_creation boolean TRUE
SQL&gt; create table t1 as select * fromdba_users;
Table created.
SQL&gt; create table t2 as select * from dba_userswhere 1=2;
Table created.
SQL&gt; create table t3 as select * fromdba_users where 1=2;

Linux下Oracle11g数据库全库自动备份(EXPDP)

Linux下Oracle11g数据库全库自动备份(EXPDP)

Linux下Oracle11g数据库全库自动备份(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/shexport ORACLE_SID=shuweiexportORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export NLS_LANG=american_america.zhs16gbkexport DATA_DIR=/backup/oracledatanow=` date +%Y%m%d%H%M%S `dmpfile=db$now.dmpecho start exp $dmpfile .../u01/app/oracle/product/11.2.0/dbhome_1/bin/expdp system/123456@shuwei DUMPFILE=$dmpfile DIRECTORY=expdp_bak_dir full=yecho "Delete the file bakup before 6 days..."find /backup/oracledata/ -mtime +6 -name "*.dmp" -exec rm -rf '{}' \;echo "Delete the file bakup successfully. "echo "Bakup completed."chmod +x /backup/oracledata/ordatabak.sh #添加脚本执行权限4、设置系统自动定时执行备份脚本vi /etc/crontab #编辑系统任务计划将下面的代码写入最后一行:30 2 * * * oracle /backup/oracledata/ordatabak.sh#每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件:wq #保存退出service crond restart #重启系统计划服务即每天凌晨2点30分进行备份,如需每天备份多次,可设置不同时间段备份:例如:* 3,13,18 * * * oracle /backup/oracledata/ordatabak.sh即每天3点、13点、18点进行备份。

oracle中expimp备份还原工具的使用详解

oracle中expimp备份还原工具的使用详解

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工具会读取源文件中的数据和对象,并将其恢复到目标数据库中。

exp-imp实现oracle.备份

exp-imp实现oracle.备份

exp/impexp1对要备份的数据库进行授权;2.打开命令行窗口:3.输入exp4.输入要备份的数据库的用户名密码5.一直回车备份成功的文件:expdap.dat.dmp在那个目录下执行的exp生成的文件就在那个目录。

imp在目标数据库中建立和导出的数据库相同名称,赋于新数据库创建session权限和对表操作的权限。

grant resourse,connect,dba to tssygrant create session to tssy;然后把备份好的文件拷入目标磁盘中打开命令行窗口,进入备份文件所在的目录输入:imp可能出现的问题IMP-00019: 由于ORACLE 错误12899 而拒绝行IMP-00003: 遇到ORACLE 错误12899ORA-12899: 列"JACKEYJ"."JK_REGISTER"."OPNAME" 的值太大(实际值: 21, 最大值: 20) 列 1 523 从9i环境下exp出来的数据,imp到10g数据库的时候就出现这个错误。

解决方法:修改oracle 10g的字符集Oracle修改数据库字符集为:ZHS16GBK查看服务器端字符集SQL > select * from V$NLS_PARAMETERS修改:$sqlplus /nologSQL>conn / as sysdba若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE 命令关闭数据库服务器,然后执行以下命令:SQL>shutdown immediateSQL>STARTUP MOUNTSQL>ALTER SYSTEM ENABLE RESTRICTED SESSIONSQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0SQL>ALTER DATABASE OPENSQL>ALTER DATABASE CHARACTER SET ZHS16GBKERROR at line 1RA-12721: operation cannot execute when other sessions are active若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBKSQL>SHUTDOWN IMMEDIATESQL>STARTUP其后再进行恢复。

Oracle11G 备份和恢复

Oracle11G  备份和恢复
第 14 章
备份与恢复
授课教师:刘明洋
主要内容
备份与恢复概述 物理备份数据库 逻辑恢复数据库 利用RMAN备份与恢复数据库 逻辑备份与恢复数据库
14.1备份与恢复概述
备份与恢复的概念 Oracle数据库备份类型 Oracle数据库恢复类型
14.1.1备份与恢复的概念
➢ 备份与恢复是数据库的一对相反操作,备份是保存数据 库中数据的副本,恢复是利用备份将数据库恢复到故障 时刻的状态或恢复到故障时刻之前的某个一致性状态。
➢ 非归档模式下的数据库恢复是不完全恢复,只能将数据库恢复到最近 一次完全冷备份的状态。
1 7
14.3.2 归档模式下数据库的完全恢复
概述 数据库级完全恢复 表空间级完全恢复 数据文件级完全恢复 数据库完全恢复示例
1
8
(1)概 述
概念
归档模式下数据库的完全恢复是指归档模式下一个或多个数据文件损 坏,利用热备份的数据文件替换损坏的数据文件,再结合归档日志文 件和联机重做日志文件,采用前滚技术重做自备份以来的所有改动, 采用回滚技术回滚未提交的操作,以恢复到数据库故障时刻的状态。
1 6
14.3.1 非归档模式下数据库的恢复
非归档模式下数据库的恢复主要指利用非归档模式下的冷备 份恢复数据库。 步骤为:
➢ 关闭数据库。 ▪ SHUTDOWN IMMEDIATE
➢ 将备份的所有数据文件、控制文件、联机重做日志文件还原到原来所 在的位置。
➢ 重新启动数据库。 ▪ STARTUP
注意
▪ RECOVER DATABASE ➢ 打开数据库。
▪ ALTER DATABASE OPEN;
2
2
(3)表空间级完全恢复
以EXAMPLE表空间的数据文件example01.dbf 损坏为例模拟表空级的完全恢复。

oracle备份,还原常用命令

oracle备份,还原常用命令

oracle备份,还原常⽤命令cmd 命令窗⼝下1.备份数据库exp ⽤户名/密码@数据库连接名 owner=⽤户名 file="盘符:\⽂件名.dmp" log="盘符:\⽇志⽂件名.log",⽇志可选.2.还原数据库imp ⽤户名/密码@数据库连接名 file="盘符:\⽂件名.dmp"" log="盘符:\⽇志⽂件名.log" fromuser=other touser=⽤户名。

3.创建表空间及修改⼤⼩CREATE TABLESPACE dcitDATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\dcit.dbf' SIZE 500MUNIFORM SIZE 128k;alter database datafile 'C:\oracle\product\10.2.0\oradata\orcl\dcit.dbf' autoextend on next 10M maxsize 1G;以下为转帖,转⾃:数据库imp/exp命令使⽤⽅法是本⽂我们主要要介绍的内容,接下来我们就通过例⼦来介绍这些内容。

举例导出数据库服务abc,⽤户user,密码psd下的table1,table2,table3表到d:\data⽬录下,导出⽂件名为test.dmp,语句为:exp file=d:\data\test.dmp tables=(table1,table2,table3) .将上述⽂件恢复的语句为:exp full=y file=d:\data\test.dmp.注意:如果将备份⽂件中的所有表恢复,需要加上full=y.如果只须只需要恢复table1,则语句为:exp file=d:\data\test.dmp tables=table1.即必须指明倒⼊那些信息,要么全部要么部分表。

oracle数据库备份与还原方法

oracle数据库备份与还原方法

oracle数据库备份与还原方法一、Oracle数据库备份方法。

1.1 冷备份。

冷备份是在数据库关闭状态下进行的备份。

这就好比是给一个睡着的人做全身检查,一切都是静止的,好操作。

你得把数据库相关的文件,像数据文件、控制文件、重做日志文件等一股脑儿地拷贝到一个安全的地方。

这种备份方法简单直接,但是呢,在备份期间数据库是不能使用的,就像你要修东西得先把它停下来一样,有点不方便。

不过它恢复起来也相对容易,就像把之前拷贝走的东西再原封不动地拿回来就好。

1.2 热备份。

热备份可就不一样啦,它是在数据库运行的时候进行备份的。

这就像是给一个正在跑步的人换鞋子,难度不小。

热备份主要是利用归档模式,对表空间或者数据文件进行备份。

这种方式不影响数据库的正常使用,就像在火车行驶的时候给它换个小零件,火车还能继续跑。

但是热备份的操作相对复杂一些,需要对Oracle数据库有比较深入的了解,不然很容易搞砸,那可就“偷鸡不成蚀把米”了。

1.3 逻辑备份。

逻辑备份呢,是通过Oracle的工具,比如EXP或者EXPDP来进行的。

这就像是把数据库里的数据按照一定的逻辑规则整理出来,打包带走。

它可以备份特定的表、用户或者整个数据库。

这种备份方式比较灵活,就像你可以从一个大仓库里挑选你想要备份的东西。

但是逻辑备份的速度可能会比较慢,特别是数据量很大的时候,就像小马拉大车,有点吃力。

二、Oracle数据库还原方法。

2.1 冷备份还原。

如果是冷备份还原,那就简单多啦。

首先把数据库关闭,然后把之前备份的文件再拷贝回原来的位置,就像把东西放回原位一样。

不过要注意文件的权限和路径,可不能张冠李戴。

一切就绪后,再启动数据库,就大功告成了。

这就像把修好的东西重新启动,又能正常工作了。

2.2 热备份还原。

热备份还原就复杂得多了。

首先要根据备份的情况,确定需要还原的表空间或者数据文件。

然后利用归档日志和备份文件进行恢复。

这过程就像走钢丝,得小心翼翼的。

Oracle数据库impexp导入导出命令(备份与恢复)

Oracle数据库impexp导入导出命令(备份与恢复)

Oracle数据库imp/exp导入导出命令(备份与恢复)Toad 一个很好的oralce数据库操作与管理工具,使用它可以很方便地导入导出数据表,用户以及整个数据库。

今天在这里主要讲一下用命令行来操作oracle数据导入和导出:备份数据1、获取帮助:exp help=y2. 导出一个完整数据库exp user/pwd@instance file=path full=y示例:exp system/system@xc file = c:/hehe full =yimp tax/test@tax file=d:/dbbak.dmp full=y3 、导出一个或一组指定用户所属的全部表、索引和其他对象exp system/manager file=seapark log=seapark owner=seaparkexp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)示例:exp system/system@xc file=c:/hehe owner=uep4、导出一个或多个指定表exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)示例:exp system/system@xc file=c:/heh tables=(ueppm.ne_table)恢复数据1. 获取帮助imp help=y2. 导入一个完整数据库imp system/manager file=bible_db log=dible_db full=y ignore=y3. 导入一个或一组指定用户所属的全部表、索引和其他对象imp system/manager file=seapark log=seapark fromuser=seaparkimp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)4. 将一个用户所属的数据导入另一个用户imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copyimp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)5. 导入一个表imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)****************************************************利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle 数据库中去。

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步中需要对数据文件分别恢复),也可以采用整个数据库的恢复方法。

Oracle11g数据库备份与恢复

Oracle11g数据库备份与恢复

二、冷备份(bèi fèn)冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。

冷备份时将关键性文件拷贝到另外的位置的一种说法。

对于备份Oracle信息而言,冷备份时最快和最安全(ānquán)的方法。

冷备份的优点是:1、是非常快速的备份(bèi fèn)方法(只需拷文件(wénjiàn))2、容易归档(guī〃dàng)(简单拷贝即可)3、容易恢复到某个时间点上(只需将文件再拷贝回去)4、能与归档方法相结合,做数据库“最佳状态”的恢复。

5、低度维护,高度安全。

但冷备份也有如下不足:1、单独使用时,只能提供到“某一时间点上”的恢复。

2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。

也就是说,在冷备份过程中,数据库必须是关闭状态。

3、若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。

4、不能按表或按用户恢复。

如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。

冷备份中必须拷贝的文件包括:1、所有数据文件2、所有控制文件3、所有联机REDO LOG文件4、 Init.ora文件(可选)值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

下面是作冷备份的完整例子。

(1)关闭(guānbì)数据库(2)用拷贝命令备份全部的时间文件、重做日志(rìzhì)文件、控制文件、初始化参数文件(3)重启Oracle数据库三、热备份(bèi fèn)热备份是在数据库运行的情况(qíngkuàng)下,采用archivelog mode方式备份数据库的方法。

所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生(fāshēng)问题时,就可以利用这些资料恢复更多的信息。

实验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数据库备份与恢复是确保数据安全和可靠性的重要方面。

备份是指将数据库中的数据复制到另一个位置,以便在数据丢失或
损坏时进行恢复。

恢复则是指在发生故障或数据丢失时,通过备份
数据来恢复数据库到之前的状态。

一、备份方法:
1. 物理备份,物理备份是通过操作系统级别的工具(如RMAN)将数据库文件直接复制到备份位置。

可以使用RMAN命令行或图形界
面工具来执行物理备份。

2. 逻辑备份,逻辑备份是通过导出数据到逻辑文件(如SQL脚
本或数据泵文件)来进行备份。

可以使用expdp和impdp命令来执
行逻辑备份和恢复。

二、恢复方法:
1. 完全恢复,在数据库严重损坏或丢失时,可以使用完全备份
进行完全恢复。

这涉及将数据库恢复到备份时的状态,并应用任何
后续的归档日志以实现完整的恢复。

2. 不完全恢复,在某些情况下,可能只需恢复部分数据文件或表空间。

这可以通过RMAN进行部分恢复来实现。

除了上述备份和恢复方法外,还有一些其他注意事项和最佳实践:
定期备份,建立合理的备份策略,包括完整备份、增量备份和归档日志备份,以确保数据的及时备份和恢复。

测试恢复,定期测试备份和恢复过程,以确保备份数据的完整性和可用性。

数据库保护,使用冗余服务器、存储冗余和灾难恢复计划来保护数据库免受硬件故障、自然灾害和人为错误的影响。

综上所述,Oracle数据库备份与恢复是确保数据安全和可靠性的重要措施,通过合理的备份策略和恢复方法,可以最大程度地保护数据库免受数据丢失和损坏的影响。

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

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工具中查询下删除掉的数据是否恢复就知道了。

相关文档
最新文档