取消Azure Arc自動安裝SQL Extension Agent的行為
就在我們完成 ExpressRoute 加入 Windows / Linux VM 的問題後,我們開始大量部屬 Azure Monitor Agent(AMA),但二天後收到 DBA 的通知,說我們安裝 Azure Monitor Agent(AMA)之後,不斷有程式在嘗式新增 SQLArcExtensionServerRole
角色進資料庫。
就在我們完成 ExpressRoute 加入 Windows / Linux VM 的問題後,我們開始大量部屬 Azure Monitor Agent(AMA),但二天後收到 DBA 的通知,說我們安裝 Azure Monitor Agent(AMA)之後,不斷有程式在嘗式新增 SQLArcExtensionServerRole
角色進資料庫。
有了前面把地端 VM 加入 Azure Arc 及地端 VM 安裝 Azure Monitor Agetn 的經驗,接下來我們要挑戰把地端的 SQL Server 也加入到 Azure Arc 清單中。
實作環境:
我們在 LINQPad 連線資料庫時,因為某些原因,我們會採用 linq2db.LINQPad 來進行連線作業。但當你輸入完一般的連線字串,很可能會碰到一個【此憑證鏈結是由不受信任的授權單位發出的】的錯誤。
今天要測個MS SQL的東西時,啟動MS SQL容器時發生Ports are not available
錯誤。
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" -p 1433:1433 --name sql1 --hostname sql1 -d mcr.microsoft.com/mssql/server:2022-latest
c71dce344559b7e9188144b69329bdeca50e85984742d0c97ea73d3b1a40c5cf
docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:1433 -> 0.0.0.0:0: listen tcp 0.0.0.0:1433: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
在前面談到 PowerShell Core 的指令可能沒有 PowerShell 來的全面,預設 PowerShell Core 只提供最核心的模組功能,但放心,從 PowerShell 時期就能通過模組(Module)來擴充,我可以透過 https://www.powershellgallery.com 來查詢與安裝,或利用 Get-Module
來查詢:
PS C:\> Get-Module -ListAvailable
Directory: C:\program files\powershell\6\Modules
ModuleType Version Name PSEdition ExportedCommands
---------- ------- ---- --------- ----------------
Manifest 6.1.0.0 CimCmdlets Core {Get-CimAssociatedInstance, Get-CimClass, Get-CimInstance, Get-CimSession…}
Manifest 1.2.3.0 Microsoft.PowerShell.Archive Desk {Compress-Archive, Expand-Archive}
Manifest 6.1.0.0 Microsoft.PowerShell.Diagnostics Core {Get-WinEvent, New-WinEvent}
Manifest 6.1.0.0 Microsoft.PowerShell.Host Core {Start-Transcript, Stop-Transcript}
Manifest 6.1.0.0 Microsoft.PowerShell.Management Core {Add-Content, Clear-Content, Clear-ItemProperty, Join-Path…}
Manifest 6.1.0.0 Microsoft.PowerShell.Security Core {Get-Acl, Set-Acl, Get-PfxCertificate, Get-Credential…}
Manifest 6.1.0.0 Microsoft.PowerShell.Utility Core {Export-Alias, Get-Alias, Import-Alias, New-Alias…}
Manifest 6.1.0.0 Microsoft.WSMan.Management Core {Disable-WSManCredSSP, Enable-WSManCredSSP, Get-WSManCredSSP, Set-WSManQuickConfig…}
Script 1.3.2 PackageManagement Desk {Find-Package, Get-Package, Get-PackageProvider, Get-PackageSource…}
Script 2.1.3 PowerShellGet Desk {Find-Command, Find-DSCResource, Find-Module, Find-RoleCapability…}
Script 0.0 PSDesiredStateConfiguration Desk {ValidateNoCircleInNodeResources, StrongConnect, New-DscChecksum, Test-NodeResources…}
Script 6.1.0.0 PSDiagnostics Core {Disable-PSTrace, Disable-PSWSManCombinedTrace, Disable-WSManTrace, Enable-PSTrace…}
Script 2.0.0 PSReadLine Desk {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Remove-PSReadLineKeyHandler, Get-PSReadLineOption…}
Binary 1.1.2 ThreadJob Desk Start-ThreadJob
因為教學與工作上的需求,經常使用到 Northwind 資料庫,但重覆性的建立工作,實在浪費不少時間。在容器化時代,當然用容器來解決這種工作內容最合適不過了。
我們的資料庫除了正式區之外都是使用 Visual Studio 資料庫專案來進行版控與管理。在測試區碰到一個簡單需求,新增表格欄位,例如定義 LocationType NVARCHAR (50) NOT NULL
,透過 New Schema Comparion 原本以為快速就能解決的表格更新,結果立刻得到如下錯誤:
MS SQL Server for Linux 是微軟重大的一步,它非常輕量但是使用相同和現有 SQL Server 資料庫引擎。以下介紹如何在 docker 下去建立並使用 mssql-server-linux,讓各位從入門到愛上它!
Let's go!
注意,讀者需要有 docker 基本概念。本篇不會太深入 docker 身上。
.NET 開發人員多多少少有機會使用到 SQL Server Management Studio (SSMS),SSMS 預設情況下會保留已連線過的伺服器名稱,在 SQL Server 2012 之前的 SSMS 一直有個毛病,那就是這個【伺服器名稱】不易刪除。這個問題在 SQL Server 2012 之後被修改,只需要你在【伺服器名稱】下拉選單將滑鼠移動過去要刪除的連線資訊,然後接下【Del】即可。
不過現在我碰到的相反需求,當【伺服器名稱】下拉選單越來越長時,有時要找到連線資訊都需要看一會兒,如果連線資訊又很相似時,那現真的考驗眼力與腦力,這對老人家真是不好。找了一下,原來 SSMS 還有本身就有個管理伺服器名稱好物。
前篇提到SSMS 2016中文版的更新錯誤的問題,今天談另一個相關的 Microsoft SQL Server Data Tools(SSDT) 中文版更新錯誤的問題。
舊專案裡保留著測試用的SqlLocalDb(*.mdf)檔案,在Visual Studio 2015開啟後會有一些提示,可以看到專案圖示明顯不同,也能看到提示訊息明確指出SqlLocalDb有版本上的差異。查了目前這台電腦,因為SSD空間有限,除了Visual Studio 2015之外,並無額外再安裝MS SQL Server (Express),查詢程式與功能確定Visual Studio 2015有安裝Microsoft SQL Server 2014 Express LocalDB。還要下載Microsoft SQL Server 2012 Express LocalDB?沒那麼笨吧!
試著點擊LocalDb(*.mdf),這次得到的線索很明確了。
MVA是微軟虛擬學院(Microsoft Virtual Academy, MVA)縮寫,它是一個微軟官方所主持的免費線上教學網站。光看上面的分類就嚇死人了,應有盡有。
這句話,是替各位觀眾說的。因為台灣微軟從2013年年中開始,陸續上線很不錯的「中文影音課程」,重點有二:一是完全免費。二是持續更新課程內容。當各位在享受與學習這些免費影音課程內容時,真的要心存感激。
在MVA學習的過程中,你可以使用你的Microsoft Accout(MSN、Outlook...)來登入,登入之後的學習過程會累積分數(點數),而且每一門課程完成之後都可以下載一份完課憑證。
在使用Visual Studio 2012與以往有個很大的不同點,就是越來越少碰原生的SSMS管理工具,原因之一是Visual Studio 2012內建了SQL Server的管理工具,原因之二就是預設使用SqlLocalDb。所以在進行開發工作時,可以很方便的在Visual Studio 2012中完成基礎的資料庫工作。
學習SqlLocalDb的話,首推Will的「SQL Server 2012 Express LocalDB (SqlLocalDB) 深入剖析」,不過在假日的早晨,突然看到Will發佈了秘密影片,在大小寶貝的攻擊之下,根本無法進入學習模式,只好邊看一些,邊寫一些。
如果想要對SqlLocalDb有進一步的操作,就必須對於sqllocaldb.exe
有多一分瞭解。影片有提到,原始sqllocaldb.exe的說明很爛,注意以下兩個參數:
改成英文來看就清楚一些了。
我的Blog文章有篇介紹《MICROSOFT SQL SERVER 2008 EXPRESS安裝與簡介》從推出以來,就是一直高居Blog裡文章流量的榜首,而且這個第一名是以年為單位。SQL Server 2008、SQL Server 2008 R2,SQL Server 2012年初都已經推出,而且連SQL Server 2012 Service Pack 1都已經快推出了。想想,應該來更新一下此SQL Server Express安裝內容。
SQL Server 2012 Express可由Microsoft Download Center下載取得。
版本除x32與x64外,主要有:
Express 系列新增的 LocalDB 是輕量版 Express,包含所有程式設計功能但是以使用者模式執行,並配備快速的零設定安裝,而且所需必要條件很少。如果您需要一種可從程式碼建立和使用資料庫的簡單方式,請使用此封裝。它可以與應用程式和資料庫開發工具 (如 Visual Studio) 結合,也可以內嵌在需要本機資料庫的應用程式中。
核心 Express 資料庫伺服器。如果您需要接受遠端連接或從遠端管理,請使用此封裝。
SQLEXPR_x86_CHT.exe(126.6 MB)、SQLEXPR_x64_CHT.exe(145.8 MB)
含有LocalDB、Database Engine、SQL Server Management Studio Express
SQLEXPRWT_x86_CHT.exe(756.2 MB)、SQLEXPRWT_x64_CHT.exe(722.2 MB)
此封裝不包含資料庫,僅包含管理 SQL Server 執行個體的工具,包括 LocalDB、SQL Express、SQL Azure 等執行個體。如果您已經擁有資料庫,而且只需要管理工具,請使用此封裝。此封裝不包含 LocalDB。
SQLManagementStudio_x86_CHT.exe(659.2 MB)、SQLManagementStudio_x64_CHT.exe(643.9 MB)
此封裝包含 SQL Express 的所有元件。
SQLEXPRADV_x86_CHT.exe(1.4 GB)、SQLEXPRADV_x64_CHT.exe(1.4 GB)
在Visual Studio 2010預設會安裝SQL Server 2008 Express,但在Visual Studio 2012會改預設安裝SqlLocalDB。SqlLocalDB是專為開發人員計設的一個版本,幾乎可執行所有T-SQL內容,而且它所在的機器上不需要有SQLExpress或MSSQLSERVER的執行個體即可執行。也就是說,不需要再額外安裝SQL Server或SQL Server Express即可開發與測試資料庫相關內容,實在是一個非常好用的功能。
如果也想在Visual Studio 2010裡使用SqlLocalDB,可以載下SQL Server Data Tools(要下載Visual Studio 2010版本),安裝之後,在連線時的伺服器名稱輸入:「(localdb)\v11.0」,即可和SqlLocalDB連線作業。也就是說,以前你可能要下載1.4GB的安裝檔回來安裝個SQL Server 2012 Express後,才能開始進行與資料庫相關的測試與開發工作。現在只需要約27~33MB的安裝檔+SSDT(不到1MB)即可測試與開發資料庫相關工作。這樣有沒有很棒。
其他版本功能上的差異,請參考http://msdn.microsoft.com/zh-tw/library/cc645993.aspx
用了一些時間,將MS SQL Server從2008 R2升級到2012版本,中間只碰到一點小問題,記錄一下。
從舊版本升級絕大部分都是在按【下一步】,有個地方產生錯誤:
圖示那兩個服務是Report Service,在MS SQL Server 2008 R2中,服務是被我停用,所以第一次進行這一步(第15個下一步)時,出現紅色X圖示,處理方式也很簡單:
此時,如果你再把【SQL Server Reporting Services】停用,回安裝程式按【上一步】【下一步】,都會得到正常綠色勾勾。整個升級過程費時半個小時以上,建議升級前把所有在【組態管理員(Sql Server Configuration Manager)】中將所有名稱【MSSQLSERVER】執行個體的服務全部啟用,這樣應該就不會出現我碰到的錯誤訊息。
另外注意,如果你同時在本機有安裝【MS SQL Server Express】版本,不同執行個體必須另外再執行一次升級作業,也就是說,【MSSQLSERVER】執行個體需要執行一次升級作業,【SQLEXPRESS】執行個體需要再執行一次升級作業(需另外下載Microsoft SQL Server 2012 SQLEXPRESS的進行升級安裝程式)。
在近二十步的【下一步】加一個小小【上一步】,MS SQL Server 2012降臨,版本號11.0.2100.60。
話說,MS SQL Server 2012 Service Pack 1都快出來了!XD
如果可以到http://msftdbprodsamples.codeplex.com/releases/view/55330下載到最新的AdventureWorks2012 Data File,下載回來是一個AdventureWorks2012_Data.mdf(193,536KB)檔案,你必須用附加方式來加入資料庫中,你可以先將mdf檔案移至C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA下。因為我們是採用升級的方式,所以會沒有DATA此目錄,請先自行建立。
我只是一個平凡人,如果我能,你也能。by KKBruce首先,我一定要感謝我最愛的家人們,不管什麼時候、什麼事,你們都永遠支持我。再來感謝所有幫助過我的人,因為有你們的表率,讓我有學習的對象,讓我有機會成為一位Microsoft MVP。
圖一:Microsoft MVP獎項 |
圖二:2012 Microsoft MVP獎盃 |
圖二:SQL Server Code Name "Denali" (from microsoft) |
圖三:Visual Studio LightSwitch (from microsoft) |
SELECT SERVERPROPERTY('productversion'),SERVERPROPERTY('productlevel'),SERVERPROPERTY('edition')
Product | Instance | Instance ID | Feature | Language | Edition | Version | Clustered |
---|---|---|---|---|---|---|---|
Sql Server 2008 | SQLEXPRESS | MSSQL10.SQLEXPRESS | Database Engine Services | 1033 | Express Edition | 10.1.2531.0 | 否 |
Sql Server 2008 | SQLEXPRESS | MSSQL10.SQLEXPRESS | Database Engine Services | 1028 | Express Edition | 10.1.2531.0 | 否 |
Sql Server 2008 | SQLEXPRESS | MSSQL10.SQLEXPRESS | SQL Server 複寫 | 1033 | Express Edition | 10.1.2531.0 | 否 |
Sql Server 2008 | SQLEXPRESS | MSSQL10.SQLEXPRESS | SQL Server 複寫 | 1028 | Express Edition | 10.1.2531.0 | 否 |
Product | Instance | Instance ID | Feature | Language | Edition | Version | Clustered |
---|---|---|---|---|---|---|---|
Microsoft SQL Server 2008 R2 | SQLEXPRESS | MSSQL10_50.SQLEXPRESS | Database Engine Services | 1033 | Express Edition | 10.50.1600.1 | 否 |
Microsoft SQL Server 2008 R2 | SQLEXPRESS | MSSQL10_50.SQLEXPRESS | Database Engine Services | 1028 | Express Edition | 10.50.1600.1 | 否 |
Microsoft SQL Server 2008 R2 | SQLEXPRESS | MSSQL10_50.SQLEXPRESS | SQL Server 複寫 | 1033 | Express Edition | 10.50.1600.1 | 否 |
Microsoft SQL Server 2008 R2 | SQLEXPRESS | MSSQL10_50.SQLEXPRESS | SQL Server 複寫 | 1028 | Express Edition | 10.50.1600.1 | 否 |