2021-02-26

Oracle到dm8的双向同步
1、dm8端的配置
1)开启逻辑附加日志
修改dm8中“dm.ini”中的RLOG_APPEND_LOGIC参数的值设置为1。
2)开始归档日志
(1)将dm8数据库配置文件“dm.ini”中的ARCH_INI参数值设置为1。
(2)在与dm.ini相同目录下,增加配置文件“dmarch.ini”,并添加归档配置参数内容(可以参见dmarch_example.ini文件配置格式)。示例如下:
[ ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 10240
3)DDL同步配置
使用SYSDBA用户执行ddl_sql_dm8.sql,建立DDL同步的触发器和辅助表。
1.1 dm8端dmhs配置文件

<?xml version="1.0" encoding="utf-8"?> en 5545 2 1 2.0 5545 5546 DM8 192.168.10.15 SYSDBA SYSDBA123 5236 4 512 5000 250 2 dm8 192.168.10.15 SYSDBA SYSDBA123 5236 obj:op 1 600 1 192.168.10.35 5645 5646 0 0 0 0 0 SYSDBA.* SYSDBA.*==DMHS.* 2、Oracle端的配置 oracle端需要安装unixODBC。 2.1安装unixODBC (1)通过源码安装(需要有gcc) gunzip unixODBC-2.3.0.tar.gz tar –xvf unixODBC-2.3.0.tar cd unixODBC-2.3.0 ./configure make && make install 默认安装路径为/usr/local目录下面,如果要指定安装目录,可以在configure的后面指定--includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc 在aix平台编译unixodbc是需要设置一下环境变量: export CC=gcc export CFLAGS="-maix64 -DBUILD_REAL_64_BIT_MODE" export OBJECT_MODE=64 ./configure --enable-drivers=no --enable-gui=no gmake && gmake install 注意aix平台下面一定要使用gmake 编译。 如果数据库中需要支持对中文表名和字段名的同步,则需要将unixODBC编译选项增加以下两个: --enable-iconv=yes --with-iconv-char-enc=GB18030 (2)通过rpm包安装 rpm -ivh unixODBC-2.3.0-5.i386.rpm rpm -ivh unixODBC-devel-2.3.0-5.i386.rpm (3)直接拷贝 找到对应平台的unixODBC动态库,将其拷贝到/usr/local/lib下。 2.2 配置unixODBC 如果已经安装好了unixODBC可以通过命令odbcinst查看unixODBC的版本,以及读取的odbc配置文件的路径。 [oracle@p550 ~]# /usr/local/bin/odbcinst -j unixODBC 2.3.0 DRIVERS............: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources USER DATA SOURCES..: /home/oracle/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8 默认在/usr/local/etc目录下面odbc.ini和odbcinst.ini中进行配置,如果安装是指定了sysconfdir,则在指定目录下的odbc.ini和odbcinst.ini中配置。 vi /usr/local/etc/ odbc.ini

[DMHS]
Description = ORACLE ODBC DSN
Driver = Oracle in OraDb10g_home1
SERVER = 192.168.3.11
UID = test
PWD = hust4400
Servername = ORCL 对应oracle中tnsnames.ora中的服务名
PORT = 1521

vi /usr/local/etc/odbcinst.ini
[Oracle in OraDb10g_home1]
Description = ODBC DRIVER FOR ORACLE
Driver = /u01/app/oracle/product/10.2.0/db_1/lib/libsqora.so.10.1
Threading = 0
配置unixodbc中一定需要检查driver中的路径是否存在,如果是在aix,则driver中的lib库为libsqora.so。需要检查使用的libsqora.so文件位数和oracle版本位数是否一致。
可以通过 ls –la /u01/app/oracle/product/10.2.0/db_1/lib/libsqora.so.10.1检查文件是否存在。也可以通过ldd /u01/app/oracle/product/10.2.0/db_1/lib/libsqora.so.10.1检查依赖的文件是否都能够找到。如果没有找到,则为环境变量问题,检查环境变量LD_LIBRARY_PATH。
注意:odbc.ini和odbcinst.ini中每行开头禁止留有空格,否则会有如下报错信息:
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect。

1)检查unixODBC配置是否正确
注意:必须切换至oracle用户
/usr/local/bin/isql –v DMHS test hust4400
如果连接正常则表示配置正确。
2)将unixodbc动态库加到目的端DMHS安装用户环境变量中
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
(注:如果源端oracle是windows平台,windows端安装oracle后会有oracle odbc驱动,只需要在ODBC数据源中输入oracle的用户名和密码,并鼠标点击测试连接即可,如新建dmhs用户,给与dba权限,密码也是dmhs,输入用户名密码,点测试连接,测试连接成功表示oracle端odbc已配通)
2.3 检查DMHS执行端环境
1) 检查DMHS执行端依赖的动态库
unixODBC 2.3.0版本编译出来的动态库为libodbc.so.1,unixODBC2.3.2版本编译出来的动态库为libodbc.so.2。有时候执行启动时会报错找不到libdmhs_exec.so文件是由于ODBC动态库版本不一致导致。可以通过ldd libdmhs_exec.so检查。
oracle > ldd libdmhs_exec.so
linux-vdso.so.1 => (0x00007fff5ddff000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8a96ebe000)
libm.so.6 => /lib64/libm.so.6 (0x00007f8a96c67000)
librt.so.1 => /lib64/librt.so.1 (0x00007f8a96a5e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8a96841000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f8a9663c000)
libdmhs_pub.so (0x00007f8a96354000)
libdmhs_ucvt.so (0x00007f8a95e5f000)
libodbc.so.1 => /usr/local/lib/libodbc.so.1 (0x00007f8a95bf1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8a97557000)
如果ldd libdmhs_exec.so依赖的动态库为libodbc.so.2,但是安装的unixODBC版本为2.3.0,此时需要做个软连接操作解决该问题。
ln -s /usr/local/lib/libodbc.so.1 /usr/local/lib/libodbc.so.2
2) 检查执行端运行环境NLS_LANG
检查dmhs服务的用户的环境变量NLS_LANG是否设置,查看echo $NLS_LANG
echo $NLS_LANG
如果查询出来是空值,则需要从ORACLE数据库中查询字符集,方法如下:
SQL> select userenv(‘language’) from dual;
USERENV(‘LANGUAGE’)

AMERICAN_AMERICA.ZHS16GBK
将环境变量NLS_LANG设置为查询值。
3) oracle端数据库配置数据库服务网络服务名
DMHS 装载历史数据时,需要通过数据库网络服务名来抽取数据库的数据。配置 ORACLE 数据库的网络服务名可通过 ORACLE NCA 工具进行配置,也可直接修改 $ORACLE_HOME\network\admin\tnsname.ora 文件。
下例为直接修改 tnsname.ora 来添加数据
库服务监听:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA =
(SERVER = DEDICATED)
配置完成之后,可使用 oracle 客户端工具 sqlplus 测试配置是否正确。 例如: sqlplus dmhs/dmhs@ORCL 如果配置正确,则可成功登陆数据库。
2.4开启oracle端数据库的归档及附加日志
DMHS 通过分析 ORACLE 数据库的归档/在线日志来捕获数据库的增量数据,DMHS 运行之前,必须将数据库设置为归档模式,同时开启最小附加日志及全列日志。修改数据库 为归档模式需重启数据库服务,在操作只需,需确认工作环境能停机维护。具体操作过程如 下:
1)修改数据库归档模式。如果数据库已经为归档模式,则跳过本步骤。
a)sqlplus 登录到源端数据库
b)关闭数据库服务
c)以 mount 方式启动 ORACLE 数据库服务
d)开启数据库归档,并设置归档文件路径

e)重启数据库,使归档路径生效
关闭 oracle 数据库:
mount 方式启动数据库:
f)将数据库切换到正常的工作状态,打开数据库
可使用 sqlplus 执行 archive log list 查看数据库归档模式。
2)开启数据库最小附加日志及全列日志。如果日志已开启,则跳过本步骤

开启附加日志不需要重启 ORACLE 数据库服务,但重启数据库服务可加快 附加日志开启速度。
2.5 oracle端 DDL 支持
DMHS 支持源端 DDL 的同步。源端 DDL 同步必须满足一下三个条件:

  1. 源端数据库必须允许 DDL 触发器的触发动作,即数据库参数_system_trig_enabled 为 TRUE 或者未设置。查看该参数的命令如下:

2)需要在源端数据库以 sys 用户,在 sys 模式下创建 DDL 触发器及 DDL 记录表,详 细参照 dmhs_ddl.sql 脚本。
3) 需要日志捕获模块对 ddl_mask 进行设置。例如op:obj。 ddl_mask 可对同步对象进行过滤,详细参数请参照 ddl_mask 参数说明。
2.7oracle端配置文件

<?xml version="1.0" encoding="utf-8"?> en 5645 2 2 2.0 5645 5646 ORACLE10g oadb dmhs dmhs 1521 4 512 5000 250 2 ORACLE10g oadb dmhs dmhs 1521 obj:op 1 600 1 192.168.10.15 5545 5546 0 0 0 0 0 DMHS.* DMHS.*==SYSDBA.*

2.8 启动dmhs服务
双向同步中,装载字典前,一定要先将两端的执行器启动,创建好执行端的辅助表后再装载字典。Oracle端是linux平台的话要切换至oracle用户
1)启动两端服务
此处一定要用exec和cpt分别启动,不能用start命令,start命令后不接cpt或exec会根据配置文件同时启动cpt和exec。

[root@slb bin]# ./dmhs_console
DMHS >connect 192.168.10.15:5545
DMHS>start exec

[oracle@slb2 bin]# ./dmhs_console
DMHS >connect 192.168.10.35:5645
DMHS>start exec
2)装载字典
[root@slb bin]# ./dmhs_console
DMHS >connect 192.168.10.15:5545
DMHS>copy 0 “sch.name=‘SYSDBA’” dict

[oracle@slb2 bin]# ./dmhs_console
DMHS >connect 192.168.10.35:5645
DMHS> copy 0 “sch.name='DMHS’” dict
3) 启动cpt服务
[root@slb bin]# ./dmhs_console
DMHS >connect 192.168.10.15:5545
DMHS>start cpt

[oracle@slb2 bin]# ./dmhs_console
DMHS >connect 192.168.10.35:5645
DMHS>start cpt

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,请你帮我写一段代码来可视化这些训练结果
02-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值