1. sql server 2008怎麼做資料庫的同步
方法有很多種,不知道你的具體情況 如果兩個庫是一個sqlserver伺服器中 可以直接使用觸發器 如我在02_db庫中的bas_area表下建立一下觸發器 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[TRI_Bas_Area_Insert] ON [dbo].[Bas_Area] for INSERT AS begin insert into [01_db].[dbo].[Bas_Area2] select AreaId,ParentId,AreaName from inserted --如果表結構不一樣,只取你需要的欄位,類型不一樣可以轉換一下 end 但是必須得帶資料庫名;如 [01_db] 如果兩個庫不在一個sqlserver伺服器中 也可以使用觸發器 在sqlserver企業管理裡面中 點擊 伺服器對象-鏈接伺服器 然後右鍵新建鏈接伺服器 建立一個鏈接伺服器,這樣兩個不同庫之間也可以通信 只需要把 insert into [01_db].[dbo].[Bas_Area] select AreaId,ParentId,AreaName from inserted 修改為 insert into 鏈接伺服器的名稱. [01_db].[dbo].[Bas_Area] select AreaId,ParentId,AreaName from inserted
2. 兩個SQL Server2008資料庫如何實現跨區域網、跨伺服器的數據同步
樓主好,想實現這個的話,可以使用SQL自帶的VS開發工具,做一個ETL包,然後部署發布到伺服器資料庫上,添加作業,設定同步時間即可。跨區域網和跨伺服器基本上在SQL連接中,本身就不太好解決,需要有伺服器之間的鏈接訪問權才可以建立連接。但是ETL不受這一點限制。唯一不足的地方在於,如果你有100張表數據需要同步,做ETL包是個麻煩事,同一個模式,你要做非常多的ETL流程,不管是做在一個包中也好,多個包中也好,都會顯得比較繁瑣。但是好處是不受伺服器限制,另外要注意,如果同步的表有外鍵,那麼需要在做ETL的時候添加執行順序,才能確保表數據同步成功的。如果想了解更多可加我,646443736
3. SQL 2008資料庫數據雙向同步,求解決方案~
寫一個Triggers 判斷只有對表M 有操作就兩邊同步
4. ms sql server 2008資料庫怎麼實現資料庫同步備份
1.測試環境:Windows Server 2008 R2 SP1 + SQL Server 2008 R2 SP1 2.安裝FTP 組件,FTP全部打勾,並在IIS裡面新建FTP站點,並設置,這里要注意的地方有兩點。 第一:要設置一個正常的登錄用戶,有密碼和名字的那種,測試的時候,我同時也開啟了匿名用戶 第二:就是FTP 的目錄調整好,一般可能會調整兩次以上,做好再調整的准備,原則是,所制定的位置就是發布伺服器的生成位置,並在設置的時候設置正確。 3.防火牆,防火牆要設置好,避免測試的時候,製造麻煩。可以先關閉。 4.Hosts ,這里要在兩台伺服器Host裡面把自己和對方的計算機名字對應iP地址都寫在雙方的兩個伺服器裡面,用與 在連接的時候使用計算機名進行連接,看到很多網友都說要使用計算機名登錄,而不是IP地址。 5.盡量用Windows 身份驗證,同時要開啟sa 的登錄方式。用戶必須在sysadmin 組裡面,這里說的組是SQL Server 的用戶組。 6.兩台電腦一定要啟動 SQL Server 代理 7.建立的所有資料庫的恢復模式為:完整 8.SQL Server 的安裝 一定要記得 ,將 資料庫復制等復選框都選擇上,之選一個關系資料庫是不行的,其包含的復選框也都選擇上。
5. sql server 2008 r2怎樣同步資料庫
機器A、B分別新建標准用戶repluser,用於訪問初始快照共享文件。
機器A新建X_DB資料庫,表persion
選擇復制菜單->本地發布,右鍵新建發布,next->選擇資料庫X_DB.
選擇發布類型,這里有四種:快照發布、事務發布、可更新訂閱的事務發布、合並發布。快照發布和合並發布都是定期取數據,不同的是合並發布可獨立更新,可把訂閱端的數據更新同步到發布端;測試發現如果兩端同時更新,發布端的更新會覆蓋掉訂閱端的更新。事務發布是事務驅動,只要有更新,立馬同步更新。
這里我選擇事務同步->next
選擇需要復制的表,這里有個限制:只有帶主鍵的表才能復制.一路next
設置代理賬號,next。最後輸入發布名稱,發布成功.
選擇剛才創建的發布,右鍵屬性,選擇快照設置共享路徑;也可以選擇FTP快照進行FTP共享。這樣訂閱端就訪問這個路徑讀取初始快照。至此發布端設置完成。
機器B訂閱端選擇復制->本地訂閱-》新建訂閱。
選擇發布伺服器,選擇x_db下的x_db_publish
沒有x_db,可以自己創建資料庫。設置分發與訂閱賬號。
6. SQL 2008資料庫數據雙向同步,求解決方案~2013-01-16 16:16龍天騎士 | 瀏覽 0 次
最後沒採用雙向同步的方案,因為不靠譜,效率低。
有幾種方式可供選擇。
一、異地容災的解決方案。就是單向同步。一個用於直接寫,然後寫觸發器或者其他方式將數據同步到另一台伺服器上。
二、三台伺服器讀寫分離模式。 即,使用三台伺服器,兩台伺服器用於寫入數據。然後用服務或者其他介面將數據同步到中央伺服器。所有的讀取操作直接訪問中央伺服器。
三、搭建VPN,組內網。一台伺服器搞定。
P.S:別想雙向同步的事了,效率太低
P.S:當然非要雙向同步也可以,別用ID做主鍵。寫同步 判斷主鍵欄位是否存在。不存在就跳過
7. sql server 2008實時同步mysql要怎麼實現
實現兩個Mysql資料庫之間同步同步原理:
MySQL 為了實現replication 必須打開bin-log 項,也是打開二進制的MySQL 日誌記錄選項。MySQL 的bin log 二
進制日誌,可以記錄所有影響到資料庫表中存儲記錄內容的sql 操作,如insert / update / delete 操作,而不記錄
select 這樣的操作。因此,我們可以通過二進制日誌把某一時間段內丟失的數據可以恢復到資料庫中(如果二進制日
志中記錄的日誌項,包涵資料庫表中所有數據,那麼, 就可以恢復本地資料庫的全部數據了)。 而這個二進制日誌,
如果用作遠程資料庫恢復,那就是replication 了。這就是使用replication 而不用sync 的原因。這也是為什麼要設
置bin-log = 這個選項的原因。
在同步過程中,最重要的同步參照物,就是同步使用那一個二進制日誌文件,從那一條記錄開始同步。下面就介紹
下怎樣實現兩個Mysql資料庫之間的主從同步。
一、 概述
MySQL從3.23.15版本以後提供資料庫復制(replication)功能,利用該功能可以實現兩個資料庫同步、主從模式、
互相備份模式的功能。本文檔主要闡述了如何在linux系統中利用mysql的replication進行雙機熱備的配置。
二、 環境
操作系統:Linux 2.6.23.1-42.fc8 # SMP(不安裝XEN)
Mysql版本:5.0.45-4.fc8
設備環境:PC(或者虛擬機)兩台
三、 配置
資料庫同步復制功能的設置都在MySQL的配置文件中體現,MySQL的配置文件(一般是my.cnf):在本環境下
為/etc/my.cnf。
3.1 設置環境:
IP的設置:
A主機 IP:10.10.0.119
Mask:255.255.0.0
B主機 IP:10.10.8.112
Mask:255.255.0.0
在IP設置完成以後,需要確定兩主機的防火牆確實已經關閉。可以使用命令service iptables status查看防火牆狀態
。如果防火牆狀態為仍在運行。使用service iptables stop來停用防火牆。如果想啟動關閉防火牆,可以使用setup命
令來禁用或定製。
最終以兩台主機可以相互ping通為佳。
3.2 配置A主(master) B從(slave)模式
3.2.1 配置A 為master
1、增加一個用戶同步使用的帳號:
GRANT FILE ON *.* TO 『backup』@'10.10.8.112' IDENTIFIED BY 『1234』;
GRANTREPLICATION SLAVE ON *.* TO 『backup』@'10.10.8.112' IDENTIFIED BY 『1234』;
賦予10.10.8.112也就是Slave機器有File許可權,只賦予Slave機器有File許可權還不行,還要給它REPLICATION SLAVE的權
限才可以。
2、增加一個資料庫作為同步資料庫:
create databbse test;
3、創建一個表結構:
create table mytest (username varchar(20),password varchar(20));
4、修改配置文件:
修改A的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:
server-id = 1 #Server標識
log-bin
binlog-do-db=test #指定需要日誌的資料庫
5、重起資料庫服務:
service mysqld restart
查看server-id:
show variable like 『server_id』;
實例:
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
6、用show master status/G命令看日誌情況。
正常為:
mysql> show master status/G
*************************** 1. row ***************************
File: mysqld-bin.000002
positiion: 198
Binlog_Do_DB: test,test
Binlog_Ignore_DB:
1 row in set (0.08 sec)
3.2.2 配置B 為slave
1、增加一個資料庫作為同步資料庫:
create databbse test;
2、創建一個表結構:
create table mytest (username varchar(20),password varchar(20));
3、修改配置文件:
修改B的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:
server-id=2
master-host=10.10. 0.119
master-user=backup #同步用戶帳號
master-password=1234
master-port=3306
master-connect-retry=60 #預設重試間隔60秒
replicate-do-db=test #告訴slave只做backup資料庫的更新
5、重起資料庫服務:
service mysqld restart
查看server-id:
show variables like 『server_id』;
實例:
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
1 row in set (0.00 sec)
6、用show slave status/G命令看日誌情況。
正常為:
mysql> show slave status/G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.10.0.119
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000003
Relay_Log_Pos: 236
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test,test
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 236
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.01 sec)
3.2.3 驗證配置
分別使用insert, delete , update在A主機進行增刪改查資料庫;查看B主機的資料庫是否與A主機一致;若一致,則配
置成功。
3.3雙機互備模式
如果在A主機加入slave設置,在B主機加入master設置,則可以做B->A的同步。
1、在A主機的配置文件中 mysqld配置項加入以下設置:
master-host=10.10.8.112
master-user=backup
master-password=1234
replicate-do-db=test
master-connect-retry=10
2、在B的配置文件中 mysqld配置項加入以下設置:
log-bin
binlog-do-db=test
注意:當有錯誤產生時,*.err日誌文件同步的線程退出,當糾正錯誤後,要讓同步機制進行工作,運行slave
start。
重起A、B機器,則可以實現雙向的熱備份。
總之,成功完成以上配置後,在主伺服器A的test庫里添加數據或刪除數據,在從伺服器B的test庫里馬上也能
看到相應的變更。兩台伺服器的同步操作可以說是瞬間完成的。
8. 兩個異地sql server 2008資料庫怎麼實現數據同步
要麼做主從
要麼加入一台新的主伺服器
所有的寫入操作,都通過分伺服器提交到主伺服器,具體辦法,可以採用SSB技術什麼的
然後再主伺服器,在同步鏈等方式,同步到分伺服器用於讀取。
通過這個方式實現讀寫分離,和同步
這樣可以達到實時同步
還有個方案就是你可以考慮簡歷不同的庫,然後主從方式互相作為主從(當然也可以考慮做事務日誌傳輸的方式實現這一步)
分別寫入各自的庫,讀的時候可以考慮視圖方式實現統一讀取
你覺得麻煩,就上cluster吧!