亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

玩轉SQL Server復制回路の變更數據類型、未分區表轉為分區表

2024-08-31 00:54:22
字體:
來源:轉載
供稿:網友
玩轉SQL Server復制回路の變更數據類型、未分區表轉為分區表玩轉SQL Server復制回路の變更數據類型、未分區表轉為分區表

復制的應用:

初級應用:讀寫分離、數據庫備份

高級應用:搬遷大型數據庫(跨機房)、變更數據類型、未分區表轉為分區表

京東的復制專家 菠蘿 曾經寫過文章、在數據庫大會上也做過演講,但是我相信真正按照菠蘿兄的文章自己去做一次實驗的人應該不多

京東的復制專家 菠蘿 的文章地址:Replication的犄角旮旯(一)--變更訂閱端表名的應用場景

為什麼要玩轉復制,大家想象一下:變更數據類型、未分區表轉為分區表 這些業務場景經常都會發生,特別在數據量特別大的公司

變更數據類型:沒有其他特別好的辦法,數據量大,鎖表時間會比較長

未分區表轉為分區表:有時候一張表的數據量已經很多了,比如體積已經達到100G,那么這時候需要做表分區,方法是重建聚集索引或者導數據

上面的方法不多不少都有一些缺陷,對于數據量特別大的情況下,如果超出業務的預期停機時間……菊花殘,滿地傷,被領導認為辦事不力

常見場景:

1、變更其中的自增列主鍵,int-》bigint ,將表改為表分區

2、100G+的大表

3、單次最長停機時間:為1小時

復制回路,一次搞定

下面介紹一下,如何在一個實例下,通過三個數據庫,建立一個復制回路,完成上面的需求

實驗環境:一臺電腦,一個SQL Server實例,SQL Server2012, Windows7

復制類型為事務復制

結構圖

從上圖可以看出,由于都是在同一個實例,同一臺機器下,所以機器磁盤需要有足夠的磁盤空間?。?/strong>

因為[testloopbackA]庫有一個[testAltertype]表100G,復制到[testloopbackB]庫[testAltertype]表100G

復制到[testloopbackC]庫[testAltertype]表100G,最后復制回去[testloopbackA]庫[testAltertype]表100G

加上生成的快照文件,當然快照文件可能會壓縮,但是一定要保證有足夠的磁盤空間

下面是具體演示

1、建庫腳本

USE [master]GO/****** Object:  Database [testloopbackA]    Script Date: 2015/6/3 8:21:01 ******/CREATE DATABASE [testloopbackA] CONTAINMENT = NONE ON  PRIMARY ( NAME = N'testloopbackA', FILENAME = N'D:/DataBase/testloopbackA.mdf' , SIZE = 30720KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),  FILEGROUP [FG_testChangepartition_Id_01] ( NAME = N'FG_testChangepartition_Id_01_data', FILENAME = N'D:/DataBase/testloopbackA/FG_testChangepartition_Id_01_data.ndf' , SIZE = 24576KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB ),  FILEGROUP [FG_testChangepartition_Id_02] ( NAME = N'FG_testChangepartition_Id_02_data', FILENAME = N'D:/DataBase/testloopbackA/FG_testChangepartition_Id_02_data.ndf' , SIZE = 24576KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB ) LOG ON ( NAME = N'testloopbackA_log', FILENAME = N'D:/DataBase/testloopbackA_log.ldf' , SIZE = 2432KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GOUSE [master]GO/****** Object:  Database [testloopbackB]    Script Date: 2015/6/3 8:22:11 ******/CREATE DATABASE [testloopbackB] CONTAINMENT = NONE ON  PRIMARY ( NAME = N'testloopbackB', FILENAME = N'D:/DataBase/testloopbackB.mdf' , SIZE = 30720KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),  FILEGROUP [FG_testChangepartition_Id_01] ( NAME = N'FG_testChangepartition_Id_01_data', FILENAME = N'D:/DataBase/testloopbackB/FG_testChangepartition_Id_01_data.ndf' , SIZE = 24576KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB ),  FILEGROUP [FG_testChangepartition_Id_02] ( NAME = N'FG_testChangepartition_Id_02_data', FILENAME = N'D:/DataBase/testloopbackB/FG_testChangepartition_Id_02_data.ndf' , SIZE = 24576KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB ) LOG ON ( NAME = N'testloopbackB_log', FILENAME = N'D:/DataBase/testloopbackB_log.ldf' , SIZE = 2432KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GOUSE [master]GO/****** Object:  Database [testloopbackC]    Script Date: 2015/6/3 8:22:14 ******/CREATE DATABASE [testloopbackC] CONTAINMENT = NONE ON  PRIMARY ( NAME = N'testloopbackC', FILENAME = N'D:/DataBase/testloopbackC.mdf' , SIZE = 30720KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),  FILEGROUP [FG_testChangepartition_Id_01] ( NAME = N'FG_testChangepartition_Id_01_data', FILENAME = N'D:/DataBase/testloopbackC/FG_testChangepartition_Id_01_data.ndf' , SIZE = 24576KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB ),  FILEGROUP [FG_testChangepartition_Id_02] ( NAME = N'FG_testChangepartition_Id_02_data', FILENAME = N'D:/DataBase/testloopbackC/FG_testChangepartition_Id_02_data.ndf' , SIZE = 24576KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB ) LOG ON ( NAME = N'testloopbackC_log', FILENAME = N'D:/DataBase/testloopbackC_log.ldf' , SIZE = 2432KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GO
View Code

下面分區方案和分區函數都在三個庫上執行

--1.創建分區函數CREATE PARTITION FUNCTIONFun_testChangepartition_Id(INT) ASRANGE LEFTFOR VALUES(2)--2.創建分區方案CREATE PARTITION SCHEME[Sch_testChangepartition_Id] aspARTITION [Fun_testChangepartition_Id]TO([FG_testChangepartition_Id_01],[FG_testChangepartition_Id_02])

建表腳本

USE [testloopbackA]GO--更改數據類型CREATE TABLE [testAltertype](id INT IDENTITY(1,1) PRIMARY KEY,name NVARCHAR(100))GO--變分區表CREATE TABLE [testChangepartition](id INT IDENTITY(1,1) PRIMARY KEY,name NVARCHAR(100))GO--插入測試數據INSERT INTO [dbo].[testAltertype]        ( [name] )VALUES  ( N'nihao'  -- name - nvarchar(100)          )INSERT INTO [dbo].[testChangepartition]        ( [name] )VALUES  ( N'nihao'  -- name - nvarchar(100)          )SELECT * FROM [testAltertype]SELECT * FROM [testChangepartition]
View Code

2、在[testloopbackB]庫先建好2個表

USE [testloopbackB]GO--更改數據類型CREATE TABLE testAltertype_new(id BIGINT IDENTITY(1,1) PRIMARY KEY,name NVARCHAR(100))GO--變分區表CREATE TABLE testChangepartition_new(id INT IDENTITY(1,1) PRIMARY KEY,name NVARCHAR(100)) ON [Sch_testChangepartition_Id](id)GO

3、創建[testloopbackA]庫到[testloopbackB]庫的發布,這一步很關鍵,因為在發布的時候需要修改項目屬性,在發布屬性里,還需要選擇快照為字符類型

testChangepartition_new表

testAltertype_new表

[testloopbackA]庫到[testloopbackB]庫的復制

4、建立[pub_testloopbackAtotestloopbackB]發布的訂閱

5、在[testloopbackB]庫里, 將[testAltertype_new]表和[testChangepartition_new]表里的id列里的不用于復制設置為"是"

[testAltertype_new]表

[testChangepartition_new]表

6、測試

在[testloopbackA]庫的[testAltertype]表和[testChangepartition]表各插入一些記錄

USE [testloopbackA]GO--插入測試數據INSERT INTO [dbo].[testAltertype]        ( [name] )VALUES  ( N'nihao2'  -- name - nvarchar(100)          )INSERT INTO [dbo].[testChangepartition]        ( [name] )VALUES  ( N'nihao2'  -- name - nvarchar(100)          )SELECT * FROM [testAltertype]SELECT * FROM [testChangepartition]

在[testloopbackB]庫就能看到新插入的記錄

USE [testloopbackB]GOSELECT * FROM [dbo].[testAltertype_new]SELECT * FROM [dbo].[testChangepartition_new]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲偷欧美偷国内偷| 一区二区三区四区精品| 日韩高清av一区二区三区| 色香阁99久久精品久久久| 成人网在线免费看| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品美女免费视频| 久久99国产精品自在自在app| 亚洲欧美制服另类日韩| 亚洲成人精品在线| 国产精品入口免费视频一| 国a精品视频大全| 日韩中文视频免费在线观看| 日韩国产精品视频| 亚洲天堂第一页| 成人免费高清完整版在线观看| 亚洲欧美国产va在线影院| 亚洲天堂av电影| 中文字幕日韩精品有码视频| 91av视频在线| 久久精品91久久香蕉加勒比| 久久久久久久久久久91| 国产视频在线一区二区| 91久久在线观看| 亚洲xxxx18| 91免费福利视频| 午夜精品一区二区三区在线视频| 91人人爽人人爽人人精88v| 国产精品久久久久久久久影视| 人妖精品videosex性欧美| 日韩视频免费在线观看| 久久免费视频观看| 69av成年福利视频| 国产精品对白刺激| 久久精品男人天堂| 成人高清视频观看www| 7777免费精品视频| 久久精品色欧美aⅴ一区二区| 国产精品一区二区久久久| 日韩欧美亚洲成人| 91在线视频免费| 中文字幕亚洲欧美日韩2019| 91欧美激情另类亚洲| 欧洲永久精品大片ww免费漫画| 国产精品久久9| 国产精品wwww| 久久久久久久久久久亚洲| 日韩电影免费在线观看中文字幕| 亚洲福利视频网| 国产一区二区丝袜高跟鞋图片| 免费97视频在线精品国自产拍| 国产精品久久久久久久7电影| 日日摸夜夜添一区| 久久手机精品视频| 精品欧美一区二区三区| 欧美精品一二区| 7777免费精品视频| 久久精品国产一区| 欧美在线欧美在线| 92福利视频午夜1000合集在线观看| 久久99国产综合精品女同| 亚洲综合色av| 国产精品白嫩初高中害羞小美女| 中文字幕欧美亚洲| 久久婷婷国产麻豆91天堂| 欧美精品一区二区免费| 亚洲级视频在线观看免费1级| 高清一区二区三区日本久| 69视频在线免费观看| 国产精品久久网| 亚洲欧美一区二区三区在线| 精品亚洲精品福利线在观看| 亚洲国产精品视频在线观看| 久久久女人电视剧免费播放下载| 国产成人jvid在线播放| 亚洲美女喷白浆| 亚洲第一页在线| 亚洲日本成人女熟在线观看| 亚洲级视频在线观看免费1级| 91久久精品美女高潮| 91久久久久久久一区二区| 国产原创欧美精品| 亚洲欧美制服丝袜| 国产精品亚洲片夜色在线| 川上优av一区二区线观看| 一区二区三区国产在线观看| 国产精品福利在线观看| 中国日韩欧美久久久久久久久| 欧美激情中文字幕在线| 中文字幕亚洲欧美日韩2019| 超薄丝袜一区二区| 精品久久久91| 亚洲午夜精品久久久久久性色| 国产日韩欧美中文在线播放| 成人黄色大片在线免费观看| 日本精品视频网站| 亚洲精品美女久久| 日韩在线不卡视频| 福利一区福利二区微拍刺激| 欧美洲成人男女午夜视频| 欧美性生交大片免费| 国产精品视频免费在线| 九九久久久久99精品| 日韩av免费在线观看| 精品成人国产在线观看男人呻吟| 亚洲a在线观看| 色综合久久久久久中文网| 红桃视频成人在线观看| 欧美福利在线观看| 亚洲国产精品福利| 久久97精品久久久久久久不卡| 亚洲免费av电影| 国产精品久久久久久av福利软件| 国产精品video| 国产欧美亚洲精品| 国产精品一区二区电影| 亚洲欧美第一页| 91最新在线免费观看| 日韩精品在线观| 日本成人黄色片| 一区二区亚洲欧洲国产日韩| 不卡毛片在线看| 欧美高跟鞋交xxxxxhd| 精品成人国产在线观看男人呻吟| 91在线高清视频| 亚洲18私人小影院| 日韩激情在线视频| 日韩视频免费大全中文字幕| 久久精品久久久久久| 全亚洲最色的网站在线观看| 18性欧美xxxⅹ性满足| 国产中文欧美精品| 91久久精品久久国产性色也91| 色综合视频网站| 日韩中文字幕不卡视频| 成人网在线观看| 国产一区二区久久精品| 欧美黄色三级网站| 激情久久av一区av二区av三区| 欧美黑人狂野猛交老妇| 欧美性猛交xxxx黑人| 国产在线98福利播放视频| 国产网站欧美日韩免费精品在线观看| 色婷婷av一区二区三区久久| 亚洲奶大毛多的老太婆| 国产69精品久久久久9999| 亚洲精品xxx| 亚洲视频电影图片偷拍一区| 精品国产区一区二区三区在线观看| 操日韩av在线电影| 久久国产精品久久久| 成人免费高清完整版在线观看| 国产精品黄色影片导航在线观看| 亚洲精品久久久久久久久久久久| 国产精品久久久亚洲| 久久久91精品| 国产精品成人观看视频国产奇米| 麻豆精品精华液| 色av中文字幕一区| 亚洲va欧美va国产综合久久| 欧美成人国产va精品日本一级| 91精品国产综合久久香蕉922| 国产精品444| 久久人人爽人人爽人人片亚洲|