Làm th? nào đ? s? d?ng công c? Findstr đ? quét t?p tin ghi l?i SQL ho?c DBCC đ?u ra t?p tin cho vi?c phân tích l?i

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 115519 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

TÓM T?T

Nó là c?n thi?t đ? thư?ng xuyên ki?m tra DBCC đ?u ra và các b?n ghi l?i SQL Server đ? ki?m tra các v?n đ?. Đi?u này có th? là m?t quá tr?nh d? b? l?i và siêng năng, đ?c bi?t là n?u b?n ph?i làm đi?u này trên m?t s? máy ch?, m?i trong s? đó có th? nhi?u cơ s? d? li?u. Windows NT tàu v?i m?t m?nh m? m?u t?m ki?m utility đư?c g?i là FINDSTR.exe có th? đư?c s? d?ng đ? ph?n l?n t? đ?ng hoá công vi?c này. B?n c?ng có th? s? d?ng ti?n ích này có đi?u ki?n th?c hi?n m?t đ?t t?p tin d?a trên cho dù m?t s? dây l?i đư?c t?m th?y. Bài vi?t này mô t? cách s? d?ng này Findstr.

THÔNG TIN THÊM

FINDSTR là m?t hi?u su?t cao m?u t?m ki?m utility có s? d?ng Win32 không đ?ng b? và t?p tin ánh x? I/O cho thông lư?ng t?t nh?t. Nó cho phép vi?c s? d?ng bi?u th?c thông thư?ng, đ? quy t?m ki?m xu?ng m?t cây thư m?c, và các kh? năng đ? lo?i tr? các m?u, do đó vi?c đ?t đư?c m?t ch?c năng không. Xem Windows c?a b?n NT tài li?u hư?ng d?n cho thêm thông tin.

Có hai phương pháp ti?p c?n cơ b?n đ? t?m ki?m các b?n ghi l?i SQL Server hay DBCC đ?u ra l?i b?ng cách s? d?ng Findstr.exe:
  • Nhà nư?c m?t cách r? ràng nh?ng g? chu?i đ? t?m.
  • Nhà nư?c nh?ng g? chu?i b?n không mu?n t?m (mà s? hi?n th? t?t c?, nhưng chúng).
Trong phương pháp ti?p c?n đ?u tiên, b?n xây d?ng m?t danh sách các chu?i xác đ?nh l?i b?n mu?n Findstr đ? phù h?p v?i. Đây là danh sách chu?i có th? đư?c cung c?p như m?t đ?u vào t?p tin đ? Findstr.

Ví d?, nói r?ng b?n mu?n t?m t?t c? các l?n xu?t hi?n c?a các xâu "b?ng tham nh?ng"(mà đi kèm v?i nhi?u d? li?u nghiêm tr?ng l?i) và"msg 605"(mà là m?t lo?i h?nh c? th? c?a l?i). Đ?t các dây vào m?t t?p tin như v?y các n?i dung ch? đơn gi?n là trông như th? này:
table corrupt
msg 605
				
Ch?y Findstr.exe trên các t?p tin đ?u ra DBCC b?ng cách s? d?ng cú pháp này:
findstr /i /g:search.txt dbcc.* > findstr.out
				
trong trư?ng h?p search.txt là t?p tin có ch?a chu?i t?m ki?m, dbcc.* phù h?p v?i m?t nhóm các DBCC đ?u ra t?p tin đ? t?m ki?m, và findstr.out là nơi k?t qu? t?m ki?m đ?t.

Thách th?c v?i cách ti?p c?n này là bi?t trư?c nh?ng g? l?i dây đ? t?m ki?m. Th?t không may, đó là không có danh sách toàn di?n c?a SQL Server l?i dây mà bao g?m t?t c? các th? DBCC, máy ch?, và h?t nhân l?i. Đ?i v?i các phiên b?n trư?c khi đ?n 7,0, ch? đơn thu?n là t?m ki?m các dây có th? cung c?p b?o hi?m khá t?t như là m?t đi?m kh?i đ?u: "b?ng tham nh?ng", "c?p 16"-"c?p 21", và "m?c đ? nghiêm tr?ng: 16"-"m?c đ? nghiêm tr?ng: 21."

B?ng cách s? d?ng th? nghi?m m?t chút, đó là thư?ng có th? ti?p t?c c?i ti?n Đi?u này và nh?n đư?c khá đáng tin c?y checking tin (ch?c ch?n hơn c?y hơn làm V? v?y b?ng m?t).

Phương pháp ti?p c?n khác liên quan đ?n vi?c s? d?ng kh? năng "đ?o ngư?c tr?n" c?a Findstr đ? lo?i tr? các danh sách t?m ki?m chu?i. Cách ti?p c?n này d? dàng áp d?ng đ? DBCC ra hơn đ? l?i đăng nh?p đ?u ra b?i v? có r?t ít khác bi?t chu?i đó có yêu c?u lo?i tr?. Trong m?t s? cách đây ti?p c?n, n?u áp d?ng, là an toàn hơn b?i v? b?n ch? r? ràng nêu r? nh?ng g? không đ? phù h?p, và b?t k? m?i ho?c unanticipated l?i s? đư?c hi?n th? theo m?c đ?nh.

V? c?a kinh nghi?m hi?n đang h?n ch? v?i t?n s? thông báo l?i cho phiên b?n 7.0, cách ti?p c?n "đ?o ngư?c tr?n đ?u" có l? là phương pháp t?t nh?t cho phiên b?n này.

Ví d?, nói r?ng b?n mu?n lo?i tr? các xâu "T?ng s?", "B?ng có", và "Ki?m tra" trong m?t lo?t các DBCC đ?u ra t?p. Đi?u này s? lo?i tr? nhi?u thông đi?p tr?ng thái DBCC không c?n thi?t và s? không gây ra thi?t h?i c?a b?t k? l?i nào. Đ?i v?i các phiên b?n trư?c khi 7,0, nơi các dây vào m?t t?p tin trông như th? này:
The total number
Table has
Checking
				
Ch?y Findstr trên các t?p tin đ?u ra DBCC b?ng cách s? d?ng cú pháp này:
findstr /v /i /g:search.txt dbcc.* > findstr.out
				
trong trư?ng h?p search.txt là t?p tin có ch?a chu?i t?m ki?m, dbcc.* phù h?p v?i m?t nhóm các DBCC đ?u ra t?p tin đ? t?m ki?m, và findstr.out là đi?m đ?n cho các k?t qu? t?m ki?m. Các tham s? /v ch? ra "tr?n đ?u đ?o ngư?c, mà có hi?u qu? phù h?p v?i t?t c? các dây ngo?i tr? nh?ng ngư?i trong danh sách.

Cho 7,0, làm đi?u tương t? nhưng s? d?ng các dây:
pages for object
DBCC results
DBCC execution completed
				
Sau đây là danh sách lo?i tr? m?u cho các b?n ghi l?i s? l?c ra không- thông đi?p r?t c?n thi?t và t?m th?y l?i quan tr?ng nh?t. Đi?u này không ph?i là toàn di?n và đư?c xem như m?t m?u ch?. S?a đ?i nó cho phù h?p v?i nhu c?u c?a b?n.
Copyright
All rights reserved
Logging SQL Server
initconfig: number
SQL Server is start
initializing virtual
Opening Master Data
Loading SQL Server
Recovering Database
Recovery dbid
transactions roll
Activating disk
initializing virtual
server name is
Clearing
Using 'SQLEVENT.DLL
Using 'OPENDSNT.DLL
Using 'NTWDBLIB.DLL
Using 'SSNMPNTW.DLL
rolled forward
default sort
nocase
default character
recovery complete
terminating due
windows nt
(id =
killed by hostname
17824
17825
1608
17832
OS error : 109
OS error : 232
unable to write to
restrictions
contracts
server is unnamed
no_log
working thread
Sybase
network error
united states
unable to read login
duplication
subdivision
clause
number of buffers
using asynchronous disk
pipe name is
number of proc buffers
network information
file descriptors
transactions before ckpt
shutdown by request
				
Trong m?t s? trư?ng h?p, k?t h?p các phương pháp ti?p c?n hai pha tr?n t?t nh?t đ?c đi?m c?a c? hai, ho?c t?i ít nh?t là cho phép làm vi?c xung quanh khó khăn v?n đ? phát sinh t? vi?c s? d?ng ch? là m?t trong.

Ví d?, nói r?ng b?n đang t?m ki?m các b?n ghi l?i c?a b?n cho các dây "M?c đ? nghiêm tr?ng: 16" thông qua "m?c đ? nghiêm tr?ng: 21", mà nên phù h?p v?i h?u h?t l?i nghiêm tr?ng. Nhưng b?n nh?n th?y trong s?n lư?ng t?m ki?m c?a b?n m?t s? thông tin liên l?c- liên quan đ?n l?i như 1608 và 17832, mà thư?ng không ch? c?a m?t v?n đ? nghiêm tr?ng. B?n có th? gi? đi?u ki?n t?m ki?m ban đ?u c?a b?n và lo?i tr? ch? các c? th? l?i không mong mu?n t? t?m ki?m ra b?i piping m?t trong FINDSTR l?nh thành khác:
findstr /i /g:search.txt errorlog*.* | findstr
/v /i /g:exclude.txt > f.out
				
trong trư?ng h?p search.txt là t?p tin có ch?a các chu?i t?m ki?m, errorlog *. * là l?i SQL Server đăng nh?p các t?p tin đ? t?m ki?m, exclude.txt là file có ch?a chu?i t?m ki?m đ? lo?i tr?, và f.out là nơi t?m ki?m k?t qu? đư?c đ?t. Cách ti?p c?n này có th? cascaded nhi?u t?ng l?p sâu, không tính liên t?c thêm t?i m?i c?p đ?.

Có th? vi?t m?t t?p tin th?c thi có đi?u ki?n s? hành đ?ng d?a trên ngày cho dù Findstr phát hi?n m?t chu?i l?i nh?t đ?nh. K? thu?t này s? d?ng các Windows NT có đi?u ki?n x? l? l?nh đó là "&&" và "||". L?nh th?c hi?n m?t đ?t t?p tin batch1.bat n?u b?t k? c?a các máy ch? SQL l?i chu?i trong t?p tin search.txt đư?c t?m th?y:
findstr /i /g:search.txt errorlog*.* && batch1
				
Batch1.bat có th? g?i m?t chương tr?nh ho?c th?m chí ch?y m?t công vi?c ISQL s? d?ng các xp_sendmail kh? năng c?a SQL Server đ? g?i m?t thư thông báo m?t nhà đi?u hành c?a m?t v?n đ?.

Các k? thu?t mô t? ? trên có th? đư?c k?t h?p đ? th?c hi?n m?t lo?t các nhi?m v?. Cho Ví d?, t?p tin th?c thi sau liên t?c s? ch?y m?t l?nh Findstr mà có đi?u ki?n th?c hi?n batch1.bat n?u b?t k? l?i SQL strings trong search.txt t?p tin đư?c t?m th?y, không bao g?m dây trong exclude.txt.
echo off
:start
findstr /i /g:search.txt errorlog*.* | findstr
/v /i /g:exclude.txt && (echo WARNING & batch1)
goto start
				
V?i th? nghi?m m?t chút, b?n s? t?m th?y các k? thu?t này có th? r?t h?u ích trong vi?c gi?m lao đ?ng tham gia trong vi?c t?m ki?m l?i SQL Server đăng nh?p và DBCC đ?u ra t?p. Các k? thu?t tương t? c?ng có th? đư?c s? d?ng cho b?t k? văn b?n chung- t?m ki?m công vi?c, không ch? nh?ng ngư?i có liên quan đ?n máy ch? SQL.

Theo m?t s? đi?u ki?n, Findstr có th? g?p ph?i gi?i h?n n?i b? và không th? hoàn t?t t?m ki?m m?t. Khi đi?u này x?y ra, b?n s? th?y thông báo này trong đ?u ra:
FINDSTR: Vi?t l?i.
N?u đi?u này x?y ra, làm gi?m s? lư?ng phù h?p v?i dây b?n s? d?ng, h?y th? m?t k?t h?p tích c?c thay v? c?a tr?n đ?u đ?o ngư?c ho?c s? d?ng m?t công c? t?m ki?m khác nhau, ch?ng h?n như Perl (thêm chi ti?t v? đi?u này dư?i đây).

M?t ch? đ? liên quan là s? d?ng công c? d?ng l?nh Windows NT. B?t đ?u v?i Windows NT 4.0, không có ph?n m? r?ng nâng cao l?nh có s?n. Làm cmd /x /? đ? xem danh sách. Vi?c tăng cư?ng cho l?nh là m?t ví d?. Làm /? đ? xem cú pháp. Đây là m?t ví d? cho th?y làm th? nào đ? s? d?ng FOR ch?y isql 5 l?n trong m?t hàng, ti?t ki?m m?i đ?u ra vào m?t t?p tin đư?c đ?t tên theo m?t cách khác nhau:
FOR /L %f IN (1, 1, 5) do isql /Usa /P /itest.sql /otest%f.out
				
Dư?i đây là m?t ví d? v? làm th? nào đ? di chuy?n t?t c? các t?p tin có ch?a m?t chu?i l?i nh?t đ?nh đ?n m?t thư m?c chung. Đi?u này có th? h?u ích trong tiêu hu? ra có ch?a l?i errorlogs t? m?t nhóm l?n các l?i cái đ? h? có th? đư?c g?i đ?n m?t ngư?i nào đó đ? nghiên c?u thêm. Đi?u này minh ho? làm th? nào đ? th?c hi?n m?t chương tr?nh cho m?i tên t?p tin trong m?t t?p tin có ch?a m?t danh sách các tên.
findstr /s /i /c:"error.*605" errorlog*.* >  srch.out
FOR /F %f IN (srch.out) do copy %f c:\results
				
Thêm vào l?nh ti?n ích m? r?ng, m?t phiên b?n c?a Perl tàu v?i Windows NT Resource Kit. Perl là m?t ngôn ng? như c di?n gi?i cao t?i ưu hóa cho t?p và x? l? chu?i. D? dàng đ? làm phù h?p v?i mô h?nh ph?c t?p và ch?nh s?a/thay th? các ho?t đ?ng v?i Perl. Nó có th? đư?c s? d?ng cùng v?i d?ng l?nh Windows NT đ? cung c?p các tính năng r?t m?nh m?. Có r?t nhi?u sách và web thông tin ngu?n v? Perl.

Thu?c tính

ID c?a bài: 115519 - L?n xem xét sau cùng: 17 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
T? khóa: 
kbinfo kbusage kbmt KB115519 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:115519

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com