数据库第二次作业 能使用 Oracle 的数据泵进行数据的备份和数据恢复。
实验4 Oracle数据库备份与恢复实验[1]
实验6 Oracle数据库备份与恢复实验一、实验目的理解数据库备份工作的重要性,将备份与恢复策略的理论和实践相结合,能根据实际情况确定备份和恢复策略。
熟练掌握逻辑备份和恢复工具。
二、实验要求1.逻辑备份工具表方式备份以实验3中创建的用户登录利用Oracle提供的逻辑备份工具EXP,选择表方式备份实验3中创建的模式对象2.逻辑备份工具用户方式备份以实验3中创建的用户登录利用Oracle提供的逻辑备份工具EXP,选择用户方式备份实验3中创建的模式对象3.逻辑备份工具数据库方式备份以SYSTEM用户登录利用Oracle提供的逻辑备份工具EXP,选择全库方式备份数据库4.逻辑恢复工具进行恢复以SYSTEM用户登录利用Oracle提供的逻辑恢复工具IMP,将前面1、2、3中选择的不同备份方式备份的文件,进行相应的数据库恢复5.备份向导进行联机热备份配置企业管理器的集成方式管理OMS 配置进行联机热备份的环境利用备份向导将实验2中创建的表空间联机热备份6.备份向导进行联机热恢复利用备份向导将5中联机热备份出的文件进行联机热恢复三、实验学时安排课堂内1学时完成二中所列1、2、3、4四项内容,其余各项内容均在课外自行上机练习完成。
四、实验内容与步骤任务1:逻辑备份工具EXP表方式备份选择【开始】/【程序】/【附件】/【命令提示符】选项,执行exp命令,在用户名后输入实验3中创建的用户名/口令@连接描述符并执行,数据库连接成功后出现如图6-1所示界面。
在该界面根据提示信息输入相应参数,将开始逻辑备份过程。
这里选择以表方式备份数据库。
备份出来的文件保存在指定的路径下(在本例中保存在e:\uwxd1.dmp下)。
图6-1 执行exp.exe 命令以表方式备份任务2:以用户方式备份选择【开始】/【程序】/【附件】/【命令提示符】选项,执行exp命令,在用户名后输入实验3中创建的用户名/口令@连接描述符并执行,数据库连接成功后出现如图6-2所示界面。
oracle 数据泵 备份 步骤
oracle 数据泵备份步骤Oracle 数据泵是一种用于备份和恢复数据库的工具,它可以将数据库对象和数据导出到一个二进制文件中,然后再将其导入到另一个数据库中。
下面将详细介绍使用Oracle数据泵进行数据库备份的步骤。
1.创建目录对象:在备份数据库之前,首先要在数据库中创建一个目录对象,用于存储导出和导入文件。
可以使用以下SQL语句来创建目录对象:```sqlCREATE DIRECTORY e某p_dir AS '/backup/dump';```其中,'e某p_dir'是目录对象的名称,'/backup/dump'是目录对象在操作系统中的路径。
2.创建数据库备份任务:可以使用e某pdp命令来创建并执行数据库备份任务。
以下是一个创建数据库备份任务的示例:```sql```其中,system是数据库用户名,password是数据库密码,dbname是数据库实例名,e某p_dir是上一步创建的目录对象名,backup.dmp是导出文件的名称,full=y表示导出整个数据库,logfile是导出日志文件的名称。
3.执行备份任务:运行上述命令后,将会开始执行数据库备份任务,导出的数据将保存到指定的目录对象中。
在此过程中,可以通过查看日志文件来跟踪导出的进度和错误信息。
4.导入备份文件:如果需要将备份文件导入到另一个数据库中,可以使用impdp命令来执行导入任务。
以下是一个导入备份文件的示例:```sql```其中,system是目标数据库的用户名,password是密码,dbname是目标数据库的实例名,e某p_dir是之前创建的目录对象名,backup.dmp 是导出文件的名称,logfile是导入日志文件的名称,full=y表示完全导入整个数据库。
5.执行导入任务:运行上述命令后,将开始导入备份文件的过程,将数据导入到目标数据库中。
在此过程中,可以查看日志文件以了解导入的进度和错误信息。
oracle备份和恢复的操作流程
oracle备份和恢复的操作流程Oracle备份和恢复的操作流程备份和恢复是数据库管理中非常重要的任务,可以保护数据免受丢失或损坏的影响。
在Oracle数据库中,备份和恢复操作有着明确的流程和步骤。
本文将详细介绍Oracle备份和恢复的操作流程。
一、备份操作流程1. 确定备份类型:根据需求和数据重要性,确定采用全备份、增量备份还是差异备份。
全备份是指备份整个数据库,增量备份是指备份自上次备份以来的所有更改,差异备份是指备份自上次全备份以来的所有更改。
2. 选择备份工具:Oracle提供了多种备份工具,如RMAN (Recovery Manager)、Data Pump、Export/Import等。
根据需求选择合适的备份工具。
3. 设置备份策略:根据业务需求和数据增长情况,设置备份策略,包括备份频率、保留周期、备份存储位置等。
备份策略应该根据实际情况制定,以充分保护数据并节约存储空间。
4. 执行备份命令:根据选择的备份工具和策略,执行相应的备份命令。
比如使用RMAN进行备份,可以使用RMAN命令行工具或者图形化工具执行备份操作。
5. 检查备份状态:备份完成后,需要检查备份状态,确保备份成功并没有错误。
可以查看备份日志或者备份工具提供的状态信息。
二、恢复操作流程1. 确定恢复类型:根据需要,确定采用完全恢复、部分恢复还是点恢复。
完全恢复是指将整个数据库恢复到某个时间点或备份点的状态,部分恢复是指只恢复某些表或数据文件,点恢复是指只恢复某个时间点的数据。
2. 准备恢复环境:恢复操作需要一个独立的环境,可以是一个新的数据库实例或者一个已有的实例。
需要确保恢复环境与原始数据库的版本和配置相同。
3. 恢复备份文件:根据选择的恢复类型,执行相应的恢复命令。
如果是完全恢复,可以使用全备份文件进行恢复;如果是部分恢复,可以使用增量备份或差异备份文件进行恢复。
4. 应用归档日志:如果数据库启用了归档日志模式,需要将归档日志应用到恢复的数据库中,以保证数据的一致性。
oracle数据库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⽂件到新的数据库。
oracle data pump用法
oracle data pump用法
Oracle Data Pump是一个用于将数据和元数据从一个数据库导出到另一个数据库的工具。
它是Oracle数据库的一个特性,主要用于数据迁移、备份和恢复等操作。
Data Pump提供了以下工具和功能:
1. expdp:用于将数据和元数据导出到一个文件或目录中,可以选择导出整个数据库或指定的表、分区、用户等。
可以通过参数来指定导出的内容、数据过滤条件、导出方式等。
2. impdp:用于将导出的数据和元数据导入到一个数据库中,可以选择导入整个导出集或指定的对象。
可以通过参数来指定导入的内容、导入方式、处理冲突等。
3. Data Pump作业:可以创建和管理导入导出作业,以便在后台执行。
可以使用expdp和impdp命令启动作业,并可以使用Data Pump作业状态查询视图来跟踪作业的进度和状态。
4. 数据过滤:Data Pump提供了一些选项来过滤导出和导入的数据,例如可以根据表空间、对象名、分区、数据范围等进行过滤,以便只导出或导入特定的数据。
5. 并行处理:Data Pump可以使用多个并行进程来加速导出和导入的过程,以提高性能。
6. 数据转换:Data Pump可以在导出和导入过程中对数据进行
转换,例如可以将字符集进行转换、对数据进行加密等。
总之,通过使用Oracle Data Pump,可以方便地进行数据迁移、备份和恢复等操作,并提供了一些高级功能来满足特定需求。
Oracle11gR2新特性数据泵实现数据备份与数据还原(e.
Oracle11gR2新特性数据泵实现数据备份与数据还原
一 expdp 数据备份
1. 打开sqlplus 窗口方法有两种 1、直接在Oracle安装的程序中点击
2、在dos 命令中输入 sqlplus 回车即可打开
2. 输入用户名和密码(注意:这里必须是system 即 role为dba)的用户名
登陆,若非dba 可以在pl /sql 中通过 grant dba to Scott; 的方式进行授权
3. 查询system 用户下的逻辑目录和真实目录: select * from dba_directories;
4. 为Scott 用户在在逻辑目录DATA_PUMP_DIR上有读写的权限
<5>、打开cmd,
执行expdp 'system/dreams as sysdba' directory= DATA_PUMP_DIR schemas=scott dumpfile=itsmuse20130705.dmp logfile=itsmuse20130705.log
注意:一定要是权限。
二、导入数据详细介绍(impdp)
1.cmd 命令打开 dos窗口
输入impdp ‘system/dreams as sysdba’ directory=DATA_PUMP_DIR SCHEMAS=scott dumpfile=itsmuse20130828.dmp logfile=itsmuse20130828.log 回车即可。
Oracle数据库备份与恢复方案
Oracle数据库备份与恢复方案任何数据库在长期使用过程中,都会存在安全隐患。
对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制。
当任何人为的或是自然的灾难一旦出现,而导致数据库崩溃、物理介质损坏等,就可以及时恢复系统中重要的数据,不影响整个单位业务的运作。
然而如果没有可靠的备份数据和恢复机制,就会带来系统瘫痪、工作停滞、经济损失等等不堪设想的后果。
本文以ORACLE数据库为例,结合医院的业务应用环境,介绍ORACLE数据库的备份恢复。
首先,应当制定一个严格的工作制度,规范化数据库维护的工作流程。
总结实际工作中的经验,数据库管理员应当按照以下原则进行数据库系统的维护:要求:每日值班的数据库管理员应当随时监控主数据库服务器、备份数据库服务器的软件、硬件的正常运行,一旦出现故障,应立即向领导汇报并采取相应恢复措施。
一、管理员应当每日察看数据库的冷备份报告,出现问题及时检查备份文件,保障每日数据库服务器的备份正常运行。
二、当主数据库服务器出现数据库错误时,应检查数据库的工作状态。
如果工作不正常应及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。
如果重新启动后数据库系统不能正常运行,则数据库系统文件被破坏,应重新安装ORACLE数据库并启用紧急恢复方案。
三、当主数据库服务器出现硬件故障时,应在1小时内更新备份数据库为最新数据,并启动备份数据库服务器,将备份数据库服务器升级为主数据库服务器。
对于损坏的主数据库服务器应重新安装ORACLE数据库,并启用紧急恢复方案。
四、当备份数据库服务器出现数据库错误时,应检查ORACLE数据库的工作状态,如果工作不正常应及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。
如果重新启动后数据库系统不能正常运行,则数据库系统文件被破坏,应重新安装ORACLE数据库并启用紧急恢复方案。
Oracle数据库备份还原操作流程
1数据库备份和恢复1.1数据库备份数据库备份有两种方法:一、使用数据库备份向导;二、输入数据库备份命令。
方法一:向导备份1. 点击“开始-运行”,输入cmd,在命令行中输入“exp”,回车,如图:图 1-1向导备份2. 输入要导出数据库方案的用户名和密码:图 1-2输入用户名和密码3. 依次输入缓冲区大小、导出文件存放路径、选择导出方式(导出完整数据库、按用户导出、按表导出)、是否导出权限、是否导出表数据、是否压缩,一般情况下“是否导出权限”改成“no”,其余使用默认即可。
4. 最后输入导出数据库方案所属用户名,回车,如图:图 1-3输入导出数据库方案用户名5. 再次回车,完成导出。
方法二:命令备份根据数据库的具体情况,可以将方法一的第2、3步中需要的信息在第1步“exp”命令后进行描述。
例如:在本机上导出10.1.1.240服务器上用户ptac的数据库,点击“开始-运行”,输入cmd,命令行中输入:exp ptac/ptac@jqdemo_l0.1.1.240 file=d:\ptac.dmp full=n grants=n回车,完成备份。
●exp:oracle数据库导出指令;●ptac/ptac:用户名/密码;●jqdemo_l0.1.1.240:数据库服务名●file=d:\ptac.dmp:导出文件保存路径及名称;●full=n:是否导出整个文件,n表示选择no;●grants=n:是否导出权限,n表示选择no。
●statistics=NONE:是否忽略字符集输入exp help=y,可获得过更多关于数据库备份命令的信息。
1.2数据库恢复如果是初次恢复数据库方案,需要先添加相应的表空间和用户,详见“4.数据库的配置”。
如果是要覆盖已有数据库方案,恢复之前要删除原方案,详见“7.1删除方案”。
数据库恢复有两种方法:一、使用数据库恢复向导;二、输入数据库恢复命令。
方法一:向导恢复1. 点击“开始-运行”,输入cmd,在命令行中输入“imp”,回车,如图:图 1-4向导恢复2. 输入用户名和密码(如为初次导入应输入新建的用户名,如需覆盖原方案则输入原方案所属用户名),然后依次输入导入文件的路径及文件名、缓冲区大小(可默认),如果输入的用户名与文件备份时使用的用户名不一致会出现提示,如:图 1-5出错提示3. 依次选择是否只列出导入文件的内容、是否忽略创建错误、是否导入权限、是否导入表数据、是否导入整个导出文件,其中“导入权限”通常写“no”,导入整个导出文件选择“yes”,其余默认即可,最后回车,完成导入。
oracle数据备份与还原
在Oracle11g及以上版本中建议使用数据泵来代替EXP和IMP实用程序,数据泵技术提供了许多新的特性,可以中断导出\导入作业然后恢复作业的执行,从一个会话中监控数据泵取作业,在作业执行过程中修改作业属性,以及重启一个失败的数据泵取作业等。
☐数据泵导入导出技术的结构当启动数据泵导入或导出程序时,在数据库服务器端启动相应的服务器进程,完成数据的导入及导出任务,所以我们也称数据泵技术是基于Oracle数据库服务器的,导入及导出的数据文件也保存在数据库服务器端。
数据泵取即EXPDP程序启动数据库服务器端的服务器进程,服务器进程完成数据的备份并将备份文件写入数据库服务器端的计算机磁盘空间,文件格式filename.dat。
导出的备份文件在导入时只能通过数据泵的导入实用程序IMPDP完成,将数据导入到运行在其他平台上的数据库中。
☐数据泵导入导出与EXP/IMP技术的区别☐Oracle数据泵技术是对传统的EXP和IMP实用程序扩展,使得在数据库服务器端快速的移动数据。
这里我们给出二者的主要区别,使得读者在使用时根据需要有所取舍。
☐数据泵技术比传统的EXP/IMP技术更快速的移动大量数据,因为数据泵技术采用并行流技术实现快速的并行处理。
☐数据泵技术基于数据库服务器,在启动数据泵导入导出实用程序时在数据库服务器端产生服务器进程负责备份或导入数据,并且将备份的数据备份在数据库服务器端。
而且服务器进程与EXPDP客户机建立的会话无关。
☐传统的EXP/IMP是类似于普通的用户进程,执行象SELECT、INSERT、CREATE等的SQL语句。
而数据泵技术类似于启动作业的控制进程,不但启动客户端进程建立会话,还控制整个导入或导出过程,如重启作业。
☐使用传统的EXP/IMP实用程序导出的数据格式与数据泵技术导出的数据格式不兼容。
☐数据泵技术与传统的导入导出实用程序不同,它使用目录和目录对象存储数据泵导出文件,使用数据泵导出数据前必须先创建目录对象,否则无法使用数据泵导入和导出作业。
Oracle数据库备份与恢复的三种方法
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 数据库管理员可以排定⼀个备份⽇程表,⽤数据导出的三个不同⽅式合理⾼效的完成。
windows-下的oracle数据库rman自动备份和恢复文档精选全文完整版
可编辑修改精选全文完整版数据库rman备份恢复文档一.Rman简介RMAN是ORACLE提供的恢复和备份工具,是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。
与传统工具相比,RMAN具有独特的优势:跳过未使用的数据块。
当备份一个RMAN 备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。
RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。
二.系统规划数据库备份文件不建议与系统盘(C盘)、oracle数据文件存放盘(D 盘)存放在一起,本文单独存放于E盘。
注:在进行以下操作前要根据自己的环境建立如下目录“E:\orabackup\”,“’E:\archivelog_backup”,“E:/orabackup_script/”。
本文用到的命令中的标点均为英文字符下的标点。
三.设置oracle数据库为归档模式(ARCHIVELOG)按以下步骤操作,检查oracle数据库是否为归档模式。
1.选择“开始”→“系统”→“运行”,输入cmd,按回车。
2.输入“sqlplus”,按回车。
3.输入“system / as sysdba ”,按回车。
4.输入数据库system账号的密码,按回车。
5.查看数据库归档模式,输入“archive log list;”,按回车。
如下图所示。
如果“数据库日志模式”为“非存档模式”,则需按照如下步骤开启归档模式:1.设置数据库日志归档路径。
输入“alter system set log_archive_dest=’E:\archivelog_backup’ scope=spfile; ”,按回车。
2.关闭数据库。
输入“shutdown immediate;”,按回车。
3. 启动数据库到mount状态。
oracle数据库备份与还原方法
oracle数据库备份与还原方法一、Oracle数据库备份方法。
1.1 冷备份。
冷备份是在数据库关闭状态下进行的备份。
这就好比是给一个睡着的人做全身检查,一切都是静止的,好操作。
你得把数据库相关的文件,像数据文件、控制文件、重做日志文件等一股脑儿地拷贝到一个安全的地方。
这种备份方法简单直接,但是呢,在备份期间数据库是不能使用的,就像你要修东西得先把它停下来一样,有点不方便。
不过它恢复起来也相对容易,就像把之前拷贝走的东西再原封不动地拿回来就好。
1.2 热备份。
热备份可就不一样啦,它是在数据库运行的时候进行备份的。
这就像是给一个正在跑步的人换鞋子,难度不小。
热备份主要是利用归档模式,对表空间或者数据文件进行备份。
这种方式不影响数据库的正常使用,就像在火车行驶的时候给它换个小零件,火车还能继续跑。
但是热备份的操作相对复杂一些,需要对Oracle数据库有比较深入的了解,不然很容易搞砸,那可就“偷鸡不成蚀把米”了。
1.3 逻辑备份。
逻辑备份呢,是通过Oracle的工具,比如EXP或者EXPDP来进行的。
这就像是把数据库里的数据按照一定的逻辑规则整理出来,打包带走。
它可以备份特定的表、用户或者整个数据库。
这种备份方式比较灵活,就像你可以从一个大仓库里挑选你想要备份的东西。
但是逻辑备份的速度可能会比较慢,特别是数据量很大的时候,就像小马拉大车,有点吃力。
二、Oracle数据库还原方法。
2.1 冷备份还原。
如果是冷备份还原,那就简单多啦。
首先把数据库关闭,然后把之前备份的文件再拷贝回原来的位置,就像把东西放回原位一样。
不过要注意文件的权限和路径,可不能张冠李戴。
一切就绪后,再启动数据库,就大功告成了。
这就像把修好的东西重新启动,又能正常工作了。
2.2 热备份还原。
热备份还原就复杂得多了。
首先要根据备份的情况,确定需要还原的表空间或者数据文件。
然后利用归档日志和备份文件进行恢复。
这过程就像走钢丝,得小心翼翼的。
Oracle备份恢复方案
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数据库如何恢复
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步中需要对数据文件分别恢复),也可以采用整个数据库的恢复方法。
oracle数据丢失恢复数据方法
oracle数据丢失恢复数据方法在使用Oracle数据库过程中,数据丢失是一种常见的问题。
当数据库中的数据丢失时,我们需要及时采取措施来进行数据恢复,以避免数据的长期丢失。
本文将介绍一些常用的Oracle数据丢失恢复方法,帮助我们有效地处理这个问题。
1. 数据库备份与恢复数据库备份是一种常见的防范措施,它可以帮助我们在数据丢失后快速恢复数据库。
在Oracle中,我们可以使用RMAN(Recovery Manager)工具来实现数据库备份和恢复。
RMAN可以备份整个数据库或者特定的表空间、数据文件等,同时也支持增量备份,大大减少了备份所需的时间和空间。
当数据库发生数据丢失时,我们可以使用RMAN来恢复备份的数据库文件,确保数据的完整性。
2. 闪回技术Oracle提供了闪回技术,可以帮助我们恢复数据库到某个历史时间点的状态。
通过闪回技术,我们可以将数据库中的数据、表结构等回滚到特定的时间点,从而实现数据的恢复。
闪回技术相比于传统的数据恢复方法,具有更高的效率和更少的风险。
我们可以使用闪回查询(FLASHBACK QUERY)来查看历史数据,使用闪回表(FLASHBACK TABLE)来恢复特定表的状态,使用闪回数据库(FLASHBACK DATABASE)来恢复整个数据库。
3. 日志文件恢复Oracle数据库在运行过程中会生成大量的日志文件,这些日志文件记录了数据库的操作、变更等信息。
当数据库发生数据丢失时,我们可以通过日志文件的恢复来还原数据。
在Oracle数据库中,我们可以使用归档日志文件(Archive Log)或在线重做日志文件(Online Redo Log)来进行数据恢复。
归档日志文件可以将数据库中的所有变更操作记录下来,当数据丢失时,我们可以将归档日志文件应用到数据库中,恢复数据的完整性。
同时,我们也可以使用在线重做日志文件来进行数据恢复,将重做日志文件中的操作应用到数据库中。
4. 数据库导入导出数据库导入导出是一种常见的数据恢复方法。
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数据库备份与恢复是确保数据安全和可靠性的重要方面。
备份是指将数据库中的数据复制到另一个位置,以便在数据丢失或
损坏时进行恢复。
恢复则是指在发生故障或数据丢失时,通过备份
数据来恢复数据库到之前的状态。
一、备份方法:
1. 物理备份,物理备份是通过操作系统级别的工具(如RMAN)将数据库文件直接复制到备份位置。
可以使用RMAN命令行或图形界
面工具来执行物理备份。
2. 逻辑备份,逻辑备份是通过导出数据到逻辑文件(如SQL脚
本或数据泵文件)来进行备份。
可以使用expdp和impdp命令来执
行逻辑备份和恢复。
二、恢复方法:
1. 完全恢复,在数据库严重损坏或丢失时,可以使用完全备份
进行完全恢复。
这涉及将数据库恢复到备份时的状态,并应用任何
后续的归档日志以实现完整的恢复。
2. 不完全恢复,在某些情况下,可能只需恢复部分数据文件或表空间。
这可以通过RMAN进行部分恢复来实现。
除了上述备份和恢复方法外,还有一些其他注意事项和最佳实践:
定期备份,建立合理的备份策略,包括完整备份、增量备份和归档日志备份,以确保数据的及时备份和恢复。
测试恢复,定期测试备份和恢复过程,以确保备份数据的完整性和可用性。
数据库保护,使用冗余服务器、存储冗余和灾难恢复计划来保护数据库免受硬件故障、自然灾害和人为错误的影响。
综上所述,Oracle数据库备份与恢复是确保数据安全和可靠性的重要措施,通过合理的备份策略和恢复方法,可以最大程度地保护数据库免受数据丢失和损坏的影响。
Oracle数据库的备份与恢复操作手册(Linux)
Oracle数据库的备份与恢复操作手册(Linux) Oracle数据库的备份与恢复操作手册(Linux)本文档详细介绍了在Linux操作系统下使用Oracle数据库进行备份与恢复的操作步骤和注意事项。
以下为各个章节的详细内容:1、概述1.1 目的1.2 范围1.3 定义2、备份概念2.1 数据库备份的重要性2.2 备份策略2.3 数据库备份类型2.3.1 完全备份2.3.2 增量备份2.3.3 差异备份2.4 备份工具与方法选择3、备份前的准备工作3.1 检查数据库完整性3.2 空间与容量评估3.3 备份计划编制4、完全备份4.1 备份前的准备工作4.2 备份命令示例4.3 备份后的验证与恢复测试5、增量备份5.1 备份前的准备工作5.2 增量备份的实施步骤5.3 增量备份恢复操作6、差异备份6.1 备份前的准备工作6.2 差异备份的实施步骤6.3 差异备份恢复操作7、数据文件的备份与恢复7.1 数据文件的备份方法7.2 数据文件的恢复方法7.3 数据文件的故障处理8、控制文件和日志文件的备份与恢复8.1 控制文件和日志文件的备份方法8.2 控制文件和日志文件的恢复方法8.3 控制文件和日志文件的故障处理9、归档日志的备份与恢复9.1 归档日志的备份方法9.2 归档日志的恢复方法9.3 归档日志的故障处理10、RMAN备份与恢复10.1 RMAN备份与恢复的概述10.2 RMAN备份策略的设计10.3 RMAN备份与恢复的实施步骤10.4 RMAN备份与恢复的故障处理附件:本文档涉及的附件请参见附件文件夹,其中包括备份脚本示例、恢复测试脚本示例等。
法律名词及注释:1、数据库备份:将数据库中的数据和相关文件复制到另一个存储介质,以防止数据丢失或损坏。
2、备份策略:制定备份的时间间隔、备份类型和备份数量等规则,用于指导备份操作。
3、完全备份:备份整个数据库的所有数据和文件。
4、增量备份:仅备份数据库中发生变化的部分,相对于上一次备份。
ORACLE数据库数据泵备份与恢复
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验要求:能使用Oracle 的数据泵进行数据的备份和数据恢复。
加深对Oracle 基本锁的类型以及封锁机制的理解,掌握监控Oracle 多粒度封锁机制的方法。
实验内容:一、使用数据泵进行数据逻辑备份和恢复用expdp 和impdp 使用程序,导出数据是将数据库中的数据导出到一个操作系统文件中(即导出文件中),导入数据是将导出文件中的数据导入到数据库中。
expdp 和impdp 都是服务器端的使用程序,只能在oracle 服务器端使用,不能在客户端使用。
而exp 和imp 是客户端实用程序,既可以在客户端使用,也可以在服务器端使用。
由于expdp 和impdp 的速度优于exp 和imp ,所以oracle 建议使用expdp 和impdp 。
步骤:1 、创建目录对象并授权使用expdp 和impdp 实用程序时,其导出文件只能存放在directory( 目录) 对象指定的OS (操作系统)目录中,而不能直接指定OS 目录。
目录对象是数据库中的一个对象,它是使用create directory 语句建立的对象,而不是操作系统中的某个目录,但它指向操作系统中的某个目录。
目录对象不是方案对象,它不属于某个用户,而是属于数据库。
a. 先在操作系统中创建两个目录,如e:\dump1 和e:\dump2 。
这两个目录都可以保存导出文件和日志文件。
b. SYS 用户创建两个directory 对象,如dirdp1 和dirdp2 ,用于指向这两个操作系统目录,并为运行expdp 和impdp 实用程序数据库用户,如SCOTT 和pf 用户授权使用这两个directory 对象的权限。
导出文件、日志文件就保存在dirdp1 和dirdp2 所指的操作系统目录中。
最后,可以从dba_directories 数据字典视图中查询所创建的directory 对象。
SQL> create directory dirdp1 as 'e:\dump1';SQL> create directory dirdp2 as 'e:\dump2';SQL> grant read, write on directory dirdp1 to SCOTT;SQL> grant read, write on directory dirdp2 to SCOTT;SQL> select * from dba_directories where directory_name like 'DIR%';2 、使用expdp 导出数据使用expdp 的命令行语法是:expdp username/password parameter [, parameter2,...]参数tablespace 用于指定要导出的表空间列表,语法如下:tablespace=tablespace_name[,...] 其中,tablespace_name 表示表空间名。
a. 导出表的方法如导出SCOTT 方案中的emp 表和dept 表C:\expdp SCOTT/tiger directory=dirdp1 dumpfile=tab_emp_dept.dmplogfile=dirdp2:tab_emp_dept.log tables=emp,dept (不要以分号结尾)执行导出后,将与emp 表和dept 表相关的信息导出到导出文件tab_emp_dept.dm 中,该导出文件位于dirdp1 指定的OS 目录e:\dump1 中。
日志文件tab_emp_dept.log 记录了上述整个过程的屏幕输出信息,以便将来从中看出导出过程与内容。
日志文件位于dirdp2 指定的OS 目录e:\dump2 中。
由于命令行参数过多,使命令行很长,既不好输入又不好再次使用。
可使用参数文件来辅助导出过程。
如,为完成该例子的导出过程,可以现在e:\dump1 目录中创建一个par_emp_deptno20.txt 参数文件,内容如下:directory=dirdp1dumpfile=tab_emp_deptno20.dmplogfile=dirdp2:tab_emp_deptno20.logtables=empquery='''where deptno=20'''job_name=tab_emp_deptno20该参数文件表示,默认导出文件对象为dirdp1, 导出文件为tab_emp_deptno20.dmp ,日志文件为目录对象dirdp2 中的tab_emp_deptno20.log ,要到出的表是emp, 导出记录符合的条件是deptno=20, 导出的作业名称是tab_emp_deptno20.C:\expdp SCOTT/tiger parfile=e:\dump1\par_emp_deptno20.txtb. 导出方案的方法导出方案是指将一个或多个方案的所有对象结构及数据导出到导出文件中如导出SCOTT 方案为导出方案,可以先在e:\dump1 目录中创建一个par_scott.txt 参数文件,内容如下:dumpfile=scott_%U.dmplogfile=dirdp2:scott.logschemas=SCOTTfilesize=100000kjob_name=schemas_scott该参数文件表示,导出文件的命名方式是scott_%U.dmp, 日志文件的名称是scott.log ,要导出的方案是SCOTT ,每个导出文件都不超过10000kb (如果一个导出文件不够,则会自动产生新的导出文件),导出作业的名称是schemas_scott 。
可以在文件名中使用“%U” 通配符来表示对多个文件自动编号,“%D” 通配符表示将被替换为使用YYMMDD 格式的作业运行日期。
C:\expdp SCOTT/tiger directory=dirdp1 parfile=e:\dump1\par_scott.txtc. 导出表空间的方法导出表空间是指将一个或多个表空间的所有对象结构及数据导出到导出文件中。
如,导出USERS 表空间在e:\dump1 目录中创建一个par_users.txt 参数文件,内容如下:dumpfile=dirdp1:tbs_users.dmplogfile=dirdp2:tbs_users.logtablespaces=users该参数文件表示,导出文件为dirdp1 中的tbs_users.dmp ,日志文件为目录对象dirdp2 中的tbs_users.log ,要导出的表空间是users和mytbs 。
c:\expdp SCOTT/tiger parfile=e:\dump1\par_users.txt3 、使用impdp 导入数据使用impdp 的命令行语法:impdp username/password parameter1 [, parameter ...]使用expdp 导出的数据,可以使用impdp 导入。
而且,导入方式由导出方式确定。
如果是按表模式导出,则必须以表模式导入;如果是按方案模式导出,则必须以方案模式导入;如果是按表空间模式导出,则必须以表空间模式导入;a. 如果SCOTT 用户不小心删除了表中的deptno 为20 的数据,可以从导出文件tab_emp_deptno20.dmp 中将其导入。
为导入文件,可先在E:\dump1 目录中创建一个imp_par_emp_deptno20.txt参数文件,内容如下:dumpfile=dirdp1:tab_emp_deptno20.dmplogfile=dirdp2:imp_tab_emp_deptno20.logcontent=data_onlytables=emp该文件表示,从目录对象dirdp1 中的导出文件tab_emp_deptno20.dmp 导入数据,日志文件为目录对象dirdp2 中的imp_tab_emp_deptno20.log, 只导入数据,数据被导入到emp 表中。
SQL>delete from scott.emp where deptno=20;SQL>commit;c:\impdp SCOTT/tiger parfile=e:\dump1\imp_par_emp_deptno20.txtb. 导入表如果scott 用户不小心删除了emp 表,则可以从导出文件tab_emp_dept.dmp 中将其导入。
SQL>drop table scott.emp cascade constraints;c:\impdp SCOTT/tiger dumpfile=dirdp1:tab_emp_dept.dmp logfile=dirdp2:imp_tab_emp.log tables=empc. 导入方案如果不小心删除了scott 方案,即用户scott, 可以从导出文件scot_01.dmp,scott_02.dmp,scott_03.dmp... 中将其导入。
这里将SCOTT 用户的数据导入到pf 用户中。
step1. 先创建pf 用户,并授予或恢复删除前的所有权限。
SQL> create user pf identified by pf default tablespace userstemporary tablespace temp quota unlimited on users;SQL> grant connect,resource to pf;SQL> grant unlimited tablespace to pf;SQL> grant read, write on directory dirdp1 to pf;SQL> grant read, write on directory dirdp2 to pf;SQL> grant create view to pf;step2. 导入c:\impdp pf/pf directory=dirdp1 dumpfile=scott_01.dmp logfile=dirdp2:imp_scott.logschemas=scott remap_schema=scott:pf注意:如果要将(scott 方案)表导入到其他方案中, 必须指定REMAP SCHEMA 选项。
验证:SQL> select * from all_tables where owner='PF'; 查看pf 用户下所有表。