Oracle11g基础学习---------(7)备份与恢复

 学习Oracle从哪里入手呢,在这里,我将带你走进Oracle的大门,一天一章,7天入门不是梦

 

1. 启动和关闭数据库DBA的任务之一是负责启动和关闭数据库,使数据库出于不同的状态、模式,以便完成相应的管理任务或控制数据库的可用性 数据库的启动和关闭是分步骤实现的,数据库具有几种启动和关闭的状态 只有具有SYSDBA、SYSOPER系统特权的用户,如SYS和SYSTEM以SYSDBA的身份登录,才能手动启动和关闭数据库,否则会出现“ORA-01031:权限不足“的错误提示启动和关闭数据库1.1 初始化服务器参数文件在每个数据库中,都有一个操作系统文件,被称为初始化服务器参数文件(SPFILE) 该文件决定了数据库的物理结构、内存、数据库的权限及系统的大量默认值,是进行数据库设计与性能调整的重要文件 Oracle使用初始化服务器参数文件来保存Oracle例程启动时所要用到的初始化参数信息 初始化服务器参数文件的默认位置是%ORACLE_HOME%\database 其默认的命名规则是spfile%ORACLE_SID%.ORA(如SPFILESOFT.ORA) 1.2 数据库3种启动模式当数据库管理员使用STARTUP命令启动数据库时,可以指定不同的选项来决定将数据库的启动推进到哪个启动模式在进入某个模式后,可以使用ALTER DATABASE命令来将数据库提升到更高的启动模式,但不能使数据库降低到前面的启动模式启动模式 说明 对应界面提示信息 NOMOUNT模式 启动例程,但不装载数据库,完成启动步骤的第一步 ORACLE例程已经启动MOUNT模式 启动例程,装载数据库,但不打开数据库,完成启动步骤的第二步 ORACLE例程已经启动 数据库装载完毕OPNE模式 启动例程、装载数据库、打开数据库,完成全部启动的3个启动步骤 ORACLE例程已经启动 数据库装载完毕 数据库已经打开1.3 启动数据库的概述和步骤数据库的启动与关闭和例程的启动与关闭是有区别的,启动例程只是启动数据库时的一个步骤,而不是全部启动数据库的步骤 启动例程在服务器中,例程是由一组逻辑内存结构和一系列后台服务进程组成的 当启动例程时,这些内存结构和服务进程得到分配、初始化和启动 但是,此时例程还没有与一个确定的数据库关联,数据库是否存在对例程的启动并没有影响,启动例程既不装载数据库,也不打开控制文件启动例程会执行的任务包括读取初始化服务器参数文件SPFILE根据SPFILE文件中有关SGA区、PGA区的参数及其设置值,在内存中分配相应的空间根据SPFILE文件中有关后台进程的参数及其设置值,启动相应的后台进程打开跟踪文件、预警文件在执行下列任务时,需要数据库处于NOMOUNT启动模式 运行一个创建新的数据库的脚本 重建控制文件启动数据库的概述和步骤装载数据库装载数据库时,例程将打开数据库的控制文件,根据初始化参数control_files设置,找到控制文件,并从中获取数据库物理文件(数据文件、重做日志文件)的位置和名称等关于数据库物理结构的信息,为下一步打开数据库做好准备在装载阶段,例程并不会打开数据库的物理文件,所以数据库依然处于关闭状态,用户还无法连接数据库如果控制文件损坏,例程将无法装载数据库在执行下列任务时,需要数据库处于MOUNT状态(但不打开数据库)重新命名、增加、删除数据文件和重做日志文件执行数据库的完全恢复改变数据库的归档模式必须在listener.ora文件中添加以下代码的配置,否则会提示“TNS: 监听程序当前无法识别连接描述符中请求的服务”错误信息:SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = SCCE.WUHAN) (ORACLE_HOME = d:\app\Administrator\product\11.1.0\db_1) (SID_NAME = SCCE) ) )打开数据库只有将数据库启动到打开状态后,数据库才处于正常运行状态,这时用户才能够与数据库创建会话连接打开数据库时,例程将打开所有处于联机状态的数据文件和重做日志文件 如果在控制文件中列出的任何一个数据文件或重做日志文件无法正常打开,数据库都将返回错误信息,这时需要进行恢复现假设需要重新命名数据库中的某个数据文件,如果数据库当前正处于打开状态,就可能会有用户正在访问该数据文件中的数据,因此无法对数据文件进行更改。这时,就必须先将数据库关闭,然后只进入装载状态,但不打开数据库,这样将断开所有用户的连接,而DBA却可以对数据文件进行重命名。当完成了重命名工作后,再打开数据库供用户使用。因此,DBA需要根据不同的情况决定以何种不同的方式启动数据库,并且还需要在各种启动状态之间切换1.4 转换数据库的启动模式当数据库被STARTUP语句启动到较低的NOMOUNT和MOUNT模式时,可利用ALTER DATABASE语句将其进一步启动到更高的模式为例程装载数据库在执行一些特殊的管理或维护时,需要将数据库启动到NOMOUNT模式 在完成这些工作后,可以使用ALTER DATABASE语句为例程装载数据库,使之切换到MOUNT模式从装载数据库模式进入打开数据库模式为了使用户能够访问数据库,可以使用ALTER DATABASE语句打开数据库,使之转换到OPEN启动模式当数据库进入一个高级模式后,不能再用ALTER DATABASE语句来使其返回一个较低级的模式。例如,一个已经处于OPEN模式的数据库就不能再返回MOUNT模式了,但可执行SHUTDOWN命令关闭数据库后,再切换到MOUNT模式1.5 关闭数据库关闭数据库分为3个步骤关闭数据关闭数据库时,Oracle将重做日志高速缓存中的内容与入重做日志文件,并且将数据库高速缓存中被改动过的数据写入数据文件,并记录下关闭数据库的时间,然后再关闭所有数据文件和重做日志文件这时数据库的控制文件依然处于打开状态,但是由于数据库已经处于关闭状态,所以用户将无法访问数据库卸载数据库关闭数据后,例程才能卸载数据库,并在控制文件中更改相关的项目,然后关闭控制文件,但是例程依然存在终止例程例程所拥有的所有后台进程和服务进程将被终止,分配给例程的内存SGA区和PGA区被回收关闭数据库关闭数据库的语法SHUTDOWN [NORMAL |TRANSACTIONAL |IMMEDIATE |ABORT];NORMAL(正常)选项如果对关闭数据库的时间没有限制,通常会使用NORMAL选项来关闭数据库 SHUTDOWN与SHUTDOWN NORMAL作用相同使用NORMAL选项关闭数据库时,Oracle将执行如下操作 阻止任何用户创建新的会话连接等待当前所有正在连接的用户主动断开连接。正在连接的用户能够继续他们当前的工作,甚至能够提交新事务一旦所有用户都断开连接,才进行关闭、卸载数据库,并终止例程TRANSACTIONAL(事务处理)选项TRANSACTIONAL选项比NORMAL选项更加主动,它能在尽快可能短的时间内关闭数据库 用TRANSACTIONAL选项关闭数据库,Oracle将执行如下操作阻止任何用户创建新的会话连接,同时阻止当前连接的用户开始任何新的事务等待所有当前未提交的活动事务提交完毕,然后立即断开用户的连接一旦所有用户都断开连接,才进行关闭、卸载数据库,并终止例程 按TRANSACTIONAL选项关闭数据库,既能保证用户不会丢失当前工作的信息,又可尽快关闭数据库。如果按TRANSACTIONAL选项关闭数据库,则在下次启动数据库时不需要进行任何恢复操作关闭数据库IMMEDIATE(立即)选项 按IMMEDIATE选项关闭数据库,就能够在尽可能短的时间内关闭数据库 通常在如下几种情况下需要使用IMMEDIATE选项来关闭数据库 即将启动自动数据备份操作即将发生电力供应中断数据库本身或某个数据库应用发生异常,并且这时无法通知用户主动断开连接,或者用户根本无法执行断开连接操作。用IMMEDIATE选项关闭数据库,Oracle将执行如下操作 阻止任何用户创建新的会话连接,同时阻止当前连接的用户开始任何新的事务任何当前未提交的事务均被回退。Oracle不再等待用户主动断开连接,而是直接关闭、卸载数据库、并终止例程关闭数据库ABORT(中止)选项如果按上述3种选项都无法成功关闭数据库,就说明数据库存在严重的错误。这时只能使用ABORT选项来关闭数据库 用ABORT选项关闭数据库,Oracle将执行如下操作 阻止任何用户创建新的会话连接,同时阻止当前连接的用户开始任何新的事务立即结束当前正在执行SQL语句任何当前未提交的事务均不回退立即断开所有用户的连接,关闭、卸载数据库、并终止例程如果存在很多未提交的事务,则按IMMEDIATE选项关闭数据库仍然会耗费很长时间。这时如果需要快速关闭数据库,可以使用ABORT选项来关闭数据库按ABORT选项来关闭数据库时,由于当前未完成的事务并不会被回退,所以可能会丢失一部分信息,并对数据库的完整性造成损害,需要在下一次启动数据库时进行恢复,因此应当尽量避免以ABORT选项关闭数据库2. Oracle数据库归档模式 2.1 Oracle数据库归档模式概述重做日志文件是Oracle数据库中一种非常重要的日志文件,重做日志文件会记录数据库的任何操作 因为数据重做日志会记录数据库所有的修改动作,所以,当数据库频繁修改时,数据库的重做日志文件就会很庞大 为了便于日志文件的管理,Oracle 数据库默认情况下,在安装的时候,会有三个重做日志文件 当第一个重做日志文件达到一定容量时,就会停止写入,而会转向第二个日志文件(日志切换),第二个也满时,就会转向第三个 当第三个满时,就会往第一个日志文件中写入,在往第一个日志文件写入重做日志文件的时候,是否需要对原有的记录进行备份呢?根据用户需求的不同,就存在这两种处理模式不需要数据库进行自动备份,这种模式被称为非归档模式 当重做日志覆盖原有的重做日志文件之前,数据库会自动对原有的日志文件进行备份,这种操作模式被称为归档模式在这种模式下,第一个重做日志文件的内容会被拷贝到另外一个指定的目录下,这个目录叫做归档目录,拷贝的文件叫归档重做日志 如果数据库处于非归档模式,联机日志在切换时就会丢弃,而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档2.2 改变数据库的归档模式数据库的备份与恢复与数据库所处的归档模式有很大的关系非归档模式只能脱机备份与恢复 归档模式可以做联机备份与恢复当数据库处于MOUNT启动模式时,先检查归档模式,如果数据库运行在非归档模式,则可以使用ARCHIVELOG选项使其运行在归档模式 必须在数据库处于MOUNT启动模式时,才能通过ALTER DATABASE语句改变数据库的归档状态,否则会出错2.3 自动归档和手动归档 数据库归档模式可设置为自动归档或手动归档 当数据库处于归档模式下的手动归档状态时,会导致数据库挂起 当前日志写满,需要切换日志时,如果发现目标日志尚未归档,Oracle 会一直等待目标日志手动归档,直到可以切换为止 自动归档由Oracle在切换日志时,自动归档目标日志,因此不会导致成数据库挂起,所以如果数据库处于归档模式,则建议启用自动归档在Oracle 11g中,只要启动数据库的归档模式,Oracle就会启用自动归档2.4 查看归档日志信息通过V$ARCHIVE_DEST查看所有归档日志存储位置及其状态通过V$ARCHIVE_LOG显示历史归档日志信息3. 备份与恢复概述3.1 备份与恢复的概念当用户使用数据库时,要求数据库中的数据必须是可靠的、正确的 由于计算机系统的故障原因或人为的有意无意的原因都会影响到数据库的安全性,造成数据库被破坏或数据的丢失 在发生上述情况时,数据库管理员必须能快速地重新建立一个可用的数据库系统,并要尽量保证用户的数据与发生故障前完全一样,即数据库进行恢复 数据库的备份就是对数据库信息的一种操作系统备份 这些信息可能是数据库的物理结构文件(控制文件、数据文件、重做日志文件),也可能只是某一部分数据(如某个表空间、某个表,甚至某个表中的某些数据) 数据库恢复是基于数据库备份的 数据库恢复的方法取决于故障类型、备份方法实例恢复实例恢复主要用于数据库实例故障引起的数据库停机 介质恢复介质恢复主要用于介质故障引起的数据库文件的破坏3.2 备份与恢复的方法逻辑备份与恢复逻辑备份与恢复是指利用Oracle提供的实用工具软件,如导出导入工具(exp,imp)、数据泵导入导出工具(impdp,expdp)、装入器(SQL*LOADER),将数据库中的数据进行导出与导入脱机备份与恢复脱机备份与恢复(有时也称冷备份与恢复)是在关闭数据库的情况下对数据库文件的物理备份与恢复,它提供了最简单、最直接的方法脱机备份与恢复是在通过SHUTDOWN命令关闭数据库后进行的联机备份与恢复联机备份与恢复(有时也称热备份与恢复)是在数据库处于打开状态下对数据库进行的备份与恢复要进行联机备份与恢复,数据库必须处于归档模式下使用联机备份与恢复的好处是,当一个数据文件或表空间处于备份与恢复状态时,用户仍然可以访问其数据文件或表空间中的数据4. 逻辑备份与恢复 4.1 创建目录对象并授权通常使用数据泵来进行逻辑备份与恢复,在Oracle 10g中就引入了数据泵(Data Pump)技术,即expdp和impdp实用程序导出数据是指将数据库中的数据导出到一个操作系统文件中;导入数据是指将导出文件中的数据导入到数据库中4.2 使用EXPDP导出数据expdp scott/tiger PARFILE=d:\dump\par_emp_dept.txt导出方案导出方案是指将一个或多个方案的所有对象结构及数据导出到导出文件中 步骤:创建参数文件DIRECTORY=dirdp1DUMPFILE=scott.dmp LOGFILE=scott.log SCHEMAS=scott使用参数文件导出SCOTT方案 导出表空间导出表空间是指将一个或多个表空间的所有对象结构及数据导出到导出文件中 步骤:创建参数文件DIRECTORY=dirdp1DUMPFILE=users_tablespace.dmp LOGFILE=users_tablespace.log TABLESPACES=users导出users表空间 4.3 使用IMPDP导入数据导入表步骤:创建参数文件DIRECTORY=dirdp1DUMPFILE=tab_emp_dept.dmpLOGFILE=imp_table_emp.logTABLE_EXISTS_ACTION=TRUNCATETABLES=emp导入emp表 导入方案如果不小心删除了SCOTT方案,则可以从导出文件SCOTT.DMP中将其导入进行恢复 步骤:创建SCOTT用户,并给其授予删除之前具有的所有权限 创建参数文件DIRECTORY=dirdp1DUMPFILE=scott.dmp LOGFILE=imp_scott.log导入SCOTT方案 导入表空间如果不小心删除了users表空间,则可以从导出文件USERS_TABLESPACE.DMP文件中恢复 步骤:创建表空间users 创建参数文件DIRECTORY=dirdp1DUMPFILE=users_tablespace.dmp LOGFILE=users_tablespace.log TABLESPACES=users导入表空间 5. 数据库的脱机备份与恢复 脱机备份,即在非归档模式下的完全数据库的脱机备份,是在数据库处于“干净”关闭状态下进行的操作系统备份,是对于构成数据库的全部文件的备份脱机备份的文件参数文件网络连接文件控制文件数据文件联机重做日志文件脱机恢复只能恢复备份时刻的数据库的数据和状态,而不能恢复备份时刻到故障时刻之间的数据和状态由于脱机备份需要关闭数据库,不能保证数据库时刻运行,所以建议在夜间或休息时间进行脱机备份5.1 所需备份文件的位置与清单备份之前必须整理清楚备份文件的位置与清单,它是备份的依据参数文件参数文件被放在Oracle主目录中的database目录中网络连接文件网络连接文件被放在Oracle主目录的NETWORK\ADMIN目录中控制文件查询数据字典视图V$controlfile可以确认控制文件的位置与清单数据文件查询数据字典视图dba_data_files可以确认数据文件的位置与清单联机重做日志文件查询数据字典视图v$logfile可以确认联机重做日志文件的位置与清单5.2 脱机备份关闭数据库。以SYS用户、SYSDBA身份,在SQL*Plus环境中,以IMMEDIATE方式关闭数据库以便进行脱机备份创建备份文件的目录。在操作系统环境中,在合适的逻辑盘中创建合适的备份目录,以便保存要备份的文件备份所有文件。使用操作系统命令或工具,按照备份文件清单,将各种要备份的文件备份(复制)到相应的操作系统备份目录中备份完成后,以OPEN方式启动数据库,以便用户可以继续使用数据库5.3 故障模拟使用数据库,然后以IMMEDIATE方式关闭数据库 故障模拟。在Oracle的目录结构中删除(或重命名)一个数据文件,例如USERS01.DBF故障演示。以OPEN方式启动数据库,可以看到出现了错误5.4 脱机恢复以IMMEDIATE方式关闭故障数据库,以便复制备份文件 将备份文件复制到原来的位置,以便于恢复备份时刻的数据库的镜像恢复完成后,以OPEN方式启动数据库,以便用户可以继续使用数据库为了保持数据的同步和一致性,必须将所有备份文件(如果没有更改、删除过参数或网络连接,则可不复制参数文件、网络连接文件)全部复制到原来的位置,而并非是某个单独的文件本身脱机恢复只能恢复到备份时的情况,而备份后所做的所有操作都将被丢失;在做脱机备份前,请确认数据库处于非归档启动模式下 6. 数据库的联机备份与恢复 在 Oracle 中,联机备份要求在 ARCHIVELOG 模式中执行对数据库的操作 在这种场景中,应该在 ARCHIVELOG 模式下运行数据库,在该模式中,事务将继续运行,同时,备份处理也在继续 与脱机备份的区别在于,联机备份可以将数据库恢复到故障发生时的状态,而脱机备份只能将数据库恢复到备份时的状态6.1 联机备份用户管理的联机备份是指用户通过将表空间至于联机备份模式下,然后通过操作系统工具对文件进行复制备份,备份完成后再结束表空间的备份模式步骤使数据库处于ARCHIVELOG模式将要备份的表空间设为联机备份模式使用操作系统命令备份表空间的数据文件取消该表空间的联机备份模式6.2 故障模拟使用数据库,然后以IMMEDIATE方式关闭数据库故障模拟演示。使用操作系统命令删除USERS01.DBF,并以OPEN方式启动数据库出错数据字典v$recover_file会显示造成启动出错的文件信息,其中FILE#代表文件号,而ERROR列会显示出错原因。此处是文件不存在(FILE NOT FOUND)6.3 联机恢复将备份文件复制到原来的位置,以便于恢复备份时刻的数据库的镜像 使用recover命令恢复删除的文件,恢复完成后,以OPEN方式启动数据库,以便用户可以继续使用数据库 总结在每个数据库中,都有一个操作系统文件,被称为初始化服务器参数文件(SPFILE)数据库有3种启动模式分别是NOMOUNT、MOUNT和OPEN模式启动数据库的步骤是启动例程、装数据库、打开数据库关闭数据库的步骤是关闭数据库、卸载数据库、终止例程按IMMEDIATE选项关闭数据库,就能够在尽可能短的时间内关闭数据库数据库处于非归档模式,联机日志在切换时就会丢弃,而在归档模式下,当发生日志 切换的时候,被切换的日志会进行归档数据库归档模式可设置为自动归档或手动归档。当数据库处于归档模式下的手动归 档状态时,会导致数据库挂起数据库恢复的方法取决于故障类型、备份方法。一般来说,可以分成实例恢复或介 质恢复两种备份与恢复主要有3种方法:逻辑备份与恢复、脱机备份与恢复、联机备份与恢复逻辑备份与恢复是指利用Oracle提供的实用工具软件将数据库中的数据进行导出与导入脱机备份与恢复(有时也称冷备份与恢复)是在关闭数据库的情况下对数据库文件的物理备份与恢复联机备份与恢复(有时也称热备份与恢复)是在数据库处于打开状态下对数据库进行的备份与恢复


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值