Oracle的分布式做的挺不错的,因为你只需要建立几个database link就可得到想要的东西。
如下展示:
首先在Oracle安装目录下找到一个叫做tnsnames.ora的文件。在其中添加一些内容例如:
LOANDB
=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.3
)(PORT = 1521
))
)
(CONNECT_DATA =
(SERVICE_NAME = LOANDB
)
)
)
其中HOST = 192.168.1.3是你要连接的远程数据所在的ip地址。PORT = 1521是这个远程数据库的监听端口。SERVICE_NAME = LOANDB是远程的数据库名。
然后使用sqlplus登陆Oracle。
sqlplus
system@chicoDB as sysdba
然后输入你的密码
然后写这样一句话:
create public database link loan
connect to system
identified by feng
using 'loanDB
'
这里loan是你的连接名,以后就可以直接使用这个名字作为远端了。system是远程数据库的用户名。feng是那个用户名的密码。loanDB看上面的tnsnames.ora中的那一行LOANDB就是.
然后你要查询远程数据的中的system.client表就这样写一行:
select * from system.client@loan
就可以了。
如果你不小心把database link建错了,只需要drop public database link loan即可。
远程的更新稍稍有些问题。就是可能你看到不到数据库已经更新了。或者你这边看到更新了,但是远程的数据库好像并没有更新。这种问题的解决方案就是:在update或者delete语句之后使用commit;语句即可
Oracle事务处理用C#代码这样写:(我使用的ODBC)
public Boolean ExecuteTransaction(string[] sqls)
{
const string connectionString = "DSN=fengDB;UID=System;Pwd=zaqwsx;";
using (OdbcConnection connection =
new OdbcConnection(connectionString))
{
OdbcCommand command = new OdbcCommand();
OdbcTransaction transaction = null;
// Set the Connection to the new OdbcConnection.
command.Connection = connection;
// Open the connection and execute the transaction.
try
{
connection.Open();
// Start a local transaction
transaction = connection.BeginTransaction();
// Assign transaction object for a pending local transaction.
command.Connection = connection;
command.Transaction = transaction;
foreach (string sql in sqls)
{
System.Console.WriteLine(sql);
command.CommandText = sql;
command.ExecuteNonQuery();
}
// Execute the commands.
//command.CommandText =
// "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
//command.ExecuteNonQuery();
// Commit the transaction.
transaction.Commit();
Console.WriteLine("Both records are written to database.");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
try
{
// Attempt to roll back the transaction.
transaction.Rollback();
}
catch
{
// Do nothing here; transaction is not active.
}
return false;
}
// The connection is automatically closed when the
// code exits the using block.
}
return true;
}
加红的地方好像必须这样写,不管你前面是否已经建立了连接。不过有一点不好的是,这样的事务处理只能批处理更新和删除...只能根据业务需求再重写这些。
分享到:
相关推荐
### Oracle分布式数据库环境搭建知识点详解 #### 一、系统信息 在进行Oracle分布式数据库环境的搭建之前,首先需要了解和确认各个服务器的基本信息,包括但不限于: - **服务器IP地址**:用于标识网络中的具体...
Oracle 分布式系统数据复制技术是为了解决大型或中型企业中地理分散部门的数据共享问题。数据复制技术允许数据在不同地理位置的多个数据库中被复制,以实现本地访问,减少网络负荷,提升数据访问速度,并确保数据的...
本篇文章将深入探讨如何在单机环境下模拟Oracle分布式数据库的数据复制环境,以实现数据的高效同步与备份。 首先,理解Oracle分布式数据库的概念至关重要。分布式数据库是由分布在不同地理位置的多个物理数据库组成...
Oracle分布式数据库是当今广泛应用的一种C/S或B/S体系结构的数据库,它通过将数据分布存储在多个服务器中,实现在逻辑上属于同一系统的数据库管理。用户在使用时感觉如同面对单一的系统,但在物理上,数据分布在不同...
《ORACLE分布式数据库及应用》一书主要涵盖了Oracle数据库在分布式环境中的应用和技术。Oracle数据库是全球广泛使用的关系型数据库管理系统之一,尤其在大型企业级应用中占据主导地位。其分布式数据库特性允许数据...
Oracle分布式数据库的创建策略是构建在Oracle数据库系统上的一个重要概念,它允许用户通过网络将分布在不同地理位置的多个数据库连接起来,形成一个逻辑上的单一数据库。这种架构能够提高数据的可用性和访问效率,...
Oracle分布式数据库是一种在多台计算机之间共享数据的系统,它结合了计算机网络和数据库技术,提供了高可扩展性和可靠性。这种数据库系统允许不同地点的数据在逻辑上被视为一个整体,从而提高了资源的共享和数据的...
【Oracle分布式数据库数据复制环境的实现】 Oracle分布式数据库系统是一种能够在多台计算机上共享和管理数据的架构,它允许多个地理位置分散的数据库节点协同工作,实现数据的同步和复制。这种系统对于需要高可用性...
Oracle分布式数据库是一种允许数据跨越多个物理位置的数据库系统,这种结构使得大型企业或组织能够管理和处理分布在不同地理位置的数据。本文主要介绍了Oracle分布式数据库的结构和实现技术。 首先,Oracle数据库的...
标题所涵盖的知识点主要有:Oracle分布式系统、数据复制技术、同步数据复制、异步数据复制、容错保护机制。 首先,Oracle分布式系统是指使用Oracle数据库软件构建的分布式数据库系统。在这样的系统中,数据可能存放...
【基于Oracle分布式技术的地理信息系统的开发应用】 随着信息技术的发展,地理信息系统(GIS)在各个领域的应用越来越广泛,尤其在城市规划、环境监测、交通管理等方面发挥着重要作用。Oracle数据库作为一款强大的...
Oracle分布式系统数据复制技术是一种关键的数据库管理策略,旨在解决地理分布广泛的用户群体对相同数据进行高效、实时访问的需求。这种技术通过复制数据到不同地理位置的多个数据库中,实现了数据的本地化访问,降低...
Oracle的分布式管理是一种技术,它允许用户通过网络访问和操作分布在不同地理位置的多个Oracle数据库,就像它们是一个单一的大型数据库一样。这种透明的分布式环境使得开发人员无需关注网络连接细节、数据分布位置...
Oracle分布式关系型内存数据库概述主要关注的是Oracle的两种内存数据库解决方案:TimesTen和Oracle Database In-Memory Option。这两种数据库设计都是为了实现高速处理和实时分析,适用于对速度和响应时间有极高要求...
Oracle分布式数据库及其实现.pdf
Oracle分布式数据库是一种允许多个数据库服务器分布在网络中,并且相互之间能够进行数据共享和交互的数据库系统。其主要应用实践包括在多个不同地理位置的节点上部署数据库实例,从而实现在不同网络节点上存取数据的...
Oracle分布式系统数据复制技术是一种关键的解决方案,尤其适用于大型或中型企业中,这些企业往往由分布在不同地理位置的部门组成,需要共享数据。数据复制技术旨在缓解单一数据存储站点的高负载和远程用户的数据访问...