实验10 Oracle数据库备份与恢复
- 格式:doc
- 大小:988.65 KB
- 文档页数:22
备份oracle数据库表的方法备份Oracle数据库表是保证数据库数据安全的重要措施之一。
本文将介绍几种备份Oracle数据库表的方法,帮助用户选择适合自己的备份方式。
一、使用数据泵导出表数据数据泵是Oracle提供的一个强大的工具,可以将表数据导出为一个可移植的二进制文件。
使用数据泵导出表数据的步骤如下:1. 连接到数据库:使用SQL*Plus或SQL Developer等工具连接到Oracle数据库。
2. 导出表数据:运行以下命令导出表数据:```expdp username/password@connect_string tables=table_name directory=directory_name dumpfile=dumpfile_name.dmp```其中,username是数据库用户名,password是密码,connect_string是数据库连接字符串,table_name是要导出的表名,directory_name是存储导出文件的目录,dumpfile_name是导出文件的名称。
3. 导出结果:数据泵将会导出表数据,并保存在指定的目录中的导出文件中。
二、使用INSERT语句备份表数据除了使用数据泵,还可以使用INSERT语句将表数据备份到另一个表中。
这种方法适用于小型数据库,备份过程如下:1. 创建备份表:在同一个数据库中创建一个与原表结构相同的备份表。
```CREATE TABLE backup_table AS SELECT * FROM original_table WHERE 1=0;```2. 备份数据:运行以下命令将表数据备份到备份表中。
```INSERT INTO backup_table SELECT * FROM original_table;```注意,这个命令会将原表的所有数据复制到备份表中。
三、使用Oracle备份工具除了以上两种方法,还可以使用Oracle备份工具进行表数据备份。
Oracle备份与恢复案例By Piner一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。
因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。
恢复过程大致可以分为复原(Restore)与恢复(Recover)过程。
数据库恢复可以分为以下两类:1.1实例故障的一致性恢复当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实例故障,此时需要实例恢复。
实例恢复将数据库恢复到故障之前的事务一致状态。
如果在在线后备发现实例故障,则需介质恢复。
在其它情况Oracle在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。
如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:(1)为了解恢复数据文件中没有记录的数据,进行向前滚。
该数据记录在在线日志,包括对回滚段的内容恢复。
(2)回滚未提交的事务,按步1重新生成回滚段所指定的操作。
(3)释放在故障时正在处理事务所持有的资源。
(4)解决在故障时正经历一阶段提交的任何悬而未决的分布事务。
1.2介质故障或文件错误的不一致恢复介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。
文件错误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。
这种状态下的数据库都是不一致的,需要DBA手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行的归档方式和备份方式。
(1)完全介质恢复可恢复全部丢失的修改。
一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。
对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。
(2)不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。
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。
数据库备份与恢复实验报告
一、实验目的
本次实验旨在通过实际操作,掌握数据库备份与恢复的基本原理,掌握备份与还原的方法和技巧,以及熟练运用数据库管理系统进行数据备份与恢复的操作。
二、实验环境
本次实验使用MySQL数据库管理系统,操作系统为Windows 10。
三、实验步骤
1. 数据库备份
首先,打开MySQL数据库管理系统,连接到相应的数据库。
选择需要备份的数据库,点击导航栏中的“导出”按钮。
在弹出的窗口中,选择需要备份的数据表,设置格式为SQL,点击“确定”按钮完成备份操作。
2. 数据库恢复
在进行数据库恢复之前,首先需要确定备份文件的位置。
打开MySQL数据库管理系统,连接到空数据库,点击导航栏中的“导入”按钮。
在弹出的窗口中,选择备份文件所在的路径,设置编码格式,点击“开始导入”按钮完成恢复操作。
四、实验结果
经过实验操作,成功完成了数据库的备份和恢复操作。
备份操作生
成了一个SQL格式的备份文件,恢复操作顺利将备份文件中的数据导
入到目标数据库中。
五、实验总结
通过本次实验,我深刻理解了数据库备份与恢复的重要性和必要性。
只有及时备份数据,才能保证数据的安全性和完整性。
同时,在进行
数据恢复时,一定要选择正确的备份文件,并谨慎操作,避免丢失重
要数据。
总的来说,本次实验让我对数据库备份与恢复有了更深入的了解,
也提高了我的操作技能。
希望在以后的工作中能够更加熟练地进行数
据库备份与恢复操作,确保数据的安全和可靠性。
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备份,还原常⽤命令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数据库的5种方法
1.热备份
热备份是将正在运行的Oracle数据库的实例进行备份,备份操作不影响数据库的正常使用。
在热备份前需要将数据库实例记录到归档日志文件中(archivelog),这样可以保证当前实例在备份之后也可以恢复到当前时间的状态。
备份操作可以使用RMAN,它是一种远程备份工具,可以备份Oracle数据库,文件系统,或者其它系统。
RMAN的备份方式可以是全库备份,增量备份,多级备份,双机备份等。
热备份效率较高,对数据库运行影响较小,但需要维护归档日志文件,如果归档文件过多,可能会占用大量的磁盘空间,并且需要定期删除过期的文件。
2.冷备份
冷备份是指将数据库实例关闭,然后进行备份,确保数据库实例在备份时的一致性状态。
数据库文件可以备份到磁带等设备上,也可以备份到网络存储空间,如NAS(Network Attached Storage),SAN(Storage Area Network)等。
备份文件也可以复制出来在其它目录进行备份,但是备份速度较慢,而且有可能出现磁盘空间不足的情况,因此需要计划好备份的磁盘空间。
3.实时备份
实时备份也称为增量备份,是一种在数据库正常运行时定时备份数据库的技术,以保证备份之后的数据库是一致性的。
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.1 冷备份。
冷备份是在数据库关闭状态下进行的备份。
这就好比是给一个睡着的人做全身检查,一切都是静止的,好操作。
你得把数据库相关的文件,像数据文件、控制文件、重做日志文件等一股脑儿地拷贝到一个安全的地方。
这种备份方法简单直接,但是呢,在备份期间数据库是不能使用的,就像你要修东西得先把它停下来一样,有点不方便。
不过它恢复起来也相对容易,就像把之前拷贝走的东西再原封不动地拿回来就好。
1.2 热备份。
热备份可就不一样啦,它是在数据库运行的时候进行备份的。
这就像是给一个正在跑步的人换鞋子,难度不小。
热备份主要是利用归档模式,对表空间或者数据文件进行备份。
这种方式不影响数据库的正常使用,就像在火车行驶的时候给它换个小零件,火车还能继续跑。
但是热备份的操作相对复杂一些,需要对Oracle数据库有比较深入的了解,不然很容易搞砸,那可就“偷鸡不成蚀把米”了。
1.3 逻辑备份。
逻辑备份呢,是通过Oracle的工具,比如EXP或者EXPDP来进行的。
这就像是把数据库里的数据按照一定的逻辑规则整理出来,打包带走。
它可以备份特定的表、用户或者整个数据库。
这种备份方式比较灵活,就像你可以从一个大仓库里挑选你想要备份的东西。
但是逻辑备份的速度可能会比较慢,特别是数据量很大的时候,就像小马拉大车,有点吃力。
二、Oracle数据库还原方法。
2.1 冷备份还原。
如果是冷备份还原,那就简单多啦。
首先把数据库关闭,然后把之前备份的文件再拷贝回原来的位置,就像把东西放回原位一样。
不过要注意文件的权限和路径,可不能张冠李戴。
一切就绪后,再启动数据库,就大功告成了。
这就像把修好的东西重新启动,又能正常工作了。
2.2 热备份还原。
热备份还原就复杂得多了。
首先要根据备份的情况,确定需要还原的表空间或者数据文件。
然后利用归档日志和备份文件进行恢复。
这过程就像走钢丝,得小心翼翼的。
实验10Oracle数据库备份与恢复姓名:学号:专业:班级:同组人:无实验日期:2013/7/23【实验目的与要求】⏹常见数据备份与恢复的方法⏹学会Oracle备份方案的制定【实验内容与步骤】10.1.Oracle物理备份与恢复.0.准备工作:(1)查看数据库是否运行于归档模式下:请给出查询的结果:(2)干净的关闭数据库,做一个完全的冷备份。
提示:a.使用shutdown命令关闭数据库;b.复制数据文件、日志文件和控制文件到安全地方(3)把数据库改为归档模式SQL> startup mountSQL> alter database archivelog;SQL> alter database open;设置成自动归档SQL> alter system set log_archive_start = true scope=spfile;注意:本实验中的很多命令路径参数需根据自己的实现环境作出修改!!1.实验1:数据库系统数据文件和回退段遭破坏的情况下的恢复。
此时数据库的状态是关闭的。
(1) 先启动数据库,用scott用户建立test表,并插入两条数据。
SQL> create table scott.test (id int,name varchar2(10));表已创建。
SQL> insert into scott.test values(1001,’zhangfei’);已创建1 行。
SQL> insert into scott.test values(1002,’guanyu’);已创建1 行。
SQL> commit;提交完成。
(2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。
SQL> shutdown abort把oracle服务停掉,移除SYSTEM01.dbf和UNDOTBS01.DBF文件(即将这两个文件移到其他文件夹下)。
(3)启动服务,启动数据库a. 启动服务b. 启动数据库,肯定出错SQL> startup请给执行结果:(4)把备份的SYSTEM01.dbf和UNDOTBS01.DBF文件复制回去a. 执行以下命令:请给执行结果:然后就可以打开数据库,查看scott用户的test表。
SQL> alter database open;SQL> select * from scott.test;请给执行结果:2.实验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;(5)完成介质恢复。
SQL> alter tablespace users online;表空间已更改。
SQL> select * from scott.test1;请给执行结果:3. 实验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;请给执行结果:4.实验4:完成以下练习本练习将对数据库进行物理备份,并执行基于更改的不完全恢复,以恢复被用户误删除的数据。
按以下步骤完成实验过程,并给出实验结果:1)以SYSDBA身份连接数据库。
2)确定数据库运行在归档模式下。
3)切换表空间USER为脱机状态。
4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE状态。
5)删除STUDENT表中存储的学生信息,并归档当前的日志信息。
6)关闭数据库,切换数据库到MOUNT状态。
7)复制备份的文件到数据库目录,并使用RECOVER命令执行基于更改的不完全恢复。
8)打开数据库,并验证是否恢复被误删除的数据。
10.2.逻辑备份:导入导出实验实验5:模式的导入导出案例:将scott/tiger用户对应的模式导出,通过导出文件将其导入到Test用户(为一个空用户)对应的模式中,包括该模式中的所有对象的定义和数据。
1.准备工作(1)创建用户:Create user testIdentified by test;(2)授权:注:这儿做了简化处理,实际工作中,尽量不要授DBA权限给一般用户。
2.数据的导出与导入(1)数据准备以scott身份登录:conn scott/tiger①创建测试用表:create table jobs(name varchar2(20),job varchar2(40),sales number);加入数据:insert into jobs values('IT_Test','software testing',3000);提交:commit;②创建测试用表scott_testcreate table scott_test(name varchar2(10),age number);加入数据:insert into scott_test values('manager','40');(2)以管理员身份登录:conn as sysdba;alter system enable restricted session;(3)导出数据库:在DOS提示符下执行:exp system/ testdb full=y file=test.dmp执行时,会要求输入system的口令,请根据实际情况输入。
(4)恢复数据库运行状态conn as sysdba;alter system disable restricted session;(5)进行数据库的导入:以下是一示例:imp system/testdb fromuser=scott touser=test tables=(scott_test,jobs) file=test.dmp ignore=y;请给执行结果:3.结果检验对导入的数据进行查询,以确定导入是否成功,给出结果截图:(1)以test身份登录到数据库(2)查询刚才导出(导入)表中的某个表(如Jobs):请给执行结果:10.3.RMAN使用基础10.3.1.RMAN简介RMAN可以用来备份和还原数据库文件、归档日志和控制文件。
它也可以用来执行完全或不完全的数据库恢复。
注意:RMAN不能用于备份初始化参数文件和口令文件。
RMAN启动数据库上的Oracle服务器进程来进行备份或还原。
备份、还原、恢复是由这些进程驱动的。
10.3.2.测试目的与环境说明验证RMAN备份与恢复全过程。
记录整个过程的操作细节。
OS:Windows XPORACLE VERSION: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 – Prod ORACLE运行模式:归档模式ORACLE数据存储:文件系统,存储于C:\oracle\product\10.1.0\db_1\TestDB(此路径应根据实验环境确定),包含文件如下:10.3.3.准备工作(1)创建测试用表在Scott用户模式下创建测试用表emp_t,并导入测试数据:插入一行新测试数据:(2)查看数据库是否运行于归档模式下:请给出查询的结果:(3)如果系统不是运行于归档模式下,则按以下步骤修改运行模式,使其运行于归档模式:(4)执行以下命令,确认系统运行于归档模式下:请给出执行结果:10.3.4.数据备份过程1. RMAN 数据库全备份(1)启动RMAN在CMD命令行提示符下,执行如下命令:(2)在C:\下创建备份文件存放目录OracleBak(3)执行全备份操作在RMAN提示符下执行如下语句:run{allocate channel c1 type disk;backup database format 'C:\OracleBak\db_full_%U' include current controlfile;sql 'alter system archive log current';#crosscheck archivelog all;backup format 'C:\OracleBak\arch_full_%U' archivelog all delete input;release channel c1;}请给出执行结果:(4)查看执行结果完成以下命令集后,打开C:\OracleBak文件夹,查看其中备份文件情况。