當前位置:首頁 » 數據倉庫 » 不同伺服器資料庫之間的數據操作
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

不同伺服器資料庫之間的數據操作

發布時間: 2023-03-01 21:07:03

1. 如何在兩台伺服器之間轉移資料庫

sql Server 復制:事務發布
配置發布伺服器,
快照發布:隔一段時間會覆蓋訂閱伺服器的資料庫,在訂閱伺服器上做的修改同樣被覆蓋;
事務發布:是一種接近實時地從源到目標分發數據的方法;
具有可更新訂閱的事務發布:訂閱伺服器可更新發布伺服器的數據;
合並發布:發布伺服器和訂閱伺服器的更新都會同步到對方,注意ID在合並發布上的沖突
1. 在SQL SERVER下實現發布伺服器和訂閱伺服器的通信正常(即可以互訪),打開1433埠,在防火牆中設置入站規則;
2. 發布伺服器與訂閱伺服器的SQL Server Agent代理帳號必須設置的一樣,否則不能互訪;
3. 如果你希望在復制的過程中一並復制非聚集索引,可以對發布屬性-項目進行如下設置,修改完之後需要重新生成快照;

2. 如何實現同一台mysql伺服器中不同資料庫之間的數據同步

1.主上修改my.cnf文件:
server-id=1
log-bin=mysql-bin
2.從上修改配置文件 my.cnf
server-id=2
relay-log=relay-bin
read-only =1
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
#replicate-wild-do-table = tt.admin
replicate-wild-do-table = my_db.stu // 所要同步的資料庫的單個表
3. 創建 同步的用戶(主上)
grant replication client,replication slave on *.* to rep@'10.41.50.105' identified by 'root';

4.同步到主庫(在從上操作)
change master to master_host='10.41.50.80',master_user='rep',master_password='root';
5.在從上驗證:
show slave status\G;

主從同步某些表

3. 如何實現兩個異地資料庫之間的數據傳輸

1. SQLSERVER伺服器上面安裝oracle客戶端,配置服務命名(假設為 test)
2. 在SQLSERVER伺服器上面建立鏈接伺服器,腳本如下

SQL code?
SQL code-- Adding linked server:

exec sp_addlinkedserver @server = 'test' ,
@srvproct = 'ORACLE',
@provider = 'MSDAORA',
@datasrc = 'test'
-- Adding linked server login:
exec sp_addlinkedsrvlogin @useself='false ', @rmtsrvname = 'test',
@rmtuser = 'user', --資料庫用戶
@rmtpassword = 'password' --密碼
3. 建立一個作業,通過作業調度存儲過程,存儲過程使用類似的語句將oracle的數據插入到sqlserver表中

SQL code?
insert into sqlserver表 select * from test..oracle表名
4. 如果要球ORACLE數據是實時增加的,並且ORACLE記錄上有遞增的欄位,可以在SQLSERVER上面建立一個表記錄上次插入的id,然後下次可以從上次的ID+1開始繼續插入

SQL code?
insert into sqlserver表 select * from test..oracle表名 where id>@id
5. 防止sqlserver同步的時候oracle仍在不斷的插入,每次要取一個結束ID

SQL code?
select @endid=max(id) from test..oracle表名.

4. 資料庫怎麼實現數據同步

不同伺服器資料庫之間的數據操作 --創建鏈接伺服器 exec sp_addlinkedserver 'ITSV ', '', 'SQLOLEDB ', '遠程伺服器名或ip地址 'exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用戶名 ', '密碼'--查詢示例 select*from ITSV.資料庫名.dbo.表名 --導入示例 select*into 表from ITSV.資料庫名.dbo.表名 --以後不再使用時刪除鏈接伺服器 exec sp_dropserver 'ITSV ', 'droplogins '--連接遠程/區域網數據(openrowset/openquery/opendatasource) --1、openrowset --查詢示例 select*fromopenrowset( 'SQLOLEDB ', 'sql伺服器名 '; '用戶名 '; '密碼',資料庫名.dbo.表名) --生成本地表 select*into 表fromopenrowset( 'SQLOLEDB ', 'sql伺服器名 '; '用戶名 '; '密碼',資料庫名.dbo.表名) --把本地表導入遠程表 insertopenrowset( 'SQLOLEDB ', 'sql伺服器名 '; '用戶名 '; '密碼',資料庫名.dbo.表名) select*from 本地表 --更新本地表 update b set b.列A=a.列A fromopenrowset( 'SQLOLEDB ', 'sql伺服器名 '; '用戶名 '; '密碼',資料庫名.dbo.表名)as a innerjoin 本地表 b on a.column1=b.column1 --openquery用法需要創建一個連接 --首先創建一個連接創建鏈接伺服器 exec sp_addlinkedserver 'ITSV ', '', 'SQLOLEDB ', '遠程伺服器名或ip地址 '--查詢select*FROMopenquery(ITSV, 'SELECT * FROM 資料庫.dbo.表名 ') --把本地表導入遠程表 insertopenquery(ITSV, 'SELECT * FROM 資料庫.dbo.表名 ') select*from 本地表 --更新本地表 update b set b.列B=a.列B FROMopenquery(ITSV, 'SELECT * FROM 資料庫.dbo.表名 ') as a innerjoin 本地表 b on a.列A=b.列A --3、opendatasource/openrowset SELECT*FROMopendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陸名;Password=密碼 ' ).test.dbo.roy_ta --把本地表導入遠程表 insertopendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陸名;Password=密碼 ').資料庫.dbo.表名 select*fromSQL code 用強制訂閱實現資料庫同步操作 大量和批量的數據可以用資料庫的同步機制處理: // 說明:為方便操作,所有操作均在發布伺服器(分發伺服器)上操作,並使用推模式在客戶機器使用強制訂閱方式。 有疑問聯系作者:[email protected] 測試通過 //--1:環境伺服器環境: 機器名稱: ZehuaDb 操作系統:Windows 2000 Server 資料庫版本:SQL 2000 Server 個人版 客戶端機器名稱:Zlp 操作系統:Windows 2000 Server 資料庫版本:SQL 2000 Server 個人版 --2:建用戶帳號在伺服器端建立域用戶帳號我的電腦管理->本地用戶和組->用戶->建立UserName:zlp UserPwd:zlp --3:重新啟動伺服器MSSQLServer我的電腦->控制面版->管理工具->服務->MSSQLServer 服務 (更改為:域用戶帳號,我們新建的zlp用戶 ./zlp,密碼:zlp) --4:安裝分發伺服器A:配置分發伺服器工具->復制->配置發布、訂閱伺服器和分發->下一步->下一步(所有的均採用默認配置) B:配置發布伺服器工具->復制->創建和管理發布->選擇要發布的資料庫(SZ)->下一步->快照發布->下一步-> 選擇要發布的內容->下一步->下一步->下一步->完成C:強制配置訂閱伺服器(推模式,拉模式與此雷同) 工具->復制->配置發布、訂閱伺服器和分發->訂閱伺服器->新建->SQL Server資料庫->輸入客戶端伺服器名稱(ZLP)->使用SQL Server 身份驗證(sa,空密碼)->確定->應用->確定D:初始化訂閱復制監視器->發布伺服器(ZEHUADB)->雙擊訂閱->強制新建->下一步->選擇啟用的訂閱伺服器->ZLP-> 下一步->下一步->下一步->下一步->完成--5:測試配置是否成功復制監視器->發布伺服器(ZEHUADB)->雙擊SZ:SZ->點狀態->點立即運行代理程序查看:復制監視器->發布伺服器(ZEHUADB)->SZ:SZ->選擇ZLP:SZ(類型強制)->滑鼠右鍵->啟動同步處理如果沒有錯誤標志(紅色叉),恭喜您配置成功 --6:測試數據 --在伺服器執行:選擇一個表,執行如下SQL insertinto WQ_NEWSGROUP_S select'測試成功',5 復制監視器->發布伺服器(ZEHUADB)->SZ:SZ->快照->啟動代理程序 ->ZLP:SZ(強制)->啟動同步處理 去查看同步的 WQ_NEWSGROUP_S 是否插入了一條新的記錄 測試完畢,通過。

5. 如何把server中的兩個不同的資料庫的表如何轉移

我不是很理解你所說的話,但大致就以下幾種情況: 1、本機器上的不同資料庫之間的表,並目標資料庫中不存在此表名稱。那麼這樣做: 在選擇要倒出的資料庫的表上(資料庫上都可以)右鍵\所有任務\倒出數據\下一步\下一步.在這里的對話框中的下方有一個選擇目標資料庫的下拉菜單,它包含了所有本機器的資料庫系統,選擇你要的資料庫.然後直接下一步直到運行為止. 如果目標資料庫中有要倒入的表名稱,方法一是修改目標表名,二是直接倒,方法一是看具體應用,方法而是在原表數據基礎上進行追加數據,不過注意:若主外鍵沖突或某些約束情況,此表倒入操作將不能倒入任何一條數據。若多表的同時倒入,出現上述情況,出現沖突的表將不能倒入任何數據,未出現沖突的可以正常倒入。 2、本兩個機器之間的數據轉移,那麼前提是目標機器的資料庫系統在本機器得到了注冊的(關於注冊這里就不多說了,任何書籍上都有),在操作中大部分和上述工作一樣,就在選擇資料庫的對話框中間有一個選擇伺服器,再此輸入目標伺服器的伺服器號碼,並使用 SQL Server用戶名和密碼(這里的用戶名和密碼是目標伺服器的)。若目標伺服器中不存在自己想要的資料庫名稱,可以在資料庫選擇的下拉列表中選擇「新建」,建立一個目標資料庫就可以執行下面的操作了。 3、不同數據源之間的操作,操作同上,不過要在目標的對話框中上方「目的」下拉列表中選擇一個數據源(比如:ACCESS、ORACLE),如果沒有這個數據源就可以建立一個新的數據源不測試是否通過。其他操作同上。 4、向EXCEL、txt等倒出數據,其實它也歸屬於第3種數據轉移,只不過這里區別大所以獨立出來,這些適合於一些答應報表的直接生成。操作方法和3相同。不過不同數據源之間的數據轉移很多可能是不可以完全成功的(此情況出現在有多個表並且它們之間有很多主外鍵關系的情況),主要是因為SQL Server在處理倒入倒出的時候沒有按照主次關系,因為只考慮數據轉移,然而,在數據進入 SQL Server 的時候就有部分表的數據進入就並不一定按照主次關系進入,導致他們的倒入違反主外鍵約束。像這樣的情況我一般倒兩次,第一次至少主鍵表可以進入,第二次,主鍵表的信息沖突就不改變信息了,關系表的信息自然也進去了,但這樣的情況不是對於復雜的關系模式,如果關系模式很復雜,就沒有那麼簡單了。我一般有備份或程序來實現轉移。