資料庫更新狀態
環境:兩台windows xp系統機器,並且安裝同一版本的資料庫5.0.17
兩台機器Ip
A:173.26.100.62
B:173.26.100.61
此例為A為主伺服器,B為從伺服器,A伺服器上的數據變更會更新到B伺服器資料庫當中
步驟:
1 .A機器上創建資料庫tsas,設置資料庫訪問許可權,也就是創建一個用戶和密碼,目的在於在B機器上用創建的這個用戶能夠正常連接A機器的資料庫。
grant file on *.* to backup@'173.26.100.61' identified by '1234';
2.在A伺服器的mysql目錄下編輯my.ini,加入如下語句:
server-id=1
log-bin=C:\mysqlbak\log-bin.log
3.重起A機器,可以用命令show master status 察看狀態
4 設置B伺服器,打開B機器mysql目錄下的my.ini,加入以下語句:
server-id=2
master-host=173.26.100.62
master-user=backup #同步用戶帳號
master-password=1234
master-port=3306
master-connect-retry=60 預設重試間隔60秒
replicate-do-db=tsas 告訴slave只做backup資料庫的更新
5.重新啟動B機器,可以用命令 show slave status察看B機器狀態
6.測試:
向A批量插入大數據量數據,那麼在B機器當中察看相關的表格,B機器與A機器中的數據是一致的,這樣就可以達到B機器同步A機器的數據。
⑵ 如何更改日誌傳輸資料庫的狀態
舉個例子吧:
如:
記錄表A的更新記錄,
首先建立一個表:表AUpDataTemp
表結構和表A相同,
然後後面要多加1列,列名就取:DataType 吧,類型為 bit
1為更新後的數據(新數據),0為更新前的數據(舊數據):
觸發器代碼如下:
create trigger 表A_UPDATA_TR
on 表A
for update
as
insert into 表AUpDataTemp select *,1 from inserted
insert into 表AUpDataTemp select *,0 from deleted
當然,插入和刪除數據更簡單,插入只有新數據,刪除只有舊數據
以上是MS-SQL,ORACLE只有觸發器頭格式不一樣,思路沒問題
⑶ PHP 進行資料庫更新update操作,返回狀態問題
update用mysql_query執行的時候能得到返回值,這個返回值說明了執行是否成功。
然後用mysql_affected_rows判斷是否修改了數據
兩個判斷組合起來用就能滿足你的需求了
⑷ mfc datagrid怎麼實時更新資料庫內容
主要控制項有 datagridview checkbox picturebox trackBar1 label
_atagridview :實時顯示數據
_heckbox :指示是否停止更新
_icturebox :顯示更新狀態
_rackBar1 :設置更新時間頻率
_abel :顯示一些相關信息
?
_
?1 using System;
?2 using System.Collections.Generic;
?3 using System.ComponentModel;
?4 using System.Data;
?5 using System.Drawing;
?6 using System.Text;
?7 using System.Windows.Forms;
?8 using System.Threading;
?9
?10 namespace WinMilkProject.Project
?11 {
?12
?13 public partial class Form1 : Form
?14 {
?15 Thread myThread;
?16 OperateCB operatedb = new OperateCB();
?17 public int frequency = 0;//更新時間頻率
?18 public static bool isUse = false;//是否停止更新
?19 public static string statusInfo = string.Empty;//狀態
?20 private delegate void myDelegate(DataTable dt);//定義委託
?21 public Form1()
?22 {
?23 InitializeComponent();
?24 label2.Text = "更新頻率為:" + (trackBar1.Value / 1000).ToString() + "秒";
?25 }
?26
?27 private void Form1_Load(object sender, EventArgs e)
?28 {
?29 myThread = new Thread(startFillDv);//實例化線程
?30 myThread.Start();
?31
?32 }
?33
?34 private void startFillDv()
?35 {
?36 while (true)
?37 {
?38 if (isUse)
?39 {
?40 statusInfo = "正在實時更新數據......";
?41 DataTable dt = operatedb.MyDataTable("select * from test1");//把自己寫的數據封裝類OperaterCB 能夠返回一個datatable
?42 Grid(dt);
?43 Thread.Sleep(frequency);
?44 }
?45 else
?46 {
?47 statusInfo = "停止更新!";
?48 }
?49 }
?50
?51 }
?52
?53 private void Grid(DataTable dt)
?54 {
?55 if (this.InvokeRequired)
?56 {
?57 this.Invoke(new myDelegate(Grid), new object[] { dt });
?58 }
?59 else
?60 {
?61 try
?62 {
?63 this.dataGridView1.DataSource = null;
?64 this.dataGridView1.DataSource = dt;
?65 dt = null;
?66 statusInfo = "更新完成!";
?67 }
?68 catch
?69 {
?70
?71 }
?72 }
?73
?74 }
?75
?76 private void Form1_FormClosed(object sender, FormClosedEventArgs e)
?77 {
?78 if (this.myThread.IsAlive)
?79 {
?80 this.myThread.Abort();//結束線程
?81 }
?82 }
?83
?84 private void timer1_Tick(object sender, EventArgs e)
?85 {
?86 label1.Text = statusInfo;
?87 frequency = trackBar1.Value;
?88 if (statusInfo.Trim() == "正在實時更新數據......")
?89 {
?90 pictureBox1.Visible = true;
?91 }
?92 else
?93 {
?94 pictureBox1.Visible = false;
?95 }
?96
?97 }
?98
?99 private void checkBox1_CheckedChanged(object sender, EventArgs e)
?100 {
?101 if (checkBox1.Checked)
?102 {
?103 isUse = true;
?104 }
?105 else
?106 {
?107 isUse = false;
?108 }
?109
?110 }
?111
?112 private void trackBar1_Scroll(object sender, EventArgs e)
?113 {
?114 label2.Text = "更新頻率為:" + (trackBar1.Value / 1000).ToString() + "秒";
?115 }
?116
?117 }
?118 }
_
⑸ 資料庫模式更新和數據更新有什麼不同
關系實際上就是關系模式在某一時刻的狀態或內容。
也就是說,關系模式是型,關系是它的值,關系模式是靜態的、穩定的,而關系是動態的、隨時間不斷變化的,因為關系操作在不斷地更新著資料庫中的數據,但在實際當中,常常把關系模式和關系統稱為關系。
模型是資料庫中穩定用得最多的數據形式,模式是常用的數據形式,模型少,模式多。
聯系:模型、模式都是對具體值數量關系的抽象分析和理論概括。
區別:模式、模型是數據鏈表和函數,具體值是數值。
⑹ 資料庫在庫狀態怎麼更新
登錄後台,點開鏈接,直接更新。
登錄後台,然後更新你要更新的即可。如果是程序代碼的話,就要對資料庫執行,鏈接打開上傳update關閉等步驟。資料庫是數據管理的有效技術,是由一批數據構成的有序集合,這些數據被存放在結構化的數據表裡。數據表之間相互關聯,反映客觀事物間的本質聯系。資料庫能有效地幫助一個組織或企業科學地管理各類信息資源。
⑺ 資料庫的4種狀態是什麼
Oracle10g資料庫的4種存儲形式
資料庫的存在一定需要有永久性存儲方式和介質。Oracle自然也不例外,在Oracle10g中,有4種存儲形式,分別是操作系統文件,裸分區,自動存儲管理,集群系統OCFS(RAC)。下面分別說一下這4種存儲形式。 1 操作系統文件。 這種是大家最常用的方式了,也是非商業運行模式(比如開發或者開發階段的測試環境)下最常用的形式。當大家安裝Oracle的時候,如果選用了操作系統文件的存儲形式,那麼就會把Oracle的數據存儲在操作系統中,以文件的形式存在。就好像我們玩某些單機版游戲,你的存檔就是操作系統的文件一樣。用文件形式存儲數據,帶來的優點就是易於資料庫移動。比如你把Oracle的數據文件直接到一台電腦上,就可以很快復制出一個一樣的資料庫系統出來。在文件的讀寫的時候,操作系統通常會提供緩存形式進行讀寫,避免過多讀寫硬碟對磁碟造成很大傷害。所以用操作系統文件形式存儲數據,等於先天性獲得了操作系統的緩存功能。
2 裸分區。裸分區就是把資料庫直接寫在磁碟上,不再經過操作系統這一層,Oracle專門來對這個分區進行讀寫。因為沒有了操作系統這一層,所以讀寫起來的速度和性能是質一般的飛躍的,在某些對Oracle讀寫非常頻繁的資料庫應用中,採用裸分區形式存儲數據甚至可以提高30%以上的性能。當然,如果數據存儲是採用的操作系統文件,如果在Unix下採用RAID對於文件讀寫操作頻繁的情況下也是一個可以提高性能的手段。
3 自動存儲管理。 自動存儲管理通常也被稱為ASM,是在Oracle 10g以後才提供的一種新的存儲形式。這種存儲形式貌似是前兩種存儲形式的折中。既不是用的host操作系統的文件系統,也不是裸分區的形式直接由Oracle讀寫。而是可以看作為一種Oracle特有的文件系統形式。在ASM上可以存儲數據文件,控制文件,日誌文件等等,在ASM中,這些也是以文件的形式存在的,只不過這個時候的文件格式是Oracle自有的ASM形式。在Linux中和ASM有點相似的就是LVM(邏輯Volume管理),也是可以看作是一種自有的新的文件系統形式。
4 集群系統OCFS(RAC)。RAC的全稱是什麼呢,就是Real Application Cluster,是一種在集群的環境下實現共享的一種資料庫存儲形式。在通常我們的資料庫,如果是單機版的資料庫,當數據文件磁碟不能訪問,那麼這個資料庫就掛掉了。如果是集群共享資料庫的話,其中一種方法就是在某個節點存放數據文件,其餘的資料庫都通過NFS或者Samba來進行共享,雖然資料庫的數據處理能力得到了很大的提高,不過如果這個存儲節點掛掉的話,同樣資料庫也就宕掉了。而OCFS則是一種無斷點恢復的存儲形式,在整體給人的感覺就是每台數據伺服器都有自己的文件系統,但是這些文件系統又彷彿只是同一個文件系統,因為數據更新或者其他的操作都是很統一的。即使某台電腦掛了,其餘的伺服器照樣運行,不會出現資料庫的異常,而如果想新加入一台伺服器也是很簡單的事。特別適合於商用的7X24這種服務形式。
Oracle10g中的4種數據存儲方式都介紹完了,我們最常用的自然是第一種形式,不過後面三種形式在商用環境下比較多。特別在大型商用對可靠性要去很高應用中,第四種RAC形式的使用是比較多的。當然,這里只是很簡要的介紹了一下幾個文件系統的概念。如果要仔細了解的話,當然是要好好查閱Oracle技術手冊了。
⑻ 默認情況下,鏈路狀態資料庫是怎樣進行更新的
OSPF路由器在完全鄰接之前,所經過的幾個狀態:
1.Down:此狀態還沒有與其他路由器交換信息。首先從其ospf介面向外發送hello分組,還並不知道DR(若為廣播網路)和任何其他路由器。發送hello分組使用組播地址224.0.0.5。
2.Attempt:
只適於NBMA網路,在NBMA網路中鄰居是手動指定的,在該狀態下,路由器將使用HelloInterval取代PollInterval來發送Hello包.
3.Init:
表明在DeadInterval里收到了Hello包,但是2-Way通信仍然沒有建立起來.
4.two-way:
雙向會話建立,而RID彼此出現在對方的鄰居列表中。(若為廣播網路:例如:乙太網。在這個時候應該選舉DR,BDR。)
5.ExStart:
信息交換初始狀態,在這個狀態下,本地路由器和鄰居將建立Master/Slave關系,並確定DD
Sequence
Number,路由器ID大的的成為Master.
6.Exchange:
信息交換狀態,本地路由器和鄰居交換一個或多個DBD分組(也叫DDP)。DBD包含有關LSDB中LSA條目的摘要信息)。
7.Loading:
信息載入狀態:收到DBD後,將收到的信息同LSDB中的信息進行比較。如果DBD中有更新的鏈路狀態條目,則向對方發送一個LSR,用於請求新的LSA。
8.Full:
完全鄰接狀態,鄰接間的鏈路狀態資料庫同步完成,通過鄰居鏈路狀態請求列表為空且鄰居狀態為Loading判斷。
⑼ C# 資料庫批量更新問題
有一個辦法,可能是你想要的。但是不保證一定能實現你的目的。
在C#中有一個SqlCommandBuilder類,該類用來批量自動更新表數據變化,
說是自動更新,其實是根據已知的select語句,來自動生成其他的update,delete語句。
我以前項目的sqlhelper中,用這個類自定義過批量更新方法,在winform中使用一切ok。方法發你,看有用沒。
有些細節一定要注意的是,表狀態決定表數據的操作,比如表某行狀態是修改,那麼SqlCommandBuilder會執行update。但是這個狀態你要控制好。另外,你傳遞的select語句,一定要和你所構造的表結構接近吻合。看方法。
/// <summary>
/// operare database by commandbuilder
/// </summary>
/// <param name="connectinString">connectinString</param>
/// <param name="commandString">commandString</param>
/// <param name="sourceDable">do update or insert database table</param>
public static int ExecuteByCommandBuilder(string connectinString, string commandString, DataTable sourceDable, SqlParameter sqlparam)
{
SqlConnection sqlcon = new SqlConnection();
sqlcon.ConnectionString = connectinString;
using (SqlCommand sqlcommand = new SqlCommand(commandString, sqlcon))
{
if (sqlparam != null)
{ sqlcommand.Parameters.Add(sqlparam); }
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = sqlcommand;
//DataSet ds = new DataSet();
//da.Fill(ds);
//ds.Tables[0].Merge(sourceDable, false);
SqlCommandBuilder sqlcommandbuilder = new SqlCommandBuilder(da);
return da.Update(sourceDable);
}
}
⑽ 資料庫中如何保證某一個欄位的值在更新時要按照一定的順序更新
(1)大多資料庫系統都會有這個自增量欄位的功能
如在SQL Server中在int欄位加個identity(1,1)屬性, 就是指由1開始增量1
MS SQL SERVER資料庫:
CREATE TABLE T1( [id] [int] IDENTITY(1,1) NOT NULL, ... )
MYSQL資料庫
CREATE TABLE `T1`.`create_id` (
`id` BIGINT( 20 ) NOT NULL AUTO_INCREMENT PRIMARY KEY
)
(2)用程序中實現
先取得最大itemID,通常有兩種方法:
int max_id;
用 select max(itemID) into max_id from T1
有的資料庫可以用 : select top 1 itemID into max_id from T1 order by itemID DESC
然後插入新數據時
把當前最大的max_id加上增量值就行了.
(3)用觸發器來實現
用SQL SERVER來實現
CREATE TRIGGER T1_Insert ON dbo.T1 FOR INSERT AS
SELECT @@IDENTITY