目前分類:DB - MSSQL (10)

瀏覽方式: 標題列表 簡短摘要

 

一、
從 SQL Server Management Studio
在資料庫上按右鍵->「屬性」->「選項」->「復原模式」,改成「簡單」模式
或是下指令
ALTER DATABASE 資料庫名稱 SET RECOVERY SIMPLE
MSSQL_Option_simple   
 
二、
use 資料庫名稱
GO
DBCC SHRINKFILE('LDF的邏輯名稱',2)
其中的LDF的邏輯名稱,可以下以下指令取得
select * from sys.database_files
通常都是:資料庫名稱_log
MSSQL_file_logicFile   

 

範例指令:

use Application_Registry_Service_DB_a3763f11049a4d59b45c9ee164c3e626

GO

DBCCSHRINKFILE('Application_Registry_Service_DB_a3763f11049a4d59b45c9ee164c3e626_log',2)


 
三、
將資料庫「復原模式」改回「完整」
或是下指令
ALTER DATABASE 資料庫名稱 SET RECOVERY FULL

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

設置的截圖如下:

先設定帳號對 msdb 資料庫有權限,並且有 SQLAgentOperator & SQLAgentReaderRole & SQLAgentUserRole 的角色

ProxyAccounts-loginProperties

Grant 給 MSSQL DB User:s1 上述權限後,就可以看到 SQL Server Agent

proxyAccount-SQLServerAgent 

由 MSSQL DB User:s1 建立 Job: del file

job-delfile

 

由 s1 執行會失敗,因 s1 沒有 OS 權限

 

Credential-user

 

ProxyAccount-generalProxyAccount-Principals  

 

 

job-proxyAccount  

 

 

 

 

MIS 發表在 痞客邦 留言(0) 人氣()

MSSQL Server 2012 對於 table  中的欄位作加密已有支援,作業如下:


-- Create EmployeeReviews table and grant permissions
USE AdventureWorks

IF EXISTS (SELECT * FROM sys.tables t JOIN sys.schemas s ON t.schema_id = s.schema_id
           WHERE t.[Name] = 'EmployeeReview' AND s.[Name] = 'HumanResources')
 DROP TABLE HumanResources.EmployeeReview

CREATE TABLE HumanResources.EmployeeReview
(EmployeeID int NOT NULL,
 ReviewDate datetime DEFAULT GETDATE() NOT NULL,
 Comments varbinary(2000) NOT NULL)

-- Create database master key
IF NOT EXISTS(SELECT * FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##')
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = 'Pa$$w0rd'

-- Create certificate
CREATE CERTIFICATE HRAppCert
WITH SUBJECT = 'HR certificate'
GO

-- Create symmetric key
CREATE SYMMETRIC KEY HRKey
WITH ALGORITHM = TRIPLE_DES
ENCRYPTION BY CERTIFICATE HRAppCert
GO

-- Insert encrypted data
    OPEN SYMMETRIC KEY HRKey DECRYPTION BY CERTIFICATE HRAppCert

    INSERT INTO HumanResources.EmployeeReview
    VALUES
    (1, DEFAULT, EncryptByKey(Key_GUID('HRKey'),'Increasing salary to $35,000'))

    CLOSE ALL SYMMETRIC KEYS


-- Read the decrypted data as HRApp
    OPEN SYMMETRIC KEY HRKey DECRYPTION BY CERTIFICATE HRAppCert
    SELECT CONVERT(varchar,DecryptByKey(Comments)) AS Comments FROM HumanResources.EmployeeReview
    CLOSE ALL SYMMETRIC KEYS

EncryptData  

MIS 發表在 痞客邦 留言(0) 人氣()

MSSQL Server 2012 在帳號認證可以採用 Windows Authentication 或是 SQL Server and Windows Authentication 混合模式兩種,認證模式若有修改則需重啟 SQL Server 才會生效。

MSSQL-Security-mode  

 

若您只要使用 MSSQL Server 內鍵資料庫的帳號,但又要使用OS系統的 Security Policy 的原則,則除了將 MSSQL Server 的 Security 改為SQL Server and Windows Authentication 混合模式外,在建立資料庫帳號前先設定好 Local Security Policy,例如:密碼長度至少要 4 碼。

LocalSecurityPolicy  

然後建立 MSSQL Server 帳號時,除了選擇 Login name 是以 SQL Server authentication 外,Enforce password policy 也要打勾才行。

MSSQL-DB-User-Create  

這樣就可以使用 MSSQL Server DB 內鍵帳號登入了,個人是認為以此種方式較為單純,而不需用純 Windows Authentication ,因為管資料庫的並不一定會管OS系統對吧!最後要提醒一下,此時的帳號只是能登入 MSSQL Server ,若要它能使用特定的資料庫,還得在 User Mapping 中設定對那一個資料庫有權限,權限的等級為何,這樣這個帳號才有辦法存取特定的資料庫內容。

userMapping  

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

MSSQL Server 2000  建立一個資料庫時, 會有兩個檔案 MDF 檔(資料檔) 及 LDF 檔(交易檔), 有時因為某種原因(如當機, 備份時間不一致...等), 致使這兩個檔的 LSN 不一致. 或者只備份 MDF 檔, 因此在附加資料庫時, 會發生 LSN 的錯誤. 以致於資料庫無法附加


環境:
OS: Windows Server 2k3 SP2
MSSQL: 2000 版本8.0
資料庫: ATest
資料庫檔案: D:\DB\ATest_Data.MDF (遺失 ATest_Log.LDF 或兩者不同步, 導致附加資料庫時出現 LSN 錯誤)

要救回資料庫的方法如下:

Step 01: 新建立一個相同的資料庫, 建立好後 shutdown MSSQL 2k


Step 02: 移除新建立資料庫的檔案 D:\DB\ATest_Data.MDF & ATest_Log.LDF , 將原來的 ATest_Data.MDF 放回 D:\DB

Step 03: 在 SQL Query Analyzer 中執行以下语句,把该数据库设置为紧急模式
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go




Step 04: 接著執行 下列指令
update sysdatabases set status = 32768 where name = 'ATest'

Step 05: 重启SQL Server服务, 會發生此資料庫進入緊急模式


Step 06: 執行 sp_dboption 指令,把資料庫设为Single User模式;
sp_dboption 'ATest', 'single user', 'true'

Step 07: 執行 DBCC CHECKDB
DBCC CHECKDB('ATest')


Step 08: 執行 DBCC REBUILD_LOG , 重建立 LDF 檔, 此時可以看到資料庫內的資料表了
DBCC REBUILD_LOG('ATest','D:\DB\ATest_Log.LDF')




Step 09: 執行下列指令, 将資料庫回覆正常狀態
update sysdatabases set status=0 where name='ATest'
或者
sp_resetstatus "ATest"
go
sp_configure 'allow updates', 0
reconfigure with override



Step 10: 執行 sp_dboption 指令, 將資料庫設回多人模式:
sp_dboption 'ATest','dbo use only','false'

Step 11: 重啟 MSSQL Server 2000 即可

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

MSSQL Server 2012 Restore 備份還原概念:

MSSQL Server 2012 Restore 在還原的過程中,有三個階段 (Phase):

1. Data Copy:建立實體檔案,與回存資料

2. Redo:從 LOG File 回存所有已經確認 ( commit ) 的 Transaction

3. Undo:回覆 ( Roll Back ) 在還原時間點時未確認的 Transaction (交易)

至於 MSSQL Server 2012 Restore 還原概念,大致是以下列 4 個步驟,不過這 4 個步驟應該也是大部份資料庫系統採用的方法,像 Oracle DB 的 RMAN 也是如此。

  • 1. 先嚐試執行 Tail-log 備份
  • 2. 回存最近一次全備份
  • 3. 回存最近一次的差異備份
  • 4. 回存所有備份 LOG Fiile 裡的 Transaction ,再回存第一步驟所備份 tail-log 中的 Transaction

 

備份還原實作

首先建立一個目錄 C:\backups 作為備份的目錄,接下來的步驟則是模擬資料庫 Northwind 的檔案毁損時,資料庫重建的完整過程

--1.建立備份裝置 mybackup(backup device)
指令:
EXEC master.dbo.sp_addumpdevice  @devtype = N'disk', @logicalname = N'mybackup', @physicalname = N'C:\backups\mybackup.bak'


backup-device   

 

--2.檢查 Northwind資料庫是否為 Full Recovery mode
MSSQL-Server-option  

 

--3.執行完整資料庫備份

指令:
BACKUP DATABASE [Northwind] TO  [mybackup] WITH FORMAT, INIT,  NAME = N'Northwind-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

Northwind-Full-backup  

--4.建立資料表(log中有此資料表)

指令:
use Northwind
go
create table table1 (a int , b int)
go

--5.backup log(log備份且 table1被清除)
指令:
BACKUP LOG [Northwind] TO  [mybackup] WITH NOFORMAT, NOINIT,  NAME = N'Northwind-Transaction Log  Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

Northwind-log-backup  

--6.新增資料(log中有 1 1 )
指令:
insert table1 values (1,1)

--7.backup log(log備份且 1 1被清除)
指令:
BACKUP LOG [Northwind] TO  [mybackup] WITH NOFORMAT, NOINIT,  NAME = N'Northwind-Transaction Log  Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

--8.新增資料(log中有 2 2 )
指令:
insert table1 values (2,2)

--破壞資料庫

1.stop sql service
2.rename C:\TSQL2K8DB\Northwind.mdf --> C:\TSQL2K8DB\Northwind.xxx
3.copy C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 到上層目錄
4.start sql service
5.sql log查詢壞掉的檔案
6.檢查資料庫狀態,這時資料庫的狀態會變成 Recovery Pending

--7.tail log backup
a.device右鍵-->database-->
Database:Northwind
backup type:log
option-->backup the tail of ....

 device-backup

因為資料庫:Northwind 已被破壞,所以只能從 Backup Devices:mybackup 作 Tail-log 備份,這也是在 MSSQL Server 2012 Backup 備份 中建議用 Backup Devices 的好處之一。

Northwind-log-backup

Northwind-tail-backup   

指令:
BACKUP LOG [Northwind] TO  [mybackup] WITH  NO_TRUNCATE , NOFORMAT, NOINIT,  NAME = N'Northwind-Transaction Log  Backup', SKIP, NOREWIND, NOUNLOAD,  NORECOVERY ,  STATS = 10

整個備份完的記錄可以 Device 的 Media Contents 中查詢

Device-Media-Contents 
b.檢查資料庫狀態,因為資料庫:Northwind 的資料檔名已被修改成 Northwind.mdf --> Northwind.xxx,重啟 MSSQL Server 伺服器後,MSSQL Server 檢查有問題,會將 Northwind 的狀態改為 Recovery Pending

device-backup 

c.選 Northwind,右鍵-->task-->restore-->database
指令:
RESTORE DATABASE [Northwind] FROM  DISK = N'C:\backups\mybackup.bak' WITH  FILE = 1,  NORECOVERY,  NOUNLOAD,  STATS = 10
GO
RESTORE LOG [Northwind] FROM  DISK = N'C:\backups\mybackup.bak' WITH  FILE = 2,  NORECOVERY,  NOUNLOAD,  STATS = 10
GO
RESTORE LOG [Northwind] FROM  DISK = N'C:\backups\mybackup.bak' WITH  FILE = 3,  NORECOVERY,  NOUNLOAD,  STATS = 10
GO
RESTORE LOG [Northwind] FROM  DISK = N'C:\backups\mybackup.bak' WITH  FILE = 4,  NOUNLOAD,  STATS = 10
GO

若是用 SQL Server Management Studio 回存也是很方便操作
full-restore 






 

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

MSSQL Server 2012 Transaction Concept 概念:

MSSQL Server 2012 在資料寫的的運作上,是秉持著 WAL(Write Ahead Logging) 的機制,Transaction 存取磁碟的作業,主要是依照下列 4 個步驟來作業:

  • 1. 將 Transaction 寫入 LOG File
  • 2. 將 Transaction 的異動修改 Buffer (記憶體) 裡的資料
  • 3. 交易完成 Transaction Commit
  • 4. 將 Buffer (記憶體) 裡的資料寫入 Disk ( Data Files )裡

 

Recovery Model:

在說明 MSSQL Server 2012 的備份模式前,要先瞭解它的 Recovery Model,MSSQL Server 2012 的 Recovery Model 有三種模式:

Recovery Model  

1. Simple:當 Transaction Commit 交易確認後,此 Transaction Log 就會從 LOG File 中清除(Truncate),所以 LOG File 並不會長大,LOG File 的檔案大小永遠保持最小。

2. Full:所有的 Transaction 交易都會保留在 LOG File 中,所以 LOG File 會一直長大,除了作備份作業後,LOG File 裡的 Transaction 內容才會被清除(Truncate),當然 LOG File 檔案要縮小,還得手動執行 Shrink Log 才行,如下圖示

shrink_cmd

Shrink_Log  

3. Bulk Logged:當有 Bulk Insert 的 SQL 語法時,這些 批次 的 Transaction 不會記錄在 LOG File 中。

 

Backup Type:

在 MSSQL Server 2012 的備份模式有七種模式,

  • 1. Full:所有的 Data files 及 Transaction Log 都備份
  • 2. Differential:只備份差異部份
  • 3. Partial:主要的 Primary Filegroup,與指定的 Filegroup
  • 4. Transaction Log:只備份 Log File 中的 Transaction,回存時需搭配 Full 備份的檔案
  • 5. Tail-log Backup:只備份尚存在 LOG File 中的 Transaction,如 15:00 執行了 Transaction Log 備份,下一次的備份時間在 16:00 ,但 SQL Server 在 15:30 掛了,此時尚存在 LOG File 中的 Transaction 就是 Tail-log。
  • 6. File/File Group:指定的 File or File Group 備份
  • 7. Copy Only:這個模式主要是將現行運行的資料庫線上烤貝 Copy 一份到異地端存放用的,這個作業並不會影響 LSN 的序列號。

 

備份實作:

一般簡單全備的的指令為

BACKUP DATABASE { database_name | @database_name_var }   TO <backup_device> [ ,...n ]   [ <MIRROR TO clause> ] [ next-mirror-to ]   [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;]

如:
BACKUP DATABASE Northwind
TO DISK ='C:\SQLDB_DATA\back\Northwind.bck'

 但這樣的作法,並不是很好的方式,建議應該建立一個 Backup Device 來作備份的目標物,在 Backup Device 再設定實際的磁碟或磁帶,這樣在未來儲存目標物 (destination) 有變更時,只要修改此 Backup Device 的儲存目標物 (destination) 即可。

建立備份裝置 mybackup(backup device),指令如:

EXEC master.dbo.sp_addumpdevice  @devtype = N'disk', @logicalname = N'mybackup', @physicalname = N'C:\backups\mybackup.bak'

也可以用 SQL Server Management Studio 來建立

backup-device  
  

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

當電腦主機名變更時,如:SA01 變更為 VS21,MSSQL Server 2012 也要作相對應的更名作業,不然在執行某些作業時會有問題,變更的操作如下:

Step 01:change to SQLCMD MODE

SQL-CMD-Mode.png  

Step 02: Drop 現行的 Instance:SA01

先執行 select @@SERVERNAME 查詢現在的 Instance 是什麼,此時應為 SA01;確定後,再執行下列指令

sp_dropserver @@servername
go

Step 03:增加 VS21 的 Instance

sp_addserver 'vs21',local

Step03:重啟 SQL Server 服務

!!net stop mssqlserver
!!net start mssqlserver

要注意的事:MSSQL Server 2012 預設的 Default Instance Name 為 mssqlserver,若您有第二個以上的 Instance,如 I2 ,則應為主機名\I2,以此範例而言,應是VS21\I2。

 

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()

MS SQL Server 2008 R2 在 Windows Server 2008 R2 SP1 上運行一段時日,近來常發現 MS SQL Server 2008 R2 常因 MSSQLSERVER_701:資源集區 'internal' 中的系統記憶體不足,無法執行此查詢 而自動停止 SQLSERVERAGENT 服務,導致 MSSQL Server 自動停止 。

MSDB_Error_701.png

 

Google 一下有人回應:

使用 SQL Server 組態管理員調整 SQL Server 啟動的參數,於原本的參數之後,再加入如下的參數:

;-g384

調整完畢,要重新啟動 SQL Server 服務。參考:http://technet.microsoft.com/zh-tw/library/ms190737.aspx 說明

 MSDB_initParameter.png  

在啟動參數最後加入 ;-g384 ,再觀察看看。

另外,當您執行 Database Engine 的多個執行個體於同一台主機時,可以使用 max server memory 來控制每個 MSSQL SERVER 的最大記憶體使用量

MSDB_Attribute.png  

操作的步驟如下:

1. 在 [物件總管] 中,以滑鼠右鍵按一下伺服器,然後選取 [屬性]。
2. 按一下 [記憶體] 節點。
3. 在 [伺服器記憶體選項] 底下,輸入 [最小伺服器記憶體] 和 [最大伺服器記憶體] 所要的數量。使用預設值可允許 SQL Server 根據可用的系統資源來動態變更它的記憶體需求。 [最小伺服器記憶體] 的預設值是 0,[最大伺服器記憶體] 的預設值是 2147483647 MB。

建議實體記憶體與配置給 MSSQL Server 的記憶體大小如下:

Physical RAM         MaxServerMem Setting
2GB                            1,500
4GB                            3,200
6GB                            4,800
8GB                            6,400
12GB                          10,000
16GB                          13,500
24GB                          21,500
32GB                          29,000
48GB                          44,000
64GB                          60,000
72GB                          68,000
96GB                          92,000
128GB                        12,4000

 

Physical RAM            Target Avail RAM in Task Manager
< 4GB                               512MB – 1GB
4-32GB                              1GB – 2GB
32-128GB                            2GB – 4GB
> 128GB                              > 4GB

以下為實務上的解決方法:

1. 實體記憶容量若總共有8G,則請調整MAX SERVER MEMORY為6 GB,請保留 2GB 給作業系統使用,您可視實際情況再進行調整。請您進行下記憶體的設定確認。
   a. 開啟 Management Studio。
   b. 開啟一個查詢視窗。
   c. 輸入並執行下列的語法:

USE master;
GO

EXEC sp_configure 'show advanced option', '1';
RECONFIGURE;
EXEC sp_configure;

EXEC sys.sp_configure N'max server memory (MB)', N'6144'
GO

RECONFIGURE WITH OVERRIDE
GO

d. 再次輸入下列的語法確認 [max server memory (MB)] 是否已變成 6144。

EXEC sp_configure N'max server memory (MB)';
GO

e. 將sp_configure的 [顯示進階選項] 設定關閉。

USE master;
GO
EXEC sp_configure 'show advanced option', '0';
RECONFIGURE;

2)為了避免 SQL Server Process 被強迫釋放,請您依據以下的作法進行設定[鎖定記憶體分頁] 權限:

a.您的SQL Server 2008 R2 是Standard版本,必須加上SQL Server啟動參數requires trace flag 845, 也就是-T845,設定lock page in Memory才會生效。
Support for Locked Pages on SQL Server 2008 R2 Standard Edition x64, on SQL Server 2005 Standard Edition 64-bit systems, and on SQL Server 2008 Standard Edition 64-bit systems

http://support.microsoft.com/kb/970070/en-us

MSSQL.PNG  

b. 調整 SQL Server Services Account 擁有 Lock Page In Memory 權限:
b-1. 請檢查組態管理員的 SQL Server 和 SQL Server Agent 的啟動帳戶是否為網域帳戶,且此帳戶擁有本機管理者權組的權限。
b-2. 確認SQL Server 和 SQL Server Agent 啟動帳戶擁有 [鎖定記憶體分頁] 權限。

c. 在 "本機安全性原則",如何啟用 [鎖定記憶體分頁選項]:
c-1. 在 [開始] 功能表上,按一下 [執行]。在 [開啟舊檔] 方塊中,輸入 gpedit.msc。此時會開啟 [群組原則] 對話方塊。
c-2. 在 [群組原則] 主控台中,依序展開 [電腦設定] 和 [Windows 設定]。
c-3. 展開 [安全性設定],然後展開 [本機原則]。
c-4. 選取 [使用者權限指派] 資料夾。這些原則會顯示在詳細資料窗格中。
c-5. 在窗格中連按兩下 [鎖定記憶體分頁]。

MSSQL_OS_RAM.png  
c-6. 在 [本機安全性原則設定] 對話方塊中按一下 [新增]。
c-7. 在 [選擇使用者或群組] 對話方塊中加入一個具有執行 sqlservr.exe 權限的帳戶。
c-8. 在命令提示字元下,執行 “gpupdate /force” 或登出您的帳戶再登入本機。
c-9. 重起 SQL Server 服務或重開機器。

(Option)另外,建議您更新至SQL Server 2008 R2 Service Pack 1來避免已知問題。
"Non-yielding Scheduler" error and SQL Server 2008 or SQL Server 2008 R2 stops responding intermittently in Windows Server 2008 or in Windows Server 2008 R2
http://support.microsoft.com/kb/2491214

MicrosoftR SQL ServerR 2008 R2 Service Pack 1 下載
http://www.microsoft.com/zh-tw/download/details.aspx?id=26727
 
建議您可以直接更新到SQL 2008 R2 Service Pack 2來避免更多已知問題
MicrosoftR SQL ServerR 2008 R2 Service Pack 2

http://www.microsoft.com/zh-tw/download/details.aspx?id=30437
http://www.microsoft.com/en-us/download/details.aspx?id=30437

參考文件:

http://technet.microsoft.com/zh-tw/library/aa337311%28v=sql.105%29.aspx

http://technet.microsoft.com/zh-tw/library/ms190737.aspx

http://technet.microsoft.com/zh-tw/library/ms178067.aspx

 

MIS 發表在 痞客邦 留言(0) 人氣()

關於Express的版本

  • SQL Server Express (x86 和 x64)

單純只有SQL Server Express資料庫系統。與with Tools, with Advanced Services兩版本最大差異就是沒有SQL Server Management Studio 2008 Express(SSMSE)管理工具。也就是說,如果你的這台資料庫伺服器只需要讓遠端Client連接進來進行相關作業,根本不會有本機使用 SSMSE管理工具的機會,那就很適合這個版本,小又單純。

  • SQL Server Express with Tools (x86 和 x64)


這是2008 Express + SSMSE管理工具的版本。也就是你有需要在資料庫伺服器本機做一些組態設定…等相關操作,那你就安裝這個版本。

  • SQL Server Express with Advanced Services (x86 和 x64)


除了SQL Server Express與SSMSE管理工具外,還提供「全文索引」及「報表伺服器」兩大功能。

SQL Server 2008 Express的限制

  在開始進入安裝之前,我們要先了解2008 Express的一些限制。在2008 Express中除了進階軟體功能的限制外(例如:壓縮),另外更重要的就是硬體上的限制,在功能差異方面,請參考上一節的註解「SQL Server 2008版本功能差異」。而2008 Express硬體的限制延續2005 Express一樣的限制:

  • CPU數目:1
  • 記憶體上限:1 GB
  • 64位元支援:Windows on Windows (WOW)
  • 資料庫大小:4 GB

2008 Express 的限制是「單一mdf檔案的大小」有限制,所以如果你預計你的資料庫大小會超過4 GB時,除了購買正式版外,在2008 Express上你可以多開幾個資料庫檔案避開這部分的限制,例如:products.mdf、members.mdf,但唯一麻煩可能是程式就要設計成 「跨資料庫存取」的方式。

SQL Server 2008 Express 安裝前環境準備

在開始安裝SQL Server Express之前,必須先準備好作業系統.NET Framework環境,所以我們必須先行下載以下套件(最好依順序安裝):
 

  • Microsoft .Net Framework 3.5 SP1:下載點(啟動載入器)、下載點(完整套件)
  • Windows Installer 4.5:下載點 (需重開機)
  • Windows PowerShell 1.0:
    x86 版 Windows XP Service Pack 2 的 Windows PowerShell 1.0:下載點
    x64 版 Windows XP Service Pack 2 的 Windows PowerShell 1.0:下載點
    x86 版 Windows Server 2003 Service Pack 1 的 Windows PowerShell 1.0:下載點
    x64 版 Windows Server 2003 的 Windows PowerShell 1.0:下載點
    Itanium 版 Windows Server 2003 Service Pack 1 的 Windows PowerShell 1.0:下載點
    x86 版 Windows Vista 的 Windows PowerShell 1.0:下載點
    x64 版 Windows Vista 的 Windows PowerShell 1.0:下載點


要比較注意的只有PowerShell一項,請選擇正確的版本對應的PowerShell,進入下載面畫後,你可以依需求切換PowerShell的語 系版本,也就是說,假設我不要使用繁體版本,我習慣看英文,那就可以選擇安裝英文版本的PowerShell,安裝之後,以後只要有關 PowerShell的任何訊息都會以英文來顯示。重點是,對應的作業系統版本要對,語系看你喜好。

另外只有一種情況下可以不安裝 PowerShell,只有單純安裝「SQL Server Express」這個版本時,可以不下載及安裝PowerShell,其他兩個2008 Express版本(with Tools及with Advanced Services),或單獨安裝SSMSE管理工具,都需要安裝以上三個套件。

SQL Server 2008 Express 安裝

  • SQL Server Express Service Pack 1:下載點
    Microsoft SQL Server 2008 Management Studio Express:下載點
  • SQL Server Express with Tools:下載點
  • SQL Server Express with Advanced Services:下載點
  • SQL Server Expres Service Pack 1:下載點
  • Microsoft SQL Server 2008 線上叢書 (2009 年 5 月):下載點
  • 範例和範例資料庫 (英文):下載點

2009年4月7日SQL Server Express推出Service Pack 1,所以你安裝with Tools及with Advanced Services版本,切記,安裝之後一定要快上Service Pack 1,依照基本預計值應就可以安裝成功。

SQL Server 2008 Express 的「執行個體」

「執行個體」,簡單說,你就把執行個體看成每一個「資料庫的名稱」,例如,我這次安裝的資料庫名稱叫「SQLEXPRESS」,然後,我在同一台電腦再安裝一次SQL Server 2008,然後我給他執行個體的名稱為「SQLBruce」。然後只需在使用時(SSMSE、網頁、應用程式都一樣)指定你所要「連接」的資料庫執行個體名稱,這些程式就知道要跟那一個資料庫來進行連接及處理的動作。

預設執行個體:此執行個體是藉由執行它的電腦網路名稱來識別。一部電腦中只能有一個是預設執行個體。它能讓較早SQL Server版本來使用SSMSE來連線到預設執行個體。

具名執行個體:此執行個體是以電腦的網路名稱加上執行個體名稱來識別,格式為{Computer Name}\{Instance Name},例如:

DS\SQLExpress
DS\SQLBruce
以上是標準使用{Computer Name}\{Instance Name}的格式。

192.168.1.10\SQLExpress
192.168.1.10\SQLBruce
你也可以使用IP來代替{Computer Name}部分。

DS.yourdomain.com\SQLExpress
DS.yourdomain.com\SQLBruce
你也可以使用Domain來代替{Computer Name}部分。IP與Domain在遠端連線時會使用到。

.\SQLExpress
.\SQLBruce

這個重要,這個「‧」(點)代表「本機」的意思。如果你是在本機作業,那就可以使用這個簡寫「‧」來代替{Computer Name},例如,你的資料庫與網站是在同一台伺服器,那麼網站內與資料庫連接相關程式碼,就可以使用這個「‧」來簡化程式碼

SQL Server 2008 Express 別名設定

若要以輸入192.168.1.10 來取代 192.168.1.10\SQLExpress 登入資料庫則需要作下列步驟

  • Protocals For SQLEXPRESS 的 TCP/IP 要Enable,與將 IPAll 的 TCP Port 設為1433

SQLServerConfigurationManager.png  

  •  啟用 Client Protocals 的TCP/IP ,讓外來的電腦可連入這台主機的 SQL Server 2008 Express

SQLServerClientProtocals.png  

  •  設定別名(Alias)192.168.1.10就可以登入為192.168.1.10\SQLEXPRESS

SQLServerClientAlias.png  

  • 啟動 SQL Server Browser 的 Services 

SQLServerServices.png  

  •  別忘了將防火牆對 SQL Server 2008 通訊的 1433 port 開啟

SQLServerFirewallPort.png  

  •  遠端電腦要連入時,就可以在伺服器用192.168.1.10 取代192.168.1.10\SQLEXPRESS 登入了

SQLServerLogin.png  

 

參考:http://blog.kkbruce.net/2009/08/microsoft-sql-server-2008-express.html#.T4vlPtmd0ug

文章標籤

MIS 發表在 痞客邦 留言(0) 人氣()