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,就可以看到以圖形形式展現的死鎖信息了。