数据库更新状态
环境:两台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