最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例)

来源:动视网 责编:小采 时间:2020-11-09 10:50:13
文档

Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例)

Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例):Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例) 一、技术实现细节 除非特别说明,下面的SQL命令都是在数据库ora_db2的SYSETM用户下运行的。假设要复制(或同步)另一服务器上数据库ora_db1中用户db1的所有表。 1. 创建一个用
推荐度:
导读Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例):Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例) 一、技术实现细节 除非特别说明,下面的SQL命令都是在数据库ora_db2的SYSETM用户下运行的。假设要复制(或同步)另一服务器上数据库ora_db1中用户db1的所有表。 1. 创建一个用


Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例)

一、技术实现细节
除非特别说明,下面的SQL命令都是在数据库ora_db2的SYSETM用户下运行的。
假设要复制(或同步)另一服务器上数据库ora_db1中用户db1的所有表。


1. 创建一个用于连接数据库1(ora_db1)的数据库连接(dblink)

SQL> CREATE PUBLIC DATABASE LINK testLK CONNECT TO db1 identified by db1
using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(service_name=ora_db1)
)
)';

**出于安全考虑,可以采用一个私有数据连接。

2. 创建一个名为Snapshot_ts的表空间来存放快照,,并创建一个和该表空间有关的名为db2的用户。

SQL > CREATE TABLESPACE snapshot_ts DATAFILE
'd:\db\snapshot_ts.dbf' SIZE 30M
DEFAULT STORAGE (INITIAL 30 K
NEXT 15 K
MINEXTENTS 1
MAXEXTENTS 100
PCTINCREASE 0)
ONLINE
PERMANENT;


SQL > CREATE USER db2
IDENTIFIED BY db2
DEFAULT TABLESPACE snapshot_ts;


SQL > GRANT CONNECT, RESOURCE TO db2;

可以通过下面的SQL语句在ora_db1数据库以db1用户来粗略地估计表空间snapshot_ts的大小。

SQL >SELECT SUM(bytes)
FROM USER_SEGMENTS
WHERE SEGMENT_NAME IN
(select table_name from user_tables);


3. 运行下面的脚本来生成创建ora_db1数据库上db1用户下代码表的快照脚本:

注意 :在db1下运行下面select ,获得的文件create_snapshot.sql 脚本 在db2下运行。


SQL > spool d:\snap\create_snapshot.sql


注意上面这个生成所需表快照的脚本有一定的局限性,如果所需生成快照的表中含有类型为long的列,‘select *'在这里就不会起作用,上面的这个SQL脚本就不能自动建立生成所需快照的脚本,必须通过在select列表中显式地添加long型列名来创建表的快照。下面是一个例子,假如我们要创建快照依赖的表table1中有一个列note类型为long,就需要单独写出如下的创建快照的脚本:

文档

Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例)

Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例):Oracle如何实现两个数据库的同步(用实体化视图实现)(Oracle快照实例) 一、技术实现细节 除非特别说明,下面的SQL命令都是在数据库ora_db2的SYSETM用户下运行的。假设要复制(或同步)另一服务器上数据库ora_db1中用户db1的所有表。 1. 创建一个用
推荐度:
标签: 数据库 快照 oracle
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top