solaris-Oracle11g于linux-mysql相连
Oracle11g(solaris64sparc)+mysql(linux)实验
此实验目的,实现公司ebs R12 连mysql上的短信平台.预警和提示ebs中信息,
一,环境
主机名 ip 平台 数据库 dbname
ebs234 192.168.1.234 solaris 10 64 sparc oralce 11g ebstest
mysql 192.168.1.247 linux redhad up4 mysql 5.1 mccdb
二,此连接原理
+-----------------------------<ODBC Client Host>---------------------------+
| |
| [ORACLE] <---> [DG4ODBC] <---> [ODBC Driver Manager] <---> [ODBC Driver] |
| | |
+-------------------------------------------------------------------|-------+
/|\
|
NETWORK
|
\|/
+--<MySQL Server Host>--+
| |
| [MySQL Server] |
| |
+-----------------------+
这是个核心的连接过程.现分路段来配制这个过程,
我们倒着配制.就能慢慢明白其中原理
先确定一下二个数据库及期系统的版本
file $ORACLE_HOME/bin/dg4odbc
系统版本和linux版本及mysql版本都容易查,不重复了
在mysql上建个用户先
grant all privileges on mccdb.* to APPS@192.168.1.234 identified by '123456' with grant option;
flush privileges;(刷新权限设置)
以下操作均在oracle主机
1)odbc drvier -->mysql
mysql是在192.168.1.247主机上. 现solaris 平台上的oracle 11g要连接mysql.就是通过odbc这个驱动.
所以要在solaris 平台安装odbc 驱动for mysql.同时又要装一个管理这个odbc驱动的管理软件,即odbc driver manager
a,下载地址odbc driver manager 选择合适的驱动, 下地直任选
http://sourceforge.net/projects/unixodbc/files/unixODBC/
http://www.unixodbc.org/download.html
b, 下载地址odbc driver
http://www.mysql.com/downloads/connector/odbc/5.1.html
c ,安装(oratest用户)
mkdir /ebstest/app/etc
mkdir /ebstest/app/myodbc
mkidr /ebstest/app/unixodbc-2.2.14
把odbc driver 移入myodbc中
把odbc driver manager ,即unixodbc-2.2.14-sunos-sparc-64.tar.gz移到unixodbc-2.2.14中
分别解压
把odbc dirver manager 中解开的目录稍调整一下.即把生成的usr下的文件bin lib include移到unixodbc-2.2.14目录下.
目的是目录不要那么深,好看一些,并把usr删掉
把myodbc中解开的长文件名更名一下.mv 长文件名 mysqlodbc也是好看一些
好,现在基本工作就绪
1,配置环境变量
PATH=/ebstest/app/unixodbc-2.2.14/bin:/ebstest/app/prod/apps/tech_st/10.1.2/OPatch/opatch:$PATH
export PATH
LD_LIBRARY_PATH=/ebstest/app/unixodbc-2.2.14/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
DISPLAY=192.168.1.196:0.0; export DISPLAY
ODBCINI=/ebstest/app/etc/odbc.ini
export ODBCINI
ODBCSYSINI=/ebstest/app/etc
export ODBCSYSINI
2, 注册生成odbcinst.ini
在myodbc目录中进入mysqlodbc/bin
Register a driver;
$ myodbc3i -a -d -t"MySQL ODBC 3.51 Driver;Driver=/usr/lib/libmyodbc3.so;Setup=/usr/lib/libmyodbc3S.so"
Create a user data source name;
$ myodbc3i -a -su -t"DSN=MyDSN;Driver=MySQL ODBC 3.51 Driver;Server=localhost;UID=pharvey"
根据这二个命令
改一下 ./myodbc3i -a -d -t "MySQL ODBC 3.51 Driver;Driver=/ebstest/app/myodbc/mysqlodbc/lib/libmyodbc3.so;Setup=/ebstest/app/myodbc/mysqlodbc/lib/libmyodbc3_r.so"
这样就在环境变量规定的目录中生成了odbcinst.ini
又根据生成user data source name;这个命令来生成odbc.ini文件
./myodbc3i -a -su -t "DSN=mccdb;Driver=/ebstest/app/myodbc/mysqlodbc/lib/libmyodbc3.so;Server=192.168.1.247;UID=apps"
----------------------------
./configure --prefix=/ebs/app/myodbc/unixODBC --includedir=/usr/include --libdir=/usr/lib --bindir=/usr/bin --sysconfdir=/ebs/app/myodbc/etc
make
make install
./myodbc-installer -d -a -n "MySQL ODBC 5.1 Driver" -t "DRIVER=/ebstest/app/myodbc/mysqlodbc5/lib/libmyodbc5.so;Setup=/ebstest/app/myodbc/mysqlodbc5/lib/libmyodbc5.so"
./myodbc-installer -s -a -c2 -n "mccdb" -t "DRIVER=MySQL ODBC 5.1 Driver;SERVER=192.168.1.247;DATABASE=mccdb;UID=apps;PWD=123456"
5.1版本问题按上述改
----------------------------
执行一下.也许生成不了.没关系可以手动在/ebstest/app/etc中建一个odbc.ini
内容如下:
$ more odbc.ini --这个实际是dsn驱动名
[ODBC Data Sources]
data_source_name = mccdb
[mccdb]
Driver = /ebstest/app/myodbc/mysqlodbc/lib/libmyodbc3.so
DATABASE = mccdb
DESCRIPTION = MySQL ODBC 3.51 Driver
SERVER = 192.168.1.247
UID = apps
PASSWORD = 123456
PORT = 33306
SOCKET =
具体内容,要看情况更改
以上odbc驱动文件全部配好了.现需要注册一下在odbc driver mangaer中.
cd /ebstest/app/unixodbc-2.2.14/bin
./odbcinst -i -d -f /ebstest/app/etc/odbcinst.ini -i (install) -d (drvier) -q (query)
./odbcinst -i -s -l -f /etc/odbc.ini -i(install) -s(data source) -l system dsn -f (file name of template.ini follows)
可以不用-f
------------------------
$ ./odbcinst -i -d -f /ebstest/app/etc/odbcinst.ini
odbcinst: Driver installed. Usage count increased to 2.
Target directory is /ebstest/app/etc
$ ./odbcinst -i -s -l -f /ebstest/app/etc/odbc.ini
5.1版本如上
------------------------
检查是否连通
进入/ebstest/app/unixodbc-2.2.14/bin
./odbcinst -s -q 看是否能检测到连接dsn驱动名mccdb
./isql mccdb -v
看是否连通
理论是没什么问题的.当然出问题得查找原因
2) [ORACLE] <---> [DG4ODBC] 配制这一段 (oracle 11g已经有dg4odbc了,不用装gateway)
这一段要明白oracle 11g是连dg4odbc 也就是配tnsnames.ora 和listener.ora
tnsnames.ora (oracle_home/network/中)
增加如下一段
mccdb =
(DESCRIPTION =
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.234)(port=1529))
(CONNECT_DATA =
(SID = mccdb) )
(HS=OK)
)
要想清楚host地址,端口不要重用
listener.ora 增加如下二段
mccdb =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ebs2.riso.com.cn)(PORT = 1529))
)
)
SID_LIST_MCCDB=
(SID_LIST =
(SID_DESC =
(PROGRAM=dg4odbc)
(SID_NAME = mccdb)
(ENV=/ebstest/app/unixodbc-2.2.14/lib)
)
)
配完以后.看能不能不起动.lsnrctl start mccdb
tnsping mccdb
成功则说明没问题了. oracle 11g连DG4ODBC这段成功了.
3) [DG4ODBC] <---> [ODBC Driver Manager] 连这一段,其实这一段的真正核心就是hs目录中的初始化参数文件
cd $ORACLE_HOME//hs/admin
cp initdg4odbc.ora initmccdb.ora
修改后文件如下:
$ more initmccdb.ora
# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = mccdb
HS_FDS_TRACE_LEVEL = Debug
HS_FDS_SHAREABLE_NAME = /ebstest/app/unixodbc-2.2.14/lib/libodbc.so --这一行是关键,千万别折腾到myodbc目中去了.myodbc是连mysql. 现在是dg4odbc->odbc driver
HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P1
#HS_LANGUAGE=american_america.al32utf8
HS_NLS_DATE_FORMAT=YYYY-MM-DD
#HS_FDS_FETCH_ROWS=100
#
# ODBC specific environment variables
#
set ODBCINI=/ebstest/app/etc/odbc.ini
set ODBCINSTINI=/ebstest/app/etc/odbcinit.ini
set ODBCSYSINI=/ebstest/app/etc
set ORACLE_HOME=/ebstest/app/prod/db/tech_st/11.1.0
#
# Environment variables required for the non-Oracle system
#
在开启debug后.
先创建一个dblink
create public database link myodbc connect to apps identified by 123456 using 'mccdb';
再连接对方表试试
select * from msg_table@myodbc;
根据出错的信息.在hs/admin/log中查询出错原因
如果理解清楚,肯定容易找出问题所在
最终可能问题
一,是版本问题,只能查出一行
二,是乱码问题.
相关文章:

solaris-Oracle11g于linux-mysql相连
Oracle11g(solaris64sparc)mysql(linux)实验 此实验目的,实现公司ebs R12 连mysql上的短信平台.预警和提示ebs中信息, 一,环境 主机名 ip 平台 数据库 dbname ebs234 192.168.1.234 …...

大厂齐出海:字节忙种草,网易爱社交
配图来自Canva可画 随着国内移动互联网红利逐渐触顶,互联网市场日趋饱和,国内各互联网企业之间的竞争便愈发激烈起来。在此背景下,广阔的海外市场就成为了腾讯、阿里、字节、京东、拼多多、百度、网易、快手、B站等互联网公司关注和争夺的重…...

几个实用的正则表达式
1到100之间的正整数正则 表达式:^[1-9]\d?$|^100$ 解释: ^表示匹配字符串开始位置 [1-9]表示数字1-9中的任意一个 \d表示任意一个数字 ?表示前面一个字符或子表达式出现0或1次 $表示匹配字符串结束位置 |表示或 最终的解释为:匹配满…...

python实战应用讲解-【numpy数组篇】常用函数(八)(附python示例代码)
目录 Python Numpy MaskedArray.cumprod()函数 Python Numpy MaskedArray.cumsum()函数 Python Numpy MaskedArray.default_fill_value()函数 Python Numpy MaskedArray.flatten()函数 Python Numpy MaskedArray.masked_equal()函数 Python Numpy MaskedArray.cumprod()函…...

Speech and Language Processing-之N-gram语言模型
正如一句老话所说,预测是困难的,尤其是预测未来。但是,如何预测一些看起来容易得多的事情,比如某人接下来要说的几句话后面可能跟着哪个单词。 希望你们大多数人都能总结出一个很可能的词是in,或者可能是over&#x…...

【AI】Python 安装时启用长路径支持
文章目录 场景:解释:关于文件长路径:计算方法: 场景: Python 安装时,会出现 Disable path length limit 的提示。 解释: 在 Windows 操作系统中,文件路径的长度是有限制的。在早期…...

深入理解Go语言中的接口编程【17】
文章目录 接口接口接口类型为什么要使用接口接口的定义实现接口的条件接口类型变量值接收者和指针接收者实现接口的区别值接收者实现接口指针接收者实现接口下面的代码是一个比较好的面试题 类型与接口的关系一个类型实现多个接口多个类型实现同一接口接口嵌套 空接口空接口的定…...

“数字中国·福启海丝”多屏互动光影艺术秀27日在福州举办
作为深化“数字海丝”的核心区、海上丝绸之路的枢纽城市,为喜迎第六届数字中国建设峰会盛大召开之际,福州市人民政府特此举办“数字中国福启海丝”多屏互动光影秀活动。本次光影秀活动是由福建省文化和旅游厅指导,福州市人民政府主办…...

Docker安装mysql8.0文档
第一步需要安装Docker基础环境,具体可以看看这篇 docker基础篇 第二步,拉取mysql8.0的镜像 docker pull mysql:8.0 第三步,镜像启动和文件挂载 复制下面命令执行,33006是对外访问暴露的端口,当然你也可以设置为3306…...

在函数中使用变量
shell脚本编程系列 向函数传递参数 函数可以使用标准的位置变量来表示在命令行中传给函数的任何参数。其中函数名保存在$0变量中,函数参数则依次保存在$1、$2等变量当中,也可以使用特殊变量$#来确定参数的个数 在脚本中调用函数时,必须将参…...

python算法中的深度学习算法之自编码器(详解)
目录 学习目标: 学习内容: 自编码器 Ⅰ. 编码器(Encoder) Ⅱ. 解码器(Decoder)...

Python入门(一)Python概述与环境搭建
Python概述与环境搭建 1.概述1.1版本及下载1.2 Python 特点 2.环境搭建3.第一个程序“hello,world”4.可能会存在的问题 1.概述 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性,相比其他语言…...

02_Lock锁
首先看一下JUC的重磅武器——锁(Lock) 相比同步锁,JUC包中的Lock锁的功能更加强大,它提供了各种各样的锁(公平锁,非公平锁,共享锁,独占锁……),所以使用起来…...

面试总结,4年经验
小伙伴你好,我是田哥。 本文内容是一位星球朋友昨天面试遇到的问题,我把核心的问题整理出来了。 1:Java 层面的锁有用过吗?除了分布式锁以外 是的,Java中提供了多种锁机制来保证并发访问数据的安全性和一致性。常见的J…...

享受简单上传体验:将Maven仓库迁移到GitHub
前言:我为什么放弃了Maven Central 之前我写过一篇《Android手把手,发布开源组件至 MavenCentral仓库》,文中详细介绍了如何发布组件到Maven Central中供所有开发者共用。但是最近使用下来,发现Sonatype JIRA 的Maven Center上传…...

R语言 | 进阶字符串的处理
目录 一、语句的分割 二、修改字符串的大小写 三、unique()函数的使用 四、字符串的连接 4.1 使用paste()函数常见的失败案例1 4.2 使用paste()函数常见的失败案例2 4.3 字符串的成功连接与collapse参数 4.4 再谈paste()函数 4.5 扑克牌向量有趣的应用 五、字符串数据的…...

【MySQL高级】——InnoDB索引MyISAM索引
一、索引概述 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。 这些数据结构以某种方式指向…...

电影《灌篮高手》观后
上周和同学一起看了电影《灌篮高手》这部电影,个人以前没有看过相关漫画和动画,但记得,看过海报和一些宣传物品,有的衣服上,有文具盒上,也都出现过,而且是在自己小时候,可见当时的影…...

C# .Net 中的同步上下文
.Net 中的同步上下文 【文 / 张赐荣】 什么是同步上下文? 同步上下文(SynchronizationContext)是一个抽象类,它提供了一个基本的功能,用于在不同的同步模型中传播一个同步操作。 同步上下文表示一个代码执行的位置&a…...

3分钟入门:Flex 布局
flex 布局原理 全称 flexible box,弹性布局。 如何开启:为元素添加 display: flex。 开启 flex 布局的元素,称为 flex 容器(flex container),其子元素成为容器成员,称为 flex 项目。 flex 布…...

我想知道,就目前形势而言,学java好还是C++好?
前言 就现实点看看,可以对比现在Java和C的市场占有率,可以看到,到目前为止,Java在国内编程语言的市场仍然是占据着大头,在招聘当中Java的人数占有率仍然是遥遥领先于C,Java目前开阔的市场以及其巨大的岗位…...

Mysql 管理
目录 0 课程视频 1 系统数据库 -> 安装完mysql ->自带四个数据库 2 常用工具 -> 写脚本用 2.1 mysql 客户端工具 2.2 mysqladmin 2.3 mysqlbinlog -> 二进制日志 -> 运维讲解 2.4 mysqlshow 2.5 mysqldump 备份用 ->导出 2.6 mysqlimport/source -…...

C#基础(算术运算符)
作用 算术运算符 是用于 数值类型变量计算的运算符 它的返回结果是数值 赋值符号 // // 关键知识点: // 先看右侧 再看左侧 把右侧的值赋值给左侧的值 int myAge 18; 算术运算符 加 // 用自己计算 先算右侧结果 在赋值给左侧变量 int i 1; i i 2; …...

BM43-包含min函数的栈
题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。 此栈包含的方法有: push(value):将value压入栈中pop():弹出栈顶元素top():获取…...

[学习笔记] [机器学习] 3. KNN( K-近邻算法)及练习案例
视频链接数据集下载地址:《3. KNN及练习案例》配套数据集 1. K-近邻算法(KNN)概念 学习目标: 掌握K-近邻算法实现过程知道K-近邻算法的距离公式知道K-近邻算法的超参数 K K K值以及取值问题知道kd树实现搜索的过程应用KNeighborsClassifier实现分类知…...

React Hooks 钩子函数错误用法,你还在犯这些错误吗
React Hooks 常见错误 前言 本片文章主要是在写react hooks的时候,遇到的常见错误的写法,和错误。也是一个对只是的巩固和总结。 错误一 上代码:正确写法 function TestReactHooksError() {const [test, setTest] useState(test);useEff…...

tpm2-tools源码分析之tpm2_evictcontrol.c(1)
TPM 2.0中的tpm2_evictcontrol命令对应的源文件就是tpm2_evictcontrol.c,该文件位于tpm2-tools/tools/下,一共有339行(版本5.5)。 tpm2_evictcontrol的功能是使一个被加载的密钥持久保存、或者从TPM中移除一个持久密钥。命令描述…...

SpringCloud_OpenFeign服务调用和Resilience4J断路器
文章目录 一、负载均衡概论1、服务器负载均衡2、客户端负载均衡3、客户端负载均衡策略(SpringCloudRibbon)4、客户端负载均衡策略(SpringCloudLoadBalancer) 二、SpringCloudOpenFeign服务调用1、OpenFeign服务调用的使用2、OpenFeign服务调用的日志增强3、OpenFeign服务调用超…...

【C++】switch 语句
目录 1、缘起 2、笔记整理 3、if 和 switch 区别 4、总结 1、缘起 最近(2023-04-29)在 BiliBili 黑马程序员学习 C 编程语言,今天学习到了 switch 语句。以前在学习 C 语言 的时候,对这块知识点掌握的不是很好,…...

【Database-06】Centos 9 安装docker版的Oceanbase
1、安装docker 1.1、卸载旧版本 旧版本的 Docker 被称为docker或docker-engine。如果安装了这些,卸载它们以及相关的依赖项。 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotat…...