- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章关于 SQL Server ErrorLog 错误日志说明由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
默认情况下,SQL Server 保存 7 个 ErrorLog 文件,名为: ErrorLog ErrorLog.1 ErrorLog.2 ErrorLog.3 ErrorLog.4 ErrorLog.5 ErrorLog.6 在 APACS OS 版本 6.1 中,ErrorLog 文件保存在 c:\Program Files\Microsoft SQL Server\MSSQL$WINCC\LOG 文件夹中。在 APACS OS 版本 7.0 中,ErrorLog 文件保存在 c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG 文件夹中。ErrorLog 文件包含最新信息;ErrorLog.6 文件包含最老的信息。 每次重启动 SQL Server 时,这些日志文件都如下循环: 删除 ErrorLog.6 文件中的所有数据,并创建一个新的 ErrorLog 文件。 上个 ErrorLog 文件中的所有数据被写入到 ErrorLog.1 文件中。 上个 ErrorLog.1 文件中的所有数据被写入到 ErrorLog.2 文件中。 上个 ErrorLog.2 文件中的所有数据被写入到 ErrorLog.3 文件中。 上个 ErrorLog.3 文件中的所有数据被写入到 ErrorLog.4 文件中。 上个 ErrorLog.4 文件中的所有数据被写入到 ErrorLog.5 文件中。 上个 ErrorLog.5 文件中的所有数据被写入到 ErrorLog.6 文件中。 如果其中一个 ErrorLog 文件已很大,则可通过运行 sp_cycle_errorlog 存储过程手动循环这些 ErrorLog 文件。注意事项:旧的 ErrorLog 文件中的数据将被覆盖!如果必须保存旧的 ErrorLog 文件中的数据,则可将这些旧的 ErrorLog 文件复制到某个外部存储介质中。 在 APACS OS 版本 6.1 中,可利用 SQL Qry Analyzer Tool 从 SQL Server Enterprise Manager 运行 sp_cycle_errorlog 存储过程。在 APACS OS 版本 7.0 中,可从 SQL Server Management St io 运行 sp_cycle_errorlog 存储过程。 所以需要定期能切换写入error log . 一般可以使用DBCC errorlog命令来操作 。 Exec('DBCC ErrorLog') 或者可以通过以下命令,将sp 放在Job中定期执行。 。
复制代码代码如下
create procedure sp_cycle_errorlog --- 1997/06/24 as if (not (is_srvrolemember('sysadmin') = 1)) -- Make sure that it is the SA executing this. begin raiserror(15247,-1,-1) return(1) end dbcc errorlog return (0) GO 。
。
复制代码代码如下
获取数据库中所有的表 SELECT SysObjects.name AS Tablename FROM sysobjects WHERE xtype = 'U' and sysstat<200 获取数据库中所有表的列名 SELECT SysColumns.name AS Columnsname, SysObjects.name AS Tablename FROM SysObjects, SysColumns WHERE Sysobjects.Xtype='u' AND Sysobjects.Id=Syscolumns.Id 获取SQL所有数据库名、所有表名、所有字段名、表字段长度 1.获取MSSQL中的所有数据库名: SELECT name FROM MASter..SysDatabASes ORDER BY name 2.获取MSSQL中的所有用户表名: SELECT name FROM DatabASename..SysObjects WHERE XType='U' ORDER BY name XType='U':表示所有用户表; XType='S':表示所有系统表; 3.获取指定表[tb_phone]的所有字段名: SELECT name FROM SysColumns WHERE id=Object_Id('tb_phone') 4.SQL所有表的表名、所有字段名、表字段长度 SELECT table_name AS 数据表名, column_name AS 字段名, ISNULL(column_default,'') AS 默认值, is_nullable AS 是否允许为NULL, data_type AS 数据类型, ISNULL(ISNULL(ISNULL(character_maximum_length,numeric_precision),datetime_precision),1) AS 类型长度 FROM information_schema.columns WHERE NOT table_name IN('sysdiagrams','dtproperties') 5.获取指定表[tb_phone]的表名,表字段名,字段类型和类型长度 SELECT SysObjects.name AS Tablename, Syscolumns.name AS Columnsname, Systypes.name AS DateType, Syscolumns.length AS DateLength FROM Sysproperties RIGHT OUTER JOIN Sysobjects INNER JOIN Syscolumns ON Sysobjects.id = Syscolumns.id INNER JOIN Systypes ON Syscolumns.xtype = Systypes.xtype ON Sysproperties.id = Syscolumns.id AND Sysproperties.smallid = Syscolumns.colid WHERE (Sysobjects.xtype = 'u' OR Sysobjects.xtype = 'v') AND (Systypes.name <> 'Sysname') AND (Sysobjects.name = 'tb_phone') ORDER BY Columnsname 。
SQL Server 的每一个数据库,无论是系统数据库(master,model, sybsystemprocs, tempdb),还是用户数据库,都有自己的transaction log,每个库都有syslogs表。Log记录用户对数据库修改的操作,所以如果不用命令清除, log会一直增长直至占满空间。清除log可用dump transaction 命令;或者开放数据库选项trunc log on chkpt,数据库会每隔一段间隔自动清除log。管理好数据库log是用户操作数据库必须考虑的一面。 1、删除LOG 1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库 2:删除LOG文件 3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库 此法生成新的LOG,大小只有520多K 再将此数据库设置自动收缩 或用代码: 下面的示例分离 77169database,然后将 77169database 中的一个文件附加到当前服务器。 。
复制代码代码如下
EXEC sp_detach_db @dbname = '77169database' EXEC sp_attach_single_file_db @dbname = '77169database', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\77169database.mdf' 。
2、清空日志 。
复制代码代码如下
DUMP TRANSACTION 库名 WITH NO_LOG 。
再操作: 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 3、如果想以后不让它增长 企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M 自动收缩日志,也可以用下面这条语句: ALTER DATABASE 数据库名 SET AUTO_SHRINK ON 故障还原模型改为简单,用语句是: 。
复制代码代码如下
USE MASTER GO ALTER DATABASE 数据库名 SET RECOVERY SIMPLE GO ------------------------------------------ 截断事务日志: BACKUP LOG { database_name | @database_name_var } { [ WITH { NO_LOG | TRUNCATE_ONLY } ] } --压缩日志及数据库文件大小 /*--特别注意 请按步骤进行,未进行前面的步骤,请不要做后面的步骤,否则可能损坏你的数据库. --*/ 。
1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(客户资料) --收缩指定数据文件,1是文件号,可以通过这个语句查询到: select * from sysfiles DBCC SHRINKFILE(1) 4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除LOG文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将生成新的LOG,大小只有500多K 或用代码: 下面的示例分离 77169database,然后将 77169database 中的一个文件附加到当前服务器。 a.分离 EXEC sp_detach_db @dbname = '77169database' b.删除日志文件 c.再附加 EXEC sp_attach_single_file_db @dbname = '77169database', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\77169database.mdf' 5.为了以后能自动收缩,做如下设置: 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" --SQL语句设置方式: EXEC sp_dboption '数据库名', 'autoshrink', 'TR' 6.如果想以后不让它日志增长得太大 企业管理器--服务器--右键数据库--属性--事务日志 --将文件增长限制为xM(x是你允许的最大数据文件大小) --SQL语句的设置方式: 。
复制代码代码如下
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20) -------------------------------------------------------------- /*--压缩数据库的通用存储过程 压缩日志及数据库文件大小,因为要对数据库进行分离处理,所以存储过程不能创建在被压缩的数据库中。 /*--调用示例 exec p_compdb 'test' --*/ use master --注意,此存储过程要建在master数据库中 go if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_compdb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[p_compdb] GO create proc p_compdb @dbname sysname, --要压缩的数据库名 @bkdatabase bit=1, --因为分离日志的步骤中,可能会损坏数据库,所以你可以选择是否自动数据库 @bkfname nvarchar(260)='' --备份的文件名,如果不指定,自动备份到默认备份目录, 备份文件名为:数据库名+日期时间 as 。
--1.清空日志 exec('DUMP TRANSACTION ['+@dbname+'] WITH NO_LOG') --2.截断事务日志: exec('BACKUP LOG ['+@dbname+'] WITH NO_LOG') --3.收缩数据库文件(如果不压缩,数据库的文件不会减小 exec('DBCC SHRINKDATABASE(['+@dbname+'])') --4.设置自动收缩 exec('EXEC sp_dboption '''+@dbname+''',''autoshrink'',''TR''') --后面的步骤有一定危险,你可以可以选择是否应该这些步骤 --5.分离数据库 。
复制代码代码如下
if @bkdatabase=1 begin if isnull(@bkfname,'')='' set @bkfname=@dbname+'_'+convert(varchar,getdate(),112) +replace(convert(varchar,getdate(),108),':','') select 提示信息='备份数据库到SQL 默认备份目录,备份文件名:'+@bkfname exec('backup database ['+@dbname+'] to disk='''+@bkfname+'''') end --进行分离处理 create table #t(fname nvarchar(260),type int) exec('insert into #t select filename,type=status&0x40 from ['+@dbname+']..sysfiles') exec('sp_detach_db '''+@dbname+'''') --删除日志文件 declare @fname nvarchar(260),@s varchar(8000) declare tb cursor local for select fname from #t where type=64 pen tb fetch next from tb into @fname while @@fetch_status=0 begin set @s='del "'+rtrim(@fname)+'"' exec master..xp_cmdshell @s,no_output fetch next from tb into @fname end close tb deallocate tb --附加数据库 set @s='' declare tb cursor local for select fname from #t where type=0 open tb fetch next from tb into @fname while @@fetch_status=0 begin set @s=@s+','''+rtrim(@fname)+'''' fetch next from tb into @fname end close tb deallocate tb exec('sp_attach_single_file_db '''+@dbname+''''+@s) go 。
最后此篇关于关于 SQL Server ErrorLog 错误日志说明的文章就讲到这里了,如果你想了解更多关于关于 SQL Server ErrorLog 错误日志说明的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在查看预先重写的 jQuery 代码。我无法理解以下代码。 $('body > *:not(#print-modal):not(script)').clone(); 最佳答案 此选择器匹配以下任何
所以我开始学习MySQL,我对表有点困惑,所以我想澄清一下。数据库中可以有多个表吗?例如: Database1 -Table1 -Username -Password -Table2 -Name
我在 PostgreSQL 中编写了一个函数,其代码如下: for (i = 0; i str[0][i]); values[i] = datumCopy(dat_value,
oid: 行的对象标识符(对象 ID)。这个字段只有在创建表的时候使用了 WITH OIDS ,或者是设置了default_with_oids 配置参数时出现。 这个字段的类型是 oid (和字段同
我在搜索最大连接设备数时发现了 a post大致说: 当使用 P2P_STAR 时,最大设备数量为 10,因为此 topoly 使用 Wi-Fi 热点。也就是说,如果您没有路由器。 这让我问了两个问题
我不明白为什么会这样: Printf.sprintf "%08s" "s" = Printf.sprintf "%8s" "s" - : bool = true 换句话说,我希望: Printf.sp
我正在遵循 Grails in Action 中的示例。我有一个问题,如何理解 addTo*()功能有效。 我有一个简单的域:具有以下关系的用户、帖子、标签: 用户1对M发帖 用户一对一标签 发布 M
请问为什么行 "b[0]= new Child2();"在运行时而不是在编译时失败。请不要检查语法,我只是在这里做了 class Base {} class Child1 : Base {} clas
所以我想进一步加深我对套接字的理解,但是我想首先从最低级别开始(在C语言中,而不是在汇编中大声笑) 但是,我处理的大多数站点都使用SOCK_STREAM或SOCK_DGRAM。但是我已经阅读了Beej
好吧,我对 javascript 语法了解甚少,而且我对 null 的行为感到非常困惑。关于空值有很多讨论,但我似乎无法找出问题所在!请帮我。这是脚本。 var jsonData = '';
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭5 年前。 Improve thi
问题: SeriesSum 类旨在计算以下系列的总和: 类名:SeriesSum 数据成员/实例变量: x:存储整数 n:存储术语数量 sum:用于存储系列总和的双变量 成员函数: SeriesSum
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
今天我在 logcat 中注意到以下内容: D/OpenGLRenderer:0xa2c70600 (CardView) 上的 endAllStagingAnimators,句柄为 0xa2c9d35
如何创建值有序对的列表,例如list1 [(x, y), (x1, y1) ...].?? 学习如何创建此列表后,我需要知道如何将 x 值提供给列表中的用户输入并搜索 x 的下一个值并显示有序对 (x
我在存储过程中有以下逻辑。 这里完成了什么? 如果color为null,替换为'' IF ISNULL(@color, '') <> '' BEGIN END 最佳答案 它等同于: IF (@colo
我知道.Net中的接口(interface)定义了接口(interface)和继承它的类之间的契约。刚刚完成了一个大量使用数据访问层接口(interface)的项目,这让我开始思考。 . .有什么大不
如何防止基类方法被子类覆盖 最佳答案 您不需要做任何特别的事情:默认情况下方法是不可覆盖的。相反,如果您希望该方法可重写,则必须将 virtual 关键字添加到其声明中。 但是请注意,即使方法不可重写
我已阅读以下有关工厂模式的文章 here 请仅引用Class Registration - avoiding reflection这一部分。 这个版本在没有反射的情况下实现了工厂和具体产品之间的减少耦
我正在学习 Java 类(class),但无法完全理解下一课的内容。 目的:本课的目的是通过创建一个模拟 for-each 循环如何工作的替代方案来解释 for-each 循环的工作方式。 在上一课中
我是一名优秀的程序员,十分优秀!