问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用php实现两个Oracle数据库同步功能?

发布网友 发布时间:2022-04-08 04:06

我来回答

3个回答

懂视网 时间:2022-04-08 08:27

function Query($sql,$prms){ $db = " (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SID=orcl) (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )"; $db_uname = "xxx"; $db_upass = "XXXXXX"; $conn = oci_connect($db_uname, $db_upass, $db); $stmt = oci_parse($conn, $sql); if(is_array($prms)){ foreach ($prms as $key => $val){ oci_bind_by_name($stmt, $key, $val); } } oci_execute($stmt, OCI_DEFAULT); $rownum = oci_fetch_all($stmt, $result); oci_free_statement($stmt); oci_close($conn); return $result; } function BeginTran(){ $db = " (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SID=orcl) (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )"; $db_uname = "xxx"; $db_upass = "xxx"; $conn = oci_connect($db_uname, $db_upass, $db); return $conn; } function CloseConn($conn){ oci_close($conn); } function Commit($conn){ oci_commit($conn); CloseConn($conn); } function RollBack($conn){ oci_rollback($conn); CloseConn($conn); } ?>
<?php
require ‘db.php‘;
// $res = Query("select * from customerinfo where rownum < 100", null);
// for($i = 0;$i< 99;$i++){
// foreach ($res as $data){
//  echo $data[$i];
// }
// }

$sql = "insert into hostparam (paramtype,paramvalue) values (:ptype,:pval)";
$conn = BeginTran();
$num = 0;
try {
 $stmt = oci_parse($conn, $sql);
 $ptype = "1";
 $pval = "2";
 oci_bind_by_name($stmt, ":ptype", $ptype);
 oci_bind_by_name($stmt, ":pval", $pval);
 oci_execute($stmt,OCI_DEFAULT);
 $num = oci_num_rows($stmt);
 Commit($conn);
} catch (Exception $e) {
 RollBack($conn);
}
echo $num;
?>

 

php实现oracle操作

标签:

热心网友 时间:2022-04-08 05:35

你是希望用PHP代码实现同时写两个数据库还是希望只是两个数据库的数据一致?如果仅是希望数据库数据数据一至,oracle自带的机制就能实现。如果是想自己编程实现同时两个数据库的操作,也方便,PHP在链接不同数据库实例时,会得到不同的链接句柄,在后面具体操作时,同时对这两个链接句柄操作就行了,但这样存在数据不完全一致的风险,必须校验,这样又拖慢了速度。
演示代码如下:
echo "<br /><b>演示多数据库克隆操作(多数据库同时写操作)</b><br />";
$this->loadModel('student.php',1);
//如果两个不同数据库服务器的表对象结构完全一致,则不必重复载入表对象定义文件,只需要在实例化时指定服务器id就行了。
//$this->loadModel('student.php',2);
$this->loadModel('student2.php',2);
$student1=new Tstudent(1);
$student2=new Tstudent2(2);
$student3=new Tstudent(2);
$student2->cloneFrom($student1);
$student3->cloneFrom($student1);
$student1->uuid='999';
$student1->id='999';
$student1->name='测试克隆人';
//如果进行了主对象的克隆操作,则在完成主对象数据持久化后,所有的子对象将会同步插入数据。
$student1->insert();

热心网友 时间:2022-04-08 06:53

同步的数据多吗?是按日同步还是由操作员手动时间同步?
自动同步方式:
两个Oracle实例间的数据同步,如果网络通的话,可以使用DBLink来实现,添加一个Oracle Job,设定多长时间进行同步一次,写个存储过程就可以。
手动同步方式:
可以在表中添加一个状态值,未同步时,设定为0,用户手动同步时(比如点击同步按钮),将此状态改为1,由Job间隔多长时间去读取这个值,如果为1的话,进行同步,同步完毕后,改为2即可。

如果数据量比较小的话就无所谓了,使用JDBC方式同步和DBLink方式没什么区别了追问是要实现自动同步,数据量也比较大。能不能给出一个更具体一些的方案,或者网上有没有类似的案例啊?

追答

如果数据量比较大的话,就不能使用JDBC方式了。首先要保证两个DB机器间进行可以进行通信

紧耦合的方式

在同步的数据库实例中创建 DBLink (用法可以百度一下),这样两个数据库间的表就可以互相访问了,至于同步的方式,就是 select 或者 update 什么的,写个存储过程就OK了。

松耦合的方式

这样可以会比较麻烦点(适用于两个机器间不能正常通信的情况下),将源表中的数据导出到文件,然后将文件中传到目标机器上,使用sqlloader进行导入即可。
有不清楚的可以留下你的联系方式,再沟通

php可以同时连接mysql和oracle两个数据库吗

可以的,你在配置文件上分别赋值,conn1 conn2,然后执行sql语句的时候,想要调用哪个数据库你就选择哪个

PHP如何连接oracle数据库

首先你要在php.ini文件中找到 extension=php_oci8.dll 前面的注释符号“;”去掉,使php能够加载支持oracle的模块;下面的代码是调试通过的,可直接使用的: &lt;?php dbconn=OCILogon("root","pass","(DESCRIPTION=(ADDRESS=(PROTOCOL =TCP)(HOST=远程IP)(PORT = 1521))(CONNECT_DATA =(SID=GZXNCW...

php,pdo怎么连接oracle数据库

php有强大的功能不但可以支持mysql,mssql,mysqli之个我们还可以与oracle数据连接,要让php支持oracle非常的简单我们只要把php.ini中的;extention = php_oci8.dll分号去掉即可.请先安装oracle的客户端,能够用客户端访问oracle。php支持oracle连接函数 php.ini文件中的配置,去掉 ;extention = php_oci8.dll,...

如何用帆软连接远程的oracle数据库

有两种方式:新建数据库,选择JDBC方式连接,然后选择数据库类型,选择驱动器,修改URL 下载第三方jar包,需要使用连接access数据库的第三方jdbc驱动;新建数据库,选择JDBC方式连接,选择数据库类型,选择驱动器,修改URL;连接池属性;点击连接池属性可设置该JDBC数据连接的连接池配置,详细请查看JDBC连接池属...

我安装了一个Oracle配置了一个数据库.现在需要再配置一个数据库,需要再...

Oracle软件只需要安装一次就可以了,如果再配置一个数据库的话 只需要dbca创建数据库就ok了

php连接oracle数据库oci_connect函数问题

resource oci_connect ( string $username , string $password [, string $db [, string$charset [, int $session_mode ]]] )其中第三个参数 $db 在Oracle中叫:本地Net服务名,是存储在 tnsnames.ora中的,典型的如下:SALES = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP...

php中连接oracle的代码怎么写

oci_connect("cxuser","caixun","caixun"); 最后一个参数是数据库名,如果你不是远程的,就不用写,直接用""就可以了

pdo是什么

1. 跨数据库支持:PDO支持多种数据库系统,如MySQL、Oracle、SQLite等。开发者可以根据项目需求选择合适的数据库系统,而无需担心代码兼容性问题。2. 抽象化层:PDO提供了一个抽象的数据访问层,使得开发者可以使用标准的SQL语法来操作数据库。这使得代码更加简洁、易于维护。3. 预处理语句:PDO支持预...

php中怎么配置支持oracle 11g数据库

1、安装oracle 11g client或instantclient 11 2、编译php支持oracle --with-oci8[=DIR]--with-pdo-oci[=DIR]3、配置php.ini支持oracle 11g windows:extension=php_oci8_11g.dll linux:参考 http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html 4、ora.php实例 &lt;?php con...

用PHP操纵Oracle的LOB类型的数据

php //建立Oracle数据库连接 $conn = OCILogon($user $password $SID); //提交SQL语句给Oracle //在这里要注意的两点 一是用EMPTY_BLOB()函数 这是Oracle的内部函数 返回一个LOB的定位符 在插入LOB时 只能用这个办法先生成一个空的LOB定位符 然后对这个定位符进行操作 EMPTY_BLOB()函数是针对BLOB...

不同数据库之间的数据同步 oracle数据库同步 php如何连接mysql数据库 php修改数据库数据 php调用数据库 php mysqli连接数据库 php mysql连接数据库 同步数据库 数据库怎么同步
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
针对孩子,家长的需求,能开发孩子的智力。要投资什么项目能赚钱_百度知 ... ...有好几个故事,现在只记得《纸飞机》,《七号凶楼》,《凶婴》,求书名... 中考成绩400分能上普通高中吗? cad绘图哪个版本好 怎样使用AutoCAD ZBBZ坐标插件呢? 138个AutoCAD最新绘图插件,绘图效率提升80%,内附详细使用教程 我喜欢在QQ浏览器上面的QQ空间里登录我前任的账号密码!登过很多次了... 宝宝吐不拉稀是肠炎吗 小孩腹痛呕吐无腹泻能否自愈 ...今年供暖半月发现一路地暖管漏水、漏到楼下住户、需要破坏柜和地板砖... 手机充电一直插着没事吧 QQ设置了特别关心,但是消息来了没声音,我手机都是最高音量了 ...我把所有的开关都打开了,依旧没有声音和提示? 商标注册批准需要多长时间 在360浏览器隔离沙箱浏览的东西可以找到吗? 现在去注册一个商标要多久才可以使用? 商标申请时间一般多长时间 360隔离沙箱中的文件怎么取出来 申请一个商标能用多长时间 360隔离沙箱沙箱虚拟环境已关闭怎么办 关于高铁的作文,350字左右 高铁乘务员作文 为什么360隔离沙箱没办法用 高铁专业的想法 为什么要选这个专业对在个专业的以后的道路 可以用360隔离沙箱去有毒的网站吗?电脑不会中毒吧? 自我介绍 你为什么选择高铁这个专业 一篇我对高铁这个职业的看法的英语作文 高铁乘务专业就业前景1500字作文 我的中职梦高铁专业作文 600字。 为什么选择高铁动车专业的理由 手机电池充满后一直插着电源,会影响寿命吗 手机一直充电对手机有危害么 公司作为股东投资如何做账 兰州有什么地方没人,比较安静,可以聊天 股东拿公司资金开公司这个怎么入账? 合伙企业作为持股平台股东的出资直接没有入账就投到被投资企业怎么做账? 对方拿配方入股怎么入账 小规模纳税人其中一个股东投资28万元不是作为实收资本该怎样入账最合适? 新股东入股,要承担原来的公司的借款,怎样做账,从新建账,借:什么科目 贷:长期借款? 中国五大湖 分公司中新股东入股资金如何入账 江苏省镇江市东岳巷马家山12幢在哪儿?百度截图~或者给个最近的地标~或者联系我都行 股东入股,公司并没有收到钱,股东拿钱去买设备什么的,该怎么做账? 江西抚州华莱士在哪? 山西晋城沁水县有个硖沟村,谁知道在哪? 兰州新区马家山交警队属哪管 陕西省山阳县小河镇有哪些村 江西抚州电脑城在哪儿? 兰州新区的经七路经过秦川镇哪几个村庄? 建行智能收钱云音响怎么设置