大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
两个一样的oracle ,定期同步,说白了就是主备用数据库数据同步的问题;
成都创新互联主营安福网站建设的网络公司,主营网站建设方案,重庆App定制开发,安福h5小程序开发搭建,安福网站营销推广欢迎安福等地区企业咨询
如果数据库A和数据库B是建立在两台独立的数据库服务器上,那么采用dblink方式是一种可行的方式,
第一种方式:前提是数据库A和数据库B本地网是24小时互通的同时对数据同步实时性有比较高的要求,那么可以建立DBLINK,在两个库都建触发器,不管当前在哪个库发生数据更新的时候实时同步数据到目标数据库;
第二种方式:如果数据同步的实时性要求不高,则可以通过定制存储过程的方式(给两个库的数据表加时间戳或者更新标志,)定时同步数据;
第三种方式:通过给两个数据库的数据表加更新标志字段,以第一种方式为主以满足实时性的要求,以第二种方式为辅弥补可能存在的触发器执行更新未成功的情况。
以上的方案都是从数据层面所做的处理,对于数据实时同步还是会存在一定的风险,那么双机热备应该说是最好的选择了。
1、物化视图
2、dataguard
3、rman增量导入
4、找开发商取出每天的增量数据导入备库。
5、每天全库的导出导入
当然了,最后一种方法完全不用考虑(虽然操作过程简单,但数据量大的话相当耗时,而且实时性就没办法咯),(方案四是要收费滴)。o(∩_∩)o
如果你的备库只需要进行查询操作,那么以上方案均可考虑(注意用方案二的话数据库版本只能是oracle11以上,这样备库才能open);如果你的备库还需要进行修改等的其他操作的话那么建议采用方案一或方案四。
以上方案实时性最好的是方案二其次是方案一。其它几个方案实时性较差。
你是希望用PHP代码实现同时写两个数据库还是希望只是两个数据库的数据一致?如果仅是希望数据库数据数据一至,oracle自带的机制就能实现。如果是想自己编程实现同时两个数据库的操作,也方便,PHP在链接不同数据库实例时,会得到不同的链接句柄,在后面具体操作时,同时对这两个链接句柄操作就行了,但这样存在数据不完全一致的风险,必须校验,这样又拖慢了速度。
演示代码如下:
echo "br /b演示多数据库克隆操作(多数据库同时写操作)/bbr /";
$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();