mysql的事务处理机制可以做到多服务器时时并发同步吗
MySQL提供两个级别的并发控制:服务器级(the server level)和存储引擎级(the storage engine level)。加锁是实现并发控制的基本方法,MySQL中锁的粒度:
(1) 表级锁:MySQL独立于存储引擎提供表锁,例如,对于ALTER TABLE语句,服务器提供表锁(table-level lock)。
(2) 行级锁:InnoDB和Falcon存储引擎提供行级锁,此外,BDB支持页级锁。InnoDB的并发控制机制,下节详细讨论。
另外,值得一提的是,MySQL的一些存储引擎(如InnoDB、BDB)除了使用封锁机制外,还同时结合MVCC机制,即多版本两阶段封锁协议MVCC(Multiversion two-phrase locking protocal),来实现事务的并发控制,从而使得只读事务不用等待锁,提高了事务的并发性。
1、首先使用链接服务器,在一台服务器上链接另外一台服务器
2、启用事务
3、在事务内,分别操作两台服务器的表数据
4、遇错回滚事务,或最后提交事务
以上4步即可实现在不同主机的数据库服务器支持事务
问题:
局域网的机子突然看到网上邻居了但可以查找得到,不能访问说"服务器没设置事务处理"
解答:
网上找到的资料,转如下:
这是一个以前遇见过的问题,就是A win2000 ,发现自己的c,d默认共享没有了,ipc共享也没有了,别人在网上邻居访问A计算机会出现,“服务器没有设置事务处理”,自己访问自己用unc路径也不能访问,但A win2000访问别人没有问题,查了一下资料,发现是中毒了。
首先,我在进程中查看到一个叫wuamgrdexe这个进程,证明中了一种叫“w32spybotworm的病毒“,在进程中结束她,然后在%SYSTEM%\\SYSTEM32 下找\\wuamgrdEXE,把它删除,重新启动,发现问题解决,共享恢复,unc访问正常。
不只有没有专杀可以完全清除病毒。
手工清除W32SpybotWorm
(1)停止FTP,HTTP等服务,禁止WinXP或WinMe的系统还原,升级病毒库后,并拔掉网线,重启电脑
(2)查找注册表下面各个子项
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\
RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\
RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
删除有以下项目的项
"Microsoft Update" = "wuamgrdexe"
删除硬盘中tftp文件
(3)再重启电脑进入安全模式,使用病毒查杀工具杀病毒
(4)插上网线,使用Windows Update打上补丁
这种情况是比较多见的。
这也是 读 OPC 数据容易出现的假死情况。
情况的原因很多,有的是OPC对外的服务管道出现问题,有的是数据触发出现问题。
你可以在 DataChange里做日志记录,看看读不到数据时的状况,以及故障发生的周期是否比较固定,再做进一步判断。
如果周期比较固定,可以采用 C# 程序定时重置连接的方式来解决。
oracle在处理一般事务时并不需要全部启动其后台的所有服务
由于oracle服务所占用系统资源比较大,一般情况下启动监听服务oraclesidtnslistener和数据库服务oracleservicesid
就可以满足数据处理的大部分需求。
附表为oracle的所有服务详细描述
注:SID - 数据库标识
HOME_NAME - Oracle Home名称,如OraHome92、OraHome81
(1)OracleServiceSID
数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务进程为ORACLEEXE,参数文件initSIDora,日志文件SIDALRTlog,控制台SVRMGRLEXE、SQLPLUSEXE。
(2)OracleHOME_NAMETNSListener
监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQLNet 网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。服务进程为TNSLSNREXE,参数文件Listenerora,日志文件listenerlog,控制台LSNRCTLEXE,默认端口1521、1526。
(3)OracleHOME_NAMEAgent
OEM代理服务,接收和响应来自OEM控制台的任务和事件请求,只有使用OEM管理数据库时才需要,它的缺省启动类型为自动。服务进程为DBSNMPEXE,参数文件snmp_rwora,日志文件nmilog,控制台LSNRCTLEXE,默认端口1748。
(4)OracleHOME_NAMEClientCache
名字缓存服务,服务缓存用于连接远程数据库的Oracle Names 数据。它的缺省启动类型是手动。然而,除非有一台Oracle Names 服务器,否则没有必要运行这个服务。服务进程为ONRSDEXE,参数文件NAMESORA,日志文件ONRSDLOG,控制台NAMESCTLEXE。
(5)OracleHOME_NAMECMAdmin
连接管理服务,是构建Connection Manager服务器所用,只有服务器作为Connection Manager才需要,它的缺省启动类型是手动。服务进程为CMADMINEXE,参数文件CMANORA,日志文件CMADM_PIDTRC,控制台CMCTLEXE,默认端口1830。
(6)OracleHOME_NAMECMan
连接网关服务,是构建Connection Manager服务器所用,只有服务器作为Connection Manager才需要,它的缺省启动类型是手动。服务进程为CMGWEXE,参数文件CMANORA,日志文件CMAN_PIDTRC,控制台CMCTLEXE,默认端口1630。
(7)OracleHOME_NAMEDataGatherer
性能包数据采集服务,除非使用Oracle Capacity Planner 和 Oracle Performance Manager,否则不需要启动,它的缺省启动类型是手动。服务进程为VPPDCEXE,日志文件alert_dglog,控制台vppcntlexe。
(8)OracleHOME_NAMEHTTPServer
Oracle提供的WEB服务器,一般情况下我们只用它来访问Oracle Apache 目录下的Web 页面,比如说JSP 或者modplsql 页面。除非你使用它作为你的HTTP服务,否则不需要启动(若启动它会接管IIS的服务),它的缺省启动类型是手动。服务进程为APACHEEXE,参数文件httpdconf,默认端口80。
(9)OracleHOME_NAMEPagingServer
通过一个使用调制解调器的数字传呼机或者电子邮件发出警告(没试过),它的缺省启动类型是手动。服务进程PAGNTSRVEXE,日志文件paginglog。
(10)OracleHOME_NAMENames
Oracle Names服务,只有服务器作为Names Server才需要,它的缺省启动类型是手动。服务进程NAMESEXE,参数文件NAMESORA,日志文件NAMESLOG,控制台NAMESCTLEXE,默认端口1575。
(11)OracleSNMPPeerMasterAgent
SNMP服务代理,用于支持SNMP的网管软件对服务器的管理,除非你使用网管工具监控数据库的情况,否则不需要启动,它的缺省启动类型是手动。服务进程为AGNTSVCEXE,参数文件MASTERCFG,默认端口161。
(12)OracleSNMPPeerEncapsulater
SNMP协议封装服务,用于SNMP协议转换,除非你使用一个不兼容的SNMP代理服务,否则不需要启动,它的缺省启动类型是手动。服务进程为ENCSVCEXE,参数文件ENCAPSCFG,默认端口1161。
(13)OracleHOME_NAMEManagementServer
OEM管理服务,使用OEM时需要,它的缺省启动类型是手动。服务进程为OMSNTSVREXE,日志文件omsnohup。
在Windows 操作系统下安装Oracle 9i时会安装很多服务——并且其中一些配置为在Windows 启动时启动。在Oracle 运行在Windows 下时,它会消耗很多资源,并且有些服务可能我们并不总是需要。你会发现不使用Windows 图形界面就可以快速、完全地关闭数据库会很有用。
只要拥有管理员权限就可以通过net start 启动一个服务,或者通过net stop 命令停止一个服务,从而控制以下服务中的任何一个。在Windows XP 中,可以通过在控制面板的服务中改变想要禁用的服务(OracleOraHome)的启动类型(Startup Type)参数,双击某个服务查看其属性,然后将启动类型属性从自动改为手动。
使数据库在本地工作唯一需要运行的服务是OracleServiceORCL 服务(其中ORCL 是SID)。这个服务会自动地启动和停止数据库(使用shutdown 中断)。如果安装了一个数据库,它的缺省启动类型为自动。如果主要是访问一个远程数据库,那么可以把启动类型由自动改为手动。
OracleOraHome92HTTPServer 服务(OraHome92 是Oracle Home 的名称)是在安装Oracle 时自动安装的Apache 服务器。一般情况下我们只用它来访问Oracle Apache 目录下的Web 页面,比如说JSP 或者modplsql 页面。
OracleOraHome92TNSListener 服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQLNet 网络协议都属于远程访问)。不用这个服务就可以访问本地数据库。
OracleOraHome92ClientCache 服务缓存用于连接远程数据库的Oracle Names 数据。正常情况下该服务的启动类型是配置为手动的。然而,除非有一台Oracle Names 服务器,否则没有必要运行这个服务。
有四个服务是Oracle 企业管理器所必须的(Oracle Enterprise Manager),这个服务分别为:OracleOraHome92Agent(智能代理),该服务监视数据库和企业管理器请求,缺省启动类型为自动。OracleOraHome92SNMPPeerEncapsulator 和OracleOraHome92SNMPPeerMasterAgent,处理安全网络管理协议服务。OracleOraHome92PagingServer 通过一个使用调制解调器的数字传呼机或者电子邮件发出警告。
OracleMTSRecoveryService 是可选的,该服务允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务的资源管理器。
如果只是偶尔使用一下数据库,那么可以创建一个简单的脚本任务来启动和关闭服务器,这样每次只要双击脚本就可以了,可以不使用图形界面。
1 保存一个快捷方式自动地装载这些文件。
2 将Oracle 服务设为手动避免在Windows 启动时启动。
REM "dbstartcmd"
@echo off
set ORAHOME="OraHome90"
set ORASID="zsd"
net start OracleService%ORASID%
REM net start Oracle%ORAHOME%HTTPServer
REM net start Oracle%ORAHOME%TNSListener
REM net start Oracle%ORAHOME%ClientCache
REM net start Oracle%ORAHOME%Agent
REM net start Oracle%ORAHOME%SNMPPeerEncapsulator
REM net start Oracle%ORAHOME%SNMPPeerMasterAgent
REM net start Oracle%ORAHOME%PagingServer
REM net start OracleMTSRecoverService
REM "dbshutcmd"
@echo off
set ORAHOME="OraHome90"
set ORASID="zsd"
net stop OracleService%ORASID%
REM net stop Oracle%ORAHOME%HTTPServer
REM net stop Oracle%ORAHOME%TNSListener
REM net stop Oracle%ORAHOME%ClientCache
REM net stop Oracle%ORAHOME%Agent
REM net stop Oracle%ORAHOME%SNMPPeerEncapsulator
REM net stop Oracle%ORAHOME%SNMPPeerMasterAgent
REM net stop Oracle%ORAHOME%PagingServer
REM net stop OracleMTSRecoverService
0条评论