iptables流量重新導向
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 22
如何於設定發行集的Table上異動資料庫結構?
緣由: 要對某個Table進行欄位新增時(alter table add column)出現錯誤,提示要先執行sp_register_custom_scripting後再進行資料庫結構異動。
處理過程: 這個Table有設定發行集,所以先參考MSDN的這一篇文章,
參考文章: 對發行集資料庫進行結構描述變更
由於該發行集不包含整個Table的所有欄位,要新增的欄位也無需設定到發行集,
因此使用[停用結構描述變更]的方式來處理。
先將[訂閱選項]中的[複寫結構描述變更]設為false,
然後執行要異動結構的SQL script,完成後再將[複寫結構描述變更]設為true。
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
手動執行壓縮資料庫記錄檔的SQL語法
ALTER DATABASE REPORT SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (REPORT_Log, 1);
GO
ALTER DATABASE REPORT SET RECOVERY FULL;
GO
在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' {}
手動清除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的目錄權限:
這裡要注意的是,權限的部分是要設定共用的部分而非安全性的部分,
共用的使用權限中,帳號要開啟完全控制。
壓縮記錄檔(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。
SQL Server 2005 SSMS出現Sqlwb.exe錯誤而關閉
狀況:
使用SQL Server 2005的SSMS進行SQL語法查詢時,
出現Sqlwb.exe的錯誤而導致整個SSMS關閉。
解法:
到這個目錄下,
%SystemDrive%\Documents and Settings\
刪除shell這個目錄,再重新執行SSMS即可!
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
找到後進行備份/清空/壓縮。
jQuery的select操作
取得下拉選單被選取的顯示文字:
$(#testSelect option:selected').text(); 或$("#testSelect").find('option:selected').text();
將value='2'的選項設為selected:
$('#test').attr('value','2');