Oracle数据库基础知识指导(5)

2019-03-15 20:42

oracle 数据库基础

保留所有文件的一个拷贝,就可以利用这份拷贝将整个数据库恢复到该时间点。 备份方法:

先用以下语句查看所有需要备份的文件:

SVRMGR> select * from v$datafile; (所有数据文件) SVRMGR> select * from v$controlfile(所有控制文件) SVRMGR> select * from v$logfile; (所有联机重做日志文件)

记录下所有的这些文件的路径和文件名,同时连同参数文件和密码文件一起备份到disk或tape

2) 联机执行数据库备份

在数据库不能经常shutdown的情况下,数据库处于Archivelog Mode 执行模式下才能够联机数据备份,对数据文件进行联机备份时,数据库系统必须暂停对数据文件的写入,但为保证交易可以正常进行,内存使用必然加重,所以为减少数据库系统的负担,在执行联机数据库备份时,Oracle只允许以Tablespace为单位一个个逐步进行。

? 在线备份数据文件

首先先了解要备份的表空间包含的数据文件有那些,通过以下命令确定: SVRMGR>select tablespace_name,file_name from dba_data_files;

备份一个表空间时,需要将该表空间的所有数据文件全部备份出来,否则毫无意义。 步骤:

SVRMGR>alter tablespace tablespace_name begin backup; (先将要备份的表空间设置成Backup Mode)

在操作系统环境下,将此tablespace 所属的所有数据文件通过拷贝命令复制到备份介质上。

SVRMGR>alter tablespace tablespace_name end backup; (备份完数据文件后,结束表空间的Backup Mode状态)

重复上述过程完成所有的表空间备份。千万注意备份的时间要尽量短,实际应用中可以写shell脚本将备份执行过程一气呵成。

? 在线备份控制文件

控制文件中包含了存储整个数据库所需的各个文件信息以及整个数据库结构等重要信息,数据库依据控制文件信息来操作整个数据库,所以需要进行控制文件的备份,除了同时设置多个控制文件以满足安全保证外,在每次修改完数据库结构以后,数据库管理员最好立刻执行一次控制文件的在线备份:

? 自行指定目录文件名,备份一个完全相同的控制文件:

SVRMGR>alter database backup controlfile >to 【/vol4/dow0/control.bak;

? 产生一个可重新生成控制文件的SQL程序文件,并置于存放Trace-file

18

oracle 数据库基础

的相同目录下,使用系统的内定文件名:

SVRMGR>alter database backup controlfile to trace;

所产生的SQL程序文件其文件名称如 “ zxin_ora_916.trc”,其中zxin为数据库名称,916为执行此Backup操作的服务进程ID号。

二、数据库恢复

启动数据库系统时,如果控制文件的Current Log Sequence Number与任一数据库的数据文件的Log Sequence Number不同的话,比那时该数据文件处于不同步状态,此时,数据库管理员必须使用以前备份的数据文件和重做日志文件,对数据库进行恢复,使数据库恢复到同步状态。 (1) 数据恢复过程:

整个数据库的数据恢复过程可以分为3个阶段进行: 1) 使用备份数据文件恢复损坏的数据文件 2) 自备份文件的时间点开始重做交易 3) 回滚未被提交的交易

数据库恢复可以分为完全恢复和不完全恢复,完全恢复可以利用数据备份文件、脱机重做日志文件和联机重做日志文件将数据恢复到数据库出问题的时间点,不完全恢复是由于脱机重做日志文件或联机重做日志文件中的某个关键文件被毁坏从而只能恢复到以前的某个时间点。 (2) 数据恢复方式:

1) 无归档日志的数据库恢复方式

无归档日志的数据库恢复方式是用于从数据库关闭做完全备份到数据库重新打开而在某个时间点数据库出现问题的这个时间段的的数据损失是可以接受的,或可以通过其他方式重做,而采用的数据恢复方式,其恢复方法也相对简单,恢复的时间也比较快,只要将最近一次执行全备份的所有文件拷贝回来即可。

执行步骤:

SVRMGR>shutdown abort(将数据库实例先关闭)

将上一次全备份的所有数据库文件(控制文件、重做日志文件、数据文件)全部恢复到原有目录,如果参数文件和密码文件未被破坏,则可不必恢复

SVRMGR>connect internal SVRMGR>startup

数据库重起以后即恢复正常使用。

如果无法将数据文件恢复到原来目录位置,可将其放置于其他目录下,只要在开放数

19

oracle 数据库基础

据库系统使用前,通过以下方式修改控制文件中的设置即可:

SVRMGR>startup mount

SVGMGR>alter database rename file

2>?/vol2/ncm.dat? to ?/vol4/ncm.dat?; SVRMGR>alter database open;

2) 有归档日志的数据库完全恢复方式

完全恢复可将数据库完全恢复到目前的问题发生时间点,完全恢复可以针对整个数据库或单独的表空间、数据文件,一般来说,应该优先考虑使用最简单而且不容易出问题的Full Database Recovery。只有在不能Shutdown数据库的情况下,才需要考虑执行Tablespace Recovery 与 Datafile Recovery

Full Database Recovery可以解决所有表空间和数据文件的问题,操作简单且不容易出错,但只能在mount启动模式下进行,因此得先Shutdown整个数据库。执行步骤如下:

SVRMGR>shutdown SVRMGR>connect internal SVRMGR>startup mount

SVRMGR>set autorecovery on #设置以默认选项回答 SVRMGR>recover database; #开始执行恢复 SVRMGR>alter database open; #启动数据库到打开状态

由于Full Database Recovery需要关闭数据库,为减少关闭数据库所带来的冲击,数据库管理员可以同时启动多个进程来进行恢复,可以在参数文件中设置:

parallel_max_servers=20 #Server最多启动20个process recovery_parallelism=5 #Recovery Process默认5个 或者通过执行:

SVRMGR>recover database parallel (degree 5);

当数据库必须维持联机状态无法shutdown的话,无法选择执行过程较为简单的Full Database Recovery,于是可以对单独的表空间或数据文件进行恢复,恢复步骤如下: SVRMGR>alter tablespace tablespace_name offline immediate; #将需要恢复的表空间脱机,并在指令中加上immediate避免checkpoint操作

用备份文件替代损坏的数据文件

将恢复过程所需的Archive Log File保存回原来设置的目录位置 执行整个表空间恢复:

SVRMGR>recover tablespace tablespace_name; 也可以恢复表空间的一个或多个数据文件: SVRMGR>recover datafile ?/vol2/datafile.dbf?; 使恢复完成的表空间联机:

20

oracle 数据库基础

SVRMGR>alter tablespace tablespace_name online; 3) 有归档日志的数据库不完全恢复方式

如果在完全恢复过程中发生问题的话,数据库管理员只能将数据库恢复到过去的某一个时间点,成为不完全恢复。 执行不完全恢复的注意事项

? 由于不完全恢复操作过程较为复杂,为保险起见,数据管理员应先在关闭数

据库的状态下做一次完全脱机备份后再开始

? 如果恢复到的时间点时刻的数据库结构和当前的不一样,则需要使用当时的

控制文件来做恢复

? 执行完不完全备份以后,为使现有的控制文件中的Log Sequence Number与

所有的Datafiles一致,必须执行alter database open resetlogs指令来打开数据库,将所有相关文件的Log Sequence Number重设为1

? Log Sequence Number 重设为1后,以前所有的Archive Log File都将失效,

所以应立即shutdown整个数据库再做一次完全数据库脱机备份。 执行不完全恢复的原因:

? 用户错误删除数据或Drop掉某个表,为救回数据,只要将数据恢复到错误发

生以前

? 执行完全恢复的过程中因某个重做日志文件坏掉而无法完成,数据库管理员

只要讲数据库恢复到前一个正常的重做日志文件的起点 ? 联机使用的所有控制文件都不可用时 ? 一个含有活动回滚段的数据文件毁坏时 ? 必须使用备份的控制文件来进行恢复时 执行不完全恢复的方法:

? Cancel-Based Recovery:恢复过程中当进行到过去的某个重做日志文件的交

易完成之后,在交互问答中敲入【CANCEL】命令结束恢复: SVRMGR>connect internal SVRMGR>startup mount

SVRMGR>recover database until cancle; 或者指定一个控制文件: SVRMGR>recover database until cancel

2>uning backup file ?/vol1/control01?;

在接下去的交互式问答过程中,依次执行重做日志文件的交易,直到用户打入 【CALCEL】时结束不完全恢复

恢复完以后用以下指令同步控制文件后数据文件的:Log Sequence Number SVRMGR>alter database open resetlogs;\\

? Time-Based Recovery:使恢复进行到过去的某个指定的时间点:

21

oracle 数据库基础

SVRMGR>connect internal SVRMGR>startup mount SVRMGR>set autorecovery on;

SVRMGR>recover database until time ?2001-08-27:18:27:08? 2>uning backup file ?/vol1/control01?;

恢复完以后用以下指令同步控制文件后数据文件的:Log Sequence Number

SVRMGR>alter database open resetlogs;\\

? Change-Based Recovery:使恢复进行到过去某个特别指定System Change

Number时间点便结束恢复,由于极少用到,所以不再详细介绍。

第五部分 Oracle数据库SQL*Net

SQL*Net是基于Oracle特有的Transparent Network Substrate(简称TNS)技术发展出来的网络存取中介软件,使用不同的网络通讯协议(如TCP/IP,SPX/IPX与DECNet等),SQL*Net也可以处理不同的数据格式和国家语言字码间的转换。 客户/服务器结构系统配置

在客户/服务器结构下,通信的两端不论是客户端或服务器端都需配置SQL*Net中介软件,服务器端在数据库主机上还需启动一个侦听程序(listener),以便能够不断侦听所有来自网络各地的客户端联机请求,侦听程序处理客户端联机请求的做法可以有以下类型:

? 专用服务器

当侦听程序受到一个客户端联机请求时,侦听程序新启动一个专用服务器程序负责服务用户程序的各项要求,并将执行结果传回给用户程序。整个通信过程,专用服务器程序与用户程序通过SQL*Net来对话。 ? 多线程服务器

当侦听程序受到一个客户端联机请求时,侦听程序将用户程序连接到一个已预先启动的共享调度程序(Shared Dispatcher)上,此共享调度程序负责接受用户程序的各项要求,并将之放入要求队列,共享服务器从队列中取出数据加以执行,然后将执行结果放至响应队列中,同享调度程序再自响应队列中取得数据后传回给客户端,整个通信过程,专用服务器程序与用户程序通过SQL*Net来对话。

侦听程序配置: 侦听程序相关文件包括:

$ORACLE_HOME/bin/lsnrctl 侦听程序文件 $ORACLE_HOME/network/admin/listener.ora

22

侦听程序组态设置文件


Oracle数据库基础知识指导(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:十八大和新党章249题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: