网友通过本文主要向大家介绍了tips tricks,tips and tricks,tricks,彪马足球鞋tricks,tricks是什么意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
DB2_Tips_Tricks_04 远程数据库之间复制数据
一、编目远程数据库
1、查看远程名数据库服务名
[db2inst4@db2-node01 ~]$ db2 get dbm cfg |grep SVCENAME
TCP/IP 服务名称 (SVCENAME) = 60000
SSL 服务名称 (SSL_SVCENAME) =
[db2inst4@db2-node01 ~]$
2、在本地实列编目数据库
[db2inst1@db2 ~]$ db2 catalog tcpip node node_106 remote 108.88.3.106 server 60000
DB20000I CATALOG TCPIP NODE 命令成功完成。
DB21056W 直到刷新目录高速缓存之后,目录更改才生效。
[db2inst1@db2 ~]$ db2 catalog db test as test106 at node node_106
DB20000I CATALOG DATABASE 命令成功完成。
DB21056W 直到刷新目录高速缓存之后,目录更改才生效。
3、查看节点信息
[db2inst1@db2 ~]$ db2 LIST NODE DIRECTORY
节点目录
目录中的条目数 = 2
节点 1 条目:
节点名 = DB2
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 127.0.0.1
服务名称 = 50000
节点 2 条目:
节点名 = NODE_106
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 108.88.3.106
服务名称 = 60000
4、查看本地编目数据库
[db2inst1@db2 ~]$ db2 list db directory
数据库别名 = TANK
数据库名称 = TANK
本地数据库目录 = /home/db2inst1
数据库发行版级别 = d.00
注释 =
目录条目类型 = 间接
目录数据库分区号 = 0
备用服务器主机名 =
备用服务器端口号 =
数据库 6 条目:
数据库别名 = TEST106
数据库名称 = TEST
节点名 = NODE_106
数据库发行版级别 = d.00
注释 =
目录条目类型 = 远程
目录数据库分区号 = -1
备用服务器主机名 =
备用服务器端口号 =
[db2inst1@db2 ~]$ db2 connect to test106 user db2inst4 USING db2inst4
数据库连接信息
数据库服务器 = DB2/LINUXX8664 9.7.5
SQL 授权标识 = DB2INST4
本地数据库别名 = TEST106
[db2inst2@db2-node01 ~]$
TEST 源数据库节点运行生成测试数据:
db2 "create table DB2INST2.TABLEA(id integer,name char(10),salary integer)"
db2 "insert into DB2INST2.TABLEA values(1001,'SAM',10000)"
db2 "insert into DB2INST2.TABLEA values(1002,'PAM',9500)"
db2 "insert into DB2INST2.TABLEA values(1003,'CAM',12500)"
db2 "insert into DB2INST2.TABLEA values(1004,'RAM',7500)"
db2 "insert into DB2INST2.TABLEA values(1005,'HAM',20000)"
db2 "create table DB2INST2.TABLEB(id integer,name char(10),salary integer)"
db2 "insert into DB2INST2.TABLEB values(2001,'SAM',10000)"
db2 "insert into DB2INST2.TABLEB values(2002,'PAM',9500)"
db2 "insert into DB2INST2.TABLEB values(2003,'CAM',12500)"
db2 "insert into DB2INST2.TABLEB values(2004,'RAM',7500)"
db2 "insert into DB2INST2.TABLEB values(2005,'HAM',20000)"
db2 "create table FOO.TABLEC(id integer not null primary key,name char(10),salary integer)"
db2 "insert into FOO.TABLEC values(3001,'SAM',10000)"
db2 "insert into FOO.TABLEC values(3002,'PAM',9500)"
db2 "insert into FOO.TABLEC values(3003,'CAM',12500)"
db2 "insert into FOO.TABLEC values(3004,'RAM',7500)"
db2 "insert into FOO.TABLEC values(3005,'HAM',20000)"
db2 "create table FOO.TABLED(id integer,lastname char(10))"
db2 "ALTER TABLE FOO.TABLED ADD CONSTRAINT EMP_LNAME FOREIGN KEY (ID) REFERENCES FOO.TABLEC"
db2 "insert into FOO.TABLED values(3001,'MAS')"
db2 "insert into FOO.TABLED values(3002,'MAP')"
db2 "insert into FOO.TABLED values(3003,'MAC')"
db2 "insert into FOO.TABLED values(3003,'MAC')"
db2 "insert into FOO.TABLED values(3003,'MAC')"
二、导入方法一
1、采用load with cursor 方式
DB2 LOAD WITH CURSOR:
[db2inst1@db2 ~]$ db2 connect to tank
数据库连接信息
数据库服务器 = DB2/LINUXX8664 9.7.5
SQL 授权标识 = DB2INST1
本地数据库别名 = TANK
[db2inst1@db2 ~]$ db2 "create table DB2INST2.TABLEA(id integer,name char(10),salary integer)"
DB20000I SQL 命令成功完成。
[db2inst1@db2 ~]$ db2 "drop table DB2INST2.TABLEA"
DB20000I SQL 命令成功完成。
[db2inst1@db2 ~]$ db2 connect to tank
数据库连接信息
数据库服务器 = DB2/LINUXX8664 9.7.5
SQL 授权标识 = DB2INST1
本地数据库别名 = TANK
[db2inst1@db2 ~]$ db2 "create table DB2INST1.MYTABLE(id integer,name char(10),salary integer)"
DB20000I SQL 命令成功完成。
[db2inst1@db2 ~]$ db2 declare mycur cursor database TEST106 user db2inst4 using db2inst4 for select id,name,salary from db2inst2.tableA
DB20000I SQL 命令成功完成。
[db2inst1@db2 ~]$ db2 load from mycur of cursor insert into db2inst1.mytable
SQL3501W 由于禁用数据库正向恢复,因此表所驻留的表空间将
不被置于备份暂挂状态。
SQL3039W 可供 DATA BUFFER 的 LOAD 使用的内存禁止完全 LOAD
并行性。将使用装入并行性 "4"。
SQL3253N 实用程序正在开始通过 SQL 语句 " select id,name,salary
from db2inst2.tableA" 来从数据库 "TEST106" 装入数据。
SQL3500W 在时间 "2017-01-11 21:44:51.822168",实用程序在开始
"LOAD"。
SQL3519W 开始装入一致点。输入记录数 = "0"。
SQL3520W “装入一致点”成功。
SQL3110N 实用程序已完成处理。从输入文件读了 "5" 行。
SQL3519W 开始装入一致点。输入记录数 = "5"。
SQL3520W “装入一致点”成功。
SQL3515W 在时间 "2017-01-11 21:44:52.121959",实用程序已经完成了
"LOAD"。
读取行数 = 5
跳过行数 = 0
装入行数 = 5
拒绝行数 = 0
删除行数 = 0
落实行数 = 5
[db2inst1@db2 ~]$ db2 "select * from db2inst1.mytable"
ID NAME SALARY
----------- ---------- -----------
1001 SAM 10000
1002 PAM 9500
1003 CAM 12500
1004 RAM 7500
1005 HAM 20000
5 条记录已选择。
[db2inst1@db2 ~]$
三、导入方法之-二
采用 DB2MOVE WITH COPY ACTION:
db2move
1、采用db2move copy 仅导入数据
[db2inst1@db2 ~]$ db2 connect to tank
数据库连接信息
数据库服务器 = DB2/LINUXX8664 9.7.5
SQL 授权标识 = DB2INST1
本地数据库别名 = TANK
[db2inst1@db2 ~]$ db2 "create table DB2INST2.TABLEA(id integer,name char(10),salary integer)"
DB20000I SQL 命令成功完成。
[db2inst1@db2 ~]$ db2 "create table FOO.TABLEC(id integer not null primary key,name char(10),salary integer)"
DB20000I SQL 命令成功完成。
[db2inst1@db2 ~]$ db2move TEST106 COPY -tn \"DB2INST2\".\"TABLEA\",\"FOO\".\"TABLEC\" -co TARGET_DB TANK user db2inst1 using db2inst1 MODE "LOAD_ONLY" -u db2inst4 -p db2inst4
Application code page not determined, using ANSI codepage 1208
***** DB2MOVE *****
Action: COPY
Start time: Wed Jan 11 21:49:59 2017
All table names matching: "DB2INST2"."TABLEA"; "FOO"."TABLEC";
Connecting to database TEST106 ... successful! Server : DB2 Common Server V9.7.5
Start Load Phase :
db2move finished successfully
Files generated:
-----------------