最近女兒出生,比較忙,所以文章沒甚麼產出,甚是慚愧
剛好近期有在處理系統升級的事,遇到DB SERVER空間不足問題
SERVER空間已經切滿,又沒辦法外掛實體磁碟的情況下
只好找了一台實體機臨時SHARE出來備用
當需要備份到網路磁碟時,直接使用MS SQL提供的介面是沒辦法選取道網路磁碟
必須下以下語法新增裝置
USE master;
GO
EXEC sp_addumpdevice 'disk', 'networkdevice','\\server name\xxxxx\xxxxx.bak'
其中networkdevice 是自行定義的名稱
如此一來,若要備份,選擇以下裝置即可
若要附加網路磁碟上的備份檔,使用MS SQL提供的介面一樣選不到
在微軟的 KB304261 中有提到,預設情況下,SQL Server 無法使用網路資料庫檔案(儲存在網路的伺服器或網路附加的儲存體 [NAS]),若要使用,可透過啟用追蹤旗標 1807 讓 SQL Server 可對網路磁碟進行存取,因此可使用下列語法來建立資料庫
-- 啟用指定的追蹤旗標 1807
DBCC TRACEON (1807)
GO
-- 建立資料庫
CREATE DATABASE [test] ON PRIMARY
( NAME = N'test_data', FILENAME = '\\192.168.1.11\share_folder\test_data.mdf' , SIZE = 10240KB , FILEGROWTH = 10240KB )
LOG ON
( NAME = N'HRMDB_log', FILENAME = '\\192.168.1.11\share_folder\test_log.ldf' , SIZE = 10240KB , FILEGROWTH = 10240KB)
GO
-- 停用指定的追蹤旗標 1807
DBCC TRACEOFF(1807)
GO
在執行還原時,有時後會遇到 SQLERROR 無法獲得獨佔存取權 .........
問題發生的原因是資料庫還原時必須獨佔整個資料庫的存取權,換言之,還原資料庫的同時
不能有其他使用連接至要還原的資料庫,否則將會還原失敗
EXEC sp_who;
GO
以上語法可查看誰佔用
kill 34
使用kill語法,強制中段使用程序。
設定資料庫為單一使用者模式,並Rollback所有未commit的交易
ALTER DATABASE TABLENAME SET SINGLE_USER WITH ROLLBACK IMMEDIATE
接著即可開始還原了。
剛好近期有在處理系統升級的事,遇到DB SERVER空間不足問題
SERVER空間已經切滿,又沒辦法外掛實體磁碟的情況下
只好找了一台實體機臨時SHARE出來備用
當需要備份到網路磁碟時,直接使用MS SQL提供的介面是沒辦法選取道網路磁碟
必須下以下語法新增裝置
USE master;
GO
EXEC sp_addumpdevice 'disk', 'networkdevice','\\server name\xxxxx\xxxxx.bak'
其中networkdevice 是自行定義的名稱
如此一來,若要備份,選擇以下裝置即可
若要附加網路磁碟上的備份檔,使用MS SQL提供的介面一樣選不到
在微軟的 KB304261 中有提到,預設情況下,SQL Server 無法使用網路資料庫檔案(儲存在網路的伺服器或網路附加的儲存體 [NAS]),若要使用,可透過啟用追蹤旗標 1807 讓 SQL Server 可對網路磁碟進行存取,因此可使用下列語法來建立資料庫
-- 啟用指定的追蹤旗標 1807
DBCC TRACEON (1807)
GO
-- 建立資料庫
CREATE DATABASE [test] ON PRIMARY
( NAME = N'test_data', FILENAME = '\\192.168.1.11\share_folder\test_data.mdf' , SIZE = 10240KB , FILEGROWTH = 10240KB )
LOG ON
( NAME = N'HRMDB_log', FILENAME = '\\192.168.1.11\share_folder\test_log.ldf' , SIZE = 10240KB , FILEGROWTH = 10240KB)
GO
-- 停用指定的追蹤旗標 1807
DBCC TRACEOFF(1807)
GO
在執行還原時,有時後會遇到 SQLERROR 無法獲得獨佔存取權 .........
問題發生的原因是資料庫還原時必須獨佔整個資料庫的存取權,換言之,還原資料庫的同時
不能有其他使用連接至要還原的資料庫,否則將會還原失敗
EXEC sp_who;
GO
以上語法可查看誰佔用
kill 34
使用kill語法,強制中段使用程序。
設定資料庫為單一使用者模式,並Rollback所有未commit的交易
ALTER DATABASE TABLENAME SET SINGLE_USER WITH ROLLBACK IMMEDIATE
接著即可開始還原了。
留言
張貼留言