2024年最全Oracle GoldenGate(OGG)- 超级详细(1),腾讯Golang面试题社招

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

cd $OGG_TGR_HOME
./ggsci


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030093328265.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


* 初始化目标端OGG目录  
 注意:如果不在OGG\_TGR\_HOME下,初始化目标端OGG目录时会报错



create subdirs


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030093405371.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 退出OGG命令行客户端:exit


* 检查目标端OGG初始化后的目录  
 初始化完成后,可以查询在$OGG\_TGR\_HOME下是否存在dirchk、dircrd、dirdat、dirdef、dirdmp、diretc、dirout、dirpcs、dirprm、dirrpt、dirsql、dirtmp、dirwlt、dirwww共14个目录。


#### 7.4.3 拷贝源端的define文件到目标端


将生成的/u01/app/ogg/src/dirdef/test\_ogg.test\_ogg发送的目标端ogg目录下的dirdef里:



scp -r $OGG_SRC_HOME/dirdef/test_ogg.test_ogg $OGG_TGR_HOME/dirdef/


#### 7.4.4 安装zookeeper和Kafka


* 安装ZooKeeper(使用root用户操作)  
 解压:



tar -zxf /export/softwares/zookeeper-3.4.14.tar.gz -C /export/services/


创建软连接:



ln -s /export/services/zookeeper-3.4.14 /export/services/zookeeper


创建zoo.cfg:



cp /export/services/zookeeper/conf/zoo_sample.cfg /export/services/zookeeper/conf/zoo.cfg


配置zoo.cfg:



vim /export/services/zookeeper/conf/zoo.cfg



> 
> tickTime=2000  
>  initLimit=10  
>  syncLimit=5  
>  dataDir=/export/datas/zookeeper/data  
>  dataLogDir=/export/datas/zookeeper/log  
>  clientPort=2181
> 
> 
> 


创建ZooKeeper的数据路径:



mkdir -p /export/datas/zookeeper/data
mkdir -p /export/datas/zookeeper/log


添加到环境变量:



vim /etc/profile



> 
> export ZOOKEEPER\_HOME=/export/services/zookeeper  
>  export PATH=.:$ZOOKEEPER\_HOME/bin:$JAVA\_HOME/bin:$JAVA\_HOME/jre/bin:$PATH
> 
> 
> 



source /etc/profile


启动ZooKeeper:



zkServer.sh start
zkServer.sh status


* 安装kafka(使用root用户操作)  
 解压:



tar -zxf /export/softwares/kafka_2.11-2.2.0.tgz -C /export/services/


创建软连接:



ln -s /export/services/kafka_2.11-2.2.0 /export/services/kafka


配置server.prperties:



vim /export/services/kafka/config/server.properties



> 
> listeners=PLAINTEXT://server01:9092  
>  broker.id=0  
>  zookeeper.connect=server01:2181
> 
> 
> 


添加环境变量:



vim /etc/profile



export KAFKA_HOME=/export/services/kafka
export PATH=.: K A F K A _ H O M E / b i n : KAFKA\_HOME/bin: KAFKA_HOME/bin:ZOOKEEPER_HOME/bin: J A V A _ H O M E / b i n : JAVA\_HOME/bin: JAVA_HOME/bin:JAVA_HOME/jre/bin:$PATH



source /etc/profile


启动Kafka:



kafka-server-start.sh -daemon /export/services/kafka/config/server.properties


创建主题:



kafka-topics.sh --create --zookeeper server01:2181 --replication-factor 1 --partitions 1 --topic test_ogg


查看主题:



kafka-topics.sh --list --zookeeper server01:2181


#### 7.4.5 配置管理器MRG进程


使用oracle用户进入OGG\_SRC\_HOME目录下  
 切换到oracle用户下:



su – oracle


打印目标端OGG\_TGR\_HOME:



echo $OGG_TGR_HOME


进入OGG\_TGR\_HOME:



cd $OGG_TGR_HOME


启动ggsci:



./ggsci


配置目标端MRG进程  
 配置MGR进程:



edit param mgr


新增内容:



> 
> PORT 7810  
>  DYNAMICPORTLIST 7810-7909  
>  AUTORESTART EXTRACT \*,RETRIES 5,WAITMINUTES 3  
>  PURGEOLDEXTRACTS ./dirdat/\*,usecheckpoints, minkeepdays 3
> 
> 
> 


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030094156332.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


#### 7.4.6 配置checkpoint



edit param ./GLOBALS


新增内容:



> 
> CHECKPOINTTABLE test\_ogg.checkpoint
> 
> 
> 


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030094250439.png#pic_center)


#### 7.4.7 配置Replicate进程


配置目标端Replicate进程  
 配置replicate进程:



edit param rekafka



> 
> REPLICAT rekafka  
>  sourcedefs /u01/app/ogg/tgr/dirdef/test\_ogg.test\_ogg  
>  TARGETDB LIBFILE libggjava.so SET property=dirprm/kafka.props  
>  REPORTCOUNT EVERY 1 MINUTES, RATE  
>  GROUPTRANSOPS 10000  
>  MAP test\_ogg.test\_ogg, TARGET test\_ogg.test\_ogg;
> 
> 
> 


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030094347896.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


#### 7.4.8 添加trail文件到replicate进程


添加trail文件到Replicate进程



add replicat rekafka exttrail /u01/app/ogg/tgr/dirdat/to,checkpointtable test_ogg.checkpoint


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030094432425.png#pic_center)


#### 7.4.9 配置kafka.props


* 配置kafka.props



cd $OGG_TGR_HOME
vim dirprm/kafka.props


新增内容:



> 
> gg.handlerlist=kafkahandler  
>  gg.handler.kafkahandler.type=kafka  
>  gg.handler.kafkahandler.KafkaProducerConfigFile=custom\_kafka\_producer.properties  
>  gg.handler.kafkahandler.topicMappingTemplate=test\_ogg  
>  gg.handler.kafkahandler.format=json  
>  gg.handler.kafkahandler.mode=op  
>  gg.classpath=dirprm/:/export/services/kafka/libs/\*:/u01/app/ogg/tgr/:/u01/app/ogg/tgr/lib/\*
> 
> 
> 


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030094545825.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


* 配置custom\_kafka\_producer.properties



cd $OGG_TGR_HOME
vim dirprm/custom_kafka_producer.properties


新增内容:



bootstrap.servers=server01:9092
acks=1
compression.type=gzip
reconnect.backoff.ms=1000
value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
key.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
batch.size=102400
linger.ms=10000


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030094643558.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


#### 7.4.10 最后确认所有的进程


在目标端,主要做了4个操作,共包括2个进程,分别是MANAGER和REPLICAT。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020103009471571.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


### 7.5 OGG测试


#### 7.5.1 启动OGG的源端和目标端


前提:切换到 oracle 账号且启动了 Oracle  
 注意:要严格按照启动顺序执行:


* 第一步:启动源端mgr进程
* 第二步:启动目标端mgr进程
* 第三步:启动源端extract进程
* 第四步:启动源端pump进程
* 第五步:启动目标端replicate进程


1. 启动源端mgr进程



cd $OGG_SRC_HOME
./ggsci
#查看所有进程状态:
info all
#启动MANAGER进程:
start mgr
#检查所有进程状态:
info all


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030094822927.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


2. 启动目标端mgr进程



cd $OGG_TGR_HOME
./ggsci

#启动MANAGER进程:
start mgr
#查看所有进程状态:
info all


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030094917545.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 3. 启动源端extract进程



cd $OGG_SRC_HOME
./ggsci
#启动EXTRACT进程:
start extkafka
#查看所有进程状态:
info all


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095006555.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


4. 启动源端pump进程  
 启动pump进程:



start pukafka


查看所有进程状态:



info all


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095051934.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


5. 启动目标端replicat进程



cd $OGG_TGR_HOME
./ggsci


启动replicat进程:



start rekafka


查看所有进程状态:



info all


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095139948.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


6. 确认源端和目标端进程运行情况  
 源端:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095217296.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 目标端:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095245118.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


#### 7.5.2 测试OGG的数据采集


* 使用oracle用户登录到oracle11g数据库(源端)



su – oracle
sqlplus “/as sysdba”
conn test_ogg/test_ogg


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095330665.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


* 对表进行DML操作(每一条SQL都需要手动执行commit提交)  
 登录到test\_ogg用户下:



conn test_ogg/test_ogg


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095410745.png#pic_center)  
 查看该用户拥有的表:



select table_name from user_tables;


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095443664.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 查看TEST\_OGG表的字段信息:



select column_name,data_type from user_tab_columns where table_name = upper(‘TEST_OGG’);


![在这里插入图片描述](https://img-blog.csdnimg.cn/2020103009551346.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 插入数据:



insert into test_ogg values(1,‘beijing’);


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095546157.png#pic_center)  
 执行Commit:



commit;


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095608370.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 查看kafka是否多出了一个叫做test\_ogg的主题:



kafka-topics.sh --list --zookeeper server01:2181


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095647930.png#pic_center)  
 然后启动kafka的消费者来消费test\_ogg主题的数据:



kafka-console-consumer.sh --bootstrap-server server01:9092 --topic test_ogg --from-beginning


再查看kafka的test\_ogg主题下是否有了数据:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095727408.png#pic_center)  
 执行修改数据(修改id=2的name为china-shanghai):



update test_ogg set name=‘china-shanghai’ where id=2;


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095756634.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 查看kafka中是否有了id为2的china-shanghai的这条记录:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095821990.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 删除id为2的数据:



delete test_ogg where id=2;


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095849532.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 检查kafka是否多个一条被标记为删除的数据:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030095919323.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)



:{“table”:“TEST_OGG.TEST_OGG”,“op_type”:“I”,“op_ts”:“2020-05-28 09:22:18.000129”,
{“table”:“TEST_OGG.TEST_OGG”,“op_type”:“U”,“op_ts”:“2020-05-28 09:25:17.000140”,“current_ts”:“2020-05-28T09:25:22.085000”,“pos”:“00000000000000001227”,“before”:{},“after”:{“ID”:1,“NAME”:“china-shanghai”}}


* 关于数据文件的检查  
 如果数据库中发生了事务(都被commit后)操作,会在源端和目标端的dirdat下生成trail数据文件。数据文件名称只能使用2个字母,多了会报错。  
 当源端发生事务后,检查源端的trail文件:



ll /u01/app/ogg/src/dirdat/


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030100028196.png#pic_center)  
 目标端会接收到源端pump进程传过来的数据文件:



ll /u01/app/ogg/tgr/dirdat/


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030100057577.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


#### 7.5.3 注意事项


* 必须严格遵守OGG的启动顺序;
* 必须严格遵守OGG的关闭顺序;
* 如果需要修改OGG的进程,必须先停止,修改成功后,再重启;


#### 7.5.4 错误日志位置


源端错误日志路径



> 
> /u01/app/ogg/src/ggserr.log
> 
> 
> 


目标端错误日志路径



> 
> /u01/app/ogg/tgr/ggserr.log
> 
> 
> 


## 8. 初始化业务数据


### 8.1 安装OGG源端


#### 8.1.1 在Oracle中创建OGG相关的用户和表空间


1. 创建表空间在磁盘中的物理路径(需要到root用户操作)



mkdir -p /u01/app/oracle/oggdata/orcl/
chown -R oracle:oinstall /u01/app/oracle/oggdata/orcl


2. 进入sqlplus  
 切换到oracle用户:su - oracle  
 登录sqlplus:



sqlplus “/as sysdba”


3. 创建oggtbs表空间



CREATE TABLESPACE “TBS_LOGISTICS” DATAFILE ‘/u01/app/oracle/oradata/orcl/tbs_logistics.dat’ SIZE 500M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030102634629.png#pic_center)


4. 创建erainm用户(用户名和密码都是erainm)



CREATE USER erainm IDENTIFIED BY erainm DEFAULT TABLESPACE TBS_LOGISTICS;


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030102759171.png#pic_center)


5. 赋予erainm用户dba权限



GRANT connect,resource,dba to erainm;


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030102814672.png#pic_center)


#### 8.1.2 OGG源端初始化


1. 使用oracle用户登录源端OGG的命令行中



su – oracle
cd $OGG_SRC_HOME
./ggsci


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030102933762.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


2. 


初始化源端OGG目录  
 注意:如果不在OGG\_SRC\_HOME下,初始化OGG目录时会报错



create subdirs


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030103015372.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)  
 退出OGG命令行客户端:exit


3. 检查源端OGG初始化后的目录  
 初始化完成后,可以查询在$OGG\_SRC\_HOME下是否存在dirchk、dirdat、dirdef、dirjar、dirout、dirpcs、dirprm、dirrpt、dirsql、dirtmp共11个目录。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020103010310793.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


### 8.2 配置OGG源端


#### 8.2.1 Oracle创建项目相关表




| 属性名 | 属性值 |
| --- | --- |
| 主机地址 | 192.168.88.10 |
| 端口号 | 1521 |
| 数据库实例名称 | ORCL |
| 数据库实例类型 | Service Name |
| 用户名 | erainm |
| 角色 | Normal |
| 密码 | erainm |
| JDBC访问URL | jdbc:oracle:thin:@//192.168.88.10:1521:ORCL |
| JDBC驱动名称 | 使用OracleDataSource连接池,无需配置Driver |



– 创建所有的序列
CREATE SEQUENCE tbl_emp_info_map_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_driver_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_emp_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_warehouse_tt_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_charge_standard_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_company_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_company_dot_map_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_company_route_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_company_warehouse_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_courier_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_deliver_region_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_delivery_record_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_department_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_fixed_area_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_goods_rack_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_job_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_out_warehouse_dtl_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_pkg_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_postal_standard_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_push_warehouse_dtl_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_service_evaluation_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_store_grid_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_vehicle_monitor_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_warehouse_rack_map_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_warehouse_receipt_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_waybill_line_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_waybill_record_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_work_time_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_test_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_areas_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_deliver_package_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_customer_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_codes_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_warehouse_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_consumer_address_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_warehouse_receipt_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_warehouse_send_vehicle_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_warehouse_vehicle_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_dot_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_transport_tool_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_dot_transport_tool_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_address_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_route_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_push_warehouse_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_out_warehouse_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_warehouse_emp_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_express_package_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_express_bill_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_consumer_sender_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_collect_package_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;
CREATE SEQUENCE tbl_waybill_id_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999;

– 创建所有的业务表
CREATE TABLE “tbl_emp_info_map” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“company_id” NUMBER(19,0),
“dot_id” NUMBER(19,0),
“emp_id” NUMBER(19,0),
“job_id” NUMBER(19,0),
“dep_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_EMP_INFO_MAP” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_driver” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“job_number” NVARCHAR2(50),
“name” NVARCHAR2(50),
“gender” NVARCHAR2(100),
“birathday” DATE,
“state” NUMBER(19,0),
“driver_license_number” NVARCHAR2(100),
“driver_license_type” NUMBER(19,0),
“get_driver_license_dt” DATE,
“car_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_DRIVER” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_emp” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“emp_number” NVARCHAR2(50),
“emp_name” NVARCHAR2(50),
“emp_gender” NUMBER(10,0),
“emp_birathday” DATE,
“state” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_EMP” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_warehouse_transport_tool” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“warehouse_id” NUMBER(19,0),
“transport_tool_id” NUMBER(19,0),
“allocate_dt” DATE,
“state” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_WAREHOUSE_TRANSPORT_TOOL” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_charge_standard” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“start_area_id” NUMBER(19,0),
“stop_area_id” NUMBER(19,0),
“first_weight_charge” NUMBER(19,0),
“follow_up_weight_charge” NUMBER(19,0),
“prescription” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_CHARGE_STANDARD” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_company” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“company_name” NVARCHAR2(50),
“city_id” NUMBER(19,0),
“company_number” NVARCHAR2(50),
“company_addr” NVARCHAR2(100),
“company_addr_gis” NVARCHAR2(100),
“company_tel” NVARCHAR2(20),
“is_sub_company” NUMBER(19,0),
“state” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_COMPANY” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_company_dot_map” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“company_id” NUMBER(19,0),
“dot_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_COMPANY_DOT_MAP” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_company_transport_route_ma”
(
“id” NUMBER(19,0) NOT NULL ENABLE,
“company_id” NUMBER(19,0),
“transport_route_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_COMPANY_TRANSPORT_ROUTE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_company_warehouse_map” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“company_id” NUMBER(19,0),
“warehouse_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_COMPANY_WAREHOUSE_MAP” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_courier” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“job_num” NVARCHAR2(50),
“name” NVARCHAR2(50),
“birathday” DATE,
“tel” NVARCHAR2(20),
“pda_num” NVARCHAR2(50),
“car_id” NUMBER(19,0),
“postal_standard_id” NUMBER(19,0),
“work_time_id” NUMBER(19,0),
“dot_id” NUMBER(19,0),
“state” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_COURIER” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_deliver_region”
(
“id” NUMBER(19,0) NOT NULL ENABLE,
“search_keyword” NVARCHAR2(100),
“search_assist_keyword” NVARCHAR2(100),
“area_id” NUMBER(19,0),
“fixed_area_id” NUMBER(19,0),
“state” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_DELIVER_REGION” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_delivery_record” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“cur_warehouse_id” NVARCHAR2(50),
“vehicle_id” NUMBER(19,0),
“start_vehicle_dt” DATE,
“next_warehouse_id” NUMBER(19,0),
“predict_arrivals_dt” DATE,
“actua_arrivals_dt” DATE,
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_DELIVERY_RECORD” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_department” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“dep_name” NVARCHAR2(50),
“dep_level” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_DEPARTMENT” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_fixed_area” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“name” NVARCHAR2(50),
“emp_id” NUMBER(19,0),
“operator_dt” DATE,
“operator_id” NUMBER(19,0),
“gis_fence” NVARCHAR2(200),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_FIXED_AREA” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_goods_rack” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“warehouse_name” NVARCHAR2(50),
“warehouse_addr” NVARCHAR2(100),
“warehouse_addr_gis” NVARCHAR2(50),
“company_id” NUMBER(19,0),
“employee_id” NVARCHAR2(200),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_GOODS_RACK” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_job” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“job_name” NVARCHAR2(50),
“job_level” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_JOB” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_out_warehouse_detail” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“push_warehouse_id” NUMBER(19,0),
“push_warehouse_bill” NVARCHAR2(100),
“warehouse_id” NUMBER(19,0),
“waybill_id” NUMBER(19,0),
“pkg_id” NUMBER(19,0),
“pkg_desc” NVARCHAR2(100),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_OUT_WAREHOUSE_DETAIL” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_pkg” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“pw_bill” NVARCHAR2(50),
“pw_dot_id” NUMBER(19,0),
“warehouse_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_PKG” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_postal_standard” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“name” NVARCHAR2(50),
“min_weight” NVARCHAR2(50),
“min_length” NVARCHAR2(50),
“max_length” NVARCHAR2(50),
“trajectory” NVARCHAR2(50),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_POSTAL_STANDARD” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_push_warehouse_detail” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“push_warehouse_id” NUMBER(19,0),
“push_warehouse_bill” NVARCHAR2(50),
“warehouse_id” NUMBER(19,0),
“pw_start_dt” NVARCHAR2(50),
“pw_end_dt” NVARCHAR2(50),
“pack_id” NUMBER(19,0),
“pack_desc” NVARCHAR2(50),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_PUSH_WAREHOUSE_DETAIL” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_service_evaluation” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“express_bill_id” NVARCHAR2(100),
“express_bill” NUMBER(19,0),
“pack_score” NUMBER(10,0),
“delivery_time_score” NUMBER(10,0),
“courier_score” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_SERVICE_EVALUATION” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_store_grid” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“warehouse_name” NVARCHAR2(50),
“warehouse_addr” NVARCHAR2(100),
“warehouse_addr_gis” NVARCHAR2(50),
“company_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_STORE_GRID” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_vehicle_monitor” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“delivery_record” NUMBER(19,0),
“empId” NUMBER(19,0),
“express_bill__id” NVARCHAR2(200),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_VEHICLE_MONITOR” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_warehouse_rack_map” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“warehouse_name” NVARCHAR2(50),
“warehouse_addr” NVARCHAR2(100),
“warehouse_addr_gis” NVARCHAR2(50),
“company_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WAREHOUSE_RACK_MAP” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_warehouse_receipt_detail” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“waybill_id” NUMBER(19,0),
“pkg_id” NUMBER(19,0),
“receipt_bill_id” NUMBER(19,0),
“receipt_bill” NVARCHAR2(100),
“operator_id” NUMBER(19,0),
“state” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WAREHOUSE_RECEIPT_DETAI” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_waybill_line” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“waybill_number” NVARCHAR2(100),
“route_id” NUMBER(19,0),
“serial_number” NVARCHAR2(100),
“transport_tool” NUMBER(19,0),
“delivery_record_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WAYBILL_LINE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_waybill_state_record” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“waybill_id” NUMBER(19,0),
“waybill_number” NVARCHAR2(100),
“employee_id” NVARCHAR2(100),
“consignee_id” NUMBER(19,0),
“cur_warehouse_id” NUMBER(10,0),
“next_warehouse_id” NUMBER(10,0),
“deliverer_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WAYBILL_STATE_RECORD” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_work_time” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“name” NVARCHAR2(50),
“start_dt” NVARCHAR2(100),
“stop_dt” NVARCHAR2(100),
“saturday_start_dt” NVARCHAR2(100),
“saturday_stop_dt” NVARCHAR2(100),
“sunday_start_dt” NVARCHAR2(100),
“sunday_stop_dt” NVARCHAR2(100),
“state” NUMBER(10,0),
“company_id” NUMBER(10,0),
“operator_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WORK_TIME” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_test” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“name” NVARCHAR2(50),
CONSTRAINT “PK_TBL_TEST” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_areas” (
“id” NUMBER(11,0) NOT NULL ENABLE,
“name” NVARCHAR2(40),
“pid” NUMBER(11,0),
“sname” NVARCHAR2(40),
“level” NVARCHAR2(11),
“citycode” NVARCHAR2(20),
“yzcode” NVARCHAR2(20),
“mername” NVARCHAR2(100),
“lng” NUMBER(11,4),
“lat” NUMBER(11,4),
“pinyin” NVARCHAR2(100),
CONSTRAINT “PK_TBL_AREAS” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_deliver_package” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“emp_id” NUMBER(19,0),
“waybill_id” NUMBER(19,0),
“waybill_number” NVARCHAR2(100),
“express_bill_id” NUMBER(19,0),
“express_bill_number” NVARCHAR2(100),
“package_id” NUMBER(19,0),
“collect_package_dt” DATE,
“rece_type” NUMBER(19,0),
“rece_dt” DATE,
“state” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_DELIVER_PACKAGE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_customer” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“name” NVARCHAR2(50),
“tel” NVARCHAR2(20),
“mobile” NVARCHAR2(20),
“email” NVARCHAR2(50),
“type” NUMBER(10,0),
“is_own_reg” NUMBER(10,0),
“reg_dt” DATE,
“reg_channel_id” NUMBER(10,0),
“state” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“last_login_dt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_CUSTOMER” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_codes” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“name” NVARCHAR2(50),
“type” NUMBER(19,0),
“code” NVARCHAR2(50),
“code_desc” NVARCHAR2(100),
“code_type” NVARCHAR2(50),
“state” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
CONSTRAINT “PK_TBL_CODES” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_warehouse” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“name” NVARCHAR2(50),
“addr” NVARCHAR2(19),
“addr_gis” NVARCHAR2(50),
“company_id” NUMBER(19,0),
“employee_id” NUMBER(19,0),
“type” NUMBER(10,0),
“area” NVARCHAR2(50),
“is_lease” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WAREHOUSE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_consumer_address_map” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“consumer_id” NUMBER(19,0),
“address_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_CUSTOMER_SENDER_MAP” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_warehouse_receipt” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“bill” NVARCHAR2(100),
“type” NUMBER(19,0),
“warehouse_id” NUMBER(19,0),
“operator_id” NUMBER(19,0),
“state” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WAREHOUSE_RECEIPT” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_warehouse_send_vehicle” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“out_warehouse_id” NUMBER(19,0),
“out_warehouse_waybill_id” NUMBER(19,0),
“out_warehouse_waybill_number” NVARCHAR2(100),
“vehicle_id” NUMBER(19,0),
“driver1_id” NUMBER(19,0),
“driver2_id” NUMBER(19,0),
“start_vehicle_dt” DATE,
“next_warehouse_id” NUMBER(19,0),
“predict_arrivals_dt” DATE,
“actual_arrivals_dt” DATE,
“state” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WAREHOUSE_SEND_VEHICLE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_warehouse_vehicle_map” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“warehouse_id” NUMBER(19,0),
“vehicle_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_COMPANY_VEHICLE_MAP” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_dot” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“dot_number” NVARCHAR2(50),
“dot_name” NVARCHAR2(50),
“dot_addr” NVARCHAR2(100),
“dot_gis_addr” NVARCHAR2(100),
“dot_tel” NVARCHAR2(20),
“company_id” NUMBER(19,0),
“manage_area_id” NUMBER(19,0),
“manage_area_gis” NVARCHAR2(100),
“state” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_DOT” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_transport_tool” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“brand” NVARCHAR2(100),
“model” NVARCHAR2(100),
“type” NUMBER(19,0),
“given_load” NVARCHAR2(100),
“load_cn_unit” NVARCHAR2(100),
“load_en_unit” NVARCHAR2(100),
“buy_dt” DATE,
“license_plate” NVARCHAR2(100),
“state” NVARCHAR2(100),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_TRANSPORT_TOOL” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_dot_transport_tool” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“dot_id” NUMBER(19,0),
“transport_tool_id” NUMBER(19,0),
“allocate_dt” DATE,
“state” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_DOT_TRANSPORT_TOOL” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_address” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“name” NVARCHAR2(50),
“tel” NVARCHAR2(20),
“mobile” NVARCHAR2(20),
“detail_addr” NVARCHAR2(100),
“area_id” NUMBER(19,0),
“gis_addr” NVARCHAR2(20),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_CUSTOMER_ADDRESS” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_route” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“start_station” NVARCHAR2(50),
“start_station_area_id” NUMBER(19,0),
“start_warehouse_id” NUMBER(19,0),
“end_station” NVARCHAR2(50),
“end_station_area_id” NUMBER(19,0),
“end_warehouse_id” NUMBER(19,0),
“mileage_m” NUMBER(10,0),
“time_consumer_minute” NUMBER(10,0),
“state” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_ROUTE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_push_warehouse” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“pw_waybill_id” NUMBER(19,0),
“pw_waybill_number” NVARCHAR2(50),
“pw_dot_id” NUMBER(19,0),
“warehouse_id” NUMBER(19,0),
“emp_id” NUMBER(19,0),
“pw_start_dt” DATE,
“pw_end_dt” DATE,
“pw_position” NVARCHAR2(50),
“pw_reg_emp_id” NUMBER(19,0),
“ow_reg_emp_scan_gun_id” NUMBER(19,0),
“pw_confirm_emp_id” NUMBER(19,0),
“ow_confirm_emp_scan_gun_id” NUMBER(19,0),
“pw_box_emp_id” NUMBER(19,0),
“pw_box_scan_gun_id” NUMBER(19,0),
“pw_after_seal_img” NVARCHAR2(100),
“pw_receipt_number” NVARCHAR2(100),
“pw_receipt_dt” DATE,
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_PUSH_WAREHOUSE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_out_warehouse” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“pw_waybill_id” NUMBER(19,0),
“pw_waybill_number” NVARCHAR2(100),
“ow_dot_id” NUMBER(19,0),
“warehouse_id” NUMBER(19,0),
“ow_vehicle_id” NUMBER(19,0),
“ow_driver_emp_id” NUMBER(19,0),
“ow_follow1_emp_id” NUMBER(19,0),
“ow_follow2_emp_id” NUMBER(19,0),
“ow_start_dt” DATE,
“ow_end_dt” DATE,
“ow_position” NVARCHAR2(50),
“ow_reg_emp_id” NUMBER(19,0),
“ow_reg_scan_gun_id” NUMBER(19,0),
“ow_confirm_emp_id” NUMBER(19,0),
“ow_confirm_scan_gun_id” NUMBER(19,0),
“ow_pre_seal_img” NVARCHAR2(100),
“ow_receipt_number” NVARCHAR2(100),
“ow_receipt_dt” DATE,
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_OUT_WAREHOUSE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_warehouse_emp” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“job_num” NVARCHAR2(50),
“name” NVARCHAR2(50),
“birathday” DATE,
“tel” NVARCHAR2(20),
“type” NUMBER(10,0),
“warehouse_id” NUMBER(19,0),
“state” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WAREHOUSE_EMP” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_express_package” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“scan_gun_id” NVARCHAR2(19),
“name” NVARCHAR2(50),
“cid” NUMBER(10,2),
“weight” NUMBER(10,2),
“amount” NUMBER(10,2),
“coupon_id” NUMBER(19,0),
“coupon_amount” NUMBER(10,2),
“actual_amount” NUMBER(10,2),
“insured_price” NUMBER(10,2),
“is_fragile” NVARCHAR2(20),
“send_address_id” NUMBER(19,0),
“recv_address_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_EXPRESS_PACKAGE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_express_bill” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“express_number” NVARCHAR2(50),
“cid” NUMBER(19,0),
“eid” NUMBER(19,0),
“order_channel_id” NUMBER(19,0),
“order_dt” DATE,
“order_terminal_type” NUMBER(10,0),
“order_terminal_os_type” NUMBER(10,0),
“reserve_dt” DATE,
“is_collect_package_timeout” NUMBER(10,0),
“timeout_dt” DATE,
“type” NUMBER(10,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_EXPRESS_BILL” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_consumer_sender_info” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“ciid” NUMBER(19,0),
“pkg_id” NUMBER(19,0),
“express_bill_id” NUMBER(19,0),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_CUSTOMER_SENDER_INFO” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_collect_package” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“cid” NUMBER(19,0),
“eid” NUMBER(19,0),
“pkg_id” NUMBER(19,0),
“express_bill_id” NUMBER(19,0),
“express_bill_number” NVARCHAR2(100),
“state” NUMBER(10,0),
“collect_package_dt” DATE,
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_COLLECT_PACKAGE” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

CREATE TABLE “tbl_waybill” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“express_bill_number” NVARCHAR2(100),
“waybill_number” NVARCHAR2(100),
“cid” NUMBER(19,0),
“eid” NUMBER(19,0),
“order_channel_id” NUMBER(19,0),
“order_dt” DATE,
“order_terminal_type” NUMBER(10,0),
“order_terminal_os_type” NUMBER(10,0),
“reserve_dt” DATE,
“is_collect_package_timeout” NUMBER(10,0),
“pkg_id” NUMBER(19,0),
“pkg_number” NVARCHAR2(100),
“timeout_dt” NVARCHAR2(100),
“transform_type” NUMBER(10,0),
“delivery_customer_name” NVARCHAR2(100),
“delivery_addr” NVARCHAR2(100),
“delivery_mobile” NVARCHAR2(100),
“delivery_tel” NVARCHAR2(100),
“receive_customer_name” NVARCHAR2(100),
“receive_addr” NVARCHAR2(100),
“receive_mobile” NVARCHAR2(100),
“receive_tel” NVARCHAR2(100),
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_WAYBILL” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;

– 运输记录表
CREATE TABLE “tbl_transport_record” (
“id” NUMBER(19,0) NOT NULL ENABLE,
“pw_id” NUMBER(19,0),
“pw_waybill_id” NUMBER(19,0),
“pw_waybill_number” NVARCHAR2(100),
“ow_id” NUMBER(19,0),
“ow_waybill_id” NUMBER(19,0),
“ow_waybill_number” NVARCHAR2(100),
“sw_id” NUMBER(19,0),
“ew_id” NUMBER(19,0),
“transport_tool_id” NUMBER(19,0),
“pw_driver1_id” NUMBER(19,0),
“pw_driver2_id” NUMBER(19,0),
“pw_driver3_id” NUMBER(19,0),
“ow_driver1_id” NUMBER(19,0),
“ow_driver2_id” NUMBER(19,0),
“ow_driver3_id” NUMBER(19,0),
“route_id” NUMBER(19,0),
“distance” NUMBER(10,0),
“duration” NUMBER(10,0),
“state” NUMBER(10,0),
“start_vehicle_dt” DATE,
“predict_arrivals_dt” DATE,
“actual_arrivals_dt” DATE,
“cdt” DATE,
“udt” DATE,
“remark” NVARCHAR2(100),
CONSTRAINT “PK_TBL_TRANSPORT_RECORD” PRIMARY KEY (“id”)
) TABLESPACE “TBS_LOGISTICS”;


#### 8.2.2 配置管理器MGR进程


* 进入源端OGG命令行



./ggsci
#创建mgr进程:
edit param mgr



> 
> PORT 7809  
>  DYNAMICPORTLIST 7810-7909  
>  AUTORESTART EXTRACT \*,RETRIES 5,WAITMINUTES 3  
>  PURGEOLDEXTRACTS ./dirdat/\*,usecheckpoints, minkeepdays 3
> 
> 
> 


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030103722817.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VyYWluaW5n,size_16,color_FFFFFF,t_70#pic_center)


#### 8.2.3 配置extract进程


配置Extract进程:



edit param extkafka

新增内容:

extract extkafka



> 
> GETUPDATEBEFORES  
>  NOCOMPRESSDELETES  
>  NOCOMPRESSUPDATES  
>  dynamicresolution  
>  SETENV (ORACLE\_SID = “orcl”)  
>  SETENV (NLS\_LANG = “american\_america.AL32UTF8”)  
>  userid erainm,password erainm  
>  exttrail /u01/app/ogg/src/dirdat/to  
>  table erainm.\*;
> 
> 
> 


![在这里插入图片描述](https://img-blog.csdnimg.cn/20201030103856655.png#pic_center)




| 参数名称 | 参数说明 |
| --- | --- |
| extract extkafka | 定义extract进程名称 |
| dynamicresolution | 启用动态解析 |
| SETENV (ORACLE\_SID = “orcl”) | 设置Oracle数据库 |
| SETENV (NLS\_LANG = “american\_america.AL32UTF8”) | 设置字符集 |
| userid erainm,password erainm | erainm用户连接Oracle数据库的帐号密码 |
| exttrail /u01/app/ogg/src/dirdat/to | 定义trail文件的保存位置以及文件名,文件字母最多2个,否则会报错 |
| table erainm.\*; | 复制表的表名,支持\*通配,必须以;结尾 |


#### 8.2.4 配置pump进程


配置Pump进程:



edit param pukafka


新增内容:



> 
> extract pukafka  
>  passthru  
>  dynamicresolution  
>  userid erainm,password erainm  
>  rmthost localhost mgrport 7809  
>  rmttrail /u01/app/ogg/tgr/dirdat/to  
>  table erainm.\*;
> 
> 
> 


 extract进程名称;passthru即禁止OGG与Oracle交互,我们这里使用pump逻辑传输,故禁止即可;dynamicresolution动态解析;userid ogg,password ogg即OGG连接Oracle数据库的帐号密码rmthost和mgrhost即目标端(kafka)OGG的mgr服务的地址以及监听端口;rmttrail即目标端trail文件存储位置以及名称。




| 参数名称 | 参数说明 |
| --- | --- |
| extract pukafka | 定义pump进程名称 |
| passthru | 因使用了pump逻辑传输,所以禁止OGG与Oracle交互 |
| dynamicresolution | 配置动态解析 |
| userid erainm,password erainm | OGG连接Oracle数据库的帐号密码 |
| rmthost localhost mgrport 7809 | 目标端OGG的mgr服务的地址以及监听端口 |
| rmttrail /u01/app/ogg/tgr/dirdat/to | 目标端OGG的trail文件存储位置以及名称 |
| table erainm.\*; | 要采集的表,必须使用;结尾 |


#### 8.2.5 配置define文件


注意:该文件用来在异构数据源之间传输时,需明确知道表之间的映射关系,比如:  
 Oracle与MySQL,Hadoop集群(HDFS,Hive,kafka等)等之间数据传输可以定义为异构数据类型的传输,故需要定义表之间的关系映射,在OGG命令行执行:


配置define文件:



img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

g.cn/20201030103856655.png#pic_center)

参数名称参数说明
extract extkafka定义extract进程名称
dynamicresolution启用动态解析
SETENV (ORACLE_SID = “orcl”)设置Oracle数据库
SETENV (NLS_LANG = “american_america.AL32UTF8”)设置字符集
userid erainm,password erainmerainm用户连接Oracle数据库的帐号密码
exttrail /u01/app/ogg/src/dirdat/to定义trail文件的保存位置以及文件名,文件字母最多2个,否则会报错
table erainm.*;复制表的表名,支持*通配,必须以;结尾
8.2.4 配置pump进程

配置Pump进程:

edit param pukafka

新增内容:

extract pukafka
passthru
dynamicresolution
userid erainm,password erainm
rmthost localhost mgrport 7809
rmttrail /u01/app/ogg/tgr/dirdat/to
table erainm.*;

extract进程名称;passthru即禁止OGG与Oracle交互,我们这里使用pump逻辑传输,故禁止即可;dynamicresolution动态解析;userid ogg,password ogg即OGG连接Oracle数据库的帐号密码rmthost和mgrhost即目标端(kafka)OGG的mgr服务的地址以及监听端口;rmttrail即目标端trail文件存储位置以及名称。

参数名称参数说明
extract pukafka定义pump进程名称
passthru因使用了pump逻辑传输,所以禁止OGG与Oracle交互
dynamicresolution配置动态解析
userid erainm,password erainmOGG连接Oracle数据库的帐号密码
rmthost localhost mgrport 7809目标端OGG的mgr服务的地址以及监听端口
rmttrail /u01/app/ogg/tgr/dirdat/to目标端OGG的trail文件存储位置以及名称
table erainm.*;要采集的表,必须使用;结尾
8.2.5 配置define文件

注意:该文件用来在异构数据源之间传输时,需明确知道表之间的映射关系,比如:
Oracle与MySQL,Hadoop集群(HDFS,Hive,kafka等)等之间数据传输可以定义为异构数据类型的传输,故需要定义表之间的关系映射,在OGG命令行执行:

配置define文件:



[外链图片转存中...(img-wxFvHsfQ-1715718384393)]
[外链图片转存中...(img-yVrdmDOY-1715718384393)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值