ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 高级复制实施手记(2)

高级复制实施手记(2)

原创 Linux操作系统 作者:husthxd 时间:2006-06-07 00:00:00 0 删除 编辑

2.创建主体站点


本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明.

http://husthxd.itpub.net/post/11/111302

假定有两个主体站点simis.simis,web.simis。其中,simis.simis为主体定义站点
1) 设置init参数:要注意db_name和db_domain的大小写
主体定义站点simis.simis的init参数
db_name=simis
db_domain=simis
# global_names设置为true
global_names=true
#用于执行dbms_job中的任务
job_queue_processes = 20
复制站点web.simis的init参数
db_name=web
db_domain=simis
# global_names设置为true
global_names=true
#用于执行dbms_job中的任务
job_queue_processes = 20

2) 在simis和web上分别配置网络服务名,服务名 service name分别为web和simis,通过tnsping和sqlplus测试是否连通。

3) 设置global_name和数据库链接
主体定义站点simis.simis上
alter database rename global_name to simis.simis;
复制站点web.simis上
alter database rename global_name to web.simis;
建立公共数据库连接
主体定义站点simis.simis上,配置有名为web的有网络服务名
create public database link web.simis using 'web';
select *from
;-- 如果显示web.simis则表示设置成功
复制站点web.simis上,配置有名为simis的网络服务名
create public database link simis.simis using 'simis';
select *from
;-- 如果显示simis.simis则表示设置成功

4) 1.4在simis.simis上创建主复制站点
创建repadmin:复制环境管理用户
conn

drop user repadmin cascade;
CREATE USER repadmin IDENTIFIED BY repadmin;
授权
BEGIN
DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA (username => 'repadmin');
END;
/
GRANT COMMENT ANY TABLE TO repadmin;
GRANT LOCK ANY TABLE TO repadmin;
GRANT SELECT ANY DICTIONARY TO repadmin;

注册propagator,该用户把延迟事务push到其他主体站点上
BEGIN
DBMS_DEFER_SYS.REGISTER_PROPAGATOR (username => 'repadmin');
END;
/

注册接收用户,接受其他站点propagator所push的延迟事务
BEGIN
DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP (username => 'repadmin', privilege_type => 'receiver',list_of_gnames => NULL);
END;
/

延迟事务执行完毕后,需要清除高级复制事务,在此定义清除时间间隔
CONNECT

BEGIN
DBMS_DEFER_SYS.SCHEDULE_PURGE (
next_date => SYSDATE
,interval => 'SYSDATE + 30/1440'
, delay_seconds => 0);
END;
/

创建代理主体站点用户来响应物化视图站点上的用户
创建代理物化视图管理员
CONNECT

drop user proxy_mviewadmin cascade;
CREATE USER proxy_mviewadmin IDENTIFIED BY proxy_mviewadmin;
BEGIN
DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP (
username => 'proxy_mviewadmin',
privilege_type => 'proxy_snapadmin',
list_of_gnames => NULL);
END;
/
grant SELECT_CATALOG_ROLE to proxy_mviewadmin;

创建代理刷新用户refresher
CREATE USER proxy_refresher IDENTIFIED BY proxy_refresher;
GRANT CREATE SESSION TO proxy_refresher;
GRANT SELECT ANY TABLE TO proxy_refresher;

在用户repadmin下创建私有数据库链接
connect

create database link web.simis connect to repadmin identified by repadmin;
测试连接
select *from
;
设置延迟事务的时间间隔
CONNECT

BEGIN
BMS_DEFER_SYS.SCHEDULE_PUSH (
destination => 'web.simis',
interval => 'SYSDATE + (10/1440)',
next_date => SYSDATE,
parallelism => 1,
execution_seconds => 1500,
delay_seconds => 1200);
END;
/

5) 在web.simis上创建主复制站点
创建复制环境管理员/创建propagator/创建接受者receiver
conn

drop user repadmin cascade;
CREATE USER repadmin IDENTIFIED BY repadmin;

给repadmin用户授权
BEGIN
DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA (
username => 'repadmin');
END;
/
GRANT COMMENT ANY TABLE TO repadmin;
GRANT LOCK ANY TABLE TO repadmin;
GRANT SELECT ANY DICTIONARY TO repadmin;
注册propagator
BEGIN
DBMS_DEFER_SYS.REGISTER_PROPAGATOR (
username => 'repadmin');
END;
/
注册receiver
BEGIN
DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP (
username => 'repadmin',
privilege_type => 'receiver',
list_of_gnames => NULL);
END;
/
定义purge的时间间隔
CONNECT

BEGIN
DBMS_DEFER_SYS.SCHEDULE_PURGE (
next_date => SYSDATE,
interval => 'SYSDATE + 1/1440',
delay_seconds => 0);
END;
/

在用户repadmin下创建私有数据库链接
connect

create database link simis.simis connect to repadmin identified by repadmin;
select *from
;
CONNECT

BEGIN
DBMS_DEFER_SYS.SCHEDULE_PUSH (
destination => 'simis.simis',
interval => 'SYSDATE + (1/1440)',
next_date => SYSDATE,
parallelism => 1,
execution_seconds => 1500,
delay_seconds => 1200);
END;
/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-22050/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
ITPUB数据库版块资深版主,对Oracle、PostgreSQL有深入研究。

注册时间:2007-12-28

  • 博文量
    1559
  • 访问量
    4230977