[personal profile] zinal
Как сделать почти что Oracle database link (DBLINK) между двумя базами данных DB2 (alpha и beta), размещенными на двух серверах СУБД (db2-alpha и db2-beta), в каждом из которых развёрнут экземпляр DB2 по имени db2inst2:

Действия на сервере alpha:
db2 create database alpha
db2 -t
  activate db alpha;
  connect to alpha;
  create table tab_alpha (a integer not null, b varchar(100) not null,
       primary key(a), unique(b));
  insert into tab_alpha values(1,'One'),(2,'Two'),(3,'Three'),(4,'Four');
  terminate;


Действия на сервере beta:
db2 update dbm cfg using federated yes
db2stop
db2start
db2 catalog tcpip node db2alpha remote db2-alpha server db2c_db2inst2
db2 catalog db alpha as alpha at node db2alpha
# db2 connect to alpha user db2inst2
db2 create database beta
db2 -t
  connect to beta;
  create wrapper drda;
  create server server_alpha type db2/udb version 10.5 wrapper drda
      authorization "db2inst2" password "P@$$w0rd" options(dbname 'alpha');
  create user mapping for db2inst2 server server_alpha
      options (remote_authid 'db2inst2', remote_password 'P@$$w0rd');
  select count(*) from server_alpha.db2inst2.tab_alpha;
--  select count(*) from  db2inst2.tab_alpha@server_alpha; -- DB2_COMPATIBILITY_VECTOR=ORA
  insert into server_alpha.db2inst2.tab_alpha
      values(10,'Ten'),(20,'Twenty'),(30,'Thirty'),(40,'Fourty');
  terminate;


Дополнительно на сервере beta можно наладить кэширование данных через MQT:
db2 update db cfg for beta using dft_refresh_age any
db2 deactivate db beta
db2 activate db beta
db2 -t
  connect to beta;
  create nickname tab_alpha for server_alpha.db2inst2.tab_alpha;
  create table tab_alpha_mqt as (select * from tab_alpha) 
      data initially deferred refresh deferred enable query optimization 
      maintained by system;
  create index tab_alpha_mqt_pk on tab_alpha_mqt(a);
  create index tab_alpha_mqt_ak1 on tab_alpha_mqt(b);
  refresh table tab_alpha_mqt;
  select count(*) from tab_alpha_mqt;
  explain plan for select count(*) from tab_alpha where a>=10;


UPDATE: для интересующихся подробностями вот
старая, но вполне грамотная статья на developerWorks
.

Profile

zinal: (Default)
Maksim Zinal

April 2017

M T W T F S S
     12
3456 789
10111213141516
17181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 2nd, 2025 04:02 pm
Powered by Dreamwidth Studios