随笔分类 -  SQL

1 2 下一页
SQL Server事务日志介绍
摘要:SQL Server中的数据库都是由一或多个数据文件以及一或多个事务日志文件组成的。顾名思意,数据文件主要存储数据库的数据,包括数据库内容结构,数据页,索引页等等。那么事务日志到底是干什么的呢?它主要是用来保存数据库修改记录的,如下图:SQL Server的工作原理为什么这样呢?为什么不把数据立刻写入数据文件呢?原因很简单:为了得到更高的效率和性能。数据文件为了适应新的数据可能会扩展, 可能会重新分配页,分配新空间等等。而日志都是连续被记录的,所以记录事务日志要快得多。这也就是为什么我们通过推荐把物理磁盘单独划分一区用来存储事务 日志的原因了,这样可以使磁盘在读写上最大程序的保持自然连续。数据 阅读全文
posted @ 2014-04-09 15:46 无敌百搭 阅读(604) 评论(0) 推荐(0)
你真的会使用SQL Server的备份还原功能吗?之二:主要备份类型
摘要:假设在下面几个时间段中,一个数据库积累插入了如下数据:1.完整数据库备份故名思意,完整数据库备份包括完整的数据库信息。它包括数据库的数据文件和备份结尾的部份活动事务日志。完整备份基本语法如下:BACKUP DATABASE AdventureWorks TO DISK = 'g:/backups/AdventureWorks.bak'2.差异性数据库备份差异性数据库备份包括自从上一次完整性备份以来所有改变的数据页,以及备份结尾的部份活动事务日志。差异备份和完整备份的语法很相似,唯一不同的是加上了DIFFERENTIAL选项,如下:BACKUP DATABASE Adventur 阅读全文
posted @ 2014-04-09 15:45 无敌百搭 阅读(1032) 评论(0) 推荐(0)
你真的会使用SQL Server的备份还原功能吗?之一:恢复模型
摘要:在SQL Server中,除了系统数据库外,你创建的每一个数据库都有三种可供选择的恢复模型: Simple(简单), full(完整), bulk-logged(批量日志)。 下面这条语句可以显示出所有在线数据库的恢复模型:SELECT name, (SELECT DATABASEPROPERTYEX(name, 'RECOVERY')) RecoveryModel FROM master..sysdatabases ORDER BY nameSQL Server 2005及以上版本也可以使用下面这条语句来查看:SELECT name, recovery_model_desc 阅读全文
posted @ 2014-04-09 15:44 无敌百搭 阅读(484) 评论(0) 推荐(0)
SQL Server如何截断(Truncate)和收缩(Shrink)事务日志
摘要:当SQL Server截断事务日志时,它仅仅是在虚拟日志文件中做个标记,以便不再使用它,然后准备以重用形式来做备份(假如运载在完整或是批量日志恢复模型)。也就是说,在使用简单恢复模型时,事务日志包括如下的日志记录:当checkpoint发生时,虚拟日志文件1、2不再被使用,因为事务1、2已经被提交了,而且日志记录也不再需要回滚了。然后SQL Server重用虚拟日志文件1、2,如下图:这就是我们所熟知的事务日志截断。基本上,事务日志的活动区间已经被截断了,但是事务日志的物理大小不会改变,除非数据库使用自动收缩的属性设置。在这种情况下,事务日志就会尽可能的在物理上进行周期性的收缩。为了物理上减小 阅读全文
posted @ 2014-04-09 15:23 无敌百搭 阅读(7316) 评论(0) 推荐(1)
SQLSERVER备份事务日志的作用
摘要:事务日志备份有以下3种类型(1)纯日志备份:仅包含相隔一段时间的事务日志记录,而不包含任何大容量更改(2)大容量操作日志备份.包括由大容量操作更改的日志和数据页,不支持时间点恢复(3)尾日志备份:从可能已破坏的数据库创建,用于捕获尚未备份的日志记录。在失败后创建尾日志备份可以防止工作损失,并且,尾日志备份可以包含纯日志或大容量日志数据必须至少有一个完整备份或一个等效文件备份集,才能进行任何日志备份。通常DBA定期(如每周)创建数据库完整备份,以更短的间隔(如每天)创建差异备份,并会频繁(如每10分钟)创建事务日志备份。最恰当的备份间隔取决于一系列因素,如数据的重要性、数据库的大小和服务器的工作 阅读全文
posted @ 2014-04-08 15:47 无敌百搭 阅读(3765) 评论(0) 推荐(0)
删除sqlserver2008登录记录
摘要:SQL Server Management Studio登陆窗口 清空这些多余的登陆名删除SqlStudio.bin文件WinXP: C:\Documents and Settings\用户文件夹\Application Data\Microsoft\Microsoft SQL Server\100\Tools\ShellWin 7 C:\Users\用户文件夹\Application Data\Microsoft\Microsoft SQL Server\100\Tools\Shell 阅读全文
posted @ 2014-03-24 13:41 无敌百搭 阅读(2495) 评论(0) 推荐(0)
sqlserver2008 复制,镜像,日志传输及故障转移集群区别
摘要:一, 数据库复制 SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份。这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是一种优于文件备份的数据库备份解决方案。 SQL Server的复制分为种:1. 快照发布: 发布服务器按预定的时间间隔向订阅服务器发送已发布数据的快照。每隔一段时间将订阅数据库中的相应表中的数据全部删除,然后将自己相应表中的全部插到订阅数据库中 使用快照复制本身是最合适的: 1)很少更改数据。 ... 阅读全文
posted @ 2014-03-21 12:47 无敌百搭 阅读(4440) 评论(0) 推荐(0)
清除SQL Server 2008中登陆时的历史记录
摘要:win7 在地址栏直接输入下面路径,删除SqlStudio.bin文件%AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell 阅读全文
posted @ 2014-03-21 08:59 无敌百搭 阅读(198) 评论(0) 推荐(0)
SQL Server 2008 清空删除日志文件
摘要:USE [master]GOALTER DATABASE STAR9SQL SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE STAR9SQL SET RECOVERY SIMPLE --简单模式GOUSE star9sqlGODBCC SHRINKFILE (N'STAR9SQL_log' , 11, TRUNCATEONLY)GOUSE [master]GOALTER DATABASE STAR9SQL SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE STAR9SQL SET RE 阅读全文
posted @ 2014-03-20 09:35 无敌百搭 阅读(363) 评论(0) 推荐(0)
SQLServer恢复表级数据
摘要:最近几天,公司的技术维护人员频繁让我恢复数据库,因为他们总是少了where条件,导致update、delete出现了无法恢复的后果,加上那些库都是几十G。恢复起来少说也要十几分钟。为此,找了一些资料和工作总结,给出一下几个方法,用于快速恢复表,而不是库,但是切记,防范总比亡羊补牢好。 在生产环境或者开发环境,往往都有某些非常重要的表。这些表存放了核心数据。当这些表出现数据损坏时,需要尽快还原。但是,正式环境的数据库往往都是非 常大的,统计数据表明,1T的数据库还原时间接近24小时,所以因为一个表而还原一个库,不单空间,甚至时间上都是一个很大的挑战。本文介绍如何恢复单 表,而不需要恢复整个库.. 阅读全文
posted @ 2014-02-26 10:41 无敌百搭 阅读(11113) 评论(0) 推荐(0)
SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
摘要:问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了。人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题。 遇到这种情况,一般都是没有做备份,不然也不会来发问了。首先要冷静,否则会有更大的灾难。直到你放弃。解决方法: 对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的工具Log Exploer,听说还挺好用的,这个网上大把教程,这里就不多说了。但是唯一遗憾的是,不支持2008及更高版本,这时除了其他第三方工具,那么最常用的就是本文提到的方法——日志尾部备份。本文实验环境20... 阅读全文
posted @ 2014-02-26 10:02 无敌百搭 阅读(1385) 评论(0) 推荐(0)
sqlserver检测死锁
摘要:--检测死锁--如果发生死锁了,我们怎么去检测具体发生死锁的是哪条SQL语句或存储过程?--这时我们可以使用以下存储过程来检测,就可以查出引起死锁的进程和SQL语句。SQL Server自带的系统存储过程sp_who和sp_lock也可以用来查找阻塞和死锁, 但没有这里介绍的方法好用。 use mastergocreate procedure sp_who_lockasbegindeclare @spid int,@bl int, @intTransactionCountOnEntry int, @intRowcount int, @intCountProp... 阅读全文
posted @ 2012-07-27 15:26 无敌百搭 阅读(5269) 评论(0) 推荐(2)
停用外键约束删除数据
摘要:select 'ALTER TABLE '+o.name+' NOCHECK CONSTRAINT '+fk.name+';' AS Commandfrom sys.foreign_keys fk JOIN sys.all_objects o ON (fk.parent_object_id=o.object_id) 复制结果, 粘贴出来执行. 就停用 外键约束了.然后你去删除数据去.数据删除好了, 再启用外键约束select 'ALTER TABLE ' + o.name + ' CHECK CONSTRAINT ' 阅读全文
posted @ 2012-05-26 10:40 无敌百搭 阅读(230) 评论(0) 推荐(0)
查询所有索引
摘要:--查询所有索引SELECTtab.name AS [表名],idx.name AS [索引名称],col.name AS [列名]FROMsys.indexes idxJOIN sys.index_columns idxColON (idx.object_id = idxCol.object_idAND idx.index_id = idxCol.index_id)JOIN sys.tables tabON (idx.object_id = tab.object_id)JOIN sys.columns colON (idx.object_id = col.object_idAND idxCo 阅读全文
posted @ 2012-05-26 10:36 无敌百搭 阅读(615) 评论(0) 推荐(0)
SQLSERVER的对表的一些操作语句
摘要:--插入数据insert into student(id,sname,j2se,j2ee,jsp)values(1,'张三',80,60,70);--更新数据update student set sname= '张三' where id=1;--增加字段ALTER TABLE table_NAME ADDcolumn_NAMEvarchar(30)--删除字段ALTER TABLE table_NAME DROP COLUMNcolumn_NAME--修改字段类型ALTER TABLE table_NAMEALTER COLUMN column_NAMEnew_ 阅读全文
posted @ 2012-05-26 10:16 无敌百搭 阅读(337) 评论(0) 推荐(0)
REPLACE替换字符串(update)
摘要:--地址数字*号declare @i intset @i=0while @i<=9begin update db_view set address=REPLACE(address,@i,'*') set @i=@i+1end--电话号码中间6位*号update db_view set telcode=REPLACE(telcode,SUBSTRING(telcode,2,6),'******')--姓名后面2位*号update db_view set name=REPLACE(name,SUBSTRING(name,2,2),'**') 阅读全文
posted @ 2012-05-25 09:46 无敌百搭 阅读(728) 评论(0) 推荐(0)
将查询到数据表中的相应字符串显示成*号
摘要:--直接查询select replace(name,substring(name,2,2),'**') as 姓名,replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(address,'0','*'),'1','*'),'2','*'),'3','*'),'4','*'),'5','* 阅读全文
posted @ 2012-05-25 09:44 无敌百搭 阅读(305) 评论(0) 推荐(0)
MS SQL Server 2005网络服务器配置方法
摘要:1.打开“SQL Server外围应用配置器”。2.点击“服务和连接的外围应用配置器”,打开服务和连接的外围应用配置器对话框,展开“MSSQLSERVER”下的“Database Engine”,然后点击“远程连接”,则右侧设置“本地连接和远程连接”下面的“同时使用TCP/IP和named pipes”项。然后应用确定。3.设置例外SQL Server端口(没开防火墙跳开这步)。在“控制面板”中打开“Windows防火墙”,选择“例外选项卡”。点击添加端口,给个名称,端口SQL默认的是1433,当然你也可以在“SQL Server Configuration Manager”中的网络配置中修改 阅读全文
posted @ 2012-05-25 09:43 无敌百搭 阅读(2214) 评论(0) 推荐(0)
SQL Server 2008 清空删除日志文件
摘要:1: 删除LOG1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有520多K上面的方法尽量不要用!用下面的好用些!先杀下用户进程//杀进程USE master;GODECLARE @SQL VARCHAR(MAX);SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)FROM master..sysprocessesWHERE dbid=DB_ID('star9sql' 阅读全文
posted @ 2012-05-25 09:42 无敌百搭 阅读(315) 评论(0) 推荐(0)
SQL导入/导出 生成Excel
摘要:启用Ad Hoc Distributed Queries:exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure 使用完成后,关闭Ad Hoc Distributed Queries:exec sp_configure 'Ad Hoc Distributed Queries',0reconfigureexec sp_configure 'show advanced op 阅读全文
posted @ 2012-05-25 09:40 无敌百搭 阅读(394) 评论(0) 推荐(0)

1 2 下一页