1. Microsoft sql Server\MSSQL.1\MSSQL\Data 目录里的.trc文件是做什么的
按说DATA中当的都应该是你自己创建的数据库文件而且文件的格式是MDF和LDF 原程序的大小应该小于100MB 我用的2000版本的 可能和你的不太一样 但那么大肯定不是程序文件了
我也不知道了
2. 如何查找数据库对象
在SQL Server 2008之后,你可以在SQL Server Management
Studio(SSMS)中得到一系列标准的报表。我们这里介绍的是架构更改历史报告,它是用来记录数据库架构层的变化。架构更改的历史记录报告生产使用
DDL完成的更改列表, 它会从默认的跟踪信息。
首先SQL Server是使用默认跟踪日志文件记录关于系统的某些事件和变化。如何打开默认跟踪日志文件呢?你可以在SQL Server Profiler 中像打开正常跟踪输出文件一样打开默认跟踪日志文件。以下语句是用来打开默认位置中的默认跟踪日志:
SELECT *
FROM fn_trace_gettable
('C:\Program Files\Microsoft SQL Server\' +
'MSSQL10_50.MSSQLSERVER\MSSQL\Log\log.trc',
default)
在SQL Server Management Studio中打开这个报告架构更改历史报告具体步骤如下:
1. 鼠标指向某个你想查看的数据库,然后右键
2. 选择报表 > 标准报表>架构更改历史报告
3. 如果你对数据库做过修改的话,报表会得到被修改的具体对象以及DDL的操作,修改时间以及用户名等信息。架构更改历史报告将在一个新的窗口中展开如下:
3. sqlserver2005恢复备份的日志文件到数据库后在查看数据库日志显示无操作记录
1、shutdown
2、复制数据文件
3、重启服务
4. Oracle中有没有什么工具 可以像MSSQL的Profiler工具一样实时跟踪被执行的SQL语句
trace工具,如果你想在当前session 会话(sqlplus)当中看的换,直接执行 set autotrace on,再执行你的sql就可以看到执行计划,也可以保存成trc文件,使用tkprof工具转义后查看。
5. 关于数据库文件的一些问题!
介绍sqlserver的吧,.mdf是数据库文件,.ldf是日志文件,.bak是备份文件,.trc是追踪文件
.trn是日志备份文件,.sql是脚本文件
这些都是常见的,作用嘛就如说明所示喽
数据库建表的内容会存储在.mdf的数据库文件中,一个数据库只有一个.mdf
6. oracle 10g 透明网关访问 sql server2008查询没有反应,该怎么处
ORACLE中怎样建DBLINK到异构数据库?
A :
请参考.
--建立ORACLE到SQL SERVER的分布式--
1、安装 Microsoft Data Access Components (MDAC)SDK ODBC driver
2、test whether CATHS has run.connect to the Oracle server
as schema "SYSTEM" and do "DESCRIBE SYS.HS_FDS_CLASS".
If it does not exist, connect as SYS (or internal) and run
the CATHS script. (ORACLE_HOME\RDBMS\ADMIN\CATHS.SQL)
3、建立 SQL SERVER 数据源
TEST_SQLSERVER
4、配置tnsnames.ora. (ORACLE_HOME\NETWORK\ADMIN)
TEST_SQLSERVER =
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=<IP地址>)
(PORT=1521)
)
(CONNECT_DATA=
(SID=TEST_SQLSERVER)
)
(HS=)
)
5、配置listener.ora. (ORACLE_HOME\NETWORK\ADMIN)
(SID_DESC=
(SID_NAME=TEST_SQLSERVER)
(ORACLE_HOME=D:\Oracle\iSuites)
(PROGRAM=hsodbc)
)
6、重启ORACLE监听.
CMD
LSNRCTL STOP
LSNRCTL START
LSNRCTL STATUS
7、添加网关配置文件. (ORACLE_HOME\HS\ADMIN)
文件名为:initTEST_SQLSERVER.ora
文件内容:
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = TEST_SQLSERVER
HS_FDS_TRACE_LEVEL = 0
#HS_FDS_TRACE_FILE_NAME = TEST_SQLSERVER.trc
#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>
8、进入ORACLE SQL*PLUS,建立数据库链.
CREATE DATABASE LINK TOSQL USING 'TEST_SQLSERVER';
7. SQL2005生成的.TRC太大了,大量占用存储空间,请问如何设置不要产生 SQL 跟踪文件
ssms中右键点击服务器属性-》安全性-》开启C2跟踪选项去掉
8. becord怎么追踪
具体方法如下:
可以使用SQLServerProfiler查看跟踪中捕获的事件数据。SQLServerProfiler显示基于定义的跟踪属性的数据。分析SQLServer数据的一种方式是将数据复制到其他程序中,例如SQLServer或数据库引擎优化顾问。如果跟踪中包括“文本”数据列,则数据库引擎优化顾问可以使用包含SQL批处理和远程过程调用(RPC)事件的跟踪文件。为了确保捕获正确的事件和列以便与数据库引擎优化顾问一起使用,请使用随SQLServerProfiler一起提供的预定义优化模板。
使用SQLServerProfiler打开跟踪时,如果跟踪文件是由SQLServerProfiler或SQL跟踪系统存储过程创建的,则该文件不需要带.trc文件扩展名。
9. 怎么捕获和记录SQL Server中发生的死锁
我们知道,可以使用SQL Server自带的Profiler工具来跟踪死锁信息。但这种方式有一个很大的敝端,就是消耗很大。据国外某大神测试,profiler甚至可以占到服 务器总带宽的35%,所以,在一个繁忙的系统中,使用profiler显然不是一个好主意,下面我介绍两种消耗比较少的方法。其中第二种的消耗最小,在最 繁忙的系统中也可使用。第一种最为灵活,可满足多种应用。
方法一:利用SQL Server代理(Alert+Job)
具体步骤如下:
1.首先使用下面的命令,将有关的跟踪标志启用。
SQL code
DBCC TRACEON (3605,1204,1222,-1)
说明:
3605 将DBCC的结果输出到错误日志。
1204 返回参与死锁的锁的资源和类型,以及受影响的当前命令。
1222 返回参与死锁的锁的资源和类型,以及使用了不符合任何 XSD 架构的 XML 格式的受影响的当前命令(比1204更进一步,SQL 2005及以上可用)。
-1 以全局方式打开指定的跟踪标记。
以上跟踪标志作用域都是全局,即在SQL Server运行过程中,会一直发挥作用,直到SQL Server重启。
如 果要确保SQL Server在重启后自动开启这些标志,可以在SQL Server服务启动选项中,使用 /T 启动选项指定跟踪标志在启动期
间设置为开。(位于SQL Server配置管理器->SQL Server服务->SQL Server->属性->高级->启动参数)
在运行上面的语句后,当SQL Server中发生死锁时,已经可以在错误日志中看到了,但还不够直观(和其它信息混在一起)。(SSMS
-> SQL Server实例 -> 管理 -> SQL Server日志)
2.建表,存放死锁记录
SQL code
USE [Cole] --Cole是我的示例数据库,你可以根据实际情况修改。
GO
CREATE TABLE DeadLockLog ( id int IDENTITY
(1, 1) NOT NULL, LogDate DATETIME, ProcessInfo VARCHAR(10), ErrorText VARCHAR(MAX) )
GO
3.建立JOB
新建一个JOB(假设名称为DeadLockJob),在"步骤"中新建一步骤,随便写一个步骤名称,数据库为"Cole"(见2.建表),在"命令"栏中输入以下语句:
SQL code
--新建临时表 IF OBJECT_ID('tempdb.dbo.#ErrorLog') IS Not Null
DROP TABLE #ErrorLog
CREATE TABLE #ErrorLog
(Id int IDENTITY (1, 1) NOT NULL, a DATETIME, b VARCHAR(10), c VARCHAR(MAX)) --将当前日志记录插入临时表
INSERT INTO #ErrorLog EXEC master.dbo.sp_readerrorlog --将死锁信息插入用户表
insert DeadLockLog
select a, b, c from #ErrorLog where id >= (select MAX(id) from #ErrorLog
WHERE c Like '%Deadlock encountered%')
DROP TABLE #ErrorLog
4.新建警报
在"新建警报"窗体的"常规"选项卡中,进行以下设置:
名称:可根据实际自行命名,这里我用DeadLockAlert
类型:选择"SQL Server性能条件警报"
对象:SQLServer:Locks
计数器:Number of Deadlocks/sec
实例:_Total
计数器满足以下条件时触发警报:高于
值:0
设置完成后,应该如下图所示:
在"响应"选项卡中,选中"执行作业",并选择步骤3中我们新建的作业(即DeadlockJob)
到这里为止,我们已经完成了全部步骤,以后,你就可以随时查询DeadLockLog表,来显示死锁信息了。
方法二:利用服务器端跟踪。
具体实现步骤如下:
1.编写如下脚本,并执行
SQL code
-- 定义参数
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5
-- 初始化跟踪 exec @rc = sp_trace_create @TraceID output, 0, N'e:\DbLog\deadlockdetect', @maxfilesize, NULL
--此处的e:\dblog\deadlockdetect是文件名(可自行修改),SQL会自动在后面加上.trc的扩展名
if (@rc != 0) goto error -- 设置跟踪事件 declare @on bit set @on = 1
--下述语句中的148指的是locks:deadlock graph事件(参见sys.trace_events),12指的是spid列(参见sys.trace_columns)
exec sp_trace_setevent @TraceID, 148, 12, @on
exec sp_trace_setevent @TraceID, 148, 11, @on
exec sp_trace_setevent @TraceID, 148, 4, @on
exec sp_trace_setevent @TraceID, 148, 14, @on
exec sp_trace_setevent @TraceID, 148, 26, @on
exec sp_trace_setevent @TraceID, 148, 64, @on
exec sp_trace_setevent @TraceID, 148, 1, @on
-- 启动跟踪
exec sp_trace_setstatus @TraceID, 1
-- 记录下跟踪ID,以备后面使用
select TraceID = @TraceID
goto finish
error:
select ErrorCode=@rc
finish:
go
运行上述语句后,每当SQL Server中发生死锁事件,都会自动往文件e:\DbLog\deadlockdetect.trc中插入一条记录。
2.暂停和停止服务器端跟踪
如果要暂停上面的服务器端跟踪,可运行下面的语句:
SQL code
exec sp_trace_setstatus 1, 0 --第一个参数表示TraceID,即步骤1中的输出参数。第二个参数表示将状态改为0,即暂停
如果要停止上面的服务器端跟踪,可运行下面的语句:
SQL code
exec sp_trace_setstatus 1, 2 --第一个参数表示TraceID,即步骤1中的输出参数。第二个参数表示将状态改为2,即停止
3.查看跟踪文件内容
对于上面生成的跟踪文件(e:\DbLog\deadlockdetect.trc),可通过两种方法查看:
1).执行t-sql命令
SQL code
select * from fn_trace_gettable('e:\DbLog\deadlockdetect.trc',1)
结果中的TextData列即以XML的形式返回死锁的详细信息。
2).在SQL Server Profiler中打开。
依次 进入Profiler -> 打开跟踪文件 ->选择e:\DbLog\deadlockdetect.trc,就可以看到以图形形式展现的死锁信息了。