如何配置cx_Oracle通过tns连接timesten
环境:
OS:Centos 7
DB:18.1.4
Python:3.6
1.安装oracle瘦客户端
rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
安装路径为:/usr/lib/oracle/12.2/client64,将该目录权限授权给到instanceadmin账号
[root@localhost ~]# chown -R instanceadmin:timesten /usr/lib/oracle
2.安装timesten软件
查考timesten安装连接
https://www.cnblogs.com/hxlasky/p/17451264.html
我们这里只安装软件和创建实例,但不需要启动实例
3.编辑环境变量
[instanceadmin@localhost ~]$ more .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export TIMESTEN_HOME=/opt/tt18.1.4.34.0/hxl
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export PATH=$ORACLE_HOME/bin:$TIMESTEN_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/opt/tt18.1.4.34.0/lib:$LD_LIBRARY_PATH
TNS_ADMIN=/opt/tt18.1.4.34.0/network/admin
export PATH
4.创建tnsnames.ora文件
su - instanceadmin
mkdir -p /usr/lib/oracle/12.2/client64/admin
cd /usr/lib/oracle/12.2/client64/admin
vi tnsnames.ora
加入如下条目:
tt_tns=(DESCRIPTION =(CONNECT_DATA =(SERVICE_NAME = ttdbCS)(SERVER = timesten_client)))
或者是从timesten安装目录的如下目录拷贝一个tnsnames.ora过来进行修改
/opt/tt18.1.4.34.0/network/admin
5.timesten配置文件
[instanceadmin@localhost conf]$ more sys.odbc.ini
[ODBC Data Sources]
ttdb=TimesTen 18.1 Driver
ttdbCS=TimesTen 18.1 Client Driver
[ttdb]
Driver=/opt/tt18.1.4.34.0/hxl/install/lib/libtten.so
DataStore=/ttdb_data/ttdb
PermSize=512
TempSize=128
LogBufMB=256
LogFileSize=256
LogDir=/ttdb_log
DatabaseCharacterSet=ZHS16GBK
ConnectionCharacterSet=ZHS16GBK
OracleNetServiceName=ttorcl
[ttdbCS]
TTC_SERVER=ttdb_CS
TTC_SERVER_DSN=ttdb
[instanceadmin@localhost conf]$ more sys.ttconnect.ini
# Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
###############################################################
# This is a sample sys.ttconnect.ini file that is used for the
# TimesTen Client. It contains entries for each server.
###############################################################
[ttdb_CS]
Description=TimesTen Server
Network_Address=192.168.1.101
TCP_Port=6625
6.python程序
#!/usr/bin/env python
#coding=utf-8
import os, json, urllib, datetime, shutil,random,uuid
from random import choice
import pymysql
import traceback
import time
import cx_Oracle
import pyodbc
def connect_timesten_db():
connection = cx_Oracle.connect("hxl", "oracle", "tt_tns",encoding="UTF-8")
cursor = connection.cursor()
cursor.execute("insert into tb_test values (42,42)")
connection.commit()
connection.close()
if __name__ == '__main__':
print("开始时间:"+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
##l_flag = insert_data_for_doris()
l_flag=connect_timesten_db()
print("结束时间:"+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-06-08 ORA-16003(18c)
2021-06-08 18c rac_to_single 部署dgbroker