工作小筆記 年紀大了,常常會忘記….

13十二月/10關閉

iptables流量重新導向

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 22

分類於: 未分類 沒有回覆
16十一月/10關閉

如何於設定發行集的Table上異動資料庫結構?

緣由: 要對某個Table進行欄位新增時(alter table add column)出現錯誤,提示要先執行sp_register_custom_scripting後再進行資料庫結構異動。

處理過程: 這個Table有設定發行集,所以先參考MSDN的這一篇文章,
參考文章: 對發行集資料庫進行結構描述變更

由於該發行集不包含整個Table的所有欄位,要新增的欄位也無需設定到發行集,
因此使用[停用結構描述變更]的方式來處理。
先將[訂閱選項]中的[複寫結構描述變更]設為false,
然後執行要異動結構的SQL script,完成後再將[複寫結構描述變更]設為true。

分類於: 未分類 沒有回覆
5十一月/10關閉

MySQL緩慢,出現"Copy to tmp table"時的處理

狀況:MySQL Loading很高,show processlist時發現執行時間很長的SQL,狀態是"Copy to tmp table"
解決方法:
1. 使用show full processlist查看完整的SQL語法
2. explain SQL,檢查造成SQL緩慢的原因
3. 增加需要的index
4. 把my.cnf中的tmp_table_size加大
5. 把my.cnf中的tmpdir目錄改為tmpfs,以加快IO效率
mount tmpfs /mysql_tmp -t tmpfs

分類於: 未分類 沒有回覆
25十月/10關閉

手動執行壓縮資料庫記錄檔的SQL語法

ALTER DATABASE REPORT SET RECOVERY SIMPLE;
GO

DBCC SHRINKFILE (REPORT_Log, 1);
GO

ALTER DATABASE REPORT SET RECOVERY FULL;
GO

23九月/10關閉

在Linux下進行所有檔案的批次修改內容

1. 搜尋符合條件的所有檔案

find /home/test/www/ -name \*.js -exec grep -l alienradar {} \;

2. 進行所有符合搜尋條件的檔案內容修改

find /home/test/www/ -name \*.js -exec grep -l alienradar {} \; | xargs -i sed -i 's/document\.write.*Keyboard\.js.*//g' {}
分類於: 未分類 沒有回覆
16九月/10關閉

手動清除Replication的distribution記錄

執行以下SQL,會清除在distribution資料庫中的所有紀錄,

EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0, @max_distretention = 0

如果清除時發生下以錯誤時,
以下列使用者的身分執行: NT AUTHORITY\SYSTEM。無法移除目錄 '\\dl380x1\ReplData\unc\DL380W1_ITUSE_ARTIE_TEST\20100726150914\'。請檢查 xp_cmdshell 的安全性內容並關閉其他可能在存取這個目錄的程序。 [SQLSTATE 42000] (錯誤 20015). 步驟失敗。

首先要先開啟xp_cmdshell:

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

再來檢查存放snapshot的目錄權限:
這裡要注意的是,權限的部分是要設定共用的部分而非安全性的部分,
共用的使用權限中,帳號要開啟完全控制。

如果只是設定安全性的部分是沒有用的!

9九月/10關閉

壓縮記錄檔(ldf)沒有效果的狀況

該資料庫有設定發行集,需要重新匯入資料,但是不想讓異動記錄寫入distribution DB,
關閉replication log read agent可以不讓異動記錄進入distribution DB,
但是異動記錄還是會寫入該資料庫的ldf,
重新啟動replication log read agent後,在ldf內的異動資料還是會被寫入distribution DB。

該資料庫有設定發行集,無法使用truncate來清空資料,只能使用delete進行資料刪除,
但是delete會將所有的異動都寫入log file,造成ldf增長的非常大,
此時嘗試使用壓縮的功能來釋放ldf空間,卻沒有任何效果,
原因在於該資料庫處於replication的狀態,
使用select * from sys.databases這個SQL指令可以看到該資料庫的log_reuse_wait不是0,
log_reuse_wait_desc的值是REPLICATION,
最後只好刪除發行集再進行資料匯入,然後再壓縮ldf。

3九月/10關閉

SQL Server 2005 SSMS出現Sqlwb.exe錯誤而關閉

狀況:
使用SQL Server 2005的SSMS進行SQL語法查詢時,
出現Sqlwb.exe的錯誤而導致整個SSMS關閉。

解法:
到這個目錄下,
%SystemDrive%\Documents and Settings\\Application Data\Microsoft\Microsoft SQL Server\90\Tools\
刪除shell這個目錄,再重新執行SSMS即可!

1九月/10關閉

apache child pid exit signal File size limit exceeded error

網頁出現zero size的錯誤訊息,
apache error log出現[notice] child pid 23406 exit signal File size limit exceeded (25),
這是因為程式所要寫入的檔案超過2G所導致,
先找一下超過2G size的檔案,find / -size +1000000k
找到後進行備份/清空/壓縮。

分類於: 未分類 沒有回覆
17八月/10關閉

jQuery的select操作

取得下拉選單被選取的顯示文字:

$(#testSelect option:selected').text();
或$("#testSelect").find('option:selected').text();

將value='2'的選項設為selected:

$('#test').attr('value','2');
分類於: 未分類 沒有回覆