实验十一Oracle数据库备份与恢复
oracle数据库的备份与恢复

第六章 oracle数据库的备份与恢复第一部分:数据库的备份备份的必要性因为各种人为或外界的因素可能会造成数据库中灾难性的数据丢失,为了保证数据库中数据的安全,必须采取备份措施保证RDBMS中包含的数据免遭破坏,而有效的备份是十分简单和普通的,是在数据库处于无法使用状态时用于重建数据库的重要信息拷贝。
在重要的修改如删除段或者表空间以前或以后执行适当的备份是相当必要的。
备份的种类:冷备份:一种最简单直接的备份方式,也称为脱机备份,但是必须关闭数据库,这对于当前7×24的有效性并不可取;联机热备:正如名称所示,是在数据库打开时执行的备份方式,进行联机备份比进行脱机备份的进程复杂;用导出exp应用程序备份:是对于脱机备份和联机备份类型的补充,因为它无法回滚,所以不能替代数据库文件的备份。
各种备份的原理和步骤:冷备份:关闭数据库,采取操作系统拷贝命令来完成对数据库的备份,然后启动数据库。
例如:将名为lyj的数据库作一个冷备份,备份的文件放置在/mnt/backup_wy/目录下。
首先找出控制文件、数据文件和redo日志文件的存储位置SQL> select name from v$controlfile ;NAME----------------------------------------------------/u3/oradata/lyj/control01.ctl/u3/oradata/lyj/control02.ctl/u3/oradata/lyj/control03.ctlSQL> select status,name from v$datafile ;STATUS NAME---------- ----------------------------------------SYSTEM /u3/oradata/lyj/system01.dbfONLINE /u3/oradata/lyj/tools01.dbfONLINE /u3/oradata/lyj/rbs01.dbfONLINE /u3/oradata/lyj/temp01.dbfONLINE /u3/oradata/lyj/users01.dbfONLINE /u3/oradata/lyj/indx01.dbfSQL> select * from v$logfile ;GROUP# STATUS MEMBER--------------------------------------------------------------------------------1/u3/oradata/lyj/redo01.log2 /u3/oradata/lyj/redo02.log3 /u3/oradata/lyj/redo03.log●关闭数据库:SQL> shutdown数据库已经关闭。
Oracle数据库-备份整个数据库与还原整个数据库数据

Oracle数据库-备份整个数据库与还原整个数据库数据这个功能是为了防止数据库中的数据损坏,而拿备份的表去顶替损坏的表这个功能是在DOS窗口实现的,可并非是在Oracle数据库中执行的先说本地的导出与导入:备份(也叫导出):exp 用户名/密码@本地服务名 file=目标地址举例: exp sys/sys@orcl file=C:\Users\Administrator\Desktop注:1、@orcl一般本地库的没动的话都叫这个2、C:\Users\Administrator\Desktop是本地桌面地址3、导出的文件是在硬盘上生成后缀名为dmp的文件还原【导入】:imp 用户名/密码@本地服务名 file=文件的位置 ignore=y举例:imp sys/sys@orcl file=C:\Users\Administrator\Desktop\某.dmp full=y ignore=y注:1、ignore=y的作用是忽视一些不必要的错误如果不加的话有时候会报:ORACLE 这些对象由 XXXX 导出, 而不是当前用户2、有时候会提示IMP-00031:必须指定 FULL=Y 或提供 .....(记不清了)这时候需要 ignore=y 改为 full=y 就可以了(在这里向评论区的那位同志道歉我之前没遇见过这个问题,抱歉)3、(2020年10月26日12:08:26改)full=y是导入全部文件的含义有本地的当然有远程的导出与导入:备份【导出】:exp 用户名/密码@网络服务名 file=目标地址还原【导入】:imp 用户名/密码@网络服务名 file=文件位置 ignore=y注意:如果从A用户导出,然后导入B用户,则需要加上 fromuser=A touser=B举例:imp 用户名/密码@网络服务名 file=文件位置 ignore=y fromuser=A touser=B如果你发现导入数据报错,请往下看oracle 导入DMP文件时IMP-00013: 只有DBA 才能导入由其他 DBA 导出的文件 IMP-00000: 未成功终止导入报这个错误主要是一个DBA用户权限问题,导出数据的用户拥有DBA权限,而我要导入的用户没有这个权限而已,我们需要给要导入的用户加上DBA权限按照网上的其他教程用同一个用户给同一个用户权限.... 对不起我在想,要是他没有权限是怎么给同一用户赋予权限的首先在DOS窗口,执行sqlplus然后会让你输入用户名,你可以输入用system或者sys用户赋予登录密码就是管理口令然后就会碰见如下就如上图一样,挨个执行grant dba to usernam注:2这里直接敲回车grant dba to 用户名;即可-全文完-。
oracle实验报告及答案 备份与恢复

实验四备份与恢复班级:座号:姓名:时间:一、实验目的1.了解备份的重要性2.对数据库进行物理备份、恢复与逻辑备份、恢复3.使用RMAN对数据库进行备份与恢复二、实验设备一台PC机,widows操作系统,oracle 10g三、实验内容1.本练习将使用EXPORT工具按用户方式对SCHOOL模式中的对象进行逻辑备份,并使用该备份恢复将被用户删除的表。
1)在命令提示符窗口中输入命令,启动EXP工具按用户方式备份SCHOOL模式中的对象。
2)删除表STUDENT中的所有数据库。
3)使用IMPORT工具按用户方式恢复STUDENT表中的数据。
2.本练习将对数据库进行物理备份(冷备份),并恢复被用户误删除的数据。
1)以SYSDBA身份连接数据库。
2)复制Oracle目录中的所有文件。
3)删除user01.dbf(模拟误删除)。
4)关闭数据库,启动数据库。
3.本练习将对数据库进行物理备份(热备份),并恢复被用户误删除的数据。
1)以SYSDBA身份连接数据库。
2)确定数据库运行在归档模式下。
3)切换表空间USER为脱机状态。
4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE状态。
5)删除数据文件users01.dbf,并归档当前的日志信息。
6)关闭数据库,切换数据库到MOUNT状态。
7)复制备份的文件到数据库目录,并使用RECOVER命令执行完全恢复。
8)打开数据库,并验证是否恢复被误删除的数据。
4.本练习将对数据库进行物理备份(热备份),并执行基于时间的不完全恢复,以恢复被用户误删除的数据。
1)以SYSDBA身份连接数据库。
2)确定数据库运行在归档模式下。
3)切换表空间USER为脱机状态。
4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE状态。
5)删除STUDENT表中存储的学生信息,并归档当前的日志信息。
6)关闭数据库,切换数据库到MOUNT状态。
Linux_oracle数据库的备份与恢复

Linux_oracle数据库的备份与恢复1 数据库备份和恢复(备份和恢复均已做成脚本自动运行,下列操作供参考,请不要在生产机上做测试) 1)数据库备份:◆将dbexp.parm,dbexp.sh 拷贝至/home/oracle/backup/.以oracle用户登录系统$ cd /home/oracle/backup$ dos2unix *$ chmod 755 dbexp.sh◆手工执行备份,用oracle用户登录:$ cd /home/oracle/backup$ ./dbexp.sh◆自动执行备份,用root用户登录:#crontab -e 00 01 * * * su - oracle -c "/home/oracle/backup/dbexp.sh"2)数据库恢复:以oracle用户登录系统◆删除用户:sqlplus /nolog>connect / as sysdba;>drop user center cascade;>create user center identified by center;>grant connect,resource,dba to center◆恢复数据库$imp center/center full=y grants=y INDEXES=y constraints=y LOG=/tmp/backup.log rows=y ignore=y file=xxx(xxx--为以前备份的数据文件,如checkid_20041123.dat)oracle数据库的备份与恢复原理及方法:导出(备份)exp 用户名/密码@服务名file=d:daochu.dmp (rows=no(导出空结构)) 导入(恢复)imp 用户名/密码@服务名file=d:daochu.dmp fromuser=原用户名touser=新用户名---- 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。
oracle数据库还原的详细流程

oracle数据库还原的详细流程
Oracle数据库还原的详细流程如下:
1. 关闭Oracle数据库服务:在开始还原之前,需要确保Oracle数据库服务已经关闭。
这样可以避免在还原过程中发生数据冲突或损坏。
2. 确认数据库备份:在开始还原之前,需要确认数据库的备份情况。
数据库的备份可以分为完全备份和增量备份两种。
完全备份是指对整个数据库进行备份,而增量备份是在完全备份的基础上,对新增或修改的数据进行备份。
可以通过查看备份记录或者与负责备份的人员进行沟通来确认备份情况。
3. 选择合适的还原方式:根据备份文件的位置和可用资源,选择适合的还原方式。
例如,如果备份文件在本地磁盘上,可以选择磁盘还原;如果备份文件在云端,可以选择云存储还原。
4. 执行还原操作:根据选择的还原方式,执行相应的操作。
例如,在磁盘还原中,需要将备份文件复制到目标磁盘中。
在云存储还原中,需要将备份文件从云存储下载到本地或直接在云平台上进行还原。
5. 启动Oracle数据库服务:完成还原后,启动Oracle数据库服务,验证数据是否正确加载并可用。
请注意,以上步骤仅供参考,具体操作可能因实际情况而有所不同。
在进行数据库还原时,建议参考Oracle官方文档或咨询专业人士以获取更准确的信息和指导。
备份和恢复数据库Oracle

2.1 冷备份与恢复
冷备份又称脱机备份,必须在数据库已经正常关闭的情况下进行,此时, 系统会提供给用户一个完整的数据库。
冷备份时可以将数据库使用的每个文件都备份下来,这些文件包括: 所有控制文件(文件后缀名为.CTL,默认路径Oracle\oradata\oradb) 所有数据文件(文件后缀名为.DBF,默认路径Oracle\oradata\oradb) 所有联机REDO LOG文件(文件形式为REDO*.*,默认路径 Oracle\oradata\oradb) 初始化文件INIT.ORA(可选)(默认路径Oracle\admin\oradb\spfile)
archive log list; 如果归档日志模式没有启动,则打开数据库的归档日志模式, 先使用shutdown immediate命令关闭数据库,然后使用如下 命令启动数据库:
startup mount; (2)修改数据库的归档日志模式:
alter database archivelog;
备份和恢复数据库Oracle
如果数据库在ARCHIVELOG方式下,可实施在线日志的归档。 在控制文件中指明填满的日志文件组在归档之前不能重用。一 旦组成为不活动,执行归档的进程立即可使用该组。
备份和恢复数据库Oracle
2 物理备份与恢复
2.1 冷备份与恢复 2.2 热备份与恢复 2.3 几种非完全恢复方法
备份和恢复数据库Oracle
SQL>recover database until cancel;
(4)恢复完成后,使用RESETLOGS模式启动数据库即可:
SQL>alter database open resetlogs;
备份和恢复数据库Oracle
oracle数据库备份与还原方法

oracle数据库备份与还原方法一、Oracle数据库备份方法。
1.1 冷备份。
冷备份是在数据库关闭状态下进行的备份。
这就好比是给一个睡着的人做全身检查,一切都是静止的,好操作。
你得把数据库相关的文件,像数据文件、控制文件、重做日志文件等一股脑儿地拷贝到一个安全的地方。
这种备份方法简单直接,但是呢,在备份期间数据库是不能使用的,就像你要修东西得先把它停下来一样,有点不方便。
不过它恢复起来也相对容易,就像把之前拷贝走的东西再原封不动地拿回来就好。
1.2 热备份。
热备份可就不一样啦,它是在数据库运行的时候进行备份的。
这就像是给一个正在跑步的人换鞋子,难度不小。
热备份主要是利用归档模式,对表空间或者数据文件进行备份。
这种方式不影响数据库的正常使用,就像在火车行驶的时候给它换个小零件,火车还能继续跑。
但是热备份的操作相对复杂一些,需要对Oracle数据库有比较深入的了解,不然很容易搞砸,那可就“偷鸡不成蚀把米”了。
1.3 逻辑备份。
逻辑备份呢,是通过Oracle的工具,比如EXP或者EXPDP来进行的。
这就像是把数据库里的数据按照一定的逻辑规则整理出来,打包带走。
它可以备份特定的表、用户或者整个数据库。
这种备份方式比较灵活,就像你可以从一个大仓库里挑选你想要备份的东西。
但是逻辑备份的速度可能会比较慢,特别是数据量很大的时候,就像小马拉大车,有点吃力。
二、Oracle数据库还原方法。
2.1 冷备份还原。
如果是冷备份还原,那就简单多啦。
首先把数据库关闭,然后把之前备份的文件再拷贝回原来的位置,就像把东西放回原位一样。
不过要注意文件的权限和路径,可不能张冠李戴。
一切就绪后,再启动数据库,就大功告成了。
这就像把修好的东西重新启动,又能正常工作了。
2.2 热备份还原。
热备份还原就复杂得多了。
首先要根据备份的情况,确定需要还原的表空间或者数据文件。
然后利用归档日志和备份文件进行恢复。
这过程就像走钢丝,得小心翼翼的。
Oracle数据库备份与恢复

ALTER DATABASE
CREATE DATAFILE ‘E:\Oracle11\oradata\EBUY\USERS02.DBF’
AS
‘E:\Oracle11\oradata\EBUY\USERS01.DBF’;
然后,备份数据库的控制文件。例如,备份控制文件到指定位置。
ALTER DATABASE
案例3—恢复数据库
完成步骤
使用命令执行数据库恢复
2.基于CANCEL的恢复 (1)当遇到数据库错误时,使用SHUTDOWN IMMEDIATE命令关 闭Oracle数据库,并将备份的数据复制到相应的位置。例如: SHUTDOWN IMMEDIATE (2) 使用STARTUP MOUNT命令启动数据库。例如: STARTUP MOUNT (3)使用RECOVER命令对数据库进行基于CANCEL的恢复。例如: RECOVER DATABASE UNTIL CANCEL ; (4)恢复操作完成后,使用RESETLOGS模式启动Oracle数据库。 例如: ALTER DATABASE OPEN RESETLOGS ;
2 恢复数据库
恢复的类型
1.实例恢复 实例恢复只使用在Oracle并行服务器配置环境中,在运行数据库中一 个实例并发现其他实例崩溃时执行 2.崩溃恢复 崩溃恢复只在单个实例数据库配置环境中执行。在崩溃恢复中,实例 必须打开数据库,并执行恢复操作。 3.介质恢复 与实例恢复和崩溃恢复不同的是,介质恢复使用命令来执行,也是 DBA进行数据库恢复的主要内容。
案例1—使用OEM执行数据库备份
完成步骤
4.管理当前备份 登录OEM后,单击“可用性”选项卡中“管理”区域的“管理当前备份” 链接,进入“管理当前备份”的“备份集”页面
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十一Oracle数据库备份与恢复
【实验目的与要求】
1. 常见数据备份与恢复的方法
2.学会Oracle备份方案的制定
【实验内容与步骤】
1. Oracle物理备份与恢复
准备工作:
(1)查看数据库是否运行于归档模式下:
请给出查询的结果:
(2)关闭数据库,做一个完全的冷备份。
提示:
a.使用shutdown命令关闭数据库;
b.复制数据文件、日志文件和控制文件到安全地方
(3) 把数据库改为归档模式
设置成自动归档
SQL> alter system set log_archive_start = true scope=spfile;
注意:本实验中的很多命令路径参数需根据自己的实现环境做出修改!!
实验11-1
数据库系统数据文件和回退段遭破坏的情况下的恢复。
此时数据库的状态是关闭的。
(1)先启动数据库,创建新用户scott,并用scott用户建立test表,并插入两条数据。
创建表空间的四个步骤:
/*分为四步 */
/*第1步:创建临时表空间 */
create temporary tablespace user_temp
tempfile 'D:\ user_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
/*第2步:创建数据表空间 */
create tablespace user_data
logging
datafile 'D:\ user_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
/*第3步:创建用户并指定表空间 */
create user scott identified by tiger
default tablespace user_data
temporary tablespace user_temp;
/*第4步:给用户授予权限 */
grant connect,resource,dba to scott;
SQL> create table test (id int,name varchar2(10)); 表已创建。
SQL> insert into test values(1001,’zhangfei’); 已创建 1 行。
SQL> insert into test values(1002,’guanyu’); 已创建 1 行。
SQL> commit; 提交完成。
(2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。
SQL> shutdown abort
(3)启动服务,启动数据库
a. 启动服务
b. 启动数据库,肯定出错 SQL> startup
请给执行结果:
(4)把备份的SYSTEM01.dbf和UNDOTBS01.DBF文件复制回去
a. 执行以下命令
然后就可以打开数据库,查看scott用户的test表。
SQL> alter database open; SQL> select * from scott.test;
请给执行结果:
实验11-2
数据库是打开的,这时损坏的文件是用户的数据文件而不是system和undo文件。
(1)用scott用户在users表空间建立test1表
SQL> create table scott.test1(id int) 2 tablespace users; 表已创建。
(2) 插入两条数据
SQL> insert into scott.test1 values(1); 已创建1 行。
SQL> insert into scott.test1 values(2); 已创建1 行。
SQL> commit; 提交完成。
(3)当前日志归档
SQL> alter system archive log current; 系统已更改。
(4)现在破坏users表空间,使其离线,然后移除users01.dbf到一个指定文件夹(备份) SQL> alter tablespace users offline; 表空间已更改。
移除users01.dbf到一个指定文件夹(备份)
执行:SQL> alter tablespace users online;
请给执行结果:
此时出现错误,users表空间不能在线了。
这时把备份的users01.DBF还原回去。
然后,执行:SQL> recover tablespace users;
SQL> recover tablespace users;
(5)完成介质恢复。
SQL> alter tablespace users online; 表空间已更改。
SQL> select * from scott.test1;
请给执行结果:
实验11-3:数据文件没有备份(不能使system和undo文件)的恢复。
(1)创建表空间testspace
在SQL Plus中依次执行以下语句,给出最后的执行结果:
SQL> create tablespace testspace datafile
'C:\oracle\product\10.1.0\db_1\TestDB\testspace.dbf' size 10m;
SQL> create table scott.test3(id int,name varchar2(10)) tablespace testspace; SQL> commit;
SQL> alter system switch logfile;
SQL> insert into scott.test3 values(1003,’songjian’); SQL> commit;
SQL> alter tablespace testspace offline; SQL> select * from scott.test3;
请给执行结果:
(2)由于没有备份数据文件,需重新创建一个
SQL> alter database create datafile
'C:\oracle\product\10.1.0\db_1\TestDB\testspace.dbf'; SQL> recover tablespace testspace;
(3) 完成恢复
SQL> alter tablespace testspace online; 表空间已更改。
SQL> select * from scott.test3;
请给执行结果:
【实验练习题】
本练习将对数据库进行物理备份,并执行基于更改的不完全恢复,以恢复被用户误删除的数据。
按以下步骤完成实验过程,并给出实验结果:
1)以SYSDBA身份连接数据库。
2)确定数据库运行在归档模式下。
3)切换表空间USER为脱机状态。
4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE 状态。
5)删除STUDENT表中存储的学生信息,并归档当前的日志信息。
6)关闭数据库,切换数据库到MOUNT状态。