Oracle第11章数据库备份与恢复_第1页
Oracle第11章数据库备份与恢复_第2页
Oracle第11章数据库备份与恢复_第3页
Oracle第11章数据库备份与恢复_第4页
Oracle第11章数据库备份与恢复_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第11章数据库备份与恢复2本章内容备份与恢复概述物理备份与恢复逻辑备份与恢复3本章要求了解备份与恢复的重要性和概念掌握数据库的冷备份方法掌握数据库的热备份方法掌握数据库完全恢复方法掌握数据不完全恢复方法掌握逻辑备份和恢复方法411.1备份与恢复概述备份与恢复的基本概念Oracle数据库故障类型及恢复措施备份的原则与策略恢复的原则与策略511.1.1备份与恢复的概念备份与恢复的作用备份的概念与类型恢复的概念、类型与恢复机制6(1)备份与恢复的作用数据库系统在运行中可能发生故障,轻则导致事务异常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中的数据部分或全部丢失。数据库备份与恢复的目的就是为了保证在各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻辑一致的状态。7(2)备份的概念与类型概念数据库备份就是对数据库中部分或全部数据进行复制,形成副本,存放到一个相对独立的设备上,如磁盘、磁带,以备将来数据库出现故障时使用。根据数据备份方式的不同,数据库备份分为:

物理备份:将组成数据库的数据文件、重做日志文件、控制文件、初始化参数文件等操作系统文件进行复制,将形成的副本保存到与当前系统独立的磁盘或磁带上。逻辑备份是指利用Oracle提供的导出工具(如Expdp,Export)将数据库中的数据抽取出来存放到一个二进制文件中。8根据数据库备份时是否关闭数据库服务器,物理备份分为:冷备份又称停机备份,是指在关闭数据库的情况下将所有的数据库文件复制到另一个磁盘或磁带上去。热备份又称联机备份,是指在数据库运行的情况下对数据库进行的备份。要进行热备份,数据库必须运行在归档日志模式下。9根据数据库备份的规模不同,物理备份可分为:完全备份:指对整个数据库进行备份,包括所有的物理文件。部分备份:对部分数据文件、表空间、控制文件、归档重做日志文件等进行备份。根据数据库是否运行在归档模式,物理备份可分为:归档备份非归档备份10(3)恢复的概念、类型与恢复机制概念数据库恢复是指在数据库发生故障时,使用数据库备份还原数据库,使数据库恢复到无故障状态。根据数据库恢复时使用的备份不同,恢复分为:所谓的物理恢复就是,利用物理备份来恢复数据库,即利用物理备份文件恢复损毁文件,是在操作系统级别上进行的。逻辑恢复是指利用逻辑备份的二进制文件,使用Oracle提供的导入工具(如Impdp,Import)将部分或全部信息重新导入数据库,恢复损毁或丢失的数据。根据数据库恢复程度的不同,恢复可分为:完全恢复:利用备份使数据库恢复到出现故障时的状态。不完全恢复:利用备份使数据库恢复到出现故障时刻之前的某个状态。11数据库的恢复分3个步骤进行:首先使用一个完整备份将数据库恢复到备份时刻的状态;然后利用归档日志文件和联机重做日志文件中的日志信息,采用前滚技术(RollForward)重做备份以后已经完成并提交的事物;最后利用回滚技术(RollBack)取消发生故障时已写入日志文件但没有提交的事物,将数据库恢复到故障时刻的状态。12在T1和T3时刻进行了两次数据库备份,在T5时刻数据库出现故障。如果使用T1时刻的备份1恢复数据库,则只能恢复到T1时刻的状态,即不完全恢复;如果使用T3时刻的备份2恢复数据库,则可以恢复到T3时刻到T5时刻的任意状态(归档日志与联机日志)。

1311.1.2Oracle数据库故障类型及

恢复措施语句故障进程故障用户错误实例失败网络故障介质故障14语句故障语句故障是指执行SQL语句时发生的故障。例如,对不存在的表执行SELECT操作、向已无空间可用的表中执行INSERT操作等都会发生语句故障,Oracle将返回给用户一个错误信息。语句故障通常不需要DBA干预,Oracle会自动回滚产生错误的SQL语句操作。进程故障进程故障是指用户进程、服务器进程或数据库后台进程由于某种原因而意外终止,此时该进程将无法使用,但不影响其他进程的运行。Oracle的后台进程PMON能够自动监测并恢复故障进程。如果该进程无法恢复,则需要DBA关闭并重新启动数据库实例。15用户错误用户错误是指用户在使用数据库时产生的错误。例如,用户意外删除某个表或表中的数据。用户错误无法由Oracle自动进行恢复,管理员可以使用逻辑备份来恢复。实例失败实例失败是指由于某种原因导致数据库实例无法正常工作。例如,突然断电导致数据库服务器立即关闭、数据库服务器硬件故障导致操作系统无法运行等。实例失败时,需要进行实例重新启动,在实例重新启动的过程中,数据库后台进程SMON会自动对实例进行恢复。16网络故障网络故障是指由于通信软件或硬件故障,导致应用程序或用户与数据库服务器之间的通信中断。数据库的后台进程PMON将自动监测并处理意外中断的用户进程和服务器进程。介质故障介质故障是指由于各种原因引起的数据库数据文件、控制文件或重做日志文件的损坏,导致系统无法正常运行。例如,磁盘损坏导致文件系统被破坏。介质故障是数据库备份与恢复中主要关心的故障类型,需要管理员提前做好数据库的备份,否则将导致数据库无法恢复。1711.1.3备份原则与策略在刚建立数据库时,应该立即进行数据库的完全备份;将所有的数据库备份保存在一个独立磁盘上(必须是与当前数据库系统正在使用的文件不同的磁盘);应该保持控制文件的多路复用,且控制文件的副本应该存放在不同磁盘控制器下的不同磁盘设备上;应该保持多个联机日志文件组,每个组中至少应该保持两个日志成员,同一日志组的多个成员应该分散存放在不同磁盘上;至少保证两个归档重做日志文件的归档目标,不同归档目标应该分散于不同磁盘;如果条件允许,尽量保证数据库运行于归档模式;根据数据库数据变化的频率情况确定数据库备份规律;18在归档模式下,当数据库结构发生变化时,如创建或删除表空间、添加数据文件、重做日志文件等,应该备份数据库的控制文件;在非归档模式下,当数据库结构发生变化时,应该进行数据库的完全备份;在归档模式下,对于经常使用的表空间,可以采用表空间备份方法提高备份效率;在归档模式下,通常不需要对联机重做日志文件进行备份;使用RESETLOGS方式打开数据库后,应该进行一个数据库的完全备份;对于重要的表中的数据,可以采用逻辑备份方式进行备份。1911.1.4恢复原则与策略根据数据库介质故障原因,确定采用完全介质恢复还是不完全介质恢复;如果数据库运行在非归档模式,则当介质故障发生时,只能进行数据库的不完全恢复,将数据库恢复到最近的备份时刻的状态;如果数据库运行在归档模式,则当一个或多个数据文件损坏时,可以使用备份的数据文件进行完全或不完全恢复数据库;如果数据库运行在归档模式,则当数据库的控制文件损坏时,可以使用备份的控制文件实现数据库的不完全恢复;如果数据库运行在归档模式,则当数据库的联机日志文件损坏时,可以使用备份的数据文件和联机重做日志文件不完全恢复数据库;如果执行了不完全恢复,则当重新打开数据库时应该使用RESETLOGS选项。2011.2物理备份与恢复冷备份热备份非归档模式下数据库的恢复归档模式下数据库的完全恢复归档模式下数据库的不完全恢复利用OEM进行物理备份与恢复212211.2.1冷备份概述关闭数据库实例。用操作系统的实用工具备份所有的物理文件,包括数据文件、控制文件、联机重做日志文件等。23关闭数据库,开始备份故障时刻

备份恢复

重装备份副本恢复丢失数据备份完成如果没有启用归档模式,数据库不能恢复到备份完成后的任意时刻。如果启用归档模式,从冷备份结束后到出现故障这段时间的数据库恢复,可以利用联机日志文件和归档日志文件实现。24冷备份步骤确定数据库各种物理文件关闭数据库备份所有相关的数据库物理文件重新启动数据库25启动SQL*Plus,以SYSDBA身份登录数据库查询当前数据库所有数据文件、控制文件、联机重做日志文件的位置。SELECTfile_nameFROMdba_data_files;SELECTmemberFROMv$logfile;SELECTvalueFROMv$parameterWHEREname='control_files';关闭数据库SHUTDOWNIMMEDIATE复制所有数据文件、联机重做日志文件以及控制文件到备份磁盘。重新启动数据库STARTUP2611.2.2热备份数据库完全热备份的步骤:启动SQL*Plus,以SYSDBA身份登录数据库将数据库设置为归档模式以表空间为单位,进行数据文件备份备份控制文件备份其他物理文件27备份数据文件查看当前数据库有哪些表空间,以及每个表空间中有哪些数据文件。SELECTtablespace_name,file_nameFROMdba_data_filesORDERBYtablespace_name;分别对每个表空间中的数据文件进行备份,其方法为将需要备份的表空间(如USERS)设置为备份状态。ALTERTABLESPACEUSERSBEGINBACKUP;将表空间中所有的数据文件复制到备份磁盘。结束表空间的备份状态。ALTERTABLESPACEUSERSENDBACKUP;对数据库中所有表空间分别采用该步骤进行备份。28备份控制文件当执行了下列操作时应该进行控制文件备份ALTERDATABASEADDLOGFILEALERTDATABASEADDLOGFILEMEMBERALTERDATABASERENAMEFILEALTERDATABASEDROPLOGFILEGROUPALTERDATABASEDROPLOGFILEMEMBERCREATETABLESPACEALTERTABLESPACEADDDATAFILEALTERTABLESPACERENAMEDATAFILEDROPTABLESPACE29控制文件备份方法将控制文件备份为二进制文件。ALTERDATABASEBACKUPCONTROLFILETO'D:\ORACLE\BACKUP\CONTROL.BKP';

将控制文件备份为文本文件。ALTERDATABASEBACKUPCONTROLFILETOTRACE;

30其他文件的备份归档当前的联机重做日志文件。ALTERSYSTEMARCHIVELOGCURRENT;备份归档重做日志文件,将所有的归档重做日志文件复制到备份磁盘中。备份初始化参数文件,将初始化参数文件复制到备份磁盘中。3111.2.3非归档模式下数据库的恢复非归档模式下数据库的恢复主要指利用非归档模式下的冷备份恢复数据库。步骤为:关闭数据库。SHUTDOWNIMMEDIATE将备份的所有数据文件、控制文件、联机重做日志文件还原到原来所在的位置。重新启动数据库。STARTUP注意非归档模式下的数据库恢复是不完全恢复,只能将数据库恢复到最近一次完全冷备份的状态。

3211.2.4归档模式下数据库的完全恢复概述数据库级完全恢复表空间级完全恢复数据文件级完全恢复数据库完全恢复示例33(1)概述概念归档模式下数据库的完全恢复是指归档模式下一个或多个数据文件损坏,利用热备份的数据文件替换损坏的数据文件,再结合归档日志文件和联机重做日志文件,采用前滚技术重做自备份以来的所有改动,采用回滚技术回滚未提交的操作,以恢复到数据库故障时刻的状态。34

恢复的级别数据库级完全恢复:主要应用于所有或多数数据文件损坏的恢复;表空间级完全恢复:对指定表空间中的数据文件进行恢复;数据文件级完全恢复:是针对特定的数据文件进行恢复。

注意数据库级的完全恢复只能在数据库装载但没有打开的状态下进行,而表空间级完全恢复和数据文件级完全恢复可以在数据库处于装载状态或打开的状态下进行。

35归档模式下数据库完全恢复的基本语法:RECOVER[AUTOMATIC][FROM'location'][DATABASE|TABLESPACEtspname|DATAFILEdfname]参数说明

AUTOMATIC:进行自动恢复,不需要DBA提供重做日志文件名称;location:制定归档重做日志文件的位置。默认为数据库默认的归档路径。36(2)数据库级完全恢复

数据库级完全恢复的步骤:如果数据库没有关闭,则强制关闭数据库。SHUTDOWNABORT利用备份的数据文件还原所有损坏的数据文件。将数据库启动到MOUNT状态。STARTUPMOUNT执行数据库恢复命令。RECOVERDATABASE打开数据库。ALTERDATABASEOPEN;

37(3)表空间级完全恢复

以EXAMPLE表空间的数据文件example01.dbf损坏为例模拟表空级的完全恢复。数据库处于装载状态下的恢复数据库处于打开状态下的恢复

38数据库处于装载状态下的恢复如果数据库没有关闭,则强制关闭数据库。SHUTDOWNABORT利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。将数据库启动到MOUNT状态。STARTUPMOUNT执行表空间恢复命令。RECOVERTABLESPACEEXAMPLE打开数据库。ALTERDATABASEOPEN;39数据库处于打开状态下的恢复①如果数据库已经关闭,则将数据库启动到MOUNT状态。STARTUPMOUNT②将损坏的数据文件设置为脱机状态。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'OFFLINE;③打开数据库。

ALTERDATABASEOPEN;④将损坏的数据文件所在的表空间脱机。ALTERTABLESPACEEXAMPLEOFFLINEFORRECOVER;40⑤利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。⑥执行表空间恢复命令。RECOVERTABLESPACEEXAMPLE;⑦将表空间联机。ALTERTABLESPACEEXAMPLEONLINE;如果数据文件损坏时数据库正处于打开状态,则可以直接执行步骤(4)~(7)。41(4)数据文件级完全恢复

以数据文件D:\oracle\product\10.2.0\oradata\orcl\example01.dbf损坏为例模拟数据文件级的完全恢复。数据库处于装载状态下的恢复数据库处于打开状态下的恢复42数据库处于装载状态下的恢复如果数据库没有关闭,则强制关闭数据库。SHUTDOWNABORT利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。将数据库启动到MOUNT状态。STARTUPMOUNT执行数据文件恢复命令。RECOVERDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF';将数据文件联机。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'ONLINE打开数据库。ALTERDATABASEOPEN;43数据库处于打开状态下的恢复如果数据库已经关闭,则将数据库启动到MOUNT状态。STARTUPMOUNT将损坏的数据文件设置为脱机状态。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'OFFLINE;打开数据库。

ALTERDATABASEOPEN;利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。44执行数据文件恢复命令。RECOVERDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF';将数据文件联机。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'ONLINE;如果数据文件损坏时数据库正处于打开状态,则可以直接执行步骤(2)、(4)~(6)。45(5)数据库完全恢复示例

以SYSTEM表空间的数据文件D:\oracle\product\10.2.0\oradata\orcl\system01.dbf损坏为例演示归档模式下的完全恢复操作。

首先进行一次归档模式下的数据库完整备份。以SYSDBA身份登录数据库进行下列操作。CREATETABLEtest_rec(IDNUMBERPRIMARYKEY,NAMECHAR(20))TABLESPACESYSTEM;INSERTINTOtest_recVALUES(1,'ZHANGSAN');COMMIT;INSERTINTOtest_recVALUES(2,'LISI');COMMIT;ALTERSYSTEMSWITCHLOGFILE;SELECT*FROMtest_rec;SHUTDOWNABORT;46删除SYSTEM表空间的数据文件D:\oracle\product\10.2.0\oradata\orcl\system01.dbf,以模拟数据文件损坏的情形。用备份的数据文件D:\oracle\product\10.2.0\oradata\orcl\system01.dbf还原损坏(本文为被删除)的数据文件。执行恢复操作。由于SYSTEM表空间不能在数据库打开后进行恢复,因此只能在数据库处于装载状态时进行恢复。STARTUPMOUNTRECOVERDATABASE;ALTERDATABASEOPEN;SELECT*FROMtest_rec;4711.2.5归档模式下数据库的不完全恢复数据库不完全恢复概述数据文件损坏的数据库不完全恢复的步骤数据库不完全恢复的示例控制文件损坏的数据库不完全恢复48(1)数据库不完全恢复概述概念在归档模式下,数据库的不完全恢复主要是指归档模式下数据文件损坏后,没有将数据库恢复到故障时刻的状态。在进行数据库不完全恢复之前,首先确保对数据库进行了完全备份;在进行数据文件损坏的不完全恢复时必须先使用完整的数据文件备份将数据库恢复到备份时刻的状态。在不完全恢复后,需要使用RESETLOGS选项打开数据库,原来的重做日志文件被清空,新的重做日志文件序列号重新从1开始,因此原来的归档日志文件都不再起作用了,应该移走或删除;打开数据库后,应该及时备份数据库,因为原来的备份都已经无效了。49不完全恢复类型:基于时间的不完全恢复:将数据库恢复到备份与故障时刻之间的某个特定时刻。基于撤销的不完全恢复:数据库的恢复随用户输入CANCEL命令而中止。基于SCN的不完全恢复:将数据库恢复到指定的SCN值时的状态。50不完全恢复的语法为RECOVER[AUTOMATIC][FROM'location'][DATABASE][UNTILTIMEtime|CANCEL|CHANGEscn][USINGBACKUPCONTROLFILE]51(2)数据文件损坏的数据库不完全恢复的步骤如果数据库没有关闭,则强制关闭数据库。SHUTDOWNABORT用备份的所有数据文件还原当前数据库的所有数据文件,即将数据库的所有数据文件恢复到备份时刻的状态。将数据库启动到MOUNT状态。STARTUPMOUNT执行数据文件的不完全恢复命令。RECOVERDATABASEUNTILTIMEtime;(基于时间恢复)RECOVERDATABASEUNTILCANCEL;(基于撤销恢复)RECOVERDATABASEUNTILCHANGEscn;(基于SCN恢复)可以通过查询数据字典视图V$LOG_HISTORY获得时间和SCN的信息。不完全恢复完成后,使用RESETLOGS选项启动数据库。ALTERDATABASEOPENRESETLOGS;52(3)数据库不完全恢复的示例53(4)控制文件损坏的数据库不完全恢复如果数据库没有关闭,则强制关闭数据库。SHUTDOWNABORT用备份的所有数据文件和控制文件还原当前数据库的所有数据文件、控制文件,即将数据库的所有数据文件、控制文件恢复到备份时刻的状态。将数据库启动到MOUNT状态。STARTUPMOUNT执行不完全恢复命令。RECOVERDATABASEUNTILTIMEtimeUSINGBACKUPCONTROLFILE;RECOVERDATABASEUNTILCANCELUSINGBACKUPCONTROLFILE;RECOVERDATABASEUNTILCHANGEscnUSINGBACKUPCONTROLFILE;不完全恢复完成后,使用RESETLOGS选项启动数据库。ALTERDATABASEOPENRESETLOGS;5411.2.6利用OEM进行物理备份与恢复备份与恢复设置备份数据库恢复数据库55(1)备份与恢复设置

565758(2)备份数据库5960616263(3)恢复数据库6465666711.3逻辑备份与恢复逻辑备份与恢复概述使用Expdp导出数据使用Impdp导入数据使用OEM导出、导入数据6811.3.1逻辑备份与恢复概述逻辑备份与恢复的特点数据泵技术69(1)逻辑备份与恢复的特点概述逻辑备份是指利用Oracle提供的导出工具,将数据库中选定的记录集或数据字典的逻辑副本以二进制文件的形式存储到操作系统中。逻辑备份的二进制文件称为转储文件,以dmp格式存储。逻辑恢复是指利用Oracle提供的导入工具将逻辑备份形成的转储文件导入数据库内部,进行数据库的逻辑恢复。与物理备份与恢复不同,逻辑备份与恢复必须在数据库运行的状态下进行,因此当数据库发生介质损坏而无法启动时,不能利用逻辑备份恢复数据库。因此,数据库备份与恢复是以物理备份与恢复为主,逻辑备份与恢复为辅的。70逻辑备份与恢复有以下特点及用途:可以在不同版本的数据库间进行数据移植,可以从Oracle数据库的低版本移植到高版本;可以在不同操作系统上运行的数据库间进行数据移植,例如可以从WindowsNT系统迁移到Unix系统等;可以在数据库模式之间传递数据,即先将一个模式中的对象进行备份,然后再将该备份导入到数据库其他模式中;数据的导出与导入与数据库物理结构没有关系,是以对象为单位进行的,这些对象在物理上可能存储于不同的文件中;对数据库进行一次逻辑备份与恢复操作能重新组织数据,消除数据库中的链接及磁盘碎片,从而使数据库的性能有较大的提高;除了进行数据的备份与恢复外,还可以进行数据库对象定义、约束、权限等的备份与恢复。71(2)数据泵技术概述在Oracle9i及其之前的数据库版本中提供了Export和Import实用程序用于逻辑备份与恢复。在Oracle10g数据库中又推出了数据泵技术,即DataPumpExport(Expdp)和DataPumpImport(Impdp)实用程序用于逻辑备份与恢复。需要注意,这两类逻辑备份与恢复实用程序之间不兼容。使用Export备份的转储文件,不能使用Impdp进行导入;同样,使用Expdp备份的转储文件,也不能使用Import工具进行导入。72两类逻辑备份与恢复实用程序比较Export和Import是客户端实用程序,可以在服务器端使用,也可以在客户端使用;Expdp和Impdp是服务器端实用程序,只能在数据库服务器端使用。利用Expdp,Impdp在服务器端多线程并行地执行大量数据的导出与导入操作。数据泵技术具有重新启动作业的能力,即当发生数据泵作业故障时,DBA或用户进行干预修正后,可以发出数据泵重新启动命令,使作业从发生故障的位置继续进行。73使用数据泵技术准备工作在使用Expdp,Impdp程序之前需要创建DIRECTORY对象,并将该对象的READ,WRITE权限授予用户。例如:CREATEORREPLACEDIRECTORYdumpdirAS'D:\ORACLE\BACKUP';

GRANTREAD,WRITEONDIRECTORYdumpdirTOSCOTT;如果用户要导出或导入非同名模式的对象,还需要具有EXP_FULL_DATABASE和IMP_FULL_DATABASE权限。例如:GRANTEXP_FULL_DATABASE,IMP_FULL_DATABASETOSCOTT;

7411.3.2使用Expdp导出数据Expdp调用接口Expdp导出模式Expdp帮助及参数Expdp应用实例75(1)Expdp调用接口

命令行接口(Command-LineInterface):在命令行中直接指定参数设置。参数文件接口(ParameterFileInterface):将需要的参数设置放到一个文件中,在命令行中用PARFILE参数指定参数文件。交互式命令接口(Interactive-CommandInterface):用户可以通过交互命令进行导出操作管理。76(2)Expdp导出模式

全库导出模式(FullExportMode):通过参数FULL指定,导出整个数据库。模式导出模式(SchemaMode):通过参数SCHEMAS指定,是默认的导出模式,导出指定模式中的所有对象。表导出模式(TableMode):通过参数TABLES指定,导出指定模式中指定的所有表、分区及其依赖对象。表空间导出模式(TablespaceMode):通过参数TABLESPACES指定,导出指定表空间中所有表及其依赖对象的定义和数据。传输表空间导出模式(TransportableTablespace):通过参数TRANSPORT_TABLESPACES指定,导出指定表空间中所有表及其依赖对象的定义。通过该导出模式以及相应导入模式,可以实现将一个数据库表空间的数据文件复制到另一个数据库中。77(3)Expdp帮助及参数

获取Expdp帮助信息C:\>expdpHELP=YExpdp参数78(4)Expdp应用实例

命令行方式导出:表导出模式导出scott模式下的emp表和dept表,转储文件名称为emp_dept.dmp,日志文件命名为emp_dept.log,作业命名为emp_dept_job,导出操作启动3个进程。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptLOGFILE=emp_dept.logJOB_NAME=emp_dept_jobPARALLEL=3命令行方式导出:模式导出模式。导出scott模式下的所有对象及其数据。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=scott.dmpLOGFILE=scott.logSCHEMAS=scottJOB_NAME=exp_scott_schema79命令行方式导出:表空间导出模式。导出EXAMPLE,USERS表空间中的所有对象及其数据。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tsp.dmpTABLESPACES=example,users命令行方式导出:传输表空间导出模式导出EXAMPLE,USERS表空间中数据对象的定义信息。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tts.dmpTRANSPORT_TABLESPACES=example,usersTRANSPORT_FULL_CHECK=YLOGFILE=tts.log注意:当前用户不能使用传输表空间导出模式导出自己的默认表空间。80命令行方式导出:数据库导出模式将当前数据全部导出,不写日志文件。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=expfull.dmpFULL=YNOLOGFILE=Y命令行方式导出:按条件查询导出导出scott.emp表中部门号大于10,且工资大于2000的员工信息。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=exp2.dmpTABLES=empQUERY='emp:"WHEREdeptno=10ANDsal>2000"'NOLOGFILE=Y81参数文件方式导出首先创建一个名为scott.txt的参数文件,并存放到d:\backup目录下,其内容为:SCHEMAS=scottDUMPFILE=filter.dmpDIRECTORY=dumpdirLOGFILE=filter.logINCLUDE=TABLE:"IN('EMP','DEPT')"INCLUDE=INDEX:"LIKE'EMP%'"INCLUDE=PROCEDURE然后在命令行中执行下列命令。C:\>expdpscott/tigerPARFILE=d:\scott.txt

82交互命令方式导出在当前运行作业的终端中按Ctrl+C组合键,进入交互式命令状态;在另一个非运行导出作业的终端中,通过导出作业名称来进行导出作业的管理。83示例执行一个作业。C:\>expdpscott/tigerFULL=YDIRECTORY=dumpdirDUMPFILE=fulldb1.dmp,fulldb2.dmpFILESIZE=2GPARALLEL=3LOGFILE=expfull.logJOB_NAME=expfull作业开始执行后,按Ctrl+C组合键。在交互模式中输入导出作业的管理命令,根据提示进行操作。

Export>STOP_JOB=IMMEDIATEAreyousureyouwishtostopthisjob([Y]/N):Y8411.3.3使用Impdp导入数据Impdp调用接口Impdp导入模式Impdp帮助及参数Impdp应用实例85(1)Impdp调用接口

命令行接口(Command-LineInterface)参数文件接口(ParameterFileInterface)交互式命令接口(Interactive-CommandInterface)86(2)Impdp导入模式全库导入模式(FullImportMode)模式导入模式(SchemaMode)表导入模式(TableMode)表空间导入模式(TablespaceMode)传输表空间导入模式(TransportableTablespace)87(3)Impdp帮助及参数

在操作系统的命令提示符窗口中输入impdpHELP=Y命令,可以查看Impdp程序的使用、关键字(参数)、交互命令等介绍。88(4)Impdp应用实例

命令行方式导入:表导入模式使用逻辑备份文件emp_dept.dmp恢复scott模式下的emp表和dept表中数据。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptNOLOGFILE=YCONTENT=DATA_ONLY如果表结构也不存在了,则应该导入表的定义以及数据。

C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptNOLOGFILE=Y89命令行方式导入:模式导入模式使用备份文件scott.dmp恢复scott模式。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=scott.dmpSCHEMAS=scottJOB_NAME=imp_scott_schema如果要将一个备份模式的所有对象导入另一个模式中,可以使用REMAP_SCHEMAN参数设置。例如,将备份的scott模式对象导入oe模式中。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=scott.dmpLOGFILE=scott.logREMAP_SCHEMA=scott:oeJOB_NAME=imp_oe_schema90命令行方式导入:表空间导入模式利用EXAMPLE,USERS表空间的逻辑备份tsp.dmp恢复USERS,EXAMPLE表空间。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tsp.dmpTABLESPACES=example,users如果要将备份的表空间导入另一个表空间中,可以使用REMAP_TABLESPACE参数设置。例如,将USERS表空间的逻辑备份导入IMP_TBS表空间,命令为C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tsp.dmpREMAP_TABLESPACE=users:imptbs91命令行方式导入:传输表空间导入模式。将表空间USERS导入数据库链接source_dblink所对应的远程数据库中。C:\>impdpscott/tigerDIRECTORY=dumpdirNETWORK_LINK=source_dblinkTRANSPORT_TABLESPACES=usersTRANSPORT_FULL_CHECK=NTRANSPORT_DATAFILES='D:\ORACLE\USERS01.DBF'

92命令行方式导入:数据库导入模式利用完整数据库的逻辑备份恢复数据库。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=expfull.dmpFULL=YNOLOGFILE=Y命令行方式导入:按条件查询导入C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptQUERY='emp:"WHEREdeptno=20ANDsal>2000"'NOLOGFILE=Y93命令行方式导入:追加导入如果表中已经存在数据,可以利用备份向表中追加数据。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=empTABLE_EXISTS_ACTION=APPEND94参数文件方式导入首先创建一个名为empdept.txt的参数文件,并存放到d:\backup目录下,其内容为TABLES=emp,deptDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpPARALLEL=3然后在命令行中执行下列命令就可以实现数据的导入操作。C:\>impdpscott/tigerPARFILE=d:\empdetp.txt95交互命令方式导入与Expdp交互执行方式类似,在Impdp命令执行作业导入的过程中,可以使用Impdp的交互命令对当前运行的导入作业进行控制管理。9611.3.4使用OEM导出、导入数据创建目录对象数据导出数据导入97(1)创建目录对象

9899100101(2)数据导出

102103104105106107108109(3)数据导入110111112113114115总结备份与恢复的重要性和概念备份与恢复的类型数据库的冷备份数据库的热备份数据库完全恢复数据不完全恢复逻辑备份和恢复演讲完毕,谢谢观看!附录资料:不需要的可以自行删除​oracle数据库培训内容*基本概念*Oracle的体系结构SQL*Plus的使用及常用命令*SQL*NET的配置和使用数据库的备份(exp/imp)其它常见问题​一、基本概念什么是数据库:是存储在一起的相关数据的集合。这些数据无有害或不必要的冗余,为多种应用服务。数据的存储独立于使用它的应用程序。对数据库插入新数据、修改和检索原有数据均能用一种公用的和可控的方法进行。数据库能做什么:数据库的基本功能就是存储数据,而且能够为用户提供便捷、快速的查找、修改、添加和删除数据等功能。什么是SQL语言:是运用于数据库的语言。它除了具有数据库查询、插入、删除、修改等功能外,可以独立使用,也可以嵌入其它主语言中使用。它的语法类似于英语。​什么是oracle:oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。​二、Oracle的体系结构(1)物理结构

ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。datafilesredologfilescontrolfilesparameterfile

数据文件日志文件控制文件参数文件

datafilesredologfilescontrolfileparameterfiles*.dbf*.logInitoraid.ora*.ctl​(2)session(连接)

Oracle是多用户、多任务、可分布式管理的数据库,同

时可有许多个用户对数据库操作。oracleuseruserusersession……​

ORACLE数据库在逻辑上是由许多表空间构成。主要分为系统表空间和非系统表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。我们准备上马一个较大的ORACLE应用系统时,应该创建它所独占的表空间,同时定义物理文件的存放路径和所占硬盘的大小。Oracle数据存储单位a、block数据块:2k最小的I-O单位,伴随database产生而产生,不可变b、extent一组连续的数据块:是用户所能分配存储的最小单位c、segment段:有共同结构的一个或几个区域(extent)d、tablespace表空间:一组物理数据的逻辑组合,(象逻辑间数据仓库)e、file文件:属于某个表空间的物理文件f、database数据库:一组表空间所构成的逻辑的可共享的数据。(3)存储结构​表空间tablespacesystemRBSnosystem把system表空间单独放在一个硬盘上做成一组镜像toolsuserstempapplicationdataapplicationindex分开存放减少争用​segment段的分类data数据段存储对象object(table,view,index,sequence...)index索引段temporary临时段用做(join,groupby,orderbysorting操作)rollback回滚段用于记录修改前后信息bootstrap启动段存储数据字典系统信息不能读写,放在系统表空间内,约占40几个block​datasegment中可能有十种不同类型的存储对象(1)table(2)view实为一个select语句(3)index(一个表不多于3个)(4)cluster(簇)(5)sequence序列(6)synonyms用于定义某个远程数据库同义词,实现分式数据库管理透明(7)snapsot快照(8)storedprocedure(function)(9)package程序包(10)dbtrigger数据触发器,处理updata,delete,insert中可能出现的问题​常用的ORACLE的数据库字段类型字段类型中文说明限制条件其它说明CHAR固定长度字符串最大长度2000bytesVARCHAR2可变长度的字符串最大长度4000bytes可做索引的最大长度749DATE日期(日-月-年)LONG超长字符串最大长度2G(231-1)足够存储大部头著作RAW固定长度的二进制数据最大长度2000bytes可存放多媒体图象声音等LONGRAW可变长度的二进制数据最大长度2G同上NUMBER(P,S)数字类型P为整数位,S为小数位INTEGER整数类型小的整数FLOAT浮点数类型NUMBER(38),双精度REAL实数类型NUMBER(63),精度更高……​三、SQL*Plus的使用及常用命令进入sql*plus;数据查询操作(select);改变数据操作(insert、update、delete);其它常用sql和sql*plus命令(spool、create、drop、desc、connect、grant……)。​数据查询操作简单查询select列名1,列名2,列名3……from表名where条件orderby列名1,列名2……;​逻辑运算符>>=<<=<>或!=其它(not)inis(not)betweenandandor单值函数nvl----空值替换函数abs---绝对值函数mod---求模函数power---求幂函数sqrt-----平方根函数exp,ln,log----对数函数sin,cos等----三角函数​唯一性查询关键字:distinctselectdistinct列名from表名where条件;​模糊查询select列名1,列名2,列名3……from表名where列名1like‘_%mm’orderby列名1,列名2……;关键字:(not)like通配符:%_​联接查询select表名1.列名1,表名2.列名2,列名3……from表名1,表名2……where条件orderby表名1.列名1,表名2.列名2……;​子查询单值子查询

多值子查询select列名1,列名2,列名3……from表名1where列名1=(select列名1from表名2where条件)orderby列名1,列名2……;select列名1,列名2,列名3……from表名1where列名1in(select列名1from表名2where条件)orderby列名1,列名2……;​组值函数avg---平均值函数count---非空值数目max---最大值函数min---最小值函数sum---求和函数distinct---唯一性函数分组查询select列名1,列名2,sum(列名3)……from表名where条件groupby列名1,列名2……;关键字:groupby​改变数据操作Insert插入操作insertinto表名1(列名1,列名2……)values(值1,值2……);注意:⑴值表中的数据用逗号间隔;⑵字符型和日期型要用单引号括起来;⑶缺省的日期格式为dd-man-yy。insertinto表名1usingselect列名1,列名2……from表名2where条件;​Update修改操作可修改单个字段、修改多行、修改单个列。update表名set列名=值或表达式where条件;​Delete删除deletefrom表名where条件;注意⑴不能只删除行的一部分⑵where子句决定哪一行将被删除。如里省略了where子句,则所有的行都将被删除。​其它常用sql命令Createtable---创建表;例子Droptable---删除表,sql同时自动删除该表上的索引、特权,但并不删除相关的视图或同义词;Grant---授权Connect-----连上Oracle,做最基本操作resource----具有程序开发最基本的权限dba----------数据库管理员所有权限​@-------运行指定的命令文件,作用等价于start命令;/---------运行sql缓冲区的命令,与run命令等价;Connect---退出当前账号,向指定的用户帐号登录;Desc-----显示指定表的结构;Exit-----中止sql*plus,返回操作系统;Spool---将屏幕显示内容输出到一个文件上;Spooloff--输出文件结束;其它常用sql*plus命令​四、SQL*NET的配置和使用1配置网络协议TCP/IP

2测试网络是否连通3在Windows95上选择“开始”按钮,选定“程序”中的“OracleforWindows95”下的“SQL*NetEasyConfiguration”,在“SQL*NetEasyConfiguration”窗口中选择“AddDatabaseAlias”,在“ChooseDatabaseAlias”对话框中“DatabaseAlias”项中键入数据库别名,按“OK”按钮确认。

在“ChooseTCP/IPHostNameandDatabase”对话框中的TCP/IPHostname项中键入SERVER的IP地址,在“DatabaseInstance”项中键入Oracle的实例名。在“ConfirmAddingDatabaseAlias”对话框中可以看到你新增加的数据库别名。按“YES”按钮,按“OK”,退出“SQL*NetEasyConfiguration”。​五、数据库备份(exp/imp)EXPORT将数据库中数据备份成一个二进制系统文件称为“导出转储文件”(EXPORTDUMPFILE),并将重新生成数据库写入文件中。它有三种模式:a.用户模式:导出用户所有对象以及对象中的数据;b.表模式:导出用户所有表或者指定的表;c.整个数据库:导出数据库中所有对象。IMPORT导入:导入的过程是导出的逆过程,这个命令先读取导出来的导出转储二进制文件,并运行文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论