postgresql跨機(jī)房同步

瀏覽:65 發(fā)布日期:2023-08-30 00:00:00 投稿人:佚名投稿

1、PostgreSQL兩個(gè)數(shù)據(jù)庫(kù)同步

你說(shuō)的類似oracle中的RAC嗎?目前postgre沒(méi)有。

現(xiàn)在postgre只有類似oracle中的DG,并且主庫(kù)是可讀寫,從庫(kù)是只讀(低版本的postgre不能讀)。
當(dāng)主庫(kù)發(fā)生錯(cuò)誤,需要手動(dòng)切換

2、怎么實(shí)現(xiàn)兩個(gè)數(shù)據(jù)庫(kù)的同步

同步兩個(gè)SQLServer數(shù)據(jù)庫(kù)

如何同步兩個(gè)sqlserver數(shù)據(jù)庫(kù)的內(nèi)容?程序代碼可以有版本管理cvs進(jìn)行同步管理,可是數(shù)據(jù)庫(kù)同步就非常麻煩,只能自己改了一個(gè)后再去改另一個(gè),如果忘記了更改另一個(gè)經(jīng)常造成兩個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)或內(nèi)容上不一致.各位有什么好的方法嗎?

一、分發(fā)與復(fù)制

用強(qiáng)制訂閱實(shí)現(xiàn)數(shù)據(jù)庫(kù)同步操作. 大量和批量的數(shù)據(jù)可以用數(shù)據(jù)庫(kù)的同步機(jī)制處理:

//

說(shuō)明:

為方便操作,所有操作均在發(fā)布服務(wù)器(分發(fā)服務(wù)器)上操作,并使用推模式

在客戶機(jī)器使用強(qiáng)制訂閱方式。

二、測(cè)試通過(guò)

1:環(huán)境

服務(wù)器環(huán)境:

機(jī)器名稱: zehuadb

操作系統(tǒng):windows 2000 server

數(shù)據(jù)庫(kù)版本:sql 2000 server 個(gè)人版

客戶端

機(jī)器名稱:zlp

操作系統(tǒng):windows 2000 server

數(shù)據(jù)庫(kù)版本:sql 2000 server 個(gè)人版

2:建用戶帳號(hào)

在服務(wù)器端建立域用戶帳號(hào)

我的電腦管理->本地用戶和組->用戶->建立

username:zlp

userpwd:zlp

3:重新啟動(dòng)服務(wù)器mssqlserver

我的電腦->控制面版->管理工具->服務(wù)->mssqlserver 服務(wù)

(更改為:域用戶帳號(hào),我們新建的zlp用戶 .\zlp,密碼:zlp)

4:安裝分發(fā)服務(wù)器

a:配置分發(fā)服務(wù)器

工具->復(fù)制->配置發(fā)布、訂閱服務(wù)器和分發(fā)->下一步->下一步(所有的均采用默認(rèn)配置)

b:配置發(fā)布服務(wù)器

工具->復(fù)制->創(chuàng)建和管理發(fā)布->選擇要發(fā)布的數(shù)據(jù)庫(kù)(sz)->下一步->快照發(fā)布->下一步->選擇要發(fā)布的內(nèi)容->下一步->下一步->下一步->完成

c:強(qiáng)制配置訂閱服務(wù)器(推模式,拉模式與此雷同)

工具->復(fù)制->配置發(fā)布、訂閱服務(wù)器和分發(fā)->訂閱服務(wù)器->新建->sql server數(shù)據(jù)庫(kù)->輸入客戶端服務(wù)器名稱(zlp)->使用sql server 身份驗(yàn)證(sa,空密碼)->確定->應(yīng)用->確定

d:初始化訂閱

復(fù)制監(jiān)視器->發(fā)布服務(wù)器(zehuadb)->雙擊訂閱->強(qiáng)制新建->下一步->選擇啟用的訂閱服務(wù)器->zlp->下一步->下一步->下一步->下一步->完成

5:測(cè)試配置是否成功

復(fù)制監(jiān)視器->發(fā)布衿?zehuadb)->雙擊sz:sz->點(diǎn)狀態(tài)->點(diǎn)立即運(yùn)行代理程序

查看:

復(fù)制監(jiān)視器->發(fā)布服務(wù)器(zehuadb)->sz:sz->選擇zlp:sz(類型強(qiáng)制)->鼠標(biāo)右鍵->啟動(dòng)同步處理

如果沒(méi)有錯(cuò)誤標(biāo)志(紅色叉),恭喜您配置成功

6:測(cè)試數(shù)據(jù)

在服務(wù)器執(zhí)行:

選擇一個(gè)表,執(zhí)行如下sql:        insert into wq_newsgroup_s select '測(cè)試成功',5

復(fù)制監(jiān)視器->發(fā)布服務(wù)器(zehuadb)->sz:sz->快照->啟動(dòng)代理程序 ->zlp:sz(強(qiáng)制)->啟動(dòng)同步處理

去查看同步的 wq_newsgroup_s 是否插入了一條新的記錄

測(cè)試完畢,通過(guò)。

7:修改數(shù)據(jù)庫(kù)的同步時(shí)間,一般選擇夜晚執(zhí)行數(shù)據(jù)庫(kù)同步處理

(具體操作略) :d

/*

注意說(shuō)明:

服務(wù)器一端不能以(local)進(jìn)行數(shù)據(jù)的發(fā)布與分發(fā),需要先刪除注冊(cè),然后新建注冊(cè)本地計(jì)算機(jī)名稱

卸載方式:工具->復(fù)制->禁止發(fā)布->是在"zehuadb"上靜止發(fā)布,卸載所有的數(shù)據(jù)庫(kù)同步配置服務(wù)器

注意:發(fā)布服務(wù)器、分發(fā)服務(wù)器中的sqlserveragent服務(wù)必須啟動(dòng)

采用推模式: "d:\microsoft sql server\mssql\repldata\unc" 目錄文件可以不設(shè)置共享

拉模式:則需要共享~!

*/

少量數(shù)據(jù)庫(kù)同步可以采用觸發(fā)器實(shí)現(xiàn),同步單表即可。

三、配置過(guò)程中可能出現(xiàn)的問(wèn)題

在sql server 2000里設(shè)置和使用數(shù)據(jù)庫(kù)復(fù)制之前,應(yīng)先檢查相關(guān)的幾臺(tái)sql server服務(wù)器下面幾點(diǎn)是否滿足:

1、mssqlserver和sqlserveragent服務(wù)是否是以域用戶身份啟動(dòng)并運(yùn)行的(.\administrator用戶也是可以的)

如果登錄用的是本地系統(tǒng)帳戶local,將不具備網(wǎng)絡(luò)功能,會(huì)產(chǎn)生以下錯(cuò)誤:

進(jìn)程未能連接到distributor '@server name'

(如果您的服務(wù)器已經(jīng)用了sql server全文檢索服務(wù), 請(qǐng)不要修改mssqlserver和sqlserveragent服務(wù)的local啟動(dòng)。

會(huì)照成全文檢索服務(wù)不能用。請(qǐng)換另外一臺(tái)機(jī)器來(lái)做sql server 2000里復(fù)制中的分發(fā)服務(wù)器。)

修改服務(wù)啟動(dòng)的登錄用戶,需要重新啟動(dòng)mssqlserver和sqlserveragent服務(wù)才能生效。

2、檢查相關(guān)的幾臺(tái)sql server服務(wù)器是否改過(guò)名稱(需要srvid=0的本地機(jī)器上srvname和datasource一樣)

在查詢分析器里執(zhí)行:

use master

select srvid,srvname,datasource from sysservers

如果沒(méi)有srvid=0或者srvid=0(也就是本機(jī)器)但srvname和datasource不一樣, 需要按如下方法修改:

use master

go

-- 設(shè)置兩個(gè)變量

declare @serverproperty_servername  varchar(100),

@servername    varchar(100)

-- 取得windows nt 服務(wù)器和與指定的 sql server 實(shí)例關(guān)聯(lián)的實(shí)例信息

select @serverproperty_servername = convert(varchar(100), serverproperty('servername'))

-- 返回運(yùn)行 microsoft sql server 的本地服務(wù)器名稱

select @servername = convert(varchar(100), @@servername)

-- 顯示獲取的這兩個(gè)參數(shù)

select @serverproperty_servername,@servername

--如果@serverproperty_servername和@servername不同(因?yàn)槟愀倪^(guò)計(jì)算機(jī)名字),再運(yùn)行下面的

--刪除錯(cuò)誤的服務(wù)器名

exec sp_dropserver @server=@servername

--添加正確的服務(wù)器名

exec sp_addserver @server=@serverproperty_servername, @local='local'

修改這項(xiàng)參數(shù),需要重新啟動(dòng)mssqlserver和sqlserveragent服務(wù)才能生效。

這樣一來(lái)就不會(huì)在創(chuàng)建復(fù)制的過(guò)程中出現(xiàn)18482、18483錯(cuò)誤了。

3、檢查sql server企業(yè)管理器里面相關(guān)的幾臺(tái)sql server注冊(cè)名是否和上面第二點(diǎn)里介紹的srvname一樣

不能用ip地址的注冊(cè)名。

(我們可以刪掉ip地址的注冊(cè),新建以sql server管理員級(jí)別的用戶注冊(cè)的服務(wù)器名)

這樣一來(lái)就不會(huì)在創(chuàng)建復(fù)制的過(guò)程中出現(xiàn)14010、20084、18456、18482、18483錯(cuò)誤了。

4、檢查相關(guān)的幾臺(tái)sql server服務(wù)器網(wǎng)絡(luò)是否能夠正常訪問(wèn)

如果ping主機(jī)ip地址可以,但ping主機(jī)名不通的時(shí)候,需要在

winnt\system32\drivers\etc\hosts   (win2000)

windows\system32\drivers\etc\hosts (win2003)

文件里寫入數(shù)據(jù)庫(kù)服務(wù)器ip地址和主機(jī)名的對(duì)應(yīng)關(guān)系。

例如:

127.0.0.1       localhost

192.168.0.35    oracledb    oracledb

192.168.0.65    fengyu02    fengyu02

202.84.10.193   bj_db       bj_db

或者在sql server客戶端網(wǎng)絡(luò)實(shí)用工具里建立別名,例如:

5、系統(tǒng)需要的擴(kuò)展存儲(chǔ)過(guò)程是否存在(如果不存在,需要恢復(fù)):

sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll'

go

sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll'

go

sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll'

go

sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 

接下來(lái)就可以用sql server企業(yè)管理器里[復(fù)制]-> 右鍵選擇 ->[配置發(fā)布、訂閱服務(wù)器和分發(fā)]的圖形界面來(lái)配置數(shù)據(jù)庫(kù)復(fù)制了。

下面是按順序列出配置復(fù)制的步驟:

1、建立發(fā)布和分發(fā)服務(wù)器

[歡迎使用配置發(fā)布和分發(fā)向?qū)->[選擇分發(fā)服務(wù)器]->[使"@servername"成為它自己的分發(fā)服務(wù)器,sql server將創(chuàng)建分發(fā)數(shù)據(jù)庫(kù)和日志]

->[制定快照文件夾]-> [自定義配置] -> [否,使用下列的默認(rèn)配置] -> [完成]

上述步驟完成后, 會(huì)在當(dāng)前"@servername" sql server數(shù)據(jù)庫(kù)里建立了一個(gè)distribion庫(kù)和 一個(gè)distributor_admin管理員級(jí)別的用戶(我們可以任意修改密碼)。

服務(wù)器上新增加了四個(gè)作業(yè):

[ 代理程序歷史記錄清除: distribution ]

[ 分發(fā)清除: distribution ]

[ 復(fù)制代理程序檢查 ]

[ 重新初始化存在數(shù)據(jù)驗(yàn)證失敗的訂閱 ]

sql server企業(yè)管理器里多了一個(gè)復(fù)制監(jiān)視器, 當(dāng)前的這臺(tái)機(jī)器就可以發(fā)布、分發(fā)、訂閱了。

我們?cè)俅卧趕ql server企業(yè)管理器里[復(fù)制]-> 右鍵選擇 ->[配置發(fā)布、訂閱服務(wù)器和分發(fā)]

我們可以在 [發(fā)布服務(wù)器和分發(fā)服務(wù)器的屬性] 窗口-> [發(fā)布服務(wù)器] -> [新增]   -> [確定] -> [發(fā)布數(shù)據(jù)庫(kù)] -> [事務(wù)]/[合并] -> [確定]  -> [訂閱服務(wù)器] -> [新增]  -> [確定]

把網(wǎng)絡(luò)上的其它sql server服務(wù)器添加成為發(fā)布或者訂閱服務(wù)器.

新增一臺(tái)發(fā)布服務(wù)器的選項(xiàng):

我這里新建立的jin001發(fā)布服務(wù)器是用管理員級(jí)別的數(shù)據(jù)庫(kù)用戶test連接的,

到發(fā)布服務(wù)器的管理鏈接要輸入密碼的可選框, 默認(rèn)的是選中的,

在新建的jin001發(fā)布服務(wù)器上建立和分發(fā)服務(wù)器fengyu/fengyu的鏈接的時(shí)需要輸入distributor_admin用戶的密碼。到發(fā)布服務(wù)器的管理鏈接要輸入密碼的可選框,也可以不選,也就是不需要密碼來(lái)建立發(fā)布到分發(fā)服務(wù)器的鏈接(這當(dāng)然欠缺安全,在測(cè)試環(huán)境下可以使用)。

2、新建立的網(wǎng)絡(luò)上另一臺(tái)發(fā)布服務(wù)器(例如jin001)選擇分發(fā)服務(wù)器

[歡迎使用配置發(fā)布和分發(fā)向?qū)->[選擇分發(fā)服務(wù)器]

-> 使用下列服務(wù)器(選定的服務(wù)器必須已配置為分發(fā)服務(wù)器) -> [選定服務(wù)器](例如fengyu/fengyu)

-> [下一步] -> [輸入分發(fā)服務(wù)器(例如fengyu/fengyu)的distributor_admin用戶的密碼兩次]

-> [下一步] -> [自定義配置] -> [否,使用下列的默認(rèn)配置]

-> [下一步] -> [完成] -> [確定]

建立一個(gè)數(shù)據(jù)庫(kù)復(fù)制發(fā)布的過(guò)程:

[復(fù)制] -> [發(fā)布內(nèi)容] -> 右鍵選擇 -> [新建發(fā)布]

-> [下一步] -> [選擇發(fā)布數(shù)據(jù)庫(kù)] -> [選中一個(gè)待發(fā)布的數(shù)據(jù)庫(kù)]

-> [下一步] -> [選擇發(fā)布類型] -> [事務(wù)發(fā)布]/[合并發(fā)布]

-> [下一步] -> [指定訂閱服務(wù)器的類型] -> [運(yùn)行sql server 2000的服務(wù)器]

-> [下一步] -> [指定項(xiàng)目] -> [在事務(wù)發(fā)布中只可以發(fā)布帶主鍵的表] -> [選中一個(gè)有主鍵的待發(fā)布的表]

->[在合并發(fā)布中會(huì)給表增加唯一性索引和 rowguidcol 屬性的唯一標(biāo)識(shí)符字段[rowguid],默認(rèn)值是newid()]

(添加新列將: 導(dǎo)致不帶列列表的 insert 語(yǔ)句失敗,增加表的大小,增加生成第一個(gè)快照所要求的時(shí)間)

->[選中一個(gè)待發(fā)布的表]

-> [下一步] -> [選擇發(fā)布名稱和描述] ->

-> [下一步] -> [自定義發(fā)布的屬性] -> [否,根據(jù)指定方式創(chuàng)建發(fā)布]

-> [下一步] -> [完成] -> [關(guān)閉]

發(fā)布屬性里有很多有用的選項(xiàng):設(shè)定訂閱到期(例如24小時(shí))

設(shè)定發(fā)布表的項(xiàng)目屬性:

常規(guī)窗口可以指定發(fā)布目的表的名稱,可以跟原來(lái)的表名稱不一樣。

下圖是命令和快照窗口的欄目

( sql server 數(shù)據(jù)庫(kù)復(fù)制技術(shù)實(shí)際上是用insert,update,delete操作在訂閱服務(wù)器上重做發(fā)布服務(wù)器上的事務(wù)操作

看文檔資料需要把發(fā)布數(shù)據(jù)庫(kù)設(shè)成完全恢復(fù)模式,事務(wù)才不會(huì)丟失

但我自己在測(cè)試中發(fā)現(xiàn)發(fā)布數(shù)據(jù)庫(kù)是簡(jiǎn)單恢復(fù)模式下,每10秒生成一些大事務(wù),10分鐘后再收縮數(shù)據(jù)庫(kù)日志,

這期間發(fā)布和訂閱服務(wù)器上的作業(yè)都暫停,暫停恢復(fù)后并沒(méi)有丟失任何事務(wù)更改 )

發(fā)布表可以做數(shù)據(jù)篩選,例如只選擇表里面的部分列:

例如只選擇表里某些符合條件的記錄, 我們可以手工編寫篩選的sql語(yǔ)句:

發(fā)布表的訂閱選項(xiàng),并可以建立強(qiáng)制訂閱:

成功建立了發(fā)布以后,發(fā)布服務(wù)器上新增加了一個(gè)作業(yè): [ 失效訂閱清除 ]

分發(fā)服務(wù)器上新增加了兩個(gè)作業(yè):

[ jin001-dack-dack-5 ] 類型[ repl快照 ]

[ jin001-dack-3 ]      類型[ repl日志讀取器 ]

上面藍(lán)色字的名稱會(huì)根據(jù)發(fā)布服務(wù)器名,發(fā)布名及第幾次發(fā)布而使用不同的編號(hào)

repl快照作業(yè)是sql server復(fù)制的前提條件,它會(huì)先把發(fā)布的表結(jié)構(gòu),數(shù)據(jù),索引,約束等生成到發(fā)布服務(wù)器的os目錄下文件

(當(dāng)有訂閱的時(shí)候才會(huì)生成, 當(dāng)訂閱請(qǐng)求初始化或者按照某個(gè)時(shí)間表調(diào)度生成)

repl日志讀取器在事務(wù)復(fù)制的時(shí)候是一直處于運(yùn)行狀態(tài)。(在合并復(fù)制的時(shí)候可以根據(jù)調(diào)度的時(shí)間表來(lái)運(yùn)行)

建立一個(gè)數(shù)據(jù)庫(kù)復(fù)制訂閱的過(guò)程:

[復(fù)制] -> [訂閱] -> 右鍵選擇 -> [新建請(qǐng)求訂閱]

-> [下一步] -> [查找發(fā)布] -> [查看已注冊(cè)服務(wù)器所做的發(fā)布]

-> [下一步] -> [選擇發(fā)布] -> [選中已經(jīng)建立發(fā)布服務(wù)器上的數(shù)據(jù)庫(kù)發(fā)布名]

-> [下一步] -> [指定同步代理程序登錄](méi) -> [當(dāng)代理程序連接到代理服務(wù)器時(shí):使用sql server身份驗(yàn)證]

(輸入發(fā)布服務(wù)器上distributor_admin用戶名和密碼)

-> [下一步] -> [選擇目的數(shù)據(jù)庫(kù)] -> [選擇在其中創(chuàng)建訂閱的數(shù)據(jù)庫(kù)名]/[也可以新建一個(gè)庫(kù)名]

-> [下一步] -> [允許匿名訂閱] -> [是,生成匿名訂閱]

-> [下一步] -> [初始化訂閱] -> [是,初始化架構(gòu)和數(shù)據(jù)]

-> [下一步] -> [快照傳送] -> [使用該發(fā)布的默認(rèn)快照文件夾中的快照文件]

(訂閱服務(wù)器要能訪問(wèn)發(fā)布服務(wù)器的repldata文件夾,如果有問(wèn)題,可以手工設(shè)置網(wǎng)絡(luò)共享及共享權(quán)限)

-> [下一步] -> [快照傳送] -> [使用該發(fā)布的默認(rèn)快照文件夾中的快照文件]

-> [下一步] -> [設(shè)置分發(fā)代理程序調(diào)度] -> [使用下列調(diào)度] -> [更改] -> [例如每五分鐘調(diào)度一次]

-> [下一步] -> [啟動(dòng)要求的服務(wù)] -> [該訂閱要求在發(fā)布服務(wù)器上運(yùn)行sqlserveragent服務(wù)]

-> [下一步] -> [完成] -> [確定]

成功建立了訂閱后,訂閱服務(wù)器上新增加了一個(gè)類別是[repl-分發(fā)]作業(yè)(合并復(fù)制的時(shí)候類別是[repl-合并])

它會(huì)按照我們給的時(shí)間調(diào)度表運(yùn)行數(shù)據(jù)庫(kù)同步復(fù)制的作業(yè)。

3、sql server復(fù)制配置好后, 可能出現(xiàn)異常情況的實(shí)驗(yàn)日志:

1.發(fā)布服務(wù)器斷網(wǎng),sql server服務(wù)關(guān)閉,重啟動(dòng),關(guān)機(jī)的時(shí)候,對(duì)已經(jīng)設(shè)置好的復(fù)制沒(méi)有多大影響

中斷期間,分發(fā)和訂閱都接收到?jīng)]有復(fù)制的事務(wù)信息

2.分發(fā)服務(wù)器斷網(wǎng),sql server服務(wù)關(guān)閉,重啟動(dòng),關(guān)機(jī)的時(shí)候,對(duì)已經(jīng)設(shè)置好的復(fù)制有一些影響

中斷期間,發(fā)布服務(wù)器的事務(wù)排隊(duì)堆積起來(lái)

(如果設(shè)置了較長(zhǎng)時(shí)間才刪除過(guò)期訂閱的選項(xiàng), 繁忙發(fā)布數(shù)據(jù)庫(kù)的事務(wù)日志可能會(huì)較快速膨脹),

訂閱服務(wù)器會(huì)因?yàn)樵L問(wèn)不到發(fā)布服務(wù)器,反復(fù)重試

我們可以設(shè)置重試次數(shù)和重試的時(shí)間間隔(最大的重試次數(shù)是9999, 如果每分鐘重試一次,可以支持約6.9天不出錯(cuò))

分發(fā)服務(wù)器sql server服務(wù)啟動(dòng),網(wǎng)絡(luò)接通以后,發(fā)布服務(wù)器上的堆積作業(yè)將按時(shí)間順序作用到訂閱機(jī)器上:

會(huì)需要一個(gè)比較長(zhǎng)的時(shí)間(實(shí)際上是生成所有事務(wù)的insert,update,delete語(yǔ)句,在訂閱服務(wù)器上去執(zhí)行)

我們?cè)谄胀ǖ膒c機(jī)上實(shí)驗(yàn)的58個(gè)事務(wù)100228個(gè)命令執(zhí)行花了7分28秒.

3.訂閱服務(wù)器斷網(wǎng),sql server服務(wù)關(guān)閉,重啟動(dòng),關(guān)機(jī)的時(shí)候,對(duì)已經(jīng)設(shè)置好的復(fù)制影響比較大,可能需要重新初試化

我們實(shí)驗(yàn)環(huán)境(訂閱服務(wù)器)從18:46分意外停機(jī)以, 第二天8:40分重啟動(dòng)后, 已經(jīng)設(shè)好的復(fù)制在8:40分以后又開(kāi)始正常運(yùn)行了, 發(fā)布服務(wù)器上的堆積作業(yè)將按時(shí)間順序作用到訂閱機(jī)器上, 但復(fù)制管理器里出現(xiàn)快照的錯(cuò)誤提示, 快照可能需要重新初試化,復(fù)制可能需要重新啟動(dòng).(我們實(shí)驗(yàn)環(huán)境的機(jī)器并沒(méi)有進(jìn)行快照初試化,復(fù)制仍然是成功運(yùn)行的)

4、刪除已經(jīng)建好的發(fā)布和定閱可以直接用delete刪除按鈕

我們最好總是按先刪定閱,再刪發(fā)布,最后禁用發(fā)布的順序來(lái)操作。

如果要徹底刪去sql server上面的復(fù)制設(shè)置, 可以這樣操作:

[復(fù)制] -> 右鍵選擇 [禁用發(fā)布] -> [歡迎使用禁用發(fā)布和分發(fā)向?qū)

-> [下一步] -> [禁用發(fā)布] -> [要在"@servername"上禁用發(fā)布]

-> [下一步] -> [完成禁用發(fā)布和分發(fā)向?qū) -> [完成]

我們也可以用t-sql命令來(lái)完成復(fù)制中發(fā)布及訂閱的創(chuàng)建和刪除, 選中已經(jīng)設(shè)好的發(fā)布和訂閱, 按屬標(biāo)右鍵可以[生成sql腳本]。(這里就不詳細(xì)講了, 后面推薦的網(wǎng)站內(nèi)有比較詳細(xì)的內(nèi)容)

當(dāng)你試圖刪除或者變更一個(gè)table時(shí),出現(xiàn)以下錯(cuò)誤

server: msg 3724, level 16, state 2, line 1

cannot drop the table 'object_name' because it is being used for replication.

比較典型的情況是該table曾經(jīng)用于復(fù)制,但是后來(lái)又刪除了復(fù)制。

處理辦法:

select * from sysobjects where replinfo >'0'

sp_configure 'allow updates', 1

go

reconfigure with override

go

begin transaction

update sysobjects set replinfo = '0' where replinfo >'0'

commit transaction

go

rollback transaction

go

sp_configure 'allow updates', 0

go

reconfigure with override

go

實(shí)現(xiàn)兩個(gè)數(shù)據(jù)庫(kù) 同構(gòu)同步: 屬于數(shù)據(jù)庫(kù)復(fù)制同步工具 (如甲骨文OGG/北京靈蜂Beedup)

單向同步 如 SQLServer A 到SQLServer B(SQLServer自帶僅適用于自身)

雙向同步 如 SQLServer A 到 SQLServer B / SQLServer B 再到SQLServer A  (SQLServer自帶未有)

實(shí)現(xiàn)兩個(gè)數(shù)據(jù)庫(kù) 異構(gòu)同步:屬于ETL轉(zhuǎn)換工具范疇(如 Informatica / Beeload/BeeDI)

單向同步 如Oracle 到 SQL Server ......

雙向同步 如Oracle 到 SQL Server/SQL Server 再到 Oracle.....

問(wèn)題一定要描述具體一些,數(shù)據(jù)庫(kù)種類那么多,數(shù)據(jù)同步,隨便一列都一堆:
1、MySQL同步數(shù)據(jù)到Oracle
2、MySQL同步數(shù)據(jù)到PostgreSQL
3、MySQL同步數(shù)據(jù)到SQL Server
4、MySQL同步數(shù)據(jù)到MongoDB
5、MySQL同步數(shù)據(jù)到DB2
6、Oracle同步數(shù)據(jù)到MySQL
7、Oracle同步數(shù)據(jù)到PostgreSQL
8、Oracle同步數(shù)據(jù)到SQL Server
9、Oracle同步數(shù)據(jù)到MongoDB
10、Oracle同步數(shù)據(jù)到DB2
11、SQL Server同步數(shù)據(jù)到MySQL
12、SQL Server同步數(shù)據(jù)到Oracle
13、SQL Server同步數(shù)據(jù)到PostgreSQL
14、SQL Server同步數(shù)據(jù)到DB2
15、......
如果僅僅是數(shù)據(jù)匯聚方面的數(shù)據(jù)同步,可以用TreeSoft ,其他還有阿里的DataX等。

3、PostgreSQL 怎么做數(shù)據(jù)的增量同步到其他PostgreSQL數(shù)據(jù)庫(kù)

安裝PostgreSQL數(shù)據(jù)庫(kù)之后,默認(rèn)是只接受本地訪問(wèn)連接。如果想在其他主機(jī)上訪問(wèn)PostgreSQL數(shù)據(jù)庫(kù)服務(wù)器,就需要進(jìn)行相 應(yīng)的配置。配置遠(yuǎn)程連接PostgreSQL數(shù)據(jù)庫(kù)的步驟很簡(jiǎn)單,只需要修改data目錄下的pg_hba.conf和postgresql.conf, 其中pg_hba.conf是用來(lái)配置對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限,postgresql.conf文件用來(lái)配置PostgreSQL數(shù)據(jù)庫(kù)服務(wù)器的相應(yīng)的參數(shù)。

4、如何同步postgresql數(shù)據(jù)

您好,舉例說(shuō)明:
如將一Shapfile文件“c:\road.shp”導(dǎo)入到數(shù)據(jù)表“road”中,數(shù)據(jù)庫(kù)為“sjzmap”。

1、運(yùn)行“命令提示符”。
2、切換至PostgreSQL數(shù)據(jù)庫(kù)安裝目錄中的bin目錄下。
3、執(zhí)行此目錄下的shp2pgsql命令:“shp2pgsql c:\road.shp road > c:\road.sql”。
4、如將此文件直接導(dǎo)入數(shù)據(jù)庫(kù)(不推薦):“shp2pgsql -c c:\road.shp road sjzmap | psql -d sjzmap”。
5、使用pgAdmin3 選擇數(shù)據(jù)庫(kù),再導(dǎo)入表。
注:
Drops the database table before creating a new table with the data in the Shape file.
Appends data from the Shape file into the database table. Note that to use this option to load multiple files, the files must have the same attributes and same data types.
Creates a new table and populates it from the Shape file.
Only produces the table creation SQL code, without adding any actual data. This can be used if you need to completely separate the table creation and data loading steps.
Use the PostgreSQL "dump" format for the output data. This can be combined with -a, -c and -d. It is much faster to load than the default "insert" SQL format. Use this for very large data sets.
Creates and populates the geometry tables with the specified SRID.
Keep identifiers' case (column, schema and attributes). Note that attributes in Shapefile are all UPPERCASE.
Coerce all integers to standard 32-bit integers, do not create 64-bit bigints, even if the DBF header signature appears to warrant it.
Create a GiST index on the geometry column.
Output WKT format, for use with older (0.x) versions of PostGIS. Note that this will introduce coordinate drifts and will drop M values from sh apefiles.
Specify encoding of the input data (dbf file). When used, all attributes of the dbf are converted from the specified encoding to UTF8. The resulting SQL output will contain a command, so that the backend will be able to reconvert from UTF8 to whatever encoding the database is configured to use internally.

5、mysql數(shù)據(jù)庫(kù) 實(shí)時(shí)同步到 postgresql

貌似沒(méi)有直接可用的方法。
不過(guò)有個(gè)思路:可以開(kāi)啟mysql的binlog,mysql會(huì)把所有的操作寫進(jìn)來(lái),你搞個(gè)程序解析然后到pg中執(zhí)行。
具體實(shí)現(xiàn)就不好說(shuō)了,沒(méi)這么干過(guò),呵呵。 這么久了,也不知道你實(shí)現(xiàn)了沒(méi),我也是遇到了同樣難題。 是頂頂頂頂頂頂頂頂頂頂頂頂頂頂頂?shù)牡?

轉(zhuǎn)載請(qǐng)帶上網(wǎng)址:http://www.keemji.com/posjifour/289678.html

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。
聯(lián)系我們
訂購(gòu)聯(lián)系:小莉
微信聯(lián)系方式
地址:深圳市寶安區(qū)固戍聯(lián)誠(chéng)發(fā)產(chǎn)業(yè)園木星大廈

公司地址:深圳市寶安區(qū)固戍聯(lián)誠(chéng)發(fā)產(chǎn)業(yè)園木星大廈

舉報(bào)投訴 免責(zé)申明 版權(quán)申明 廣告服務(wù) 投稿須知 技術(shù)支持:第一POS網(wǎng) Copyright@2008-2030 深圳市慧聯(lián)實(shí)業(yè)有限公司 備案號(hào):粵ICP備18141915號(hào)

主站蜘蛛池模板: 性一交一乱一伦一| 欧美中文字幕一区| 国产孕妇孕交一级毛片| 99精品视频免费在线观看| 日韩一级欧美一级在线观看| 亚洲欧美成人一区二区在线电影| 美女被cao免费看在线看网站| 日韩精品一区二区三区在线观看| 免费中文字幕不卡视频| 雪花飘在线电影观看韩国| 国产精品欧美成人| www.av视频在线| 无遮挡1000部拍拍拍免费凤凰| 亚洲中文无码线在线观看 | 99视频免费在线观看| 无敌影视手机在线观看高清| 亚洲人成777| 爱情岛永久地址www成人 | 国产乱人伦无无码视频试看| 日批视频在线看| 大地资源在线资源官网| 中文字幕一区二区三区精华液| 日韩精品亚洲人成在线观看| 亚洲性色高清完整版在线观看| 男人和女人差差差很疼30分| 国产91在线|欧美| 黄色a三级免费看| 国产精品免费看久久久久| 99热99在线| 娇妻之欲海泛舟白丽交换| 久久se精品一区二区影院| 最新eeuss第141页| 亚洲日本va中文字幕久久| 男人j桶进女人p无遮挡在线观看| 啊灬啊别停灬用力啊公阅读| 陈冰的视频ivk| 国产成人精品亚洲精品| 青娱乐欧美视频| 国产高清在线a视频大全| pornh日本xxxxhd| 怡红院免费手机在线观看|