乐观 发表于 2015-1-16 22:28:54

MSSQL网站制作之用户自界说的数据库修复

对于insert和delete,event中包含了插入/删除的记录的所有字段的值(太爽了。。)数据|数据库


用户自界说的数据库恢复

1、主动使用重做日记

1、使用SETAUTORECOVERY命令主动使用重做日记

完成对数据文件的修复操纵

SQL>STARTUPMOUNT;启动实例并加载数据库

SQL>SETAUTORECOVERYON启用重做日记主动使用功效

SQL>RECOVERDATABASE恢复指定表空间、数据文件或全部数据库

SQL>ALTERDATABASEOPEN;完成恢复后翻开数据库

2、使用RECOVERYAUTOMATIC命令主动使用重做日记

完成对数据文件的修复操纵

SQL>STARTUPMOUNT;启动实例并加载数据库

SQL>RECOVERAUTOMATICDATABASE

SQL>ALTERDATABASEOPEN;完成恢复后翻开数据库

2、不回档形式下的数据库介质恢复

1、将数据库恢复到本来的地位上

SQL>SHUTDOWNIMMEDIATE假如数据库仍旧处于翻开形态,封闭数据库;

将数据库文件恢复到本来的地位上,使用比来一次创建的分歧性完整备份对全部数据库举行恢复,必需对一切的数据文件与把持文件举行修复;

SQL>RECOVERDATABASEUNTILCANCEL

SQL>CANCEL

SQL>ALTERDATABASEOPENRESETLOGS;将以后重做日记按次号设置为1。

2、将数据库恢复到新的地位上

SQL>SHUTDOWNIMMEDIATE假如数据库仍旧处于翻开形态,封闭数据库;

将数据库文件恢复到新的地位上,使用比来一次创建的分歧性完整备份对全部数据库举行恢复,必需对一切的数据文件与把持文件举行修复;

对初始化参数文件中的CONTROL_FILES参数举行编纂,使它实行保留在新地位中修复后的把持文件;

SQL>STARTUPMOUNT

假如修复后的数据库文件处于新的地位,必需使用ALTERDATABASERENAMEFILE语句对把持文件举行修正,使它指向新地位中修复后的数据文件。如:

SQL>ALTERDATABASERENAMEFILE‘I:ora9ioradataystem01.dbf’TO‘K:oracleoradataystem01.dbf’;

SQL>RECOVERDATABASEUNTILCANCEL

SQL>CANCEL

SQL>ALTERDATABASEOPENRESETLOGS;将以后重做日记按次号设置为1。

3、回档形式下的完整介质恢复

1、封闭形态下的完整恢复

SQL>SHUTDOWNABORT(假如数据库处于翻开形态,将它强行封闭)

将数据文件恢复到本来的地位上,假如介质妨碍没法扫除,必要将数据文件恢复到别的地位上;

使用备份修复丧失或破坏的数据文件,也可使用ALTERDATABASECREATEDATAFILE语句重修一个空缺的数据文件交换对视或破坏的数据文件;

SQL>STARTUPMOUNT

假如修复后的数据文件不在本来的地位上,必要利用ALTERDATABASERENAMEFILE…TO…语句在把持文件中更新它们的信息

SQL>SELECTname,statusFROMV$DATAFILE;查询数据文件的称号和形态

SQL>ALTERDATABASEDATAFILE…ONLINE;将脱机数据文件改未联机

SQL>RECOVERDATABASE或SQL>RECOVERTABLESPACEusers

或SQL>RECOVERDATAFILE‘I:ora9ioradatausers0.dbf;

SQL>ALTERDATABASEOPEN;

2、翻开形态下的完整介质恢复

SQL>SELECTd.file#f#,d.name,d.status,h.statusfromv$datafiled,v$datafile_headerh

WHEREd.file#=h.file#;查询哪些数据文件被主动设置为脱机形态;

SQL>ALTERTABLESPACEusersOFFLINETEMPORARY;将包括破坏数据文件的表空间设置为脱机形态;

将数据文件恢复到本来的地位上,假如介质妨碍没法扫除,必要将数据文件恢复到别的地位上;

使用备份修复丧失或破坏的数据文件;

假如修复后的数据文件不在本来的地位上,必要利用ALTERDATABASERENAMEFILE…TO…语句在把持文件中更新它们的信息

SQL>RECOVERTABLESPACEusersAUTOMATIC对包括破坏数据文件的脱机表空间举行恢复;

SQL>ALTERTABLESPACEusersONLINE;

4、回档形式下的不完整介质恢复

1、不完整恢复的操纵原则;

在恢复前后都对数据库举行完整备份

完成不完整介质恢复后,反省数据库是不是已恢复到了方针时候下的形态;

完成不完整介质恢复后,将回档重做日记文件挪动到别的地位保留。

2、基于工夫的不完整恢复

对数据库举行一次完整备份,包含把持文件和一切的联机重做日记文件

SQL>SHUTDOWNABORT

断定不完整介质恢复的方针工夫,即你必要将数据库恢复到哪一个时候下的形态,然后断定必要利用哪些备份来对数据举行修复,数据库修复所利用的把持文件备份应该可以准确反应出方针时候下数据库的物理布局,所利用的数据文件备份应该是在方针时候之前创立的,并且必需修复一切的数据文件,

假如没有在方针时候之前创建的数据文件备份,必要从头创立空缺的数据文件

假如在数据库中包括在方针时候以后创建的数据文件,不要对这个数据文件举行修复,由于在完成不完整恢复后的数据库中基本不该当存在这个数据文件;

将数据文件恢复到本来的地位上,假如介质妨碍没法扫除,则恢复到别的地位上;

使用选定的备份文件修复一切的把持文件和数据文件;

SQL>STARTUPMOUNT启动实例并加载数据库;

假如修复后的数据文件不在它们本来的地位上,需利用ALTERDATABASERENAMEFILE…TO…语句在把持文件中更新它们的信息;

SQL>SELECTname,statusFROMV$DATAFILE;断定一切数据文件都处于联机

SQL>ALTERDATABASEDATAFILE…ONLINE;将数据文件恢复为联机;

SQL>RECOVERDATABASEUNTILTIME‘2004-02-01:12:30:30’

假如把持文件是使用备份修复的,必需在RECOVER名利中指定USINGBACKUPCONTROLFILE子句;

SQL>ALTERDATABASEOPENRESETLOGS;

当即对数据库举行一次完整备份。

3、基于打消的不完整恢复

SQL>RECOVERDATABASEUNTILCANCEL

别的步骤同基于工夫的不完整恢复

4、基于SCN的不完整恢复

在举行基于SCN的不完整恢复时,oracle会在使用了一切具有小于即是指定SCN的事件的重做纪录以后停止恢复历程



RESETLOGS选项

在以下三种情形下,必需利用RESETLOGS选项翻开数据库:

1、在实行任何范例的不完整介质恢复以后;

2、在利用备份修复把持文件后(在RECOVER命令中利用USINGBACKUPCONTROLFILE子句);

在没有联机重做日记文件备份的情形下对不回档数据库举行完整恢复以后。
InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定

谁可相欹 发表于 2015-1-17 21:39:28

多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油

第二个灵魂 发表于 2015-1-21 08:58:22

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

再见西城 发表于 2015-1-30 13:00:28

理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识

柔情似水 发表于 2015-1-30 13:00:28

但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。

小妖女 发表于 2015-2-6 11:57:33

代替了原来VB式的错误判断。比Oracle高级不少。

飘飘悠悠 发表于 2015-2-16 03:04:36

而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~

分手快乐 发表于 2015-3-4 23:15:52

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

愤怒的大鸟 发表于 2015-3-11 21:21:31

Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。

爱飞 发表于 2015-3-19 13:56:21

原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!

乐观 发表于 2015-3-28 08:43:18

groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
页: [1]
查看完整版本: MSSQL网站制作之用户自界说的数据库修复