2013-07-29

修改Synolog DS213j BT 快取值大小

原廠套件預設的快取大小只有4MB,這對硬碟的存取過於頻繁,
google了一下,發現可以透過指令修改系統設定檔的方式來變更,

1.停用Download Station
2.於控制台-->終端機-->啟用SSH功能
3.下載WinSCP-圖形化方式修改Linux檔案,不需瞭解指令
4.執行WinSCP,檔案協定選擇SCP,帳號為root密碼同admin密碼
5.編輯/var/packages/DownloadStation/scripts/start-stop-status檔案
找出"rm ${PACKAGE_DIR}/etc/download/settings.json"在前面加上#,存檔
6.編輯"/var/packages/DownloadStation/etc/download/settings.json"檔案
找出"cache-size-mb": 4, 修改數值,前輩建議不要超過系統RAM的一半,存檔
7.啟動Download Station

[敗家]Synolog DS213j 入手心得

最近終於購入想了很久的Synolog DS213j
想要換掉Zyxel 210主要的原因,
1.檔案傳輸平均只有10 MB/s,實在太慢了
2.想要換成2Bay的機種作RAID 1
3.可用的套件乏善可陳,還會更新失敗= =

換上DS213j後,除了傳檔可以跑到40-50MB/s
最吸引我的是他豐富的套件,也有搭配iOS、Android的app可使用,
所以原本自己組NAS的念頭也放棄了,
沒有那麼多時間再去研究哪些軟體一個一個安裝。

不過入手兩天來到是發現了一些問題,
1.跟WD綠標1 TB水土不服,格式化後同位元檢查一直出錯,
最後直接顯示資料毀損,無法使用,這叫我多年前誤信店員推薦的綠標何去何從>.<
2.Download Station內的BT下載老是不會動,或者一陣子就當掉需重啟服務,
Google一下,發現這部分似乎問題也不少,目前還在尋找最佳解決方案

PS:
之前網路上也有人提到如果NAS硬體掛的,
硬碟內的資料也救不回來,還挺令人擔心的,
不過後來看到下面這篇,說明如何利用Ununtu將資料救回
How can I recover data from my DiskStation using a PC?
這部分的疑慮也就消除了!

2013-07-27

複製檔案時出現"資料錯誤(檢查多餘的循環)"

複製檔案時出現資料錯誤(檢查多餘的循環)訊息導致無法完成作業,
可按照下述步驟將資料檢查修復,

於命令提示字元中輸入
CHKDSK X: /f /r /x 
X:請依照發生錯誤的磁碟代號替換

2013-07-24

Delphi透過RS232讀取資料-安裝MSComm元件

在Delphi中若欲透過RS232讀取機器發送的數值,
可透過VB的MSComm控制項抓取,
依照下列步驟,可將MSComm安裝於Delphi中,供編寫程式使用。

2013-07-23

MS SQL Server備份計畫

一直以來公司的資料庫都使用T-SQL做完整備份,一天一次,非常耗用空間,
當然這作法是不正確,但是因為一直沒有出事,
所以也讓我一直拖到現在才找時間研究該如何正確備份,
在MS SQL Server中可分為完整備份、差異備份、交易檔備份,
這次規劃將公司的備份變更為
1.每週日凌晨作一次完整備份
2.每日早上6點作一次差異備份
3.每日上班時間每小時作一次交易檔備份

2013-05-04

2013-04-17

判斷資料表中特定欄位是否存在


於MS SQL資料庫中可使用sys.sysobjects查詢資料表是否存在,
sys.columns則可查詢資料表中欄位資訊,
--檢查特定資料表是否存在
select OBJECT_ID('Prod')
--或
select * from sys.sysobjects where id=OBJECT_ID('Prod')
--檢查特定資料表中特定欄位是否存在
select * from sys.syscolumns where id=OBJECT_ID('Prod') and name='ProdNo'
如果是要查詢暫存表中的相關資訊,作法如下
--檢查特定暫存資料表是否存在
select OBJECT_ID('tempdb..#Prod')
--或
select * from tempdb..sysobjects where id=OBJECT_ID('tempdb..#Prod')
--檢查特定暫存資料表中特定欄位是否存在
select * from tempdb..syscolumns where id=OBJECT_ID('tempdb..#Prod') and name='ProdNo'

2013-04-07

變更tempdb存放位置

MS SQL Server無法透過Miscorsoft SQL Server Management Studio
修改伺服器中的tempdb的存放位置,
可以透過下述語法達到變更需求

--查詢tempdb存放位置
USE master
SELECT name,physical_name
FROM sys.master_files
WHERE database_id=DB_ID('tempdb')

--修改tempdb存放位置
USE master;
ALTER DATABASE tempdb
MODIFY FILE (NAME=tempdev,FILENAME='X:\tempdb.mdf');
ALTER DATABASE tempdb
MODIFY FILE (NAME=templog,FILENAME='X:\templog.ldf');

2013-02-13

INSERT EXEC 陳述式不可以是巢狀的

最近編寫stored procedure發生
「INSERT EXEC 陳述式不可以是巢狀的」的錯誤訊息,
主因是因為procedure內使用exec將結果寫入tempdb,
又將procedure回傳的結果又寫入tempdb中,
於MS SQL中視為Nested Insert Exec,所以禁止此操作,
解決方法可使用新增本機linkedserver的方式處理。

2013-01-19

GROUPING 回傳是否為GROUP BY彙總資料行

延續前一篇group by 群組小計
可搭配GROUPING使用,區分是否為匯總資料行。
DECLARE @TABLE TABLE (Pname VARCHAR(10),
   SW  VARCHAR(10),
   Qty SMALLINT)
INSERT INTO @TABLE VALUES ('AA','1',50)
INSERT INTO @TABLE VALUES ('AA','2',70)
INSERT INTO @TABLE VALUES ('AA','2',35)
INSERT INTO @TABLE VALUES ('AA','3',36)
INSERT INTO @TABLE VALUES ('BB','1',25)
INSERT INTO @TABLE VALUES ('BB','2',10)
INSERT INTO @TABLE VALUES ('BB','2',20)

SELECT Pname,SW,Qty=SUM(Qty),GP=GROUPING(Pname)
FROM @TABLE
GROUP BY Pname,SW WITH ROLLUP
--查詢結果
Pname      SW         Qty         GP
---------- ---------- ----------- ----
AA         1          50          0
AA         2          105         0
AA         3          36          0
AA         NULL       191         0
BB         1          25          0
BB         2          30          0
BB         NULL       55          0
NULL       NULL       246         1
參考自:MSDN-GROUPING (Transact-SQL)