柔情似水 发表于 2015-1-16 22:49:10

MYSQL网页设计怎样修复SQLSERVER 数据库"置...

根据Evans的调查报告,“MySQL的使用在未来将继续呈成长趋势。”server|sqlserver|数据|数据库|置疑
假如SQLServer由于磁盘可用空间不敷,而不克不及完成数据库的恢复,那末SQLServer2000会前往毛病1105而且将sysdatabases中的status列设为置疑。

你能够看到在SQLSERVER的ERRORLOG和OS的使用程序日记中应当有1105的毛病信息:

SQLServer事件日记大概会被填满,这会制止以后的数据库操纵,包含UPDATE,DELETE,INSERT和CHECKPOINT。
事件日记填满会招致1105毛病:
Cantallocatespaceforobjectsyslogsindatabasedbnamebecause
thelogsegmentisfull。Ifyouranoutofspaceinsyslogs,dump
thetransactionlog。OtherwiseuseALTERDATABASEor
sp_extendsegmenttoincreasethesizeofthesegment。

这类征象大概呈现于任何一个数据库中,包含Master和TempDB。一些难以预感的要素大概损耗日记空间。比方:
一个年夜型事件,特别像批量数据更新、拔出或删除。
一个未提交的事件。
反省点处置程序截除时所需的带宽过年夜。
截除时凌驾阈值
上述各类前提相互感化的了局。
用于公布的标志事件没有被日记读取程序读走


上面是修复的步骤和压缩日记的步骤:

1.在命令提醒符下运转以下命令启动SQLServer:

SQLSERVER-f-m

备注:-m开关以单用户形式启动SQLServer。在单用户形式下,只能乐成创建一个毗连。请注重是不是有任何其他客户机或服务大概会在您经由过程SQLServer查询剖析器创建毗连前利用谁人毗连。

2.重置置疑数据库的形态。

sp_resetstatusdatabase_name

上面是了局集:

Databasedatabase_namestatusreset!WARNING:YoumustrebootSQLServerpriortoaccessingthisdatabase!


3.用ALTERDATABASE向数据库增加一个数据文件或日记文件:

USEmasterGOCREATEDATABASEdb_nameON(NAME=dbname_dat1,FILENAME=D:MSSQLDatadbname_dat1.ndf,SIZE=1000MB,FILEGROWTH=50MB)GO

--变动该数据库以增加一个2GB巨细的新数据文件ALTERDATABASEdb_nameADDFILE(NAME=dbname_dat2,FILENAME=F:MSSQLDATAdbname_dat2.ndf,SIZE=2000MB,FILEGROWTH=50MB)GO--变动该数据库以增加一个1GB巨细的新日记文件ALTERDATABASEdb_nameADDLOGFILE(NAME=db_name_log2,FILENAME=F:MSSQLDatadb_name_log2.ldf,SIZE=1000MB,FILEGROWTH=20MB),GO

4.中断偏重新启动SQLServer:
用新的数据文件或日记文件所供应的分外空间,SQLServer应当能完成数据库的恢复。

5.开释磁盘空间而且从头运转恢复操纵,依照上面的步骤压缩日记。
sp_resetstatus封闭数据库的置疑标记,可是一成不变地坚持数据库的别的选项。


为从基本上办理如许的成绩,你能够按上面的操纵设置SQLSERVER2000:
a.假如不必要恢复到指定的工夫点,你能够将数据库的恢复形式设置为复杂,如许
UPDATE,DELETE,SELECT就不会纪录日记,日记就不会增添的很年夜:

USEMASTER

GO
ALTERDATABASEDB_NAMESETRECOVERYSIMPLE
b.假如你的恢复形式是全体,你必定要设置日记字段压缩:

USEMASTER

GO
sp_dboptiondatabasename,trunc.logonchkpt.,true
sp_dboptiondatabasename,autoshrink,true
c.经由过程逐日备份将日记压缩:
BACKUPDATABASEDATABASE_NAMETOBACKUP_DEVICES
BACKUPLOGDATABASE_NAMETOLOG_DEVICES
OR
BACKUPLOGDATABASE_NAMEwithtruncate_only

**反省日记的容量:DBCCSQLPERF(LOGSPACE)这时候日记并没有压缩!

d.天天在备份数据库完成以后,从头启动MSSQLSERVERSERVICE.
USEDATABASE_NAME
go
DBCCSHRINKFILE(2,truncateonly)

**反省日记的容量:DBCCSQLPERF(LOGSPACE)这时候日记已压缩!

e.手动疾速压缩日记:
/*runbelowscript,youwillshrinkyoudatabaselogfiles
immediately,inmyexperience,youneedtorunthescriptfor3or
4minutesbeforestoppingitmanually*/
usedatabasename
dbccshrinkfile(2,notruncate)
dbccshrinkfile(2,truncateonly)
createtablet1(char1char(4000))
go
declare@iint
select@i=0
while(1=1)
begin
while(@i<100)
begin
INSERTINTOT1VALUES(A)
SELECT@I=@I+1
END
TRUNCATEtableT1
BACKUPLOGyoudatabasenamewithtruncate_only
end
GO



注重只要在您的次要撑持供应者引导下或有疑问解答倡议的做法时,才可使用
sp_resetstatus。不然,大概会破坏数据库。

因为该历程修正了体系表,体系办理员必需在运转sp_resetstatus这个历程前,启用体系表更新。要
启用更新,利用上面的历程:

USEmaster
GO
sp_configureallowupdates,1
GO
RECONFIGUREWITHOVERRIDE
GO
历程创立后,当即禁用体系表更新:

sp_configureallowupdates,0
GO
RECONFIGUREWITHOVERRIDE
GO
只要体系办理员才干实行sp_resetstatus。实行该历程后,当即封闭SQLServer。




请参考:

http://support.microsoft.com/default.aspx?scid=kb;zh-cn;317375

http://support.microsoft.com/default.aspx?scid=kb;zh-cn;307775


MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。”

深爱那片海 发表于 2015-1-20 05:07:42

如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.

第二个灵魂 发表于 2015-1-28 16:27:49

始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。

透明 发表于 2015-2-5 22:15:04

SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。

愤怒的大鸟 发表于 2015-2-13 22:03:40

财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..

再见西城 发表于 2015-3-4 02:06:20

总感觉自己还是不会SQL

小魔女 发表于 2015-3-11 15:24:28

需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。

活着的死人 发表于 2015-3-27 00:25:00

XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
页: [1]
查看完整版本: MYSQL网页设计怎样修复SQLSERVER 数据库"置...