TimesTen在LINUX下的安装和使用
Oracle TimesTen 内存数据库在Linux下的安装和使用(依据TimesTen版本11.2.1)作者:秦诺thor.qin@2010年10月8日内容目录1 TimesTen简介 (3)1.1 内存数据库 (3)1.2 In-Memory Database Cache (4)2 TimesTen的安装 (5)2.1 创建数据库管理员用户 (5)2.2 下载TimesTen安装包 (5)2.3 用数据库管理员用户安装TimesTen (6)3 配置和创建数据库 (9)3.1 配置Oracle数据库的连接(In-Memory Database Cache) (9)3.1.1 配置Instant Client (9)3.2 在oracle数据库端配置缓存信息 (10)3.2.1 创建独立的缓存用户表空间 (10)3.2.2 创建TimesTen 架构 (11)3.2.3 创建缓存管理员(数据库用户) (11)3.2.4 授予缓存管理员必要的系统权限 (11)3.2.5 授予缓存管理员表权限(需要被缓存的表) (11)3.3 配置TimesTen需要的环境变量 (11)3.4 配置ODBC数据源信息 (12)3.4.1 服务器数据源的配置 (12)3.4.2 客户端数据源的配置 (12)3.5 创建TimesTen缓存数据库 (13)3.5.1 添加一个ODBC信息 (14)3.5.2 Linux上启动数据库之前需要完成的一些动作 (14)3.5.3 启动数据库 (14)3.5.4 在TimesTen 数据库中创建用户 (15)3.5.5 关联Oracle 中的cacheadm和TimesTen中的cacheadm用户 (15)3.5.6 创建缓存网格 (15)3.5.7 启动缓存代理 (16)3.5.8 创建缓存组 (16)3.5.9 启动数据复制代理 (16)3.5.10 加载数据到缓存中 (17)4 使用Sql Developer访问TimesTen数据库 (17)5 OCI编程需要注意的问题 (17)5.1 Oracle数据库功能限制 (17)5.2 附加的TimesTen OCI限制 (18)5.3 附加的TimesTen OCI 区别 (18)5.4 使用ttSrcScan工具 (19)1 TimesTen简介Oracle 内存数据库 TimesTen 是一个针对内存进行了优化的关系数据库,它为应用程序提供了当今实时企业和行业(如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。
Oracle 内存数据库 TimesTen 作为独立或嵌入式数据库部署在应用层中,利用标准的 SQL 接口对完全位于物理内存中的数据库进行操作。
它也可以用作 Oracle 数据库的内存中数据库缓存,以改进用户应用程序的响应时间和吞吐量。
1.1 内存数据库Oracle 内存数据库 TimesTen 是一个优化内存的关系数据库,提供了响应时间极短且吞吐量极高的应用程序,可满足各行业应用程序的需求。
Oracle 内存数据库 TimesTen (TimesTen) 通过改变数据在运行时驻留位置的假设来提供实时性能。
通过在内存中管理数据,并相应地优化数据结构和访问算法,数据库操作能够以最大效率执行,从而大大提高响应速度和吞吐量,甚至能够与完全使用缓存磁盘的 RDBMS 相媲美。
TimesTen 是一个可嵌入到应用程序中的数据库,通过消除了进程间通信和网络开销,进一步提高数据库操作的性能。
Oracle 内存数据库 TimesTen 使用行级锁定和提交后读取 (committed-read) 隔离,通常与多用户和多线程应用程序一起部署。
应用程序通过 JDBC、ODBC、Oracle 调用接口、Pro*C/C++ 和 OraclePL/SQL 编程接口,使用标准 SQL 访问 TimesTen 数据库。
通过运行 TimesTen 实现了应用程序的最佳响应时间后,如果运行在不同服务器上的多个应用程序共享一个数据库时,会使用常规的客户端/服务器访问。
Oracle TimesTen 数据库是持久的且可恢复。
通过事务日志记录与数据库检查点相结合实现了磁盘的持久性。
TimesTen Re p lication 支持 TimesTen 数据库之间的实时事务复制。
由于应用程序的任务关键特性,大多数部署都添加了 TimesTen Re p lication 选件以实现高可用性和负载平衡。
可用性是大多数实时应用程序的一项必需要求。
全天候运营的行业(如电信业)和可以通过 W e b 访问的全球系统(如旅行和预订网站)不容许服务中断。
证券交易系统在金融市场开放时必须持续保持可用状态。
TimesTen Re p lication 提供了以下性能和一致性方面的功能:•灵活的体系结构支持在 L AN 和 WAN 上可用的各种配置选项。
•基于事务日志的复制模式可以实现高效率和低开销。
•异步复制可提供最佳性能,且应用程序将与用户数据库中复制元素的接收过程完全分离。
•同步复制提供了活动数据库和备用数据库之间更高可信度的数据一致性;将一直锁定应用程序,直至在备用数据库上接收到事务并将其提交。
•备用数据库使用可用于读取;可以通过配置其他的只读用户来提供更多的读取容量。
•与 Oracle 集群件无缝集成可实现故障检测和到备用数据库的故障切换。
•联机升级允许单个服务器脱机升级软件,而无需中断其他服务器。
对于现有数据已存在于 Oracle 数据库中的应用程序,将数据的性能关键子集缓存到内存数据库 TimesTen 是一个缩短应用程序事务响应时间的实用解决方案。
请参阅此处的 Oracle I n-Memor yData b ase Cac h e 概述。
1.2I n-Memor y Data b ase Cac h eOracle I n-Memor y Data b ase Cac h e 是一个数据库选件,它为 Oracle 数据库提供了实时、可更新的缓存。
Oracle I n-Memor y Data b ase Cac h e 将来自数据库的对性能极其关键的一系列表和表碎片缓存到应用程序层,从而缩短应用程序事务响应时间。
企业数据库中的大部分数据都是历史数据,并且很少有人访问。
但是,掩藏在这些数据下面的信息应该能够在被请求时可即时访问。
您的最佳客户、未完成的订单、最近的事务以及产品目录都是很好的示例。
通过内存缓存和 Oracle 数据库之间的自动数据同步,I n-Memor y Data b ase Cac h e 能够在 Oracle 内存数据库 TimesTen 中自动复制和管理这些信息,以供他人实时访问。
I n-Memor y Data b ase Cac h e 使用“缓存组”的概念,来描述一组映射到 Oracle 数据库中的所有表或部分表的缓存表。
缓存组可以包含这些表的所有或部分行和列。
可以使用多个缓存组来缓存 Oracle 数据库中不同的相关表集合。
在内存数据库 TimesTen 中管理内存缓存表的方式与管理普通的关系型数据库表类似。
因此,Oracle I n-Memor y Data b ase Cac h e 为应用程序提供了关系数据库的所有共性和功能、缓存和 Oracle 数据库的一致性透明维护以及内存数据库的实时性能。
内存缓存表是持久保存且可恢复的。
通过事务日志记录与数据库检查点相结合实现了磁盘的持久性。
大多数缓存产品都是只读的,因此只限于一组很少的功能。
由于 I n-Memor y Data b ase Cac h e 支持完全的 SQL 读/写操作,因此可以用于众多不同种类的应用程序。
对 I n-Memor y Data b ase Cac h e 中缓存表的更新可以同步或异步方式直写到 Oracle 数据库中,这取决于性能和一致性之间的折衷。
对于只读缓存组,Oracle 数据库的增量更新只能按照用户指定的时间间隔异步刷新到内存缓存中的缓存表。
对于缓存数据集不能预先确定的应用程序,其数据可以按需加载到内存缓存中。
例如,呼叫中心应用程序在将呼叫路由至限定的呼叫代理时,可能选择加载呼叫方的当前结算单,而不是将所有客户的整套计费信息预先加载到内存缓存中。
自动数据老化特性对动态数据加载进行了补充,可以将旧数据或最近最少使用的 (LR U) 数据从缓存中删除。
数据老化使应用程序可以在保持内存中“热”数据可用的同时,为新数据释放空间。
I n-Memor y Data b ase Cac h e 的设计为即使在 Oracle 数据库服务器或网络连接丢失的情况下也能继续运行。
系统可以跟踪向缓存表提交的事务,并在连接恢复时立即将其传送回 Oracle 数据库。
同样,系统还可以跟踪向 Oracle 数据库中的缓存表提交的事务,并在与 Oracle 数据库的连接重新建立时立即将其刷新到内存数据库 TimesTen。
支持内存缓存之间的复制以实现高可用性。
可以使用活动-备用配置部署 Oracle I n-Memor yData b ase Cac h e,活动-备用配置中的缓存表在内存缓存间进行实时复制。
2TimesTen的安装本文中的安装和配置都是基于Ub untu 10.04系统 (包括但不限于X u b untu、K u b untu E tc.) (包括但不限于 Des k to p E dition、Ser v er E dition E tc.) (包括但不限于x86-32、amd64E tc.),在编写本文的时候Ub untu 10.10正式版即将放出,可以预知本文同样适用于10.10及其以后的版本。
2.1 创建数据库管理员用户建议为计算机建立单独的数据库管理员用户,该用户对数据库拥有全部管理权限,该用户需要隶属于root组,而主组不必是root组。
如果是仅安装客户端组件,则不需要单独创建一个用户,使用当前登录用户即可。
•在系统中建立一个timesten用户,主组是root:2.2 下载TimesTen安装包•这里选择安装包的时候注意查看本机是64位系统还是32位系统,下载对应的安装包,查看本机安装的是64位还是32位:如果显示64表是使用的是64位系统,否则是32位系统。
•进入用户目录,下载TimesTen安装包,这里要访问 Oracle 主页,选择对应版本的安装包:/technology/global/cn/software/products/timesten/index. html由于我们的机器是64位的,所以我们选择:适用于 Linux x86 (64 位)的 TimesTen I n-Memor yData b ase 11.2.1.6.1 (297,385,980字节)2.3 用数据库管理员用户安装TimesTen•使用数据库用户登录,或在终端中切换到该用户身份:•解压缩安装包(这里下载是Linux 64位安装包):•进入安装包目录:•执行setu p.s h进行安装:•安装过程的提示:回答:Y继续询问安装实例名称,输入希望命名的实例名,我们这里使用默认值,所以直接回车继续确认实例名称,回答:Y继续询问要安装哪些组件,如果是安装服务器,则输入1,如果只安装客户端则选择3,回车继续(只安装客户端的情况一般用在客户端/服务器模式,这种情况下,数据库和应用程序不在同一台计算机上,此时安装客户端的计算机通过TCP连接与服务器交互。
TimesTen在LINUX下的安装和使用
Oracle TimesTen 内存数据库在Linux下的安装和使用(依据TimesTen版本11.2.1)作者:秦诺thor.qin@2010年10月8日内容目录1 TimesTen简介 (3)1.1 内存数据库 (3)1.2 In-Memory Database Cache (4)2 TimesTen的安装 (5)2.1 创建数据库管理员用户 (5)2.2 下载TimesTen安装包 (5)2.3 用数据库管理员用户安装TimesTen (6)3 配置和创建数据库 (9)3.1 配置Oracle数据库的连接(In-Memory Database Cache) (9)3.1.1 配置Instant Client (9)3.2 在oracle数据库端配置缓存信息 (10)3.2.1 创建独立的缓存用户表空间 (10)3.2.2 创建TimesTen 架构 (11)3.2.3 创建缓存管理员(数据库用户) (11)3.2.4 授予缓存管理员必要的系统权限 (11)3.2.5 授予缓存管理员表权限(需要被缓存的表) (11)3.3 配置TimesTen需要的环境变量 (11)3.4 配置ODBC数据源信息 (12)3.4.1 服务器数据源的配置 (12)3.4.2 客户端数据源的配置 (12)3.5 创建TimesTen缓存数据库 (13)3.5.1 添加一个ODBC信息 (14)3.5.2 Linux上启动数据库之前需要完成的一些动作 (14)3.5.3 启动数据库 (14)3.5.4 在TimesTen 数据库中创建用户 (15)3.5.5 关联Oracle 中的cacheadm和TimesTen中的cacheadm用户 (15)3.5.6 创建缓存网格 (15)3.5.7 启动缓存代理 (16)3.5.8 创建缓存组 (16)3.5.9 启动数据复制代理 (16)3.5.10 加载数据到缓存中 (17)4 使用Sql Developer访问TimesTen数据库 (17)5 OCI编程需要注意的问题 (17)5.1 Oracle数据库功能限制 (17)5.2 附加的TimesTen OCI限制 (18)5.3 附加的TimesTen OCI 区别 (18)5.4 使用ttSrcScan工具 (19)1 TimesTen简介Oracle 内存数据库 TimesTen 是一个针对内存进行了优化的关系数据库,它为应用程序提供了当今实时企业和行业(如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。
timesten安装与主从
Timesten安装笔记安装文件:Linux: red-hat ES3, SUSE9CPU:intel EM641. 内核参数调整:1) sysctl和limit修改 sysctl.conf.ipv4.tcp_rmem=4096 4194304 41943042. net.ipv4.tcp_wmem=98304 4194304 41943043. net.ipv4.tcp_mem=98304 4194304 41943044. net.core.rmem_default=2621445. net.core.wmem_default=2621446. net.core.rmem_max=41943047. net.core.wmem_max=41943048. net.ipv4.tcp_window_scaling=19.10. # shmmax根据内存大小和系统位数设置(注意32位/64位)11. kernel.shmmax=778257920012. kernel.sem=5000 32000 100 12813. net.ipv4.ip_local_port_range=1024 65000修改limits.conf1.echo "* hard nofile 8192" >> /etc/security/limits.conf2.echo "* soft nofile 8192" >> /etc/security/limits.conf 2. 新建timsten用户1.groupadd -g 600 timesten2. useradd -g 600 -u 600 timesten3. passwd timesten3. 安装首先安装JDK(64位系统需安装JDK 64版本)1.[root@flypig timesten]#mkdir /etc/TimesTen/2. [root@flypig timesten]#chown timesten:timesten /etc/TimesTen/3. su – timesten4. cd $TIMESTEN_PRODUCT5. ./setup.sh6. Please choose an instance name for this installation? [ tt70 ]7. Timesten版本选择:安装AMD64和Intel EM64的版本8. Timesten产品选择:Oracle TimesTen In-Memory Database9. Timesten组件选择:Client/Server and Data Manager10.安装目录:/opt11.是否打开 access control:yes12. daemon log位置:/opt/TimesTen/log13.没有特别说明的部分,都默认回车14.4. 环境配置在/home/timesten/.bash_profile中添加以下行(SUSE9下面是.profile)1.. /opt/TimesTen/tt70/bin/ttenv.sh2.export JAVA_HOME=/opt/java5. 增加数据库用户1.[timesten@flypig timesten]$ source ~timesten/.profile2. [timesten@flypig]$ttisql TT_tt703. Command> create user tt_test identified by 'tt_test';4. Command> grant ddl,admin to tt_test;5. Command> grant write to tt_test;6. Command> grant SELECT to tt_test;7. Command> quit6. 增加用户DSN1.[timesten@flypig timesten]$mkdir –p /opt/TimesTen/imdb2. [timesten@flypig timesten]$vi /opt/TimesTen/tt70/info/sys.odbc.ini3.在 [ODBC Data Sources]下面增加:4. imdb=TimesTen 7.0 Driver5.在最后面增加:6. [imdb]7. Driver=/opt/TimesTen/tt70/lib/libtten.so8. DataStore=/opt/TimesTen/imdb/imdb9. DatabaseCharacterSet=US7ASCII10. Authenticate=011. UID=tt_test12. PWD=tt_test13. #ipcs memory size(M),该内存大小必须比shmmax小,否则用户DSN会进不去14. PermSize=500015. Connections=204716. #permsize*20%17. TempSize=100018. CkptFrequency=60019. CkptLogVolume=25620. LogBuffSize=25600021. LogFileSize=25622.测试用户DSN:23. [timesten@flypig timesten]$ttisql imdb24.连接成功出现command命令行则配置没有问题!25.7. 数据对象安装1.[timesten@flypig timesten]$ttisql imdb2. Command> 执行标准SQL语句3.或者:将SQL语句写在文本里,如imdb.schema.200705074.执行ttisql –f imdb.schema.200705078. Active/Standby数据库配置1) 在另外台服务器上安装新的一套Timesten,配置同上,两台Timesten记为Timesten1和Timesten2,准备将Timesten1为Active,Timesten2为Standby2) 在/etc/hosts里面加入各台Timesten3) 同步Timesten1和Timesten2的时间,最好用ntp之类的定时(20分钟)同步一下时钟,否则replication就会失败4) 在Timesten1上安装好所有的用户数据库对象5) 创建replication的schema1.[timesten@Timesten1 timesten]$ttisql imdb2. Command> create active standby pair3. IMDB on "Timesten1", IMDB on " Timesten2"4. store IMDB on " Timesten1"5. port 200006. store IMDB on " Timesten2"7. port 21000;说明:Timesten1、Timesten2为hostnameIMDB为用户DSN6) 将Timesten1置为active,启动replication agent1.[timesten@Timesten1 timesten]$ttisql imdb2. Command> call ttRepStateSet(‘active’);3. [timesten@Timesten1 timesten]ttAdmin –repStart imdb7) 退出连到imdb(Timesten2)的所有连接,从imdb(Timesten1)复制数据库1.[timesten@Timesten2 timesten]$ ttRepAdmin -duplicate -from imdb-host timesten1 -UID tt_test -PWD tt_test imdb2.如果出现imdb为in use错误,用ttDestory删除imdb,再试3. [timesten@Timesten2 timesten]$ ttDestroy imdb8) 启动Timesten2的replication agent[timesten@Timesten2 timesten]$ ttAdmin –repStart imdb9) 检查状态1.[timesten@Timesten1 timesten]$ ttisql imdb2. Command> call ttRepStateGet;3. < ACTIVE >4.5.[timesten@Timesten2 timesten]$ ttisql imdb6. Command> call ttRepStateGet;7. < STANDBY >8.9.[timesten@timesten2 timesten]$ ttRepAdmin -showstatus imdb10. Replication Agent Status as of: 2007-04-21 17:28:1911. DSN : imdb12. Process ID : 21805 (Started)13. Replication Agent Policy : manual14. Host : TIMESTEN215. RepListener Port : 2000016. Last write LSN : 37.20277723217. Last LSN forced to disk : 37.20265924018. Replication hold LSN : 37.20086952019. Replication Peers:20. Name : IMDB21. Host : TIMESTEN122. Port : 0 (Not Connected)23. Replication State : STARTED24. Communication Protocol : 2325. TRANSMITTER thread(s):26. For : IMDB27. Start/Restart count : 128. Send LSN : 36.8338308829. Transactions sent : 030. Total packets sent : 031. Tick packets sent : 032. Total Packets received: 033. RECEIVER thread(s):34. For : IMDB35. Start/Restart count : 136. Transactions received : 31735837. Total packets sent : 870938. Tick packets sent : 039. MIN sent packet size : 6440. MAX sent packet size : 12841. AVG sent packet size : 11942. Last packet sent at : 17:28:1943. Total Packets received: 223889944. MIN rcvd packet size : 6445. MAX rcvd packet size : 42646. AVG rcvd packet size : 13147. Last packet rcvd'd at : 17:28:1948.49.[timesten@timesten1 test]$ ttRepAdmin -showstatus imdb50. Replication Agent Status as of: 2007-04-21 17:29:4451. DSN : imdb52. Process ID : 12368 (Started)53. Replication Agent Policy : manual54. Host : TIMESTEN155. RepListener Port : 2100056. Last write LSN : 38.45070457. Last LSN forced to disk : 38.43460858. Replication hold LSN : 37.26666683259. Replication Peers:60. Name : IMDB61. Host : TIMESTEN262. Port : 20000 (Connected)63. Replication State : STARTED64. Communication Protocol : 2365. TRANSMITTER thread(s):66. For : IMDB167. Start/Restart count : 19168. Send LSN : 36.8270346469. Transactions sent : 37524870. Total packets sent : 2787971. Tick packets sent : 1672. MIN sent packet size : 1573. MAX sent packet size : 1638474. AVG sent packet size : 1244375. Last packet sent at : 17:29:4476. Total Packets received: 1063477. MIN rcvd packet size : 6478. MAX rcvd packet size : 12879. AVG rcvd packet size : 11380. Last packet rcvd'd at : 17:29:4481. Earlier errors (max 5):82. TT16224 in transmitter.c (line 5752) at 17:10:20 on 04-21-200783. TT16224 in transmitter.c (line 5752) at 17:19:49 on 04-21-200784. [timesten@timesten1 test]$85.9. 客户端安装参考以上服务器的安装过程,安装组件选择:[3] Client Only,配置ODBC:1) 在sys.ttconnect.ini增加Timesten Server1.[timesten@flypig timesten]$ vi /opt/TimesTen/tt70/info/sys.ttconnect.ini2.增加Timesten Server:3. [imdb]4. Description=TimesTen Server5. Network_Address=10.2.0.996. TCP_PORT=17003默认情况下,64位Timesten的port是17003,32位试170022) 在sys.odbc.ini增加DSN配置1.[timesten@flypig timesten]$ vi /opt/TimesTen/tt70/info/sys.odbc.ini2.增加DSN:3. [imdb]4. TTC_SERVER=imdb5. TTC_SERVER_DSN=imdb ######这个为服务端的DSN########SERVER就是我们上面配的Timesten Server3) 在客户机的profile中增加:1.[timesten@flypig timesten]$ vi .profile2.3.. /opt/TimesTen/tt70/bin/ttenv.sh4) 测试配置:[timesten@flypig timesten]$ ttisqlcs imdbttisql在自身服务器上使用,ttisqlcs在客户机上使用10. 常用命令列表/opt/TimesTen/tt70/startup/tt_tt70:Timesten起停ttSize:计算表大小,如 ttSize -tbl tt_ref imdbipcs:共享内存查看ttAdmin –repStop:停replication agent,如 ttAdmin –repStop imdbttAdmin –repStart:起replication agent,如 ttAdmin –repStart imdbdrop ACTIVE STANDBY PAIR:删除replication配置,ttisql命令ttRepAdmin -showconfig:显示repliation配置信息,如ttRepAdmin –showconfig imdbttRepAdmin -showstatus:显示repliation配置信息,如ttRepAdmin –showstatus imdbCALL ttRepStateSet('ACTIVE');:Replication状态置为active,ttisql命令ttDestroy:删除用户DSN所有数据,如ttDestroy imdbttRepAdmin -duplicat:数据库之间复制,如ttRepAdmin -duplicate -from imdb1 -host timesten1 -UID tt_test -PWD tt_test imdb2ALTER ACTIVE STANDBY PAIR:加复制表,standby机子需要重新复制数据库,如ALTER ACTIVE STANDBY PAIRINCLUDE TABLE tab1 ttisqlcall ttRepStateGet; :获取Replication状态(active/standby),ttisql命令ttDaemonLog:Timesten的日志查看,-f可以tail日志tables 显示数据库表,ttisql命令ttAdmin -ramPolicy:修改ram策略,如 ttAdmin -ramPolicy always imdb ttAdmin -repPolicy:修改replication策略,如 ttAdmin -repPolicy always imdb11. 已知问题和处理方法Replication失效:1) 确认各台机子的replication agent都在,可以用ttRepAdmin –showstatus命令2) 确认两台主机的时间一致,不一样的话日志中会有错误信息:ttDaemonLog | grep Err17:13:27.61 Err : REP: 12368: IMDB1:transmitter.c(5752): TT16224: Transmitter thread failure due to high clock skew 943 with peer store IMDB3无法在netapp上使用Timesten1) mount参数加exec2) 修改/opt/TimesTen/tt70/info/ttendaemon.options,在里面加-allowNetworkFiles。
如何在Linux系统上安装和配置Tomcat服务器
如何在Linux系统上安装和配置Tomcat服务器在Linux系统上安装和配置Tomcat服务器是一个相对简单但又有一定深度的任务。
Tomcat是一个开源的Java Servlet容器,用于在服务器上运行Java Web应用程序。
本文将向您介绍如何在Linux系统上安装和配置Tomcat服务器。
一、安装Java开发工具包(JDK)在安装Tomcat之前,您需要先安装Java开发工具包(JDK)。
Tomcat需要JDK来运行Java Web应用程序。
您可以通过以下步骤在Linux系统上安装JDK:1. 打开终端并输入以下命令来更新软件包列表:sudo apt update2. 输入以下命令来安装JDK:sudo apt install default-jdk3. 安装完成后,您可以输入以下命令来验证JDK是否成功安装:java -version如果成功安装,您将看到Java版本信息。
二、下载和解压Tomcat完成JDK的安装后,您可以开始下载和解压Tomcat。
您可以按照以下步骤进行操作:1. 打开浏览器并访问Tomcat官方网站(不提供链接,请自行搜索),找到适合您系统的Tomcat版本。
2. 下载Tomcat压缩包并保存到您选择的目录。
3. 打开终端并导航到Tomcat压缩包所在的目录。
4. 输入以下命令来解压Tomcat压缩包:tar -xvf apache-tomcat-<version>.tar.gz<version>是您下载的Tomcat版本号。
5. 解压完成后,您可以将Tomcat移动到适当的目录。
例如,您可以将Tomcat 移动到/opt目录下:sudo mv apache-tomcat-<version> /opt/tomcat三、配置Tomcat环境变量为了方便使用Tomcat,您可以配置Tomcat的环境变量。
您可以按照以下步骤进行操作:1. 打开终端并输入以下命令:sudo nano ~/.bashrc2. 在打开的文件末尾添加以下内容:export CATALINA_HOME=/opt/tomcatexport PATH=$PATH:$CATALINA_HOME/bin3. 按下Ctrl + X,然后按Y保存更改。
timesten双机热备
一. timesten to timesten1.首先关了两机的防火墙#iptables -Z#iptable -F2.装jdk(好像也可以不装)3..安装timesten.3.同步两机时间date 010*********(月日时分年)4. 增加数据库用户[timesten@flypig timesten]$ source ~timesten/.profile[timesten@flypig]$ttisql TT_tt70Command> create user imdb identified by 'imdb';Command> grant ddl,admin to imdb;Command> grant write to imdb;Command> grant SELECT to imdb;Command> quit5. 增加用户DSN[timesten@flypig timesten]$mkdir –p /opt/TimesTen/imdb[timesten@flypig timesten]$vi /opt/TimesTen/tt70/info/sys.odbc.ini在[ODBC Data Sources]下面增加:imdb=TimesTen 7.0 Driver在最后面增加:[imdb]Driver=/opt/TimesTen/tt70/lib/libtten.soDataStore=/opt/TimesTen/imdb/imdbDatabaseCharacterSet=ZHS16GBKConnectionCharacterSet=ZHS16GBKAuthenticate=0UID=imdbPWD=imdb#ipcs memory size(M),该内存大小必须比shmmax小,否则用户DSN会进不去#PermSize=5000#Connections=2047#permsize*20%#TempSize=1000CkptFrequency=600CkptLogVolume=256LogBuffSize=256000LogFileSize=256测试用户DSN:[timesten@flypig timesten]$ttisql imdb连接成功出现command命令行则配置没有问题!两机都要一样。
Linux系统搭建NTP服务器教程
Linux系统搭建NTP服务器教程实施环境服务器配置:虚拟机,2cpu,2G内存,50G硬盘linux 系统:CentOS release 7.6.1810服务器IP:10.1.0.145步骤一:操作系统安装步骤略过,进入操作系统,首先手动配置IP地址步骤二:安装NTP服务1、检查该系统是否已安装NTP服务安装完可用1的命令再检查是否安装成功。
步骤三:修改ntp配置文件,红色字体是修改项。
注:修改后记得保存配置文件。
restrict 控制相关权限。
语法为:restrict IP地址mask 子网掩码参数其中IP地址也可以是default ,default 就是指所有的IP。
参数有以下几个:ignore :关闭所有的NTP 联机服务nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器notrap :不提供trap远端登陆:拒绝为匹配的主机提供模式6 控制消息陷阱服务。
陷阱服务是ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。
nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟kod :访问违规时发送KoD 包。
restrict -6 表示IPV6地址的权限设置。
步骤四:设置NTP服务开机启动步骤五:启用ntp服务NTP服务器配置完成。
测试:NTP客户端:windows 7系统如上图所示,勾选与internet时间服务器同步,服务器输入框里填NTP服务器IP地址,点立即更新按钮。
等待一会下面出面同步成功的提示,说明NTP服务正常。
如下出现如下提示,说明NTP服务端有问题,需要排查故障。
排查故障大概的思路:1、确定NTP客户端与服务端的网络是否可达。
2、确定NTP服务端的服务是否启动。
Linux内存测试工具memtester安装与使用
Linux内存测试⼯具memtester安装与使⽤转⾃:1. memtester下载官⽹:当前最新版本是:memtester-4.5.1.tar.gz可以直接下载安装包安装,也可以通过wget命令下载$ wget http://pyropus.ca/software/memtester/old-versions/memtester-4.5.1.tar.gz2. 解压$ tar -xzvf memtester-4.5.1.tar.gz3. 编译并安装$ cd memtester-4.5.1$ sudo make$ sudo make install4. 使⽤⽤于测试内存i.g. 例如测试内存总量1900M,循环测试10次$ ./memtester 1900M 10运⾏结果(没有测出问题):...got 0MB (73728 bytes), trying mlock ...too many pages, reducing...got 0MB (69632 bytes), trying mlock ...too many pages, reducing...got 0MB (65536 bytes), trying mlock ...locked.Loop 1/10:Stuck Address : okRandom Value : okCompare XOR : okCompare SUB : okCompare MUL : okCompare DIV : okCompare OR : okCompare AND : okSequential Increment: okSolid Bits : okBlock Sequential : okCheckerboard : okBit Spread : okBit Flip : okWalking Ones : okWalking Zeroes : ok8-bit Writes : ok16-bit Writes : ok...Loop 10/10:Stuck Address : okRandom Value : okCompare XOR : okCompare SUB : okCompare MUL : okCompare DIV : okCompare OR : okCompare AND : okSequential Increment: okSolid Bits : okBlock Sequential : okCheckerboard : okBit Spread : okBit Flip : okWalking Ones : okWalking Zeroes : ok8-bit Writes : ok16-bit Writes : okDone.。
内存数据库 TimesTen 简介
第一,传统的数据库和应用程序是两个不同的应用系统, 它们之间的通讯是通过IPC连接来实现的;而TimesTen 则是直接把数据库的内存映射到应用程序的地址空间中, 简单来说,这时候TimesTen访问数据库中的数据,就象 访问应用程序自己的数组、字符串变量一样,只不过 TimesTen有一套完善的机制来实现数据的一致性和完整 性。这种直接嵌入到应用程序的运行地址空间机制比IPC 要高效很多。
Oracle TimesTen 内存数据管理软件由TimesTen数据库服务器、数据复 制选件和高速缓存选件三部分组成。
Oracle TimesTen In- Memory Database Oracle TimesTen In-Memory Database 是一个内存优化的关系数据库,它为应用程序提供了当今实 时企业和行业(例如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。Oracle TimesTen In-Memory Database 作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用标准的 SQL 接口对 完全位于物理内存中的数据存储区进行操作。 Replication – TimesTen to TimesTen Replication – TimesTen to TimesTen 是 Oracle TimesTen In-Memory Database 的一个选项,它 支持服务器间的实时数据复制,以获得高可用性和负载共享。数据复制配置可以是双机热备份 (activestandby) 或负载均衡 (active-active),可以使用异步或同步传输,可以包含冲突检测和冲突解决以及在 故障服务器恢复后自动重新同步。数据复制与 Cache Connect to Oracle 选项完全兼容。 Cache Connect to Oracle Cache Connect to Oracle 是 Oracle TimesTen In- Memory Database 的一个选项,它为位于应用 程序层中的 Oracle 数据创建实时、可更新的高速缓存。它免除了后端系统的计算负担,并支持反应灵敏 且可伸缩的实时应用程序。Cache Connect to Oracle 能够将 Oracle 数据的子集加载到 TimesTen 中, 能够双向传播更新,能够使对非高速缓存数据的 SQL 请求的透传自动化,并能够在故障之后自动重新同步 数据。Cache Connect to Oracle 与 Replication – TimesTen to TimesTen 选项完全兼容。
timesten配置dsn及使用
创建好了grid,就可以进入真正操作数据的用户了,但是需要先在该用户下创建cache group
connect "DSN=jzgl_ttdb;UID=jzgl;PWD=orcl;OraclePWD=orcl";
进入之后,内存数据库的cache并没有启动,需要启动它才能往里放数据。
(
id VARCHAR2(40) not null PRIMARY KEY,
region_code VARCHAR2(12) not null,
region_desc VARCHAR2(100) not null,
region_short VARCHAR2(100) not null,
call ttCacheStart;
--创建只读组,20小时刷新一次
CREATE READONLY CACHE GROUP read_sys_region_code
AUTOREFRESH INTERVAL 72000 SECONDS
FROM jzgl.SYS_REGION_CODE
DROP ANY INDEX,DROP ANY PROCEDURE,SELECT ANY TABLE,INSERT ANY TABLE,UPDATE ANY TABLE,DELETE ANY TABLE TO jzgl;
exit;
ttisql;
connect "DSN=jzgl_ttdb;UID=cacheadmin;PWD=cacheadmin;OraclePWD=cacheadmin";
输入表空间名
USERS
创建tt管理用户
create user cacheadmin identified by cacheadmin ;
timesten系列二:如何安装timesten
timesten支持在linux,unix,windows上面运行,最新的版本是7.0.5 ,下面我们将以在oracle enterprise linux 5.0 上面为例说明如何安装timesten,真的很简单,比装oracle简单安装目录/oracle/timesten操作系统版本oracle enterprise linux 5.0 32bit需要把SELINUX关闭timesten instance名字为tt701.修改内核参数修改/etc/sysctl.conf文件,加上如下列kernel.shmmax=2147483648kernel.sem = "250 32000 128 100"net.ipv4.tcp_rmem="4096 4194304 4194304"net.ipv4.tcp_wmem="98304 4194304 4194304"net.ipv4.tcp_mem="98304 4194304 4194304"net.core.rmem_default=65535net.core.wmem_default=65535net.core.rmem_max=4194304net.core.wmem_max=4194304net.ipv4.tcp_window_scaling=1net.ipv4.ip_local_port_range="1024 65000"然后执行sysctl -p ,使修改生效2.为了能够连接到oracle做同步,请安装oracle 10.2的客户端oracle以oracle用户,dba组安装3.添加用户useradd -g dba -u 505 timesten4.用root用户登陆os然后执行下面的操作,为timesten保存安装信息用mkdir /etc/TimesTenchmod 775 /etc/TimesTenchgrp timesten /etc/TimesTen5.设置用户.bash_profileexport CLASSPATH=/oracle/timesten/TimesTen/tt70/lib/ttjdbc14.jar:$CLASSPATH export PATH=/oracle/timesten/TimesTen/tt70/bin:$PATHexport ORACLE_HOME=/oracle/product/10.2.0/db_1exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/oracle/timesten/Ti mesTen/tt70/lib:$LD_LIBRARY_PATH注意:LD_LIBRARY_PATH 一定要包含上面的几个目录,否则cache 会出问题下载地址:/otn/t ... 0500.linux86.tar.gz然后解开timesten安装包tar xvzf timesten70500.linux86.tar.tarcd linux86/./setup.sh后面会提示输入路径,名称,端口等,一路回车,就ok了,具体的安装提示,请看下面:NOTE: Each TimesTen installation is identified by a unique instance name.The instance name must be a non-null alphanumeric string, not longerthan 255 characters.Please choose an instance name for this installation? [ tt70 ]Instance name will be 'tt70'.Is this correct? [ yes ]Please select a product :[1] Oracle TimesTen In-Memory Database[2] Oracle In-Memory Database CacheWhich product would you like to install? [ 1 ]Of the three components:[1] Client/Server and Data Manager[2] Data Manager Only[3] Client OnlyWhich would you like to install? [ 1 ]Where would you like to install the tt70 instance of TimesTen? [ /home/timesten ] /oracle/timestenThe directory /oracle/timesten does not exist.Do you want to create it? [ yes ]Where would you like to create the daemon home directory? [ /oracle/timesten/TimesTen/tt70/info ]The directory /oracle/timesten/TimesTen/tt70/info does not exist.Do you want to create it? [ yes ]Installing into /oracle/timesten/TimesTen/tt70 ...Uncompressing ...The TimesTen Demo applications can take up to 64 Mbytes of disk space.Depending on how your system is configured, you may not want to create the DemoDataStore directory in the default location,/oracle/timesten/TimesTen/tt70/info/DemoDataStoreWhere would you like to create the DemoDataStore directory? [ /oracle/timesten/TimesTen/tt70/info ]Creating /oracle/timesten/TimesTen/tt70/info/DemoDataStore ...NOTE: All installations that replicate to each other must use the same daemon port number that is set at installation time. The daemon port number canbe verified by running 'ttVersion'.The default port number is 17000.Do you want to use the default port number for the TimesTen daemon? [ yes ]The daemon will run on the default port number (17000).Processing /oracle/timesten/TimesTen/tt70/PERL/perl.tar ...Would you like to enable datastore access control? [ no ]The daemon logs will be located in /oracle/timesten/TimesTen/tt70/infoWould you like to specify a different location for the daemon logs? [ no ]NOTE: It appears that you are running version 4.1 of the g++compiler. TimesTen ships with multiple sets of client libraries and serverbinaries : one built with g++ 3.2.3, one with g++ 3.4.6, and one withg++ 4.1.0. The installer has created links to the 4.1.0 library in the<install_dir>/lib directory and to the 4.1.0 server binary in the<install_dir>/bin directory. If you want to use a different compiler,please modify the links to point to the desired library and server binary.Installing server components ...Would you like to log all server Connects/Disconnects? [ yes ]What is the TCP/IP port number that you want the TimesTen Server to listen on? [ 17002 ] Starting the daemon ...TimesTen Daemon startup OK.Installing client components ...What is the name of the host running the TimesTen server? [ rac01 ]What is the TCP/IP port number that the TimesTen server is listening on? [ 17002 ]What is the name of the instance running the TimesTen server? [ tt70 ]Creating new /oracle/timesten/TimesTen/tt70/info/sys.ttconnect.iniExtracting 3rd party tools ...Would you like to install the documentation? [ yes ] noDocumentation not installed.To manually install the documentation, run the command 'setup.sh -installDoc'NOTE: The TimesTen daemon startup/shutdown scripts have not been installed.Run the script '/oracle/timesten/TimesTen/tt70/bin/setuproot' as root.This will move the TimesTen startup script into its appropriate location.The startup script is currently located here :'/oracle/timesten/TimesT en/tt70/startup/tt_tt70'.End of TimesTen installation.为了添加随着OS启动而启动timesten daemon的脚本,需要按照提示,用root用户执行下面的脚本:/oracle/timesten/TimesTen/tt70/bin/setuproot很简单,就完成了安装了,看看timesten启动之后的进程情况:ps -ef |grep timestentimesten 2200 1 0 18:45 ? 00:00:00 /oracle/timesten/TimesTen/tt70/bin/timestend -initfd 13timesten 2203 2200 0 18:45 ? 00:00:00 /oracle/timesten/TimesTen/tt70/bin/timestensubdtimesten 2204 2200 0 18:45 ? 00:00:00 /oracle/timesten/TimesTen/tt70/bin/timestensubdtimesten 2205 2200 0 18:45 ? 00:00:00 /oracle/timesten/TimesTen/tt70/bin/timestensubdtimesten 2206 2200 0 18:45 ? 00:00:00 /oracle/timesten/TimesTen/tt70/bin/timestensubdtimesten 2208 2200 0 18:45 ? 00:00:00 /oracle/timesten/TimesTen/tt70/bin/ttcserver系统安装完成之后,会有一个缺省的data store(这个概念和oracle的schema概念差不多),叫TpcbData_tt70我们现在就连接到这个data store来看看,看看timesten工作是否正常。
最新Linux服务器搭建之十二:NTP服务器
L i n u x服务器搭建之十二:N T P服务器Linux服务器搭建之十二:NTP服务器Linux操作系统平台:Ubuntu(我安装了Lxde桌面)账户:root主要软件包:ntpNTP服务器搭建流程:ntp服务器主要是提供计算机与网络的时间同步校正服务。
0.【apt-get install ntp】安装ntp服务器1.进入【/etc】目录里,这里有个配置文件ntp.conf:2.vim编辑ntp.conf文件,在里面添加你想要向那些计算机提供网络时间校正服务的IP网段:(如果别人使用了这个服务器的时间校正,那么时间就和这台服务器的时间基本同步,但是这台服务器是否和网络同步就要看看这台服务器的时间校正是否正常了)添加信息:(我的内网IP为:192.168.170.143,我的服务器提供:192.168.170.*网段的时间校正服务)【restrict 192.168.170.0 mask 255.255.255.0 notrust nomodify notrap】3.刚才添加信息的下方就有一个模子:4.执行【date】命令查看本地时间:执行【hwclock】查看本机的硬件时钟:【hwclock -w】更新硬件时钟:(两种时钟不一样)5.向防火墙放行我们的NTP服务器端口:【iptables -I INPUT -p udp - -dport 123 -j ACCEPT】6.【service ntp start】启动NTP服务器:7.【ntpq -p】命令测试NTP服务器的同步状态:8.使用【ntpdate 192.168.170.143】命令让本地系统接受位于192.168.170.143的服务器的时间校正服务,也就是与那个NTP服务器的时间同步:(我在本地192.168.170.143搭建了NTP服务器,又让本地接受192.168.170.143的时间校正服务,等于没有校正,但是如果别人的系统使用这个NTP服务器校正时间的话就可以与我的这个服务器时间同步了)无论是Linux还是Unix,或者Windows,Mac OS X等等,都在使用网络时间校正服务,但是我们却很少去了解,这个很正常。
