数据库快照提供了一个唯读,静止观的一个源数据库,因为它存在于快照的创造,减去任何未交易。未提交的事务回滚在一个新建的数据库快照,因为数据库引擎的运行复苏后的快照已创建(交易在数据库中不会受到影响) 。
数据库快照是依赖于源数据库。该快照一个数据库,必须在同一台服务器上,例如作为数据库。此外,如果该数据库变得不可用任何理由,它的所有数据库的快照也成为不可用。
快照可用于报告的目的。此外,在活动的用户错误的来源数据库,您可以回复源数据库到时的状态的快照,已创建。数据丢失是限于更新到数据库快照以来的创作。
了解如何快照的工作是有益的,虽然没有必要使用它们。数据库快照 *** 作在数据页的水平。前一个网页的源数据库是改装的第一时间,原来的网页是复制,从源头上数据库的快照。这个过程是所谓的副本-对-写 *** 作。快照店原始网页,保存的数据记录,因为他们存在时,快照已创建。随后的更新记录,在修改网页,不影响内容的快照。相同的过程是重复的每一页,就是被修改为第一次。这样一来,快照保留原始页面的所有数据记录都被修改以来,采取了快照。
存储复制的原始网页,快照使用一个或多个稀疏文件。最初,稀疏文件是一个基本上是空的文件,其中包含没有用户数据和尚未分配的磁盘空间,为用户数据。随着越来越多的网页更新,在源数据库,档案的大小增长。当一个快照所采取的,稀疏的文件占用了很少的磁盘空间。作为数据库的更新,随着时间的推移,然而,稀少的档案可以成长为一个非常大的文件。
以下数字显示的副本-关于-写 *** 作。根据灰色矩形在快照图所代表的潜在空间在一个稀疏文件是作为尚未未分配。在收到第一次更新的网页,在源数据库,该数据库引擎写信给文件和作业系统分配的空间在快照的稀疏文件并复制原始页。数据库引擎,然后更新网页,在源数据库。以下的数字,说明这种复制对-写 *** 作。
参考
用数据库快照就能实现啊
Oracle快照原理及实现总结
Oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。对于中大型数据库,业务数据库里所有的数据同步到另外一个处理服务器上最佳的选择还是使用SnapShot方式,即快照的方式。
由于工作需要,今天需要将业务数据库里所有的数据同步到另外一个处理服务器上。在做方案的时候,想了很多方法,当然最快的办法还是使用物理热备的方式。
但是我个人认为如果对于中大型数据库(我们的数据库有300G左右)最佳的选择还是使用SnapShot方式,即快照的方式。
Oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。也就是说快照根本的原理就是将本地或远程数据库上的一个查询结果保存在一个表中。
以下是我建立的Snapshot,目的是从业务数据库上将数据Copy到处理数据库上,是不同的两个服务器之间对数据copy。
第一步:在处理服务器上的Oracle终端,建立database link,业务数据库服务器SID为TEST
create database link TEST_DBLINKUSORACLECOM
connect to AMICOS identified by AMICOS
using 'test';
第二步:在业务数据库上对应的表建立快照日志
Create snapshot log on A_Table;
第三步:建立Snapshot 快照名称为:Test_SnapShot
Create snapshot Test_SnapShot
REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/24
as select from A_Table@TEST_DBLINK
说明:REFRESH是刷新方法
刷新方式有:COMPLETE和FAST两种,而START WITH是说明开始执行的时间。
Next是下次执行的时间
而AS以后是构成快照的查询方法。
相关的方法:
更改快照
ALTER SNAPSHOT Test_SnapShot
REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/2;
手动刷新快照 在命令界面执行:
EXEC DBMS_SNAPSHOTREFRESH('Test_SnapShot ','C');
第一个参数是要刷新的快照名
第二个参数是刷新的方式,F----FAST, C---COMPLETE
查看快照最后刷新的日期
SELECT NAME,LAST_REFRESH
FROM ALL_SNAPSHOT_REFRESH_TIMES;
最后非常的方案:
1:为需要做Snapshot的表建立Snapshot日志
create snapshot log on t1 with rowid; 这里使用ROWID建立日记的参数
2:采用Fast的方式建立快照,使用rowid做为参考参数
create snapshot fb_test_b refresh fast with rowid start with sysdate next sysdate+1/1440 as select from fb_test_b@my_dblink;
最好能按照rowid来建立快照。要不然就必须要为表建立Primary Key。
以上就是关于谁能给我翻译一下这篇文章谢谢!着急啊!翻译出来额外给奖励!全部的内容,包括:谁能给我翻译一下这篇文章谢谢!着急啊!翻译出来额外给奖励!、急!两个oracle数据库如何做数据交换、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)