Sql-Server

定期在多個站點上執行 MS SQL 查詢

  • July 1, 2014

我的任務是定期將 Google Analytics 數據推送到 SQL Server 2005,該 SQL Server 2005 執行在不同伺服器上,來自不同伺服器上的各種網站(大約 450 個)。我知道我可以使用 PHP 執行 PDO 查詢以寫入 SQL Server DB,但我不清楚第二部分,定期執行。客戶希望數據對於某些數據每小時推送一次,而對於其他數據則每天推送一次。

設置一個 cron 作業是最好的方法嗎?我是否必須將 PDO 片段添加到要從中推送數據的每個站點,還是可以從每台伺服器上的一個位置對多個站點執行查詢?cron作業和PDO是最好的方法還是有更實用的方法?

你沒有提到這些網站在哪個作業系統上執行,但我假設是 Linux,因為你提到了 cron 作業;在這種情況下,我會推薦 PERL 或 Python,它們完全支持執行 SQL 查詢,並且很容易作為 shell 腳本執行,因此也很容易作為 cron 作業執行。我會避免使用 PHP,因為讓它從 shell 腳本執行可能會有些棘手,但這是你的決定:你可能對 PHP 比其他語言更有信心,而且你實際上可以將 PHP 用於建構以外的其他東西網頁。

在 Unix/Linux 系統上安排任務時,Cron 作業絕對是要走的路。

如果碰巧你需要在 Windows 中做同樣的事情,我仍然推薦相同的方法(使用計劃任務代替 cron 作業):雖然 SQL Server 有用於執行查詢的命令行工具(osqlsqlcmd),但你會仍然必須在它們周圍包裝某種腳本才能收集和格式化您的數據;PowerShell 可以在這方面為您提供幫助(它還可以對 SQL Server 執行直接查詢),但您可能更熟悉其他腳本語言,並且 PERL 和 Python 在 Windows 上都可用。

引用自:https://serverfault.com/questions/609138