金沙澳门官网网址-澳门金沙官网登录

金沙澳门官网网址拥有大量的原创内容,澳门金沙官网登录提供最权威、快速、全面、专业的报道,所以金沙澳门官网网址注册送彩金就相当于直接送现金了,享受最尊贵的贵宾服务。

Oracle数据库使用几种结构来保护数据,该数据库

2020-03-29 10:20栏目:金沙澳门官网
TAG:

一、总结

1、还原(restore) 还原(restore)是指从RMAN所创建的备份中还原文件。这些还原文件可以通过增量备份以及重做等进行恢复。在前面练习中解释了RMAN将备份控制文件和归档重做日志所有数据块,对于数据文件则只备份使用过的数据块或者只备份根据定义的增量级别的最近一次备份以来所更改过的数据块。当使用RMAN还原文件后,这个数据文件都会与该文件备份时的原始状态一样,对于控制文件和归档重做日志,则需要对所有的数据块进行还原。
如果使用“RMAN备份(练习21.22.23)中RMAN的部署”的增量备份策略,那么restore命令将只还原基准文件,例如:在每个星期天进行增量级别0的备份而每个星期进行增量级别为1和2的备份,则RMAN将还原最近一次级别为0的备份,后续的增量备份需要在恢复(recover)命令中应用。
Restore命令使用的RMAN基准备份可以是以下这些数据文件备份类型的一种:映像拷贝、完全备份以及增量级别为0的备份。具体选择哪种数据文件基准很大程度上决定于文件的创建时间以及需要恢复到的时间。当还原数据文件时,RMAN可以还原一个单个数据文件、一个或多个数据表空间的所有数据文件,或者数据库中的所有数据文件。当指定RMAN还原一个数据文件时,RMAN将会寻找最适合的备份或拷贝来还原该数据文件。
当还原数据库文件时,数据库应该处于什么状态?下表提供了快速解答。其基本原则是:当一个文件正在还原时,该数据库文件不能被实例使用,因为当一个数据库文件正在被还原时,该实例不能对其进行写入操作。在任何数据库文件还原期间,目标数据库的实例必须已经启动,当从备份集中还原任何非系统数据文件时,为了确保成功还原,这些数据文件必须处于脱机状态。如果还原任何系统表空间文件,则数据库必须以加载模式启动。当还原一个控制文件时,实例必须以非加载模式启动,归档日志在目标数据库加载或打开时都可以进行还原。

Oracle是关系型数据库管理系统,它功能强大、性能卓越,在当今大型数据库管理系统中占有重要地位。在正常情况下,Oracle数据库会保证数据的安全、稳定,为用户提供正确的数据,但由于计算机系统的故障(硬件故障、软件故障、网络故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失,整个系统都将处于瘫痪状态。因此,如何保证Oracle数据库的安全就成为整个系统安全的重要组成部分。

如果数据库处于一个恢复挂起的状态,并且对数据库做脱机和分离的操作,报出数据库文件不可访问的错误,可能是因为数据库的数据文件和日志文件在数据库正常连接的情况下,文件所在的磁盘脱机了,导致数据库在一段时间内找不到数据库的文件,就把数据库置于一个恢复挂起的状态了,所以磁盘联机后,重启数据库服务,重新去找数据文件和日志文件找到了,数据库就可用了。

 

Oracle数据库的安全策略包括数据库的备份和恢复、用户角色管理。

二、处理步骤

数据库文件

数据库状态

任何非系统数据文件

加载或者打开,但这些文件或表空间必须脱机

系统数据文件

加载

数据库(所有数据文件)

加载

归档日志

非加载、加载或打开

控制文件

非加载

一、数据库备份所使用的结构

1、数据库恢复挂起截图

为什么RMAN要求数据库在数据文件和归档日志还原期间处于加载状态?因为RMAN备份和数据库结构信息保存在控制文件中,而且RMAN需要访问它们。
2、恢复(recover) 一旦数据文件还原以后,就可以进行恢复(recover)命令将数据库回退到以前的状态。RMAN将使用来自恢复目录或目标控制文件的信息来确定需要哪种增量备份以及应用哪些重做日志。
RMAN应用恢复操作需要经过四个独立的阶段,分别是:
1、 更新目标控制文件来反映存储在恢复目录中最新的信息;
2、 应用所有可以被应用的增量备份;
3、 检查所有还原的数据文件是否存在以及是否可以恢复。不应该出现的数据文件将从数据库删除。在磁盘上查找需要的重做日志,应用并将数据库回退;
4、 磁盘上不存在的或需要应用恢复重做日志文件都将还原到磁盘上,并应用到数据文件上。
每个增量备份都建立在前一个增量备份之上,所以只需要更改替换的数据块。如果可以这样操作,则RMAN会选择还原增量备份,而不是从归档日志文件中应用重做操作(应用增量备份比应用重做操作速度快)。一旦没有更多的增量备份可以应用,则需要应用重做操作将数据库文件返回到恢复的状态。恢复操作一直持续到所有的重做信息都应用到指定的数据文件的停止点上。默认情况下,RMAN执行完全恢复(所有数据文件都回退到当前联机重做日志文件中最后一次改变的时间),如果控制文件还原了,则RMAN不能应用联机重做文件,也就不能进行不完全恢复。
为了便于理解还原、恢复和增量备份,参看下图,该图描述了前面所讨论的增量备份策略,假设在星期六早晨级别为2的增量备份执行之前有一个数据文件丢了,当RMAN还原并恢复该丢失的数据文件时,需要执行下列步骤进行完全恢复:

Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。

2、出现恢复挂起的原因

1、 还原数据文件  应用备份集120,RMAN可以从星期天进行的整个数据库增量级别为0的备份中还原整个丢失的数据文件。这个基准备份包括了该数据文件所使用过的数据块,该级别为0的备份作为后续还原工作的基准;
2、 恢复数据文件 一旦通过了基准备份还原了数据文件,RMAN将使用适当的增量备份来恢复该数据文件。第一个应用的增量备份是备份集124(星期四的增量备份,级别为1)。备份集121、122和123并不需要,因为这些备份集中所有更改过的数据块都包含在备份集124中。然后,RMAN发现备份集125包含的数据块可以应用到这个已经还原的数据文件上,并能使其恢复到当前状态。如果备份集125中没有该数据文件的任何更改过的数据块,则该备份集不能应用,接下来,RMAN发现不再需要其他的增量备份,则查找需要的重做日志文件;如果这些文件在磁盘上,则从磁盘上读取;如果没有找到任何归档文件,则RMAN将查找包含所需要重做文件的映像拷贝或备份集,并将其还原到磁盘上。还原完成以后,通过当前联机重做日志文件,这些文件就可以完全恢复了。图片 1

1.数据库后备是由构成Oracle数据库的物理文件的操作系统后备所组成。当介质故障时进行数据库恢复,利用后备文件恢复毁坏的数据文件或控制文件。

我这里的数据库出现这种原因,是因为我的数据库数据文件和日志文件是在存储上放着的,当时存储升级微码,所以暂时把该机器上挂载的存储盘脱机了,存储微码升级好后,磁盘再次联机,重启机器,数据库服务也自动重启了,登录SSMS客户端,查看数据库的状态就是恢复挂起状态了。

(图1)
默认情况下,RMAN将会把所有数据文件还原到文件备份时的初始位置,例如RMAN将把D:oraclePRACTICEusers01.dbf还原到目录D:oraclePRACTICE,文件名为users01.dbf。归档日志在默认情况下还原到归档转储目的的路径下,控制文件则还原到数据库初始化文件(inin.ora)中的CONTROL_FILES参数规定的路径下。可以在运行块中通过set属性来更改还原文件的位置,set属性将在一个运行块中为命令定义数值,set属性也可以指定恢复的时间点以及归档日志文件被还原以及恢复期间读取的位置。下表提供了运行块set属性用于还原和恢复选项的快速一览表,注意,set命令与运行块set属性不同,在RMAN提示符下的set命令可以在表空间时间点恢复和复制数据库命令中定义文件名和其他事项。

2.每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与 Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。归档(离线)日志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在线日志归档文件。归档的在线日志文件被唯一标识并合并成归档日志。

3、处理步骤

 

3.回滚段用于存储正在进行的事务(为未提交的事务)所修改值的老值,该信息在数据库恢复过程中用于撤消任何非提交的修改。

尝试restore数据库失败,提示数据库是离线状态

Set关键字

描 述

为数据文件设置新名称

为特定的数据文件指定新的文件名和路径,如果没有定义该项,则RMAN将文件还原到当前的路径和文件名

设置归档日志路径

为还原和恢复命令的归档日志文件定义不同的路径,如果没有定义该项,RMAN使用目标init.ora文件定义的第一个归档存储目的的路径作为定义

Set until

为恢复定义停止点,不完全恢复可以完成到特定时间、日志序列号或者SCN。如果没有定义该项,RMAN将还原基准备份,并用增量备份和重做将所有数据文件恢复到当前状态

4.控制文件,一般用于存储数据库的物理结构的状态。控制文件中某些状态信息在实例恢复和介质恢复期间用于引导Oracle。

脚本:restore database run with recovery

当使用RMAN进行还原和恢复时,环境变量起了重要的作用,有时需要设置环境变量使会话的字符集和数据库的字符集保持一致,设置NLS_LANG环境变量使它与目标数据库的字符集匹配。如果在RMAN的LIST、REPORT、SET UNTIL等命令中要使用特定的时间,则应该设置NLS_DATE环境变量与命令的日期字符串匹配,也可以在脚本中使用TO_DATE函数指向特定的日期。

二、在线日志

对数据库做脱机操作,报错

1 WIN>set NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS;
2 WIN>set NLS_LAND=AMERICAN_AMERICAN.WE8ISO8859P1;

一个Oracle数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志文件(online redo log file)填入日志项(redo entry),日志项记录的数据用于重构对数据库所作的全部修改。

注: 如果能对数据库脱机成功,再次联机也有可能解决,要看数据库是什么原因导致数据库恢复挂起的。

以下练习将使用练习21中的备份脚本生成两个新的备份,通过使用这些备份,RMAN可以恢复PRACTICE数据库。

三、归档日志

对数据库做分离操作,也报错同样的错误

 

Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。其对数据库备份和恢复有下列用处:

注: 以上对数据库脱机和分离都报出数据库文件不可访问的错误,查看磁盘文件,发现文件是存在的

练习27:还原整个数据库

1.数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。

迫不得已,所以对数据库服务做了重启

当遇到灾难性事故,丢失了数据库中所有的数据文件,但控制文件和联机重做日志却完整无缺,那么如何使用RMAN备份从这样的失效中恢复呢?下面这个练习将讲述如何进行RMAN还原与恢复。在该练习中,要执行两个整体数据库备份,然后在PRACTICE数据库中删除所有数据文件,通过整体数据库备份,可以还原并恢复PRACTICE数据库的所有数据文件。
步骤一:执行整个数据库备份 用练习21中生成的脚本创建两个PRACTICE数据库备份,第一个进行的备份是一个整体数据库增量级别为0的备份,其中包含了当前的控制文件。在进行第二个备份之前,打开一个SQL*Plus会话更改数据库中一个表的数据。提交该更改后,返回到RMAN提示符下,运行第二个备份操作。第二个备份是整理数据库增量级别为1的备份,只拷贝自刚才级别为0的备份以来更改过的数据块,输入如下命令:

2.在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。

注: 重启数据库服务后,发现数据库好了,可以用了,大功告成!

1 WIN>rman;
2 RMAN>connect target sys/practice@practice
3 RMAN>connect catllog rman1010/rman@rcat
4 RMAN>@D:oracleCODEchap12b_whole_inc0.rcv

数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式。数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档。如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。

总结

图片 2

四、Oracle的备份特性

以上所述是小编给大家介绍的SQLServer数据库处于恢复挂起状态的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(图3)

Oracle备份包括逻辑备份和物理备份。

1 RMAN>host;
2 WIN>sqlplus /nolog
3 SQL>connect system/system@practice
4 SQL>DELETE FROM tina.date_log WHERE create_date > SYSDATE;
5 SQL>INSERT INTO tina.date_log VALUES (SYSDATE + (365*14));
6 SQL>COMMIT;
7 SQL>exit;
8 WIN>exit
9 RMAN>@D:oracleCODEchap12b_whole_inc1.rcv;

1.逻辑备份

图片 3

数据库的逻辑备份包含读一个数据库记录集和将记录集写入文件。

(图5)

(1)输出(Export)输出可以是整个数据库、指定用户或指定表。

图片 4

(2)输入(Import)输入将输出建立的二进制转储文件读入并执行其命令。

(图7)

2.物理备份

当这些命令运行结束时,将得到一下备份和数据,这些备份片将位于D:oracleCODEchap12目录下:

物理备份包含拷贝构成数据库的文件而不管其逻辑内容。

  • 备份:增量级别0  第一个备份是运行练习21名为b_whole_inc0的备份文件得到的。这个备份为PRACTICE数据库生成一个独立的备份集,其备份片包含了所有数据文件中使用过的数据库和当前的控制文件。这个备份集的备份集号为738和739,备份片的键值为742和743;
  • 表数据 当第一个备份完成后,TINA.DATE_LOG表将做如下修改,在create-date列中插入一行表示未来14年日期的记录,表数据的更改引起了TOOLS表空间数据文件中数据块的改变,被更改的数据块将在后续的增量备份中选中;
  • 备份:增量级别1 第二个备份是运行练习21名为b_whole_inc1的备份脚本文件得到,这个备份生成一个独立的备份集,其备份片包含了所有数据文件使用过的数据块和自上次备份以来更改过的当前控制文件。TINA.DATE_LOG表更改过的数据块写入到这个备份中,这个备份集的编号为759和760,备份片键值为763和764。第二个备份是运行练习21名为b_whole_inc1的备份脚本文件得到,这个备份生成一个独立的备份集,其备份片包含了所有数据文件使用过的数据块和自上次备份以来更改过的当前控制文件。TINA.DATE_LOG表更改过的数据块写入到这个备份中,这个备份集的编号为759和760,备份片键值为763和764。

Oracle支持两种不同类型的物理文件备份:脱机备份(offline backup)和联机备份(online backup)。

步骤二:模拟PRACTICE失效 在操作系统中从D:oraclePRACTICE目录下删除除联机重做日志和控制文件外所有的数据文件。在Window系统中需要关闭数据库才能够删除数据库文件,删除数据文件的方式可以使用命令行删除或者直接在窗口浏览器选中文件删除。 

(1) 脱机备份

1 WIN>rman;
2 RMAN>connect target system/system@practice
3 RMAN>connect catalog rman1010/rman@rcat
4 RMAN>shutdown abort
5 RMAN>host;
6 WIN>del D:oraclePRACTICE*.dbf
7 RMAN>exit;

脱机备份用在当数据库已正常关闭,数据库处于"offline"时,要备份下列文件:

图片 5

所有数据文件

(图9)

所有控制文件

既然数据库文件已经删除,那么在启动数据库时就会发生错误,当实例启动后并加载了控制文件后,该实例将查找编号为1的数据文件(system01.dbf)。因为该文件不存在,所有RMAN将显示一个错误消息,这个消息与视图用Sql*Plus启动数据库得到的消息是一样的:

所有联机日志

图片 6

init.ora(可选的)

(图11)
此时,实例启动了,数据库控制文件加载了,但数据库没有打开;

(2) 联机备份

步骤三:还原与恢复数据库 在RMAN提示符下,列出步骤一中生成的两个备份,使用tag和时间(最近1天)选项,执行下列list命令列出两个增量备份:

联机备份可用来备份任何运作在ARCHIVELOG方式下的数据库。在这种方式下,联机日志被归档,在数据库内部建立一个所有作业的完整记录。

1 RMAN>list backup completed after 'sysdate-1' tag=WHOLE_INC0;
2 RMAN>list backup completed after 'sysdate-1' tag=WHOLE_INC1;

联机备份过程具备强有力的功能。第一,提供了完全的时间点(point-in-time)恢复。第二,在文件系统备份时允许数据库保持打开状态。

图片 7

备份方式特性比较

(图13)

 

图片 8

五、Oracle数据库的角色管理

(图15)

Oracle数据库系统在利用角色管理数据库安全性方面采取的基本措施有:

请注意列出的备份级别、set数以及备份片的名称。应用RMAN,使用以下脚本还原并恢复PRACTICE数据库:

通过验证用户名称和口令,防止非Oracle用户注册到Oracle数据库,对数据库进行非法存取操作。

1 #Restore and Recover Database using RMAN
2 shutdown abort;
3 startup mount;
4 run {
5 allocate channel d1 type disk;
6 restore database;
7 recover database;
8 }

授予用户一定的权限,限制用户操纵数据库的权力。

9 alter database open;

授予用户对数据库实体的存取执行权限,阻止用户访问非授权数据。

恢复脚本内容不多,但每一行都完成许多工作。下面将详细解释这些命令,在还原整个数据库时,数据库必须处于没有打开的状态。Shutdown abort是有意义的,因为磁盘上不再有数据文件:

提供数据库实体存取审计机制,使数据库管理员可以监视数据库中数据的存取情况和系统资源的使用情况。

  • Run restore还原与恢复recover命令必须位于运行块之内,该块内的所有命令都在功能上加以分组;
  • Allocate 分配的通道将在restore命令中读取备份片文件并重新生成数据文件,在应用增量备份和重做进行恢复数据文件时也需要这个通道;
  • Restore 通过RMAN目录可以知道整个数据库有哪些文件存在,通过这个信息,restore database命令会找到最新的基准备份(完全备份、映像拷贝或级别为0的增量备份);
  • Recover 当数据文件还原之后,recover命令将寻找并应用任何后续的增量备份。备份片中的数据块将被写入到已经从基准备份还原的数据文件中,因为这个练习场景中包括了级别为0的备份和级别为1的备份,所以级别为1的备份将被用于回退包含在其备份片中的更改的数据块。当应用了增量备份后,需要进行重做应用,以便使数据文件返回到当前包含有控制文件的状态。RMAN将将寻找并应用(如果需要)所需要的归档日志文件,然后使用当前使用的联机重做日志文件。很可能第一次恢复时只需要当前联机重做日志文件,这是因为PRACTICE数据库上没有发生更多的动作。

采用视图机制,限制存取基表的行和列集合。

当RMAN完成还原与恢复后,RMAN将释放d1磁盘通道,最后就可以为用户打开数据库。运行前面讲述脚本中的命令,并观察RMAN如何工作,下面是RMAN命令的输出:

六、Oracle数据库的安全策略

图片 9

由于Oracle数据库备份有三种方式,每种方式具有不同的恢复特性,因此应集成数据库与文件系统备份,集成逻辑备份和物理备份。

(图17)

(一)、备份策略

  • channel  d1:sid=160 devtype=DISK 当分配了一种磁盘类型的通道时,该通道将产生一个连续目标数据库实例的连接,当连接在目标实例上获得一个目标标识(SID),这个标识可以通通过SQL*Plus连接后在v$session中查询得到;
  • db_PRACTICE_25_1_737458836备份集单一备份片包含了还原需要的所有数据块,这个操作系统文件将被查询、读取,并用于重新构建每一个数据文件;
  • resotre complete 基准备份完毕后,完成还原;
  • db_PRACTICE_27_1_737460224 通过通道d1从该文件中读取数据块并应用到刚才还原的数据文件中;
  • restore complete 当第二个备份集应用后,RMAN将会通知这个增量数据块的还原工作已经完成,一旦还原完成,这个数据文件将会拥有与b_whole_inc1备份集脚本运行时一样的数据;
  • starting media recovery 当所有最近的增量备份应用后,需要进行重做以将数据库恢复到知道的恢复停止的状态。将要读取重做日志,并应用到还原的数据文件上,重做工作包括前滚数据库修改操作,回退没有提交的修改操作。
  • media recovery complete  当介质恢复将数据库的当前状态输入到控制文件中时,RMAN将会通知:数据库已经准备好,可以打开。

在操作系统级别,使用大容量磁盘阵列,通过磁盘映像技术使每一个数据库文件自动分布于每个物理磁盘。这样,当某个磁盘出现物理损坏时,操作系统会自动引发映像磁盘来取代失效的磁盘,保证数据库的正常运行。

步骤四:验证还原与恢复的数据库 检查还原的数据文件是否存在于操作系统上,在操作系统提示符下查找D:oraclePRACTICE目录下的内容。其中的数据文件应该与步骤而中删除这些数据文件之前一样。打开一个SQL*Plus会话,检查TINA.TIME_LOG表,在表中查找最大的create_date以确认最新的修改是否存在。

在多个不同的物理磁盘上保持多个控制文件的备份。控制文件在数据库恢复期间用于引导Oracle,因此保持多个控制文件的备份,可以确保在出现磁盘故障后,能有可用的控制文件用于数据库恢复。

1 SQL>ALTER SESSION SET nls_date_format='yyyy-MM-dd HH24:mi:ss';
2 SQL>SELECT max(create_date) FROM tina.date_log;

使数据库运行在ARCHIVELOG(归档)方式下,归档日志存放于另一映像的逻辑磁盘上。每晚进行一次联机备份操作,备份所有数据文件、所有归档日志文件、一个控制文件。每周进行一次输出(Export)操作。

如果看到一个未来14年的日期记录,验证该表已经进行了最新的数据更改。

(二)、恢复策略

图片 10

1.实例失败

(图19)

从实例失败中恢复是自动进行的。实例失败一般是由服务器失败引起的,当数据库实例失败后,重新启动服务器,启动数据库,Oracle检查数据文件和联机日志文件,并把所有文件同步到同一个时间点上。

 

2.磁盘失败

版权声明:本文由金沙澳门官网网址发布于金沙澳门官网,转载请注明出处:Oracle数据库使用几种结构来保护数据,该数据库