成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server數據庫最小宕機遷移方案

數據庫 SQL Server 數據庫運維
在做SQL Server數據庫維護的時候,當上司要求我們把幾十G的數據文件搬動到其它服務器,并且要求最小宕機時間的時候,我們有沒什么方案可以做到這些要求呢?

一、目的

在做SQL Server數據庫維護的時候,當上司要求我們把幾十G的數據文件搬動到其它服務器,并且要求最小宕機時間的時候,我們有沒什么方案可以做到這些要求呢?

在這里我們假設這兩臺機器并不是在一個機房上,這樣看起來我們的解決方案才更有意義,如果你那么好運這兩臺機器在同一個局域網,那么恭喜你,你可以多很多的方案可以做到。

二、分析與設計思路

其實我們假設的環境有兩個特點:***個是數據庫文件比較大;第二個就是我們的傳送文件的速度可能會比較慢。也許這傳送速度我們是沒有辦法了,但是我們可以就從文件的大小這個問題出發,結合SQL Server的特性,這樣就有了下面的解決方案了。

為了使宕機時間最短,我們這里使用了完整備份和差異備份來遷移數據庫,在白天的時候對需要遷移的數據庫進行一次完整備份(XXX_full.bak),并把備份文件拷貝(這里可以使用FTP軟件進行斷點續傳)到目標服務器進行還原,等到下班時間之后再進行一次差異備份(XXX_diff.bak),再把這個差異備份拷貝到目標服務器,在完整還原的基礎上再進行差異還原。

這里的宕機時間 = 差異備份時間 + 傳送差異備份文件時間 + 還原差異備份文件時間,這宕機時間是不是讓你感覺這時間很短呢?

三、參考腳本

注意修改下面腳本中數據庫的名稱,還有絕對路徑。

--1:完整備份

  1. declare @dbname varchar(100)  
  2.  
  3. declare @sql nvarchar(max)  
  4.  
  5. set @dbname = 'DataBaseName' 
  6.  
  7. set @sql = '  
  8.  
  9. --'+@dbname+'_full   
  10.  
  11. BACKUP DATABASE ['+@dbname+']   
  12.  
  13. TO DISK = ''D:\DBBackup\'+@dbname+'_full.bak'' 
  14.  
  15. WITH NOFORMAT, NOINIT, NAME = '''+@dbname+'-完整數據庫備份'',   
  16.  
  17. SKIP, NOREWIND, NOUNLOAD, STATS = 10  
  18.  
  19. GO'  
  20.  
  21. print @sql 

--生成的SQL

  1. --DataBaseName_full   
  2.  
  3. BACKUP DATABASE [DataBaseName]   
  4.  
  5. TO DISK = 'D:\DBBackup\DataBaseName_full.bak' 
  6.  
  7. WITH NOFORMAT, NOINIT, NAME = 'DataBaseName-完整數據庫備份',   
  8.  
  9. SKIP, NOREWIND, NOUNLOAD, STATS = 10  
  10.  
  11. GO 

--2:完整備份還原

  1. declare @dbname varchar(100)  
  2.  
  3. declare @sql nvarchar(max)  
  4.  
  5. set @dbname = 'DataBaseName' 
  6.  
  7. set @sql = '  
  8.  
  9. --RESTORE '+@dbname+'_full  
  10.  
  11. RESTORE DATABASE ['+@dbname+']   
  12.  
  13. FROM DISK = ''D:\DBBackup\'+@dbname+'_full.bak'' WITH FILE = 1,   
  14.  
  15. MOVE N''DataBase_Name'' TO N''D:\DataBase\'+@dbname+'.mdf'',   
  16.  
  17. MOVE N''DataBase_Name_log'' TO N''D:\DataBase\'+@dbname+'_log.ldf'',   
  18.  
  19. NORECOVERY, NOUNLOAD, REPLACE, STATS = 10  
  20.  
  21. GO'  
  22.  
  23. print @sql 

--生成的SQL

  1. --RESTORE DataBaseName_full  
  2.  
  3. RESTORE DATABASE [DataBaseName]   
  4.  
  5. FROM DISK = 'D:\DBBackup\DataBaseName_full.bak' WITH FILE = 1,   
  6.  
  7. MOVE N'DataBase_Name' TO N'D:\DataBase\DataBaseName.mdf',   
  8.  
  9. MOVE N'DataBase_Name_log' TO N'D:\DataBase\DataBaseName_log.ldf',   
  10.  
  11. NORECOVERY, NOUNLOAD, REPLACE, STATS = 10  
  12.  
  13. GO 

--3:差異備份

  1. declare @dbname varchar(100)  
  2.  
  3. declare @sql nvarchar(max)  
  4.  
  5. set @dbname = 'DataBaseName' 
  6.  
  7. set @sql = '  
  8.  
  9. --'+@dbname+'_diff  
  10.  
  11. BACKUP DATABASE ['+@dbname+']   
  12.  
  13. TO DISK = N''D:\DBBackup\'+@dbname+'_diff.bak'' 
  14.  
  15. WITH DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N'''+@dbname+'-差異數據庫備份'',   
  16.  
  17. SKIP, NOREWIND, NOUNLOAD, STATS = 10  
  18.  
  19. GO  
  20.  
  21. '  
  22.  
  23. print @sql 

--生成的SQL

  1. --DataBaseName_diff  
  2.  
  3. BACKUP DATABASE [DataBaseName]   
  4.  
  5. TO DISK = N'D:\DBBackup\DataBaseName_diff.bak' 
  6.  
  7. WITH DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N'DataBaseName-差異數據庫備份',   
  8.  
  9. SKIP, NOREWIND, NOUNLOAD, STATS = 10  
  10.  
  11. GO 

--4:差異備份還原

  1. declare @dbname varchar(100)  
  2.  
  3. declare @sql nvarchar(max)  
  4.  
  5. set @dbname = 'DataBaseName' 
  6.  
  7. set @sql = '  
  8.  
  9. --RESTORE '+@dbname+'_full  
  10.  
  11. RESTORE DATABASE ['+@dbname+']   
  12.  
  13. FROM DISK = ''D:\DBBackup\'+@dbname+'_diff.bak'' WITH FILE = 1,   
  14.  
  15. NOUNLOAD, STATS = 10  
  16.  
  17. GO'  
  18.  
  19. print @sql 

--生成的SQL

  1. --RESTORE DataBaseName_full  
  2.  
  3. RESTORE DATABASE [DataBaseName]   
  4.  
  5. FROM DISK = 'D:\DBBackup\DataBaseName_diff.bak' WITH FILE = 1,   
  6.  
  7. NOUNLOAD, STATS = 10  
  8.  
  9. GO 

四、后記

也許到了這里應該結束了,但是往往事與愿違,有的時候我們的數據庫文件的大小并不是幾十G的,那么我們應該如何做呢?是否還有其他的解決方案呢?

我之前就移動過700G的數據文件,不過給我移動的時間比較充足,我是通過數據庫的作業進行愚公移山的,搬數據到新的服務器上的,這樣的好處就是對之前的數據庫進行優化,比如進行數據庫參數的設置,比如表分區,在對之前數據庫影響盡量小的情況進行數據搬遷。詳細的過程下次再寫吧。

原文鏈接:http://www.cnblogs.com/gaizai/archive/2011/03/30/2000175.html

【編輯推薦】

  1. 數據訪問由SQL Server遷移向Oracle數據庫的問題整理
  2. SQL Server數據遷移至云端應用技巧談
  3. SQL Server數據庫遷移方法
  4. 遷移SQL數據庫五招
責任編輯:艾婧 來源: 博客園
相關推薦

2011-04-18 10:00:32

SQL Server數據庫遷移

2009-03-19 09:44:07

SQL Server數據庫遷移數據庫

2011-04-29 14:30:23

2023-11-29 09:53:29

數據庫遷移SQL Server

2011-04-06 17:30:41

SQL ServerSQL

2010-07-15 17:28:50

SQL Server

2010-07-22 11:17:52

SQL Server數

2010-06-30 16:48:19

SQL Server數

2010-07-21 16:20:45

SQL Server

2021-05-17 06:57:34

SQLServer數據庫

2010-07-08 11:05:14

SQL Server數

2010-07-07 10:31:43

SQL Server數

2010-07-14 14:36:24

SQL Server附

2011-03-18 13:23:47

SQL ServerOracle

2010-07-01 12:44:52

SQL Server數

2010-04-19 10:00:02

Oracle SQL

2011-04-01 15:27:44

SQL Server數

2010-06-30 11:16:50

SQL Server

2011-04-01 17:05:44

SQL Server數日志

2011-03-21 10:13:31

Sql Server數分區
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日骚av| 欧美一级黄色免费看 | 国产精品爱久久久久久久 | 国产精品黄色 | 日韩和的一区二区 | 欧美在线一区二区三区 | 天天干狠狠操 | 国产91在线观看 | 午夜免费网 | a级在线| 日本午夜一区二区三区 | 日韩免费一区二区 | 国产91av视频在线观看 | 国产高清美女一级a毛片久久w | 欧美精品1区2区3区 精品国产欧美一区二区 | 欧美日韩亚洲国产综合 | 不卡一区二区在线观看 | 狠狠躁夜夜躁人人爽天天高潮 | 91精品国产91久久久久久密臀 | 婷婷色在线 | www精品 | 在线第一页 | 久久久精品视频免费 | 国产精品1区2区 | 国产综合视频 | 久久精品 | 中文字幕日韩一区二区 | 狠狠久久 | 日本成人在线免费视频 | 天天爽夜夜操 | 欧美精产国品一二三区 | 日韩在线视频一区 | 亚洲一区二区三区在线视频 | 婷婷91 | 中文字幕在线观看一区二区 | 国产精品久久福利 | 国产女人第一次做爰毛片 | 国产精品成人品 | 在线国产99 | 亚洲成人网在线 | 欧美videosex性极品hd |