飘飘悠悠 发表于 2015-1-16 22:33:01

MSSQL编程:chapter9:实行备份和恢复

提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。备份|恢复|实行第9章:实行备份和恢复目标
本章向您先容经由过程EnterpriseManager实行的OracleDatabase备份和恢复操纵。
主题
本章会商了以下内容:
设置闪回恢复区和ARCHIVELOG形式设置备份设置和战略界说DBID和DB_UNIQUE_NAME的值实行完全的数据库备份使用Oracle倡议的备份战略对数据库举行备份复原和恢复全部数据库实行闪回表实行闪回抛弃办理备份检察屏幕截图
将鼠标移到这个图标上,显现一切的屏幕截图。您还能够将鼠标移到各个图标上,只检察与该图标相干的屏幕截图。
设置闪回恢复区和ARCHIVELOG形式
前往主题列表

闪回恢复区是为Oracle数据库中的一切与恢复相干的文件和举动供应的一个一致的存储地位。将数据库从介质妨碍中完整恢复过去所需的全体文件都属于闪回恢复区。能够在闪回恢复区中创立的与恢复相干的文件包含:存档重做日记文件、把持文件、由恢复办理器(RMAN)创立的备份、闪回日记和修正跟踪文件。Oracle保举在与数据库文件地点不异的磁盘上创立修正跟踪文件。实践上,假如您安装了OMF,并实行了启用修正跟踪的命令,那末将主动在为数据库文件指定的目次中创立跟踪文件。

经由过程分派一个存储地位并将相干的恢复文件一致在一个特定的地区内,Oracle数据库服务器使数据库办理员不用再办理由这些组件创立的磁盘文件。

当创立闪回恢复区时,您能够选择一个目次、文件体系或主动存储办理磁盘组来寄存文件,并为闪回恢复区顶用于存储一切文件的最年夜空间设置一个磁盘限额。您必需选择一个充足年夜的地区,以包容所需的磁盘限额。当靠近磁盘空间界线时,Oracle服务器能够依据RMAN保存战略的界线来删除非需要的文件,为新文件腾出空间。

闪回恢复区应当在一个与事情辨别离的磁盘上,个中存储着在增量备份中利用的举动数据库文件(如数据文件、把持文件、在线重做日记和修正跟踪文件)。将闪回恢复区和事情区置于不异的磁盘上,当呈现磁盘妨碍时,很简单使您同时丧失举动的数据库文件和备份。

当您创立数据库时,能够设置闪回恢复区和ARCHIVELOG形式。假如您在您创立数据库时没有实行这些义务,那末请依照以下步骤来设置闪回恢复区和ARCHIVELOG形式:
1.
在操纵体系提醒符下为闪回恢复区创立一个目次。实行以下命令:

cd$ORACLE_BASEmkdirflash_rec_area




2.
翻开扫瞄器,并指定用户名为SYS,口令为SYSDBA,以登录EnterpriseManagerDatabaseConsole。单击Login。




3.


单击OracleDatabaseHome页面上的Maintenance。






4.
在Backup/Recovery部分当选择ConfigureRecoverySettings。您可使用ConfigureRecoverySettings页面来设置恢复有用工具的设置,包含闪回恢复区。




5.


呈现ConfigureRecoverySettings页面。转动至FlashRecoveryArea部分。在响应字段中输出以下值来设置闪回恢复区:

FlashRecoveryAreaLocation:<在第1步中创立的目次步中创立的目次闪回恢复区所需的巨细pGY0FlashRecoveryAreaSize:<闪回恢复区所需的巨细>

向上转动至窗口顶部。




6.
选中ArchiveLogMode,为数据库设置ARCHIVELOG形式。单击Apply。




7.
显现一条确认修正的动静。要完成ARCHIVELOG形式的设置,必需封闭数据库例程。单击Yes,封闭例程偏重新启动它。




8.
显现RestartDatabase:SpecifyHostandTargetDatabaseCredentials页面。输出主机证书和数据库证书。单击OK。




9.
显现RestartDatabase:Confirmation页面。单击Yes,封闭例程偏重新启动它。




10.
显现RestartDatabase:ActivityInformation页面。单击Refresh,登录EnterpriseManagerDatabaseControl。






设置备份设置和战略
前往主题列表

您能够设置很多设置和战略来断定怎样存储蓄份、备份哪些数据、怎样实行备份,和备份在从恢复区中扫除之前保存多久。您还能够设置特征来进步备份功能。
1.
单击OracleDatabase主页上的Maintenance页面。






2.


在Backup/Recovery地区当选择ConfigureBackupSettings。




3.


转动至ConfigureBackupSettings页面的HostCredentials地区。输出操纵体系用户名和口令。向上转动至DiskSettings部分。




4.


承受Device页面上的DiskSettings部分中的Parallelism字段中的值1。设置DiskBackupLocation字段为null,以利用闪回恢复区举行备份。对DiskBackupType选择BackupSet。单击TestDiskBackup。




5.


显现一条动静,唆使磁盘设置备份测试乐成完成。如今您将设置备份战略设置。单击Policy,会见Policy页面。




6.
选择Automaticallybackupthecontrolfileandserverparameterfile(SPFILE)witheverybackupanddatabasestructuralchange。选择Optimizethewholedatabasebackupbyskippingunchangedfilessuchasread-onlyandofflinedatafilesthathavebeenbackedup。选择Enableblockchangetrackingforfasterincrementalbackups。为BlockChangeTrackingFile输出一个文件名。然后向下转动到RetentionPolicy部分。




7.


选择Retainbackupsthatarenecessaryforarecoverytoanytimewithinthespecifiednumberofdays(point-in-timerecovery),并承受默许值(31天)。单击OK。前往到Maintenance页面。






断定DBID和DB_UNIQUE_NAME的值
前往主题列表

假如您丧失了数据库把持文件或SPFILE,EnterpriseManager能够从备份中恢复它们―只需您可以为数据库供应DB_UNIQUE_NAME和DBID。

实行以下步骤,断定DB_UNIQUE_NAME的值:
1.
单击Administration页面上的Instance地区中的AllInitializationParameters。




2.
呈现Current属性页面。在Filter字段中输出db_unique_name,然后单击Go。




3.
呈现的页面显现了一行,该行的Name列为db_unique_name,Value列中给出了数据库的db_unique_name的值。



纪录这个值,以便未来您必要它来举行恢复操纵时,能够取得它。

实行以下步骤来断定DBID:
1.
单击Administration页面的Storage地区中的Controlfiles。




2.
呈现Controlfiles属性页面。选择Advanced属性页面。




3.
DatabaseID字段包括DBID值。



纪录这个值,以便未来您必要它来举行恢复操纵时,能够取得它。




实行完全的数据库备份
前往主题列表

您能够经由过程实行一次完全的数据库备份来备份数据库的全体内容。一切数据文件的完全备份都将被创立。了局大概作为镜像拷贝或作为备份集存储,但在恣意情形下,数据库的一切数据文件和把持文件、存档重做日记和服务器参数文件的全体内容都将在备份中反应出来。使用这个文件集,能够完全的恢单数据库。
1.


在Backup/Recovery地区当选择ScheduleBackup。




2.
呈现ScheduleBackup:Strategy页面。从BackupStrategy下拉菜单当选择Customized。选择WholeDatabase,假如必要,在HostCredentials部分中输出用户名和口令。单击Next。




3.
呈现ScheduleBackup:Options页面。在BackupType部分当选择FullBackup。在BackupMode部分当选择OnlineBackup。在Advanced部分当选中Backupallarchivedlogsondisk。单击Next。




4.
呈现ScheduleBackup:Settings页面。得当地选择Disk或Tape。单击Next。




5.
呈现ScheduleBackup:Schedule页面。承受默许的功课称号。选择Immediately,当即实行功课,或输出在稍后实行的工夫。单击Next。




6.
呈现ScheduleBackup:Review页面。单击SubmitJob。




7.
显现BackupSubmitSuccessful动静。单击OK。




使用Oracle倡议的备份战略对数据库举行备份
前往主题列表

Oracle倡议的备份战略的基本是创立数据库的一个镜像拷贝,然后使用RMAN增量备份持续天生备份。OracleEnterpriseManager调剂RMAN备份功课。依照以下步骤来设置备份企图:
1.


在Backup/Recovery地区当选择ScheduleBackup。




2.
呈现ScheduleBackup:Strategy页面。从BackupStratgy下拉菜单当选择Oracle-suggested。在"Selectyourbackupdestination"下选择Disk。在HostCredentials部分中输出操纵体系用户名和口令。单击Next。




3.
呈现ScheduleBackup:Setup页面。请细心检察信息,然后单击Next。




4.
呈现ScheduleBackup:Schedule页面。细心检察信息,并响应地调剂入手下手日期和工夫。单击Next。




5.
呈现ScheduleBackup:Review页面。请细心检察信息,然后单击SubmitJob。




6.
呈现Status页面和一条唆使功课乐成提交的动静。您能够单击ViewJob来会见功课形态页面或单击OK来完成操纵。




复原和恢复全部数据库
前往主题列表

在这一部分中,您将经由过程EnterpriseManager来恢单数据文件。
1.


在Backup/Recovery地区当选择PerformRecovery。




2.
呈现PerformRecovery:Type页面。从Type部分中的ObjectType下拉菜单当选择WholeDatabase。选择Recovertothecurrenttimeorapreviouspoint-in-time作为OperationType。在HostCredentials部分中输出操纵体系用户名和口令。单击Next。




4.
显现RecoveryWizard页面,唆使例程将封闭偏重启。单击Refresh,持续利用RecoveryWizard。




5.
单击PerformRecovery,恢单数据库。




6.
在HostCredentials地区中输出操纵体系用户名和口令。在DatabaseCredentials地区中输出SYS和SYS的口令。单击Continue。




7.
再次呈现PerformRecovery:Type页面。数据库如今处于加载形态。单击Next。




8.
呈现PerformRecovery:Point-in-time页面。选择Recovertothecurrenttime。单击Next。




9.
呈现PerformRecovery:Rename页面。选择No.Restorethefilestothedefaultlocation(假如您但愿如许)大概选择Yes.Restorethefilestoanew,commonlocation,并输出地位。单击Next。




10.
呈现PerformRecovery:Review页面。细心检察信息,然后单击Submit。




11.
收到"Operationsucceeded"动静。单击OK。


实行闪回表
前往主题列表

完成以下义务来实行闪回表操纵:
启用行转移摹拟用户毛病实行闪回表启用行转移
前往列表

您必需在表上启用行转移,以在表上实行闪回表操纵。在这一部分中,您将在HR.EMPLOYEES表上启用行转移。
1.
在OracleDatabaseHome页面上单击Administration。






2.


呈现Administration属性页面。在Schema部分当选择Tables。




3.
呈现Tables页面。从ObjectType下拉菜单当选择Table。在Schema字段中输出HR,在ObjectName字段中输出REGIONS。单击Go。




4.
REGIONS表显现在Results部分中。单击Edit。




5.
呈现EditTable页面。单击Options标签。




6.
从EnableRowMovement下拉菜单当选择Yes。单击Apply。




7.
收到一条动静,唆使表乐成修正。选择路径式导航栏中的Tables导航项。




摹拟用户毛病
前往列表

在这一部分中,您将经由过程修正REGIONS表中的数据来摹拟用户毛病。实行以下操纵:
1.
经由过程翻开一个终端窗口和实行以下命令来检察REGIONS表中的数据:

sqlplushr/hrcolregion_nameformata30select*fromregions;




2.
经由过程实行以下SQL命令来修正一切行中的region_name列中的值,以摹拟用户毛病:

updateregionssetregion_name=ORACLE;commit;






3.


再次实行以下命令来检察修正:

select*fromregions;



在实行闪回表部分中,您将把表闪回到您更新表之前的工夫点上。


实行闪回表
前往列表

在这一部分中,您将闪回HR.REGIONS表。
1.
考证在表的列表中仍旧选中了REGIONS。从Actions下拉菜单当选择FlashbackTable。单击Go。




2.
呈现PerformRecovery:Point-in-time页面。选择Flashbacktoatimestamp,然后输出几分钟之前的一个日期和工夫。单击Next。




3.
呈现PerformRecovery:FlashbackTables页面。细心检察页面上的信息,然后单击Next。




4.
呈现PerformRecovery:Review页面。细心检察信息,然后单击Submit。




5.
吸收到一条动静,确认表已被闪回。单击OK。




6.
切换回SQL*Plus会话,实行以下命令来考证闪回表操纵:

select*fromregions;




实行闪回抛弃
前往主题列表

在这一部分中,您将利用闪回抛弃特征来取回被抛弃的表。为了完本钱实习,您将创立一个新的表、抛弃该表,然后用闪回抛弃来恢复它。

依照以下步骤来创立一个新的表,然后抛弃它:
1.
在SchemaName字段中输出HR,并在ObjectName字段中输出REGIONS或REGIONS的一部分,然后单击Go。




2.
从Action下拉菜单当选择CreateLike。单击Go。




3.


呈现CreateTable页面。在Name字段中输出REG_HIST。作废REGION_ID列选定的NotNull。单击Constraints。




4.
呈现Constraints页面。选中每个束缚前提,然后单击delete来删除表上的束缚前提。本实习不必要这些束缚前提。




5.
单击OK,创立REG_HIST表。




6.
收到一条动静,唆使表已创立。在ObjectName字段中输出REG_HIST,然后单击Go。




7.
显现Tables页面,并在Results部分中显现REG_HIST表。单击Delete来删除REG_HIST表。




8.
单击Yes,确认删除表。




9.
显现一条动静,唆使表已删除。单击Go,实验取回表。




10.
在了局部分中显现Noobjectfound。





要恢复您方才删除的表,您将必要实行一次闪回抛弃。实行以下操纵:
1.
单击RecycleBin。




2.


在SchemaName字段中输出HR,然后单击Go。






3.


考证选中了REG_HIST,然后单击FlashbackDrop。






4.
呈现PerformRecovery:Rename页面。单击Next。




5.


呈现PerformRecovery:Review页面。细心检察信息,然后单击Submit。




6.
显现一条确认动静。单击OK。




7.
接纳站中不再有该表。单击路径式导航栏中的Tables导般项。




8.
REG_HIST体现在被包括在表的列表中。






办理备份
前往主题列表

办理备份包含两个义务:办理存在于磁盘或磁带上的备份本身,和办理保留在RMAN信息库中的备份纪录。在这一部分中,您将实行备份保护和更新RMAN信息库。在这一部分中,您将实行以下义务:
利用ManageCurrentBackups页面交织核对备份删除过时备份删除放弃备份标志备份为UNAVAILABLE体例备份的目次

利用ManageCurrentBackups页面
前往主题列表

您可使用ManageCurrentBackups页面来检察在RMAN信息库中纪录的备份。从这个页面中,您能够实行在这全部部分中申明的备份保护操纵。
1.
单击Maintenance属性页面的Backup/Recovery地区中的ManageCurrentBackups。




2.
显现ManageCurrentBackups页面。BackupSets属性页面显现在RMAN信息库中纪录的备份集。单击Contents列中的链接来检察关于一个备份集的内容的具体信息。




3.
显现Contents属性页面。单击ManageCurrentBackups,前往ManageCurrentBackups属性页面。




4.
单击ImageCopies,检察ImageCopies页面。




5.
显现ImageCopies页面,该页面显现纪录在RMAN信息库中的镜像拷贝。






交织核对备份
前往主题列表

当您交织核对一个备份时,RMAN考证纪录在信息库中的信息与实践备份形态是不是坚持分歧。假如纷歧致,则将更新信息库来反应准确的形态。您能够按以下体例来交织核对一切的备份文件:
1.
单击Maintenance属性页面的Backup/Recovery地区中的ManageCurrentBackups。




2.
显现ManageCurrentBackups页面。单击页面顶部的CrosscheckAll来交织核对RMAN信息库中的一切文件。




3.
显现CrosscheckAll:SpecifyJobParameters页面。您能够承受JobName、JobDescription、Starttime和Repeat标准的默许值,或输出本人的值。单击SubmitJob,提交交织核对功课。




4.
在ManageCurrentBackups页面上显现了一条JobSubmissionSucceeded动静。您能够单击ViewJob来检察功课的形态。




5.
在Summary地区中,您能够检察功课的形态。








删除过时备份
前往主题列表

您能够经由过程实行以下步骤来删除RMAN信息库中标志为EXPIRED的一切备份:
1.
单击Maintenance属性页面的Backup/Recovery地区中的ManageCurrentBackups。




2.
显现ManageCurrentBackups页面。单击页面顶部的DeleteAllExpired,从RMAN信息库中删除标志为EXPIRED的那些备份。




3.
显现DeleteAllExpired:SpecifyJobParameters页面。您能够承受JobName、JobDescription、Starttime和Repeat标准的默许值,或输出本人的值。假如您没有实行交织核对操纵,选择PerformtheoperationCrosscheckAllbeforeDeleteAllExpired。单击SubmitJob,提交功课。




4.
在ManageCurrentBackups页面上显现了一条JobSubmissionSucceeded动静。您能够单击ViewJob来检察功课的形态。




5.
在Summary地区中,您能够检察功课的形态。






删除放弃备份
前往主题列表

您能够经由过程实行以下步骤来删除一切放弃的备份:
1.
单击Maintenance属性页面的Backup/Recovery地区中的ManageCurrentBackups。




2.
显现ManageCurrentBackups页面。单击页面顶部的DeleteAllObsolete,从RMAN信息库中删除一切过期的备份。注重:您能够从BackupSets或ImageCopies页面中实行这一操纵。




3.
显现DeleteAllObsolete:SpecifyJobParameters页面。您能够承受JobName、JobDescription、Starttime和Repeat标准的默许值,或输出本人的值。单击SubmitJob,提交功课。




4.
在ManageCurrentBackups页面上显现了一条JobSubmissionSucceeded动静。您能够单击ViewJob来检察功课的形态。




5.
在Summary地区中,您能够检察功课的形态。




6.
前往ImageCopies和/或BackupSets属性页面来考证放弃的备份是不是已被删除。






标志备份为UNAVAILABLE
前往主题列表

您能够经由过程实行以下步骤来把信息库中的备份标志为UNAVAILABLE:
1.
单击Maintenance属性页面的Backup/Recovery地区中的ManageCurrentBackups。




2.
显现ManageCurrentBackups页面。选择您但愿标志为UNAVAILABLE的备份,并单击ChangetoUnavailable。




3.
显现Confirmation页面。单击Yes,持续操纵。




4.
显现Requestinprocess页面。








体例备份的目次
前往主题列表

您能够为使用操纵体系命令猎取的备份体例目次,以便RMAN能够在恢复操纵中利用它们。在本例中,您将利用操纵体系命令来备份属于EXAMPLE表空间的数据文件。然后您将利用EnterpriseManager来为RMAN信息库中的备份文件体例目次。
1.
挪用SQL*Plus,并作为一个具有SYSDBA权限的用户登录。经由过程实行以下命令来使EXAMPLE表空间处于在线备份形式:

ALTERTABLESPACEexampleBEGINBACKUP;




2.
前往操纵体系提醒符,创立属于EXAMPLE表空间的数据文件的一个拷贝。在本例中,拷贝创立在一个称号为backup的目次中。您可使用您本人选择的一个目次。




3.
实行以下命令,使EXAMPLE表空间加入在线备份形式:

ALTERTABLESPACEexampleENDBACKUP;




4.
如今您已做好筹办,能够使用EnterpriseManagerDatabaseControl来为RMAN信息库中的备份体例目次。单击Maintenance属性页面的Backup/Recovery地区中的ManageCurrentBackups。




5.
选择ManageCurrentBackups页面顶部的CatalogAdditionalFiles。




6.
选择CatalogfilesinthespecifieddisklocationintotheRecoveryManagerrepository,然后输出地位和备份文件的称号(无需文件扩大名)。单击OK。




7.
显现Requestinprocess页面。




8.
显现一条确认动静,唆使已完成文件的目次体例。









将鼠标移到这个图标上,以埋没一切的屏幕截图
从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。

小魔女 发表于 2015-1-19 16:25:26

入门没那么困难,精通没那么容易

老尸 发表于 2015-1-28 08:28:39

只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。

因胸联盟 发表于 2015-2-5 20:14:12

呵呵,这就是偶想说的

若相依 发表于 2015-2-13 11:47:29

对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。

小女巫 发表于 2015-3-3 20:54:59

一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)

谁可相欹 发表于 2015-3-11 13:40:58

如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。

小妖女 发表于 2015-3-18 21:23:10

不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关

飘灵儿 发表于 2015-3-26 18:44:12

其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
页: [1]
查看完整版本: MSSQL编程:chapter9:实行备份和恢复