数据库课程设计总结:关于Oracle11g的使用

来源:互联网 发布:java中图书管理系统 编辑:程序博客网 时间:2024/05/16 12:05

经过那次课程设计后,我总结了一下Oracle11g的使用:
本章将介绍 Oracle11g 数据库备份与恢复的重要性和概念,用大量实例说明用于数据库备份与恢复的技术,包括数据库的冷备份方法,热备份方法,完全恢复方法,不完全恢复方法及数据库逻辑备份和恢复方法。

数据库保护机制

数据库常见故障类型

数据库在运行过程中可能会出现多种类型的故障,主要包括以下六种:

语句失败:

独的SQL语句执行失败有很多种原因,DBA并不需要对所有这些出错原因负责。但是即便如此,DBA也必须有处理这些错误的准备。SQL语句失败的常见原因之一是无效的数据,比如格式不符合要求或违反约束限制。第二种与DBA无关的语句类错误是应用程序中的逻辑错误。程序员写的代码可能在某些情况下在数据库中执行良好。但在某种特定的情况下出现逻辑错误。

进程故障:

进程故障是指用户进程、服务器进程或数据库后台进程由于某种原因而意外终止,此时该进程将无法使用,但不影响其他进程的运行。Oracle的后台进程PMON能够自动监测并恢复故障进程。如果该进程无法恢复,则需要DBA关闭并重新启动数据库实例。

用户错误:

用户错误是指用户在使用数据库时产生的错误。例如,用户意外删除某个表或表中的数据。用户错误无法由Oracle 自动进行恢复,管理员可以使用逻辑备份来恢复。

实例失败 :

实例失败是指由于某种原因导致数据库实例无法正常工作。例如,突然断电导致数据库服务器立即关闭、数据库服务器硬件故障导致操作系统无法运行等。实例失败时,需要进行实例重新启动,在实例重新启动的过程中,数据库后台进程SMON 会自动对实例进行恢复。

网络故障:

网络故障是指由于通信软件或硬件故障,导致应用程序或用户与数据库服务器之间的通信中断。数据库的后台进程PMON 将自动监测并处理意外中断的用户进程和服务器进程。

介质故障 :

介质故障是指由于各种原因引起的数据库数据文件、控制文件或重做日志文件的损坏,导致系统无法正常运行。例如,磁盘损坏导致文件系统被破坏。介质故障是数据库备份与恢复中主要关心的故障类型,需要管理员提前做好数据库的备份,否则将导致数据库无法恢复。

Oracle数据库保护机制

数据库的保护机制主要是数据库的备份,当计算机的软硬件发生故障时,利用备份进行数据库恢复,以恢复破坏的数据库文件或控制文件或其他文件。 这里包括控制文件的备份,它一般用于存储数据库物理结构的状态,控制文件中的某些状态信息在实例恢复和介质恢复期间用于引导Oracle数据库。其次就是事务日志,Oracle数据库提供事务日志,用以记录数据库中所进行的各种操作,包括修改、调整参数等,在数据库内部建立一个所有作业的完整记录。
数据库备份就是对数据库中部分或全部数据进行复制,形成副本,存放到一个相对独立的设备上,如磁盘、磁带,以备将来数据库出现故障时使用。

  • 备份方式
    • 物理备份
      • 脱机备份
      • 联机备份
    • 逻辑备份
  • 备份规模
    • 物理备份
      • 完全备份
      • 部分备份
  • 归档模式
    • 归档备份
    • 非归档备份

数据库备份原则

Oracle数据库备份时最好遵循以下备份原则:
1.归档日志文件目的地最好不要与数据库文件或联机重做日志文件存储在同一个物理磁盘设备上。如果数据库文件和当前激活重做日志文件丢失,可使用联机备份或脱机备份,然后可以继续安全操作。
2.如果数据库文件备份到磁盘上,应使用单独磁盘或磁盘组保存数据文件的备份拷贝。备份到磁盘上通常可以在较短时间内恢复。
3.应保持控制文件的多个拷贝,控制文件的拷贝应置于不同磁盘控制器下的不同磁盘设备上。增加控制文件可以先关闭数据库,拷贝控制文件,改变服务器参数文件的参数CONTROL_FILES,再重新启动数据库即可。
4.联机日志文件应为多个,每个组至少应保持两个成员。日志组的两个成员不应保存在同一个物理设备上,因为这将削弱多重日志文件的作用。
5.保持归档重做日志文件的多个拷贝,在磁盘和磁带上都保留备份拷贝。使用服务器参数文件中的LOG_ARCHIVE_DUPLEX_DEST和LOG_ARCHIVE_MIN_SUCCEED_DEST参数,Oracle会自动双向归档日志文件。6.通过在磁盘上保存最小备份和数据库文件向前回滚所需的所有归档重做日志文件,在许多情况下可以使得从备份中向前回滚数据库或数据库文件的过程简化和加速。
7.增加、重命名、删除日志文件和数据文件改变数据库结构,控制文件都应备份,因为控制文件存放数据库的模式结构。此外,增加数据文件后也要备份。
8.若企业有多个Oracle数据库,则应使用具有恢复目录的Oracle恢复管理器。这将使用户备份和恢复过程中的错误引起的风险达到最小。
9.在刚建立数据库时,应该立即进行数据库的完全备份。

#数据库归档方式配置
Oracle数据库安装并创建数据库以后,缺省是非归档方式。根据具体情况来决定是否改为归档方式。为了安全最好是改为归档方式。

设置归档模式

假设数据库名为orcl,默认安装运行在非归档模式下,转换成归档模式的步骤如下:
(1)修改初始化参数app\product\11.2.0\dbhome_1\Database\INITorcl.ora参数文件。

归档日志的两种存放方式公用参数:  log_archive_max_processes = 3           --设置归档进程个数,最大10,可用默认值;  log_Archive_Format = Arch_%t_%s.%r.Dat           --自动形成的归档文件名;%s -- Archvied redo file 的文件序列号,视图V$log中的序列号;%t -- 归档线程号=Oracle实例号。若启动一个Oracle实例,则%t=1;%r — ResetlogsID号,视图v$archived_log中的Resetlogs_ID。归档日志异地存放方式:log_archive_dest_1 = 'LOCATION=D:\app\sample'        -- 归档日志第一存放目录;log_archive_dest_2 = 'LOCATION=E:\app\sample‘       -- 归档日志第二存放目录;  log_archive_dest_n — n=1-31存档位置,1、2已设置。n与下面参数一一对应; log_archive_dest_state_n = DEFER — 指定位置失效。默认ENABLE有效归档日志镜像存放方式:      log_archive_dest = 'D:\app\sample'                -- 归档日志存储目录;      log_archive_duplex_dest = 'E:\app\sample'                -- 镜像归档日志存储目录

⑵ 关闭数据库
– Shutdown Immediate
⑶ 把Pfile转换成Spfile
– Create Spfile From Pfile;
⑷ 启动实例并安装数据库
– Startup Mount
⑸ 启动归档进程
– Alter Database Archivelog
⑹ 打开数据库
– Alter Database Open

查询归档模式数据库信息

1、查询数据库运行方式
命令:SQL> archive log list
2、查询归档信息
使用ARCHIVE LOG LIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息。
显示日志操作模式
SELECT name,log_mode FROM v$database;

显示归档日志信息
Select name, swquence#, first_change# FROM v$archived_log;

显示日志历史信息
SELECT * FROM v$loghist;

显示归档进程信息
SELECT * FROM v$archive_processes;

数据库物理备份与恢复

物理备份

物理备份是拷贝数据库文件而不是其逻辑内容。Oracle支持两种不同类型的物理备份:脱机备份(也称冷备份)和联机备份(也称热备份)。
脱机备份在数据库已经正常关闭的情况进行。
联机备份是指数据库可能要求24小时运行,而且随时会对数据进行操作。
联机备份过程具备强有力功能的原因有两个:
第一,提供了完全的时间点(point-in-time)恢复。
第二,在文件系统备份时允许数据库保持打开状态。

脱机物理备份

脱机备份又称冷备份。冷备份是数据库文件的物理备份,需要在数据库关闭状态下进行。通常在数据库通过一个shutdown normal或shutdown immediate命令正常关闭后进行。当数据库关闭时,其使用的各个文件都可以进行备份。这些文件构成一个数据库关闭时的一个完整映像。冷备份要备份文件包括所有数据文件、所有控制文件、所有联机重做日志、init.ora文件和SPFILE文件(可选)。在磁盘空间容许的情况下,首先将这些文件复制到磁盘上,然后在空闲时候将其备份到其他设备上,如磁带或光盘。
这里写图片描述

联机物理备份

联机备份又可称为热备份或ARCHIVELOG备份。联机备份要求数据库运行在ARCHIVELOG方式下。
Oracle是以循环方式写联机重做日志文件,写满第一个日志后,开始写第二个,依次类推。当最后一个联机重做日志文件写满后,LGWR(Log Writer)后台进程开始重新向第一个文件写入内容。当Oracle运行在ARCHIVELOG方式时,ARCH后台进程重写重做日志文件前将每个重做日志文件做一份拷贝。
进行联机备份可以使用PL/SQL语句也可以使用备份向导。但都要求数据库运行在ARCHIVELOG方式下。

物理备份的恢复

介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。文件错误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。这种状态下的数据库都是不一致的,需要DBA手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行的归档方式和备份方式。

完全介质恢复可恢复全部丢失的修改。
一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。

不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。
重构受损的数据库,使其恢复介质故障前或用户出错之前的一个事务一致性状态。不完全介质恢复有不同类型的使用,决定于需要不完全介质恢复的情况,有下列类型:基于撤消、基于时间和基于修改的不完全恢复。

非归档模式下数据库的恢复

非归档模式下数据库的恢复主要指利用非归档模式下的冷备份恢复数据库。非归档模式下的数据库恢复是不完全恢复,只能将数据库恢复到最近一次完全冷备份的状态。

步骤:
1.关闭数据库。
2.SHUTDOWN IMMEDIATE。
3.将备份的所有数据文件、控制文件、联机重做日志文件还原到原来所在的位置。
4.重新启动数据库。
5.STARTUP

归档模式下数据库的完全恢复

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

归档模式下数据库的完全恢复分为三个级别,分别是:
- 数据库级完全恢复,主要应用于所有或多数数据文件损坏的恢复;
- 表空间级完全恢复,对指定表空间中的数据文件进行恢复;
- 数据文件级完全恢复,是针对特定的数据文件进行恢复。

归档模式下数据库完全恢复的基本语法:
RECOVER [AUTOMATIC]
[FROM ‘location’] [DATABASE|TABLESPACE tspname |DATAFILE dfname];
参数说明
AUTOMATIC:进行自动恢复,不需要DBA 提供重做日志文件名称。
location : 制定归档重做日志文件的位置,默认为数据库默认的归档路径。

0 0
原创粉丝点击