文章分类 - SQLSERVER
摘要:笔记20-徐 SQL I/O 1 --SQL I/O 2 3 --SQL有缓冲区高速缓存 4 --集群在B主写入服务器里不会占用B主服务器的高速缓存区,A主写入服务器完成了事务之后并提交, 5 --会立刻扩展事务到B服务器,并使B服务器提交写入磁盘(5台服务器 2台主写入 2台从读取 1台监视) 6 7 --把脏页写入磁盘的方法 8 --懒惰写入(lazy writing) 9 --勤奋写入(eager writing)10 --检查点()11 checkpoint12 13 14 15 16 --确保I/O系统正常17 --可以很负责任地说,由SQL的问题导致数据库反复损坏,已经...
阅读全文
摘要:笔记19-徐 如何在超大型数据库上运行DBCC CHECKDB 1 --如何在超大型数据库上运行DBCC CHECKDB 2 --运行DBCC CHECKDB影响性能是难免的,影响正常应用运行也是难免的 3 --许多数据库是无法修复的,或者在物理上的错误修复成功,但是在逻辑上 4 --的错误是无法挽回的。 5 6 --当发现用户访问数据库才发现数据库损坏,可能已经为时已晚,损失巨大。 7 --所以DBA应该定期对每个数据库做CHECKDB工作。 8 9 --两者平衡:比较合理的周期DBCC CHECKDB,不影响数据库应用性能10 11 --内部数据库快照12 --DBCC CHECKDB..
阅读全文
摘要:笔记18-徐 SQLSERVER常见错误解读 f --SQLSERVER常见错误解读 --829错误:这个错误表明SQL Server在读取数据库文件时,发现了逻辑一致性错误,即数据页的页面ID不正确。 --表示数据库页的一致性检查失败,可能是由于硬件故障或磁盘上的物理损坏导致的。 --SQL Se
阅读全文
摘要:笔记17-徐 用户数据库常见问题和解决方法 附案例 1 --用户数据库常见问题和解决方法 附案例 2 --查询数据库的状态 3 SELECT state_desc FROM sys.databases 4 5 --1、文件打开问题 消息:database 'sales' cannot be opened due to inaccessible files or insufficient memory or disk space 6 --错误日志文件显示内容: 7 --一、主文件组: 8 --(1)访问主文件组的主文件出错 9 --starting up database ...
阅读全文
摘要:笔记16-徐 解决resource数据库和model数据库和tempdb数据库和msdb数据库和master数据库错误问题步骤 1 --解决resource数据库和model数据库和tempdb数据库和msdb数据库和master数据库错误问题步骤 2 --resource数据库 3 --1、安装好SQL和补丁之后,备份资源数据库的两个文件,把他们放到安全的地方,紧急情况下将它们拷贝回来 4 --2、可以把别的机器的相同版本好的资源数据库拷贝过来,或者测试机里拷过来 5 --3、重装SQL 6 7 --model数据库 8 --(1)用特殊参数启动SQL 9 --net start MSSQ.
阅读全文
摘要:笔记15-徐 SQL启动过程的网络连接 1 --SQL启动过程的网络连接 2 3 --A self-generated certificate was successfully loaded for encryption. 4 --2012-09-09 10:37:18.45 服务器 Server is listening on [ 'any' 1433]. 5 --2012-09-09 10:37:18.45 服务器 Server is listening on [ 'any' 1433]. 6 --2012-09-09 10:37:18.45 服务器 ...
阅读全文
摘要:笔记14-徐 分布式事务比较常见的例子以及启动日志里分布式事务的启动信息1 --分布式事务比较常见的例子以及启动日志里分布式事务的启动信息2 --在SQLSERVER上建立一个链接服务器(linked server),在本地的SQLSERVER发起一个事务,3 --修改远端的服务器里的数据4 5 --Attempting to initialize Microsoft Distributed Transaction Coordinator (MS DTC). This is an informational message only. No user action is required.6
阅读全文
摘要:笔记13-徐 关于 正在还原 状态1 --关于 正在还原 状态2 --如果数据库在做恢复的时候不能正确打开所有的数据库文件,数据库会进入“正在还原” 状态3 --在这个状态下有两个选择,4 --(1)要不用ALTER ONLINE命令SQL再做一次恢复5 --(2)要不只能放弃当前的数据库,还原备份6 --好似上一次做事务日志传送的实验的时候,数据库GPOSDB一直是 正在还原 状态,最后根据博客园那篇文章做7 --还原最后一次的日志备份才回复正常
阅读全文
摘要:笔记12-徐 解决启动帐号权限问题 1 --解决启动帐号权限问题 2 --前提:启动帐号必须设置密码 3 --sql服务跟sql agent服务都可以以这个帐号运行 4 --解决的方法:假设test帐户刚刚创建好,只有User权限 5 --使用SQL Server Configuration Manager,将test帐户设置成SQL服务启动帐户 ,还有SQL AGENT服务启动帐户 6 --,而不要使用控制面板中的服务控制台去设置。这是因为SQL Server Configuration Manager会自动为你设置 7 --的那个帐户赋予足够的权限(包括注册表、文件以及文件夹等)。在这里,
阅读全文
摘要:笔记11-徐 可疑状态的3种解决办法 1 --可疑状态的3种解决办法 2 --(1)再做一次ALTER ONLINE 3 --(2)放弃当前数据库,还原备份 4 --(3)将数据库状态变成EMERGENCY,继续尝试修复数据库 (供管理员在没有备份的情况下尽可能地挽回数据) 5 6 --1、修改数据库为紧急模式 7 ALTER DATABASE GPOSDB SET EMERGENCY 8 9 --2、使数据库变为单用户模式10 ALTER DATABASE GPOSDB SET SINGLE_USER11 12 --3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数...
阅读全文
摘要:笔记10-徐 使用continue_after_error restore还原选项恢复备份有损坏的数据库 1 --使用continue_after_error restore还原选项恢复备份有损坏的数据库 2 RESTORE DATABASE GPOSDB FROM DISK='' WITH continue_after_error,NORECOVERY 3 GO 4 5 --管理员可以在忽略错误继续执行的还原顺序结束时,使用DBCC CHECKDB修复数据库 6 7 --要使checkdb以最大的一致性运行,建议在DBCC CHECKDB命令后使用WITH TABLOCK选项
阅读全文
摘要:笔记9-徐 DBCC SHRINKFILE不起作用的原因 1 --DBCC SHRINKFILE不起作用的原因 2 3 4 --由于sp_spaceused这个存储过程依赖于SQLSERVER存储在一些系统视图里的空间使用统计信息来算出结果,但是SQLSERVER并不保证实时更新空间使用统计信息。尤其是数据库刚刚发生大的变化之后,sp_spaceused的结果常常不准确 5 6 --可以在SSMS里,在数据库上点右键-》报表-》标准报表-》 7 --磁盘使用情况、 8 --按排在前面的表的磁盘使用情况、 9 --按表的磁盘使用情况、 10 --按分区的磁盘使用情况 11...
阅读全文
摘要:笔记8-徐 delete和truecate之间的区别 测试结果 1 --delete和truecate之间的区别 测试结果 2 USE AdventureWorks 3 --DELETE Sales.SalesOrderDetail_C 4 --GO 5 --DELETE Sales.SalesOrderDetail_hash 6 --GO 7 --DELETE Sales.SalesOrderDetail_N 8 --GO 9 10 DBCC SHOWCONTIG('Sales.SalesOrderDetail_hash')11 --DBCC SHOWCONTIG('
阅读全文
摘要:笔记7-徐 SQLSERVER日志记录机制 1 --SQLSERVER日志记录机制 2 --日志记录事务发生的时间,但是不保证记录下发起这个事务的用户名,更不记录发起者的程序名称!!! 3 USE AdventureWorks 4 CREATE TABLE a(a INT) 5 GO 6 CHECKPOINT --做一次检查点把数据跟日志写入硬盘 7 GO 8 BACKUP LOG AdventureWorks WITH truncate_only 9 10 GO11 DBCC LOG(7,3)12 13 14 15 INSERT INTO a VALUES(1)16 go17 DBCC L.
阅读全文
摘要:笔记6-徐 检测孤立用户并恢复孤立用户到新的服务器 解决数据库镜像孤立用户问题 1 --检测孤立用户并恢复孤立用户到新的服务器 解决数据库镜像孤立用户问题 2 --注意:重新链接只能链接SQL登录帐号,不能链接Windows登录帐号 3 --如果不选择重新链接可以使用备份master数据库的方法还原到新的服务器上,可以避免一个数据库有 4 --成千上百个数据库用户的情况 5 SELECT * FROM sys.server_principals 6 SELECT * FROM sys.database_principals 7 8 --检测孤立用户 9 USE GPOSDB --要...
阅读全文
摘要:笔记5-徐 检查日志文件不能被截断的原因 1 --检查日志文件不能被截断的原因 2 SELECT * FROM sys.databases WHERE database_id=9 3 --SELECT * FROM sys.sysdatabases 4 --查看日志占用日志文件占用率 5 DBCC SQLPERF(LOGSPACE) 6 GO 7 8 --查看不能截断日志文件的原因 9 SELECT name,recovery_model_desc,log_reuse_wait,log_reuse_wait_desc10 FROM sys.databases11 GO12 13 --检查最老.
阅读全文
摘要:笔记4-徐 模仿灾难发生时还原adventurework数据库 示例 stopat --模仿灾难发生时还原adventurework数据库 示例 stopat BACKUP DATABASE AdventureWorks TO DISK= 'D:\MSSQL\Databackup\Adventure
阅读全文
摘要:笔记3-徐 设置数据库自动增长注意要点1 --设置数据库自动增长注意要点2 --1要设置成按固定大小增长,而不能按比例 对于小的数据库,设置一次增长50MB到100MB,大的数据库,一次增长100MB到200MB3 --2要定期监测各个数据文件的使用情况,尽量保证每个文件剩余的空间一样大或者是期望的比例4 --3设置文件最大值5 --4发生增长后,要及时检查文件空间分配情况,避免SQL总是往个别文件写数据
阅读全文
摘要:笔记2 C#里的ODBC SQLCLIENT ORACLE CLIENT关系1 using System.Data.Odbc; :MDAC2 using System.Data.SqlClient; :SQLSERVER Native Client ->sqlclient oracleclient
阅读全文
摘要:笔记2-徐 收缩数据库的大小的方法1 收缩数据库的大小的方法 2 数据文件:建立聚集索引,或者重建索引,然后shrinkfile 收缩数据文件3 4 日志文件:数据库恢复模式不能是简单要大容量日志或者完整 ,5 定期备份事务日志,才能截断事务日志
阅读全文