TimesTen

TimesTen
TimesTen

Oracle TimesTen 内存数据库

第一章Timesten

1.1 TT的简介

1.2 TT的特性

1.3 TT的基本概念

1.4 DataStore介绍

1.5 用户级别

1.6 锁机制

1.7 数据持久性

1.8 索引

1.9 命令大全

1.10 DSN属性大全

1.11 环境变量

第二章LINUX平台下

2.1 安装

2.2 启动和关闭

2.3 创建数据源

2.4 C/S配置

2.5 CacheConnect

2.6 复制配置

2.7 复制异常恢复

第三章WINDOWS平台下

3.1 安装

3.2 创建数据源

3.3 初步使用

3.4 C/S配置

3.5 CacheConnect

第一章Timesten

1.1 TT的简介

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 的一个选项,它支持服务器间的实时数据复制,以获得高可用

性和负载共享。数据复制配置可以是双机热备份 (active-standby) 或负载均衡 (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 选项完全兼容。

1.2 TT的特性

TimesTen的名字就是 Ten Times,意思就是比传统的数据库要快一个数量级,为什么同是数据库,TimesTen要快这么多?如果把传统的数据库中的数据全部先load到内存中是否能达到相同的效果?下面我们对它们做一个比较分析。

?第一,传统的数据库和应用程序是两个不同的应用系统,它们之间的通讯是通过IPC连接来实现的。而TimesTen则是直接把数据库的内存映射到

应用程序的地址空间中,简单来说,这时候TimesTen访问数据库中的数

据,就象访问应用程序自己的数组、字符串变量一样,只不过TimesTen

有一套完善的机制来实现数据的一致性和完整性。这种直接嵌入到应用程序的运行地址空间机制比IPC要高效很多。

?第二,传统的数据库都是 Disk-based 的,即预先假定数据主要是放在磁盘中的,所以它的所有优化、查询算法都是以磁盘存储为主的。举个简单的例子,比如说要查找一行记录,传统的数据库要先查找索引,通过索引查找该记录所在的页面,然后通过查找该页是已经在内存中,还是要从磁盘的数据文件中读取出来。而TimesTen是预先就把所有的数据Load到内存中,它知道所有的数据一定在内存里面,不会再通过其它的调用去决定数据在哪儿,这其中就少走了很多的弯路,基本没有磁盘的IO,而且都

在内存中,效率也就高了很多。所以即使传统的数据库把数据都预先Load 的内存中,也是达不到TimesTen的效果的。因为传统数据库的索引机制、优化算法、复杂的数据结构、数据的获取机制等等因素限制了它的性能。

?第三,由于TimesTen启动的时候预先将所有的数据 Load 到内存中,所以它没有页进页出,而且也不需要类似与Oracle中的SGA缓冲区的管理。

总之,TimesTen只用 1/10 的CPU指令完成了传统数据库同样的任务,从而使得性能和吞吐量提升了一个数量级。

下图说明了其中的不同之处:

1.3 TT的基本概念

TimesTen作为一个可以单独使用的标准关系型数据库而言,它也有自己的实例、库、日志等概念的。只是术语上和Oracle有些不同,但内在的含义是类似的。

?实例

实例也就是Instance,对TimesTen来说,一个安装对应一个实例,如果你在同一台机子上,用不同的用户安装了多个TimesTen,那么就可以说,你在这台机子上有多个实例。

?库

在TimesTen中和Oracle库对应的概念是DataStore,它通过DSN 定义。安装TimesTen之后,在sys.odbc.ini配置文件中有多个DataStore的定义,每个DataStore就是一个库。所以一个实例可以对应多个库,但一个库只能属于一个实例。

?日志

TimesTen也有自己的日志文件,以及存放日志文件的目录(LogDir),缺省的就是和DataStore放在同一个目录下。但一般建议分开放。日志的概念和Oracle的一样,在回滚以及恢复的时候,都会用到它。

?数据文件

也可以叫检查点(checkpoint)文件,Oracle中比较接近的就是dbf 文件了。它是TimesTen当前内存中数据的一个镜像,恢复的时候先找到最近的检查点文件,然后结合日志文件一起恢复。TimesTen 写检查点文件是增量写的方式,不是整个数据都写的。所以性能上还是很好的。

1.4 DataStore介绍

DataStore 是指TimesTen中的表、索引等放在内存段中的一个集合,类似与Oracle中库的概念。一个TimesTen Data Manager可以管理多个DataStore。DataStore由放在相应ODBC配置文件中的一个DSN(Data Source Name)所定义,该DSN由一个名字和相关的属性组成,如下:

[dsa]

Driver=/home/tt1/TimesTen/tt70/lib/libtten.so

DataStore=/home/tt1/TimesTen/tt70/info/dsa

DatabaseCharacterSet=ZHS16GBK

PermSize=50

TempSize=10

上面是名为test的DataStore的定义,ODBC配置文件分为两种:系统级ODBC文件(可通过环境变量SYSODBCINI另行设置)和用户级ODBC配置文件(可通过环境变量ODBCINI另行设置)。系统级的ODBC可以被任何用户所引用,而用户级的只能被该用户所引用。系统级的ODBC文件在Windows平台下可以通过控制面板→ ODBC数据源管理→系统DSN 定义;而UNIX平台下,则一般是通过定义文件$INSTALL_DIR/sys.odbc.ini完成。

当用户连接一个DataStore的时候,TimesTen会按照下面的顺序查找配置文件:

1. 环境变量ODBCINI所指向的.odbc.ini文件

2. 运行TimesTen的用户主目录下的.odbc.ini 文件

3. 环境变量SYSODBCINI所指向的sys.odbc.ini文件

4. /var/TimesTen/sys.odbc.ini

5. $INSTALL_DIR /info/sys.odbc.ini(非root用户才会执行该步)

一般情况下,建议使用非root用户安装,原因是便于管理而且对系统的安全没有影响。此时,ODBC配置文件缺省位于$INSTALL_DIR /info/sys.odbc.ini ,$INSTALL_DIR为TimesTen的安装目录。

在上面的test 定义里面,有两个重要的属性:

Driver=/home/tt1/TimesTen/tt70/lib/libtten.so

DataStore=/home/tt1/TimesTen/tt70/info/dsa

Driver比较好理解,是指操作该数据源所需要的驱动。而DataStore指的是

放置Checkpoint文件的磁盘地址。TimesTen虽然运行的时候将所有的数据都预

先装载在内存中,但不是说它就不需要任何磁盘文件,它也有自己的数据文件、日志文件等。这个数据文件叫checkpoint 文件,是TimesTen内存中数据在磁盘上的一个镜像,相当于Oracle数据库中的数据文件DBF。TimesTen会在一定条件下自动做Check point ,此时,它会将内存中的脏数据和磁盘上的数据文件做增量同步。当首次登陆到该DSN,或者TimesTen异常中止/失败时,TimesTen

需要这些读取这些文件做恢复。

下面是DataStore dsa 在磁盘上的相应文件:

[tt1@west-mountain info]$ pwd

/home/tt1/TimesTen/tt70/info

[tt1@west-mountain info]$ ls -al|grep dsa

-rw-rw-rw- 1 tt1 tta 11446924 Jun 17 21:28 dsa.ds0

-rw-rw-rw- 1 tt1 tta 11446924 Jun 17 21:22 dsa.ds1

-rw-rw-rw- 1 tt1 tta 557056 Jun 17 21:28 dsa.log0

-rw-rw-rw- 1 tt1 tta 67108864 Jun 17 21:12 dsa.res0

-rw-rw-rw- 1 tt1 tta 67108864 Jun 17 21:12 dsa.res1

-rw-rw-rw- 1 tt1 tta 67108864 Jun 17 21:12 dsa.res2

针对dsa这个DataStore,磁盘上对应由两个checkpoint 文件,dsa.ds0,dsa.ds1;一个日志文件,dsa.log0;以及三个保留文件(reservation) dsa.res0,dsa.res1,dsa.res2。在ODBC的配置文件中,我们只是定义了dsa的DataStore属性:

DataStore=/home/tt1/TimesTen/tt70/info/dsa

这个属性看起来只是定义了一个目录路径,TimesTen是如何根据该属性创建一系列文件且命名的呢?针对Checkpoint文件,TimesTen会以DataStore属性的

最后一节为文件名,创建相应的Checkpoint文件。所以我们看到了在目录

/home/tt7/TimesTen/tt70/info 下有两个分别命名为dsa.ds0,dsa.ds1的文件。TimesTen每次做Checkpoint的时候,会轮换着写这两个文件,每次都写较旧的那个。所以在某些时间段内,这两个文件不是完全一致的。每次做Checkpoint

的时候,TimesTen先在这两个文件之间做一个同步,然后把最新的更新,写到旧的Checkpoint文件中。为什么不同时写入两个文件呢?原因是如果同时往两个文件写入,而写入过程发生异常,会导致两个文件同时被损坏,带来灾难性的后果。

那么TimesTen如何创建日志文件(dsa.log0)和保留文件(dsa.res0~3)呢?可以在ODBC配置文件里面,通过属性LogDir 来定义日志文件。因为日志文件会和保留文件始终位于同一个目录下,所以LogDir也间接地定义了保留文件。当没有显式设置LogDir时,日志文件将和Checkpoint文件位于同一目录下,且以DataStore属性中定义的目录的最后一节为文件名,且后缀中按数字序列递增命名,例如dsa.log0,dsa.log1,dsa.log2。。。等。当具体定义了LogDir后,日志文件将位于该目录下,且以该属性值所指向的目录的最后一节为文件名,例如:LogDir=/home/tt1/TimesTen/tt70/testcache

此时,TimesTen将在目录/home/tt1/TimesTen/tt70/testcache 下创建名为testcache的日志和保留文件。

[tt1@west-mountain testcache]$ pwd

/home/tt1/TimesTen/tt70/testcache

[tt1@west-mountain testcache]$ ls -al

total 25016

drwxr-xr-x 2 tt1 tta 4096 Dec 28 10:50 .

drwxr-xr-x 13 tt1 tta 4096 Dec 28 10:53 ..

-rw-rw-rw- 1 tt1 tta 376832 Dec 28 14:12 testcache.log0

-rw-rw-rw- 1 tt1 tta 67108864 Dec 28 10:50 testcache.res0

-rw-rw-rw- 1 tt1 tta 67108864 Dec 28 10:50 testcache.res1

-rw-rw-rw- 1 tt1 tta 67108864 Dec 28 10:50 testcache.res2

强烈建议将日志文件和Checkpoint文件分开放在不同磁盘上,且处于不同的磁盘控制器下,以尽量减少磁盘IO的影响。可能的话,正式的生产系统中,这两个目录一般都配置在已经条带化之后的磁盘阵列上不同的逻辑盘中。

下面讲讲保留文件(dsa.res0,dsa.res1,dsa.ds2)

[tt1@west-mountain info]$ ls -al|grep dsa

-rw-rw-rw- 1 tt1 tta 11446924 Jun 17 21:28 dsa.ds0

-rw-rw-rw- 1 tt1 tta 11446924 Jun 17 21:22 dsa.ds1

-rw-rw-rw- 1 tt1 tta 557056 Jun 17 21:28 dsa.log0

-rw-rw-rw- 1 tt1 tta 67108864 Jun 17 21:12 dsa.res0

-rw-rw-rw- 1 tt1 tta 67108864 Jun 17 21:12 dsa.res1

-rw-rw-rw- 1 tt1 tta 67108864 Jun 17 21:12 dsa.res2

保留文件始终和日志文件位于同一目录下,它的大小由属性LogFileSize定义。缺省的LogFileSize是64M,所以缺省的保留文件就是67108864字节。

当由于某些原因导致文件系统没有空余的磁盘空间时,如果没有保留文件,TimesTen将无法运行下去,因为事务的提交不可避免地导致日志文件的增长,但此时已没有任何可用于增长的磁盘空间,从而导致TimesTen处于静止(Quiescent)状态,在此状态下,只允许读操作而不允许写操作。保留文件是作为溢出缓冲空间使用的,它们被预先创建,当磁盘空间都被用光时,TimesTen会利用这些保留文件作为一个缓冲,从而完成最终的一些事务,避免TimesTen进入静止状态。而创建三个保留文件的原因是因为在绝大多数情况下,三个保留文件被证明是最优的选择。当然,不管如何,磁盘空间被用光的情况都应该尽量地避免。

1.5 用户级别

当安装TimesTen的时候,安装用户即是TimesTen的DBA,这一点和Oracle是类似的。这个用户也叫外部用户,因为它是操作系统的用户。安装的时候如果选择 access control 为 enable ,那么就能在登录TimesTen之后,创建TimesTen 的用户了,这时候创建的用户称为内部用户。

在TimesTen的配置文件 sys.odbc.ini 中,有一些缺省的DSN定义,大部分都是为 Demo 服务的。但有一个比较特别,就是第一个,它的名字一般是前缀 TT_ ,然后加上你安装时候的确定的 Instance 名字,比如我们选择的Instance名字为 tt705,那么它的全名就是 TT_tt705。这个DSN是比较特别的一个,看起来

好像和其它没什么区别,也能访问。但在以前的一些版本中有些操作是不能在这个DSN上做的。所以个人觉得创建自己的DSN的时候,最好不要碰这个DSN,还是以这个为模板,另创建一个的好。

当创建TimesTen的内部用户的时候,创建的用户都是 Instance 级的。比如,我们创建了一个DSN 叫 tt_test。这时候我们登录到 TT_tt705,创建一个用户叫 tt,并赋予相关权限后,那么用这个 tt 用户就可以登录到该Instance下的所有DSN了,包括 tt_test。至少到TimesTen 7.0.5为止还是这样的。

[tt705@west-mountain info]$ ttisql "dsn=tt_test;uid=tt"

Copyright (c) 1996-2008, Oracle. All rights reserved.

Type ? or "help" for help, type "exit" to quit ttIsql.

All commands must end with a semicolon character.

connect "dsn=tt_test;uid=tt";

7001: User authentication failed

The command failed.

Done.

[tt705@west-mountain info]$ ttisql tt_tt705

Copyright (c) 1996-2008, Oracle. All rights reserved.

Type ? or "help" for help, type "exit" to quit ttIsql.

All commands must end with a semicolon character.

connect "DSN=tt_tt705";

Connection successful: DSN=TT_tt705;UID=tt705;DataStore=……

(Default setting AutoCommit=1)

Command> create user tt identified by ‘tt’;

Command> grant all to tt;

Command> exit

Disconnecting…

Done.

[tt705@west-mountain info]$ ttisql "dsn=tt_test;uid=tt;pwd=tt" Copyright (c) 1996-2008, Oracle. All rights reserved.

Type ? or "help" for help, type "exit" to quit ttIsql.

All commands must end with a semicolon character.

connect "dsn=tt_test;uid=tt";

Connection su ccessful: DSN=tt_test;UID=tt;DataStore=……

(Default setting AutoCommit=1)

Command> call ttusers;

< TT705 , 1, FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF >

< SYS , 0, 00000000000000000000000000000000 >

< TTREP , 0, 00000000000000000000000000000000 >

< PUBLIC , 0, 03000000000000000000000000000000 >

< TT , 0, FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF >

< TEST , 0, FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF >

6 rows found.

Command> exit

Disconnecting…

Done.

1.6 锁机制

锁是一种较高级的处理并发性访问的机制,它序列化多个应用对资源的同时访问。当一个用户正在读取或者修改该资源时,阻止其它用户对该资源的修改。TimesTen有三种锁机制:

?DataStore级锁

?表级锁

?行级锁

可以在ODBCINI配置文件中通过参数LockLevel设置是DataStore级锁还是行级锁,也可通过存储过程ttLockLevel() 动态设置。应用程序可以调用存储过程ttOptSetFlag() 提示查询优化器采用行级锁(RowLock)还是表级锁(TblLock)。还可通过存储过程ttLockWait() 设置等待锁的时间。

?DataStore级锁

当一个进程访问DataStore时,如果该DataStore为DataStore级锁,则其它进程不能同时访问该DataStore,即DataStore级的锁都是排他的。只有在当前DataStore上没有活动的事务时,才能获取DataStore级的锁。一旦获得DataStore级锁,其它事务将被阻塞直到该锁定被释放。

DataStore级锁限制了应用的并发性访问,只有在有限的场景下才使用该锁定,如初始化、数据批量导入等。由于DataStore级锁比行级锁和表级锁反应时间更快,所以在适合它的使用场景下能取得更好的性能。

?表级锁

当事务要对一个表的大部分记录进行查询、修改或者删除时,就会获得表级锁。查询优化器会根据具体的SQL来判断是否应该使用表级锁,该过程对应用来说是透明的。当然也可通过存储过程ttOptSetFlag() 来手工动态设置。

因为表级锁也会降低应用的并发性,所以只有当一个表的大部分行需要被锁定,或并发性要求不高时才会采用表级锁。

?行级锁

相对DataStore级锁和表级锁,行级锁的并发性是最好的。它只锁定要操作的行,所以不同的应用可以同时操作同一个表中不同的行。

1.7 数据持久性

TimesTen作为一个内存数据库,数据完全放置在内存中,那么它的数据持久性如何保持?以及如何实现高可用性保证的呢?

TimesTen的数据持久性是通过磁盘上的DataStore文件和Log文件保持的。TimesTen每一次操作,都会先缓存在内存的LogBuffer中,然后由后台的守护进程异步地同步到磁盘上的Log文件中。TimesTen 每隔一段时间或者收集到一定的脏日志量后,就触发一次Checkpoint,将内存中变化的数据增量写到磁盘上的DataStore文件中,然后清除掉已经同步过的Log文件。所以当掉电,或者其它故障时,TimesTen可以通过这些文件进行自动恢复。

至于高可用性保证,如果是单节点,不想有任何的数据丢失,TimesTen可以通过设置参数DurableCommits =1来保证,即每次提交都强制性同步到磁盘上(缺省为异步方式),这种情况下,数据库写的性能会受到影响。所以如果既想保持高性能,又能保证数据的高可用性,TimesTen通过Replication 机制完美地达到了上述两点,通过Replication,TimesTen在多个节点的之间保持数据的自动高效同步。节点之间由多种复制模式可以选择:Active-Standby,Active-Active,Active-Standby-Disaster Recovery等等;数据的传送模式也有同步、半同步、完全同步等三种模式。

1.8 索引

1) TimesTen索引目前分两种:

Hash索引做等值匹配查询具有较大的优势,但占用空间较大;只能出现在primary key上。

T-tree索引则适宜做范围、排序等查询(Order By,Group By,Distinct),当然它也可做等值查询,占用空间较小。语法create index test_idx on test(a,b);

2) 主键缺省具有Hash索引。

3) 建Hash 索引时必须定义Pages值(Rows/256),以避免Hash冲突。

4) 全表扫描时候,如果被扫描的表具有T-tree索引(不管这个索引的列是否被用到),则性能会有较大的

提升。

5) 组合索引时,Hash 索引需要列的完全匹配,而T-tree索引只需要前置匹配。如:

SELECT … FROM T1 WHERE COL1 = ? AND COL2 = ?

6) 对下列语句

WHERE c1+10 < c2+20写成WHERE c1 < c2+10在C1上创建索引

7) 如果表的空间无法预测,即不能定义Pages的值,或者索引的列中包含大的Char/Binary 以及组合列时,

建议使用unique index

用如下两个存储过程进行表的分析,以提高执行的效率

ttOptUpdateStats (全表)

ttOptEstimateStats (抽取部分)

9) 执行计划会一直使用,直到碰到下列情形:

A table it uses is dropped

A table it uses is altered

An index on a table it references is dropped

An index is created on a table it references

Statistics are recomputed

10) 执行计划:

Command> autocommit 0;

Command> showplan 1;

Command> prepare SELECT * from test;

或:

Command> autocommit 0;

Command> call ttOptSetFlag(’GenPlan’,1);

Command> prepare SELECT * from test;

Command> SELECT * FROM plan;

11) 有时候系统也会创建临时索引以加快查询速度,但如果临时索引创建地过于频繁,就要考虑手工建相

应的索引,这可以通过系统表MONITOR 的列CMD_TEMP_INDEXES来监测。

1.9 命令大全

Command>

1.11 环境变量

下列为TimesTen安装之后,可能需要设置的系统变量:

◆CLASSPATH

如用到JDK,则需要设置该变量指向相应的Jar文件。目前支持的JDK有JDK1.4、JDK5.0、BEA Weblogic Jrockit 5.0

◆LIB、LIBPATH、LD_LIBRARY_PATH、SHLIB_PATH

指向TimesTen所用到的共享库,即$INSTALL_DIR/LIB 目录;如用到Cache Group,还需包含$ORACLE_HOME/LIB 或$ORACLE_HOME/LIB (32位平台)。

且不同的平台该变量的名字各有差异:

SOLARIS — LD_LIBRARY_PATH

AIX — LIBPATH

HP-UX 32Bit — SHLIB_PATH

HP-UX 64Bit — LD_LIBRARY_PATH ($INSTALL_DIR/LIB)

—SHLIB_PATH ($ORACLE_HOME/LIB)

Tru64 UNIX — LD_LIBRARY_PATH

注意:HP-UX 64Bit平台需要两个系统变量分别指向TimesTen和Oracle 的相应LIB目录。

◆ODBCINI

指向.odbc.ini 配置文件。当用户连接TimesTen的时候,TimesTen会按照下面的顺序查找相关的配置文件:

1.环境变量ODBCINI所指向的.odbc.ini文件

2.运行TimesTen的用户主目录下的.odbc.ini 文件

3.环境变量SYSODBCINI所指向的sys.odbc.ini文件

4./var/TimesTen/sys.odbc.ini

5.install_dir/info/sys.odbc.ini(非root用户才会执行该步)

◆ORACLE_HOME

指向Oracle 数据库的安装目录,如果要用到Cache Group,该变量必须设置。

◆PATH

指向TimesTen的bin 目录,即$INSTALL_DIR/bin;如果用到Cache Group的话,还要包含Oracle的bin目录。

◆SYSODBCINI

指向SYS.ODBC.INI配置文件,具体说明见ODBCINI

◆SYSTTCONNECTINI

当用Client/Server 模式访问TimesTen的时候,该变量指向客户端的sys.ttconnect.ini配置文件。客户端查找配置文件的顺序是:

1. 环境变量SYSTTCONNECTINI所指向的sys.ttconnect.ini 配置文件。

2. /var/TimesTen/sys.ttconnect.ini

3. $INSTALL_DIR/info/sys.ttconnect.ini(非root用户安装)

◆TMP/TMPDIR

指向TimesTen的临时目录。TimesTen的某些操作,比如ttRepAdmin –duplicate 、大的删除等会用到临时目录。该参数缺省设置为:HP-UX 和AIX 是/var/tmp;而Solaris、Linux、Tru64 UNIX 则是/tmp。

第二章LINUX平台下

2.1 安装

安装前检查

/*确定Linux的版本及内核*/

[root@west-mountain ~]# cat /etc/redhat-release

Red Hat Enterprise Linux AS release 4 (Nahant Update 4)

[root@west-mountain ~]# uname -a

Linux west-mountain 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 i686 i386 GNU/Linux

/*确定Linux平台的位数*/

[root@west-mountain ~]# getconf WORD_BIT

32

/*确定空闲内存及硬盘大小*/

[root@west-mountain ~]$ free

[root@west-mountain ~]# free -k

total used free shared buffers cached

Mem: 1010220 779232 230988 0 83976 567584

-/+ buffers/cache: 127672 882548

Swap: 1052248 0 1052248

[root@west-mountain ~]$ df -k

[root@west-mountain ~]# df -k

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda3 11242612 6481940 4189564 61% /

/dev/sda1 101086 11427 84440 12% /boot

none 505108 0 505108 0% /dev/shm

[root@west-mountain ~]# ipcs -l

—— Shared Memory Limits ——–

max number of segments = 4096 // SHMMNI

max seg size (kbytes) = 1048576 // SHMMAX

max total shared memory (kbytes) = 8388608 // SHMALL

min seg size (bytes) = 1

—— Semaphore Limits ——–

max number of arrays = 128 // SEMMNI

max semaphores per array = 250 // SEMMSL

max semaphores system wide = 32000 // SEMMNS

max ops per semop call = 100 // SEMOPM

semaphore max value = 32767

—— Messages: Limits ——–

max queues system wide = 16 // MSGMNI

max size of message (bytes) = 8192 // MSGMAX

default max size of queue (bytes) = 16384 // MSGMNB

/*针对TimesTen来说,SHMMAX 和SHMALL 是两个非常重要的内核参数参数,一般都需要重新设定其值。SHMMAX 是Linux 系统上共享内存段的最大大小。SHMALL 是系统上可分配的共享内存页的最大大小。缺省情况下,SHMALL 设置为8 GB(8388608 KB = 8 GB)。安装TimesTen之前,我们需要将上述两个参数设置为不低于实际的物理内存的大小。如系统的实际物理大小为4G,则需要设置SHMMAX为1024*1024*4 = 4194304; 而由于SHMALL 缺省为8G,可以不用修改。但如果系统的实际物理内存超过8G ,则须修改SHMALL的值为实际的大小。内核参数信号量由以下四个标记组成:SEMMSL、SEMMNS、SEMOPM 和SEMMNI。

● SEMMSL每个数组的最多信号量个数

● SEMMNS系统范围内最多允许的信号量个数

● SEMOPM每次semop 调用的最大操作数

● SEMMNI最多允许的数组个数

在TimesTen中,一般在文件/etc/sysctl.conf 文件中加入下行设置,且重启服务器使之生效kernel.sem = “250 32000 100 100″ 上行kernel.sem设置了如下的四个值:

SEMMSL=250

SEMMNS=32000

SEMOPM=100

SEMMNI=100

IPCS – l 命令返回的Message部分说明了系统上的消息:MSGMNI 将影响可以启动的代理进程数,MSGMAX 将影响一个队列中可以发送的消息大小,而MSGMNB 将影响队列大小。TimesTen对这一块倒是没有特别的要求,但一般来说,在服务器系统上,将MSGMAX 一般设置为64 KB(即,65535 个字节),MSGMNB 设置为65535。/*另外也可以通过下列命令来检查或修改相应的内核参数,以下操作需要root权限,检查shmmax值*/

[root@west-mountain root]# /sbin/sysctl -a |grep shmmax

timesten双机热备

一. timesten to timesten 1.首先关了两机的防火墙 #iptables -Z #iptable -F 2.装jdk(好像也可以不装) 3..安装timesten. 3.同步两机时间 date 010*********(月日时分年) 4. 增加数据库用户 [timesten@flypig timesten]$ source ~timesten/.profile [timesten@flypig]$ttisql TT_tt70 Command> create user imdb identified by 'imdb'; Command> grant ddl,admin to imdb; Command> grant write to imdb; Command> grant SELECT to imdb; Command> quit 5. 增加用户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.so DataStore=/opt/TimesTen/imdb/imdb DatabaseCharacterSet=ZHS16GBK ConnectionCharacterSet=ZHS16GBK Authenticate=0 UID=imdb PWD=imdb #ipcs memory size(M),该内存大小必须比shmmax小,否则用户DSN会进不去#PermSize=5000 #Connections=2047 #permsize*20% #TempSize=1000 CkptFrequency=600 CkptLogVolume=256

ceph分布式存储介绍

Ceph分布式存储 1Ceph存储概述 Ceph 最初是一项关于存储系统的PhD 研究项目,由Sage Weil 在University of California, Santa Cruz(UCSC)实施。 Ceph 是开源分布式存储,也是主线Linux 内核(2.6.34)的一部分。1.1Ceph 架构 Ceph 生态系统可以大致划分为四部分(见图1):客户端(数据用户),元数据服务器(缓存和同步分布式元数据),一个对象存储集群(将数据和元数据作为对象存储,执行其他关键职能),以及最后的集群监视器(执行监视功能)。 图1 Ceph 生态系统 如图1 所示,客户使用元数据服务器,执行元数据操作(来确定数据位置)。元数据服务器管理数据位置,以及在何处存储新数据。值得注意的是,元数据存储在一个存储集群(标为―元数据I/O‖)。实际的文件I/O 发生在客户和对象存储集群之间。这样一来,更高层次的POSIX 功能(例如,打开、关闭、重命名)就由元数据服务器管理,不过POSIX 功能(例如读和

写)则直接由对象存储集群管理。 另一个架构视图由图2 提供。一系列服务器通过一个客户界面访问Ceph 生态系统,这就明白了元数据服务器和对象级存储器之间的关系。分布式存储系统可以在一些层中查看,包括一个存储设备的格式(Extent and B-tree-based Object File System [EBOFS] 或者一个备选),还有一个设计用于管理数据复制,故障检测,恢复,以及随后的数据迁移的覆盖管理层,叫做Reliable Autonomic Distributed Object Storage(RADOS)。最后,监视器用于识别组件故障,包括随后的通知。 图2 ceph架构视图 1.2Ceph 组件 了解了Ceph 的概念架构之后,您可以挖掘到另一个层次,了解在Ceph 中实现的主要组件。Ceph 和传统的文件系统之间的重要差异之一就是,它将智能都用在了生态环境而不是文件系统本身。 图3 显示了一个简单的Ceph 生态系统。Ceph Client 是Ceph 文件系统的用户。Ceph Metadata Daemon 提供了元数据服务器,而Ceph Object Storage Daemon 提供了实际存储(对数据和元数据两者)。最后,Ceph Monitor 提供了集群管理。要注意的是,Ceph 客户,对象存储端点,元数据服务器(根据文件系统的容量)可以有许多,而且至少有一对冗余的监视器。那么,这个文件系统是如何分布的呢?

监控系统维保工作

监控系统维护的工作 系统维护的日常例行工作具体如下: 1、建立系统维护工作档案,详细记录各工程系统的日常维护工作,做到任何一个系统,都可以交由本部门任何一名技术人员随时进行,而不会因为缺少相关资料或不是本人经办而无法开展工作。 2、从系统交付使用开始,每月与用户的使用人员电话交流一次,做到系统的使用情况心中有数,对用户使用过程中碰到的各种问题耐心解答,使得用户可以用好系统,充分发挥系统的功能越作用,将种故障尽量消除在问题出现前。 3、从系统交付使用开始,每二个月对系统的情况进行一次例行检查,且尽可能邀请用户的使用人员陪同检查,同时可以对使用人员的使用和日常维护能力进行实际的进一步培训和提高。 4、从系统交付使用开始,每半年对系统的关键设备如闭路电视监控系统的摄像枪、云台、数码录像主机、彩显、监视器等,以及防系统的主机、探测器等器材,综合检查一次其工作性能,确保系统的运作情况良好。 5、从系统交付使用开始,每年对系统的所有设备和线路进行一次全面检查,尽量使得系统的性能维持在交付使用时的良好状态。对于由于使用时间过久,而性能偏差太大影响系统的整体效果的,应该尽量说服用户予以更换,以确保系统的正常使用。 维修保养工作的具体运作:

1、行政部应该将所有用户的相关情况整理归档,接待并整理好用户的报障记录。 2、每天上班后即将待处理的报障记录交给售后服务经理,售后服务经理可以根据具体情况安排工作。 3、行政部与售后部协作,建立维修工作记录卡,每次客户报障,从接到电话,到派出相关技术人员前往处理,以及处理过程,处理结果,用户意见均应有完整记录,并将其作为相关人员的工作考核标准,列入考核体系中。 4、一般的故障处理,售后服务人员应于接报后次日完成,主要设备的故障,影响系统使用的,在接报后4小时内完成处理,特别严重的故障引致系统瘫痪的,应在接报后2小时内到场。 5、按照国家相关规定落实保修工作,属于保修范围的,一定要保证用户得到保修服务,对于将会影响系统整体工作的器材,保修期间应该提供备用机,或根据现场情况,采取可行的办法使得用户可以继续正常地使用系统的基本功能,尽量减少由于保修工作对用户所造成的不便。 监控设备的维护方法: 为了做好监控设备的维护工作,维修中心配备相应的人力、物力(工具、通讯设备等),负责日常对监控系统的监测、维护、服务、管理, 承担起设备的维护服务工作, 以保障监控系统的长期、可靠、有效地运行。 1、维护基本条件

关系数据库、内存数据库、实时数据库的简单比较

关系数据库、内存数据库、实时数据库的简单比较 很多情况下,用户会将实时数据库与关系数据库混为一谈,实际上,这两类产品的设计理念及应用场合是完全不同的。 内存数据库就是将数据放在内存中直接操作的数据库,它利用内存的读写速度比磁盘快、内存是随机访问而磁盘是顺序访问这两个特点,将数据保存在内存中,在内存中模仿建立表结构和索引结构并针对内存特性进行优化,相比从磁盘上访问,内存数据库能够提高应用的性能。 而实时数据库不但利用了内存的特性,而且考虑到工控行业的应用特性,将关系数据库的表结构和表关系简化,以进行性能的优化,并针对工控行业的数据特性,对数据进行压缩处理。 关系数据库、实时数据库与内存数据库相比,有如下差别:

从以上的表格可以看出,内存数据库与关系数据库相比,速度快10-20倍左右,且具有与关系数据库类似的完整表结构,因此在电信业处理大量实时事务业务时经常用到,它也可以应用在工控行业,比如,在很多电力行业SCADA软件中,都包含了一个小型的内存数据库系统(但不是真正意义上的内存数据库),但是,在超大型SCADA软件中,它仍不能满足需求,因为它性能比实时数据库慢10倍,且不能解决历史数据存贮的问题,还存在因为掉电导致大量数据丢失的风险。 以上的比较,指标并不全面,也并不是说,实时数据库一定比关系数据库和内存数据库好,只能说,需要针对不同应用的不同需求,做出综合决策,选择最适合自己需要的数据库产品。 最后,列举一些典型的内存数据库产品: ■ Oracle TimesTen Oracle TimesTen是Oracle从TimesTen公司收购的一个内存优化的关系数据库,它为应用程序提供了实时企业和行业(例如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。Oracle TimesTen可作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用标准的 SQL 接口对完全位于物理内存中的数据存储区进行操作。 ■ Altibase Altibase是一个在事务优先的环境中提供高性能和高可用性的软件解决方案。它提供高性能、容错能力和事务管理能力,特别适合通信、网上银行、证券交易、实时应用和嵌入式系统领域。Altibase能够最大限度地发挥数据库服务系统的潜力,增强数据服务器的处理能力。Altibase支持客户端/服务器架构或

TimesTen在LINUX下的安装和使用

Oracle TimesTen 内存数据库在Linux下的安装和使用 (依据TimesTen版本11.2.1) 作者:秦诺 thor.qin@https://www.360docs.net/doc/706033376.html, 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.用户使用说明书 2.系统安装说明书 3.产品检验标准 4.产品组装工艺守则 5.民用闭路监控电视系统工程技术规范 GB50198-94 6.涉外建设项目安保电视系统设计规范 DBJ08-16-99 三.常用工具 在技术支持过程中,应常备如下设备或工具: 1.万用表,用于检查工程及设备电气状况 2.十字螺丝刀 3.光驱或USB启动设备 4. Windows 2000 Professional安装盘、监控系统安装盘 5.电线 四.日常维护要点 应定期对系统进行常规检查,以保持系统正常运行的条件,尽早排除事故隐患。主要检查事项有: 1. 系统运行环境是否正常,包括电磁、温度、湿度、振动、灰尘等情况; 2. 系统硬件的运行情况,各机械运动部件的运转情况,包括电源风扇、CPU 风扇、硬盘等,系统各部分散热情况是否良好; 3. 系统设备的安装情况是否发生变动;

4. 积灰情况,主要检查过滤网是否积灰严重,如果允许应检查机器内部的积灰情况尤其是CPU风扇的积灰。应定期清洗过滤网; 5. 系统供电情况,计算机及外围设备供电电压是否正常、稳定,系统接地是否良好; 6. 外围线路是否可靠、信号电压是否正常; 7. 系统附件(如键盘、鼠标等)是否正常工作; 8. 软件的运行表现,是否有运行缓慢或其它异常表现,包括监视图像质量和录像质量; 9. Windows临时目录及各硬盘的使用情况; 10. 监控系统的运行日志中是否有重复出现的错误; 11. Windows的系统日志中是否有异常; 12. 对于有权限进入Windows操作系统的用户,应检查是否安装了新的软件,系统设置是否改变。 五.故障检修准则 1.在发生系统故障时,现场支持人员首先应按照日常维护要点进行检查,对异常情况予以记录,不能急于更换配件; 2.当发生故障(尤其是硬件故障)时,按照电气线路中的输入到输出关系,应从接近故障表现位置开始从后端向前端检查; 3.检修过程中,除非常必要,尽量避免带电操作。如确需带电操作,也应尽量减少上电范围; 4.当需要变动系统硬件组成或电气线路时,必须保证系统已经断电以防检修过程中的意外损坏,断电应按照先主机后外围的顺序; 5.故障点确定以后,应根据故障的不同和用户合同条款,可采取如下措施 △ 替换,主要是那些无法维修或无法现场维修的故障,例如板卡等,替换配件时应根据系统配置选择适当的配件; △ 现场维修,主要是那些可以现场维修的故障问题,例如线路问题、配件安装不当等 △ 带回维修,主要是那些无法维修或无法现场维修的故障,例如板卡等;

监控设备的日常检查维护内容

监控设备的日常检查维护内容 2007-10-13 15:11 一、摄像镜头的维护保养 1每季由设备责任人拆下摄像机的防护罩进行内部清洁除尘,清洁除尘时须使用干燥、清洁的软布和中性清洁剂,以防止产生静电和腐蚀摄像机,并做好记录。 2对带云台的摄像镜头进行维修保养时,还需要对云台的机械部位加适量的润滑机油,以保证云台转动灵活。 3对效果不好的摄像镜头,必须及时调整好焦距、方向等,保证安装牢固,并由消防中心值班员确认符合安全使用要求。 4对室外监视摄像机进行维修保养,在每次清洁除尘、安装防护罩时,必须注意用防水胶圈或胶布密封接合部位,以防止雨水的渗入。 5在对摄像机清洁除尘时,必须注意不用手触摸摄像机镜头,只能用专业擦拭布或镜头纸对摄像机镜头进行擦试。 二、监控主机的维护保养 1每周由设备责任人对监控中心主机进行外部除尘,除尘时必须使用干燥、清洁的软布和中性清洁剂。 2每月由设备责任人检查视频线接头,如有松动,必须用额定功率在40瓦以下的电烙铁进行焊接处理,并检查接头与主机接口是否松动,以保证连接牢固,并做好检查记录。 3检查主机上的各种指示灯是否正常显示。

三、录像机的维护保养 1每周由弱电班值班人员对录像机进行外部除尘,除尘时必须使用干燥、清洁的软布和中性清洁剂。 2每月由设备责任人检查录像机的录像效果,必须保证录像机运转正常,录像效果清晰。如检查时发现录像效果模糊不全等现象时,必须查时原因,采取相关的措施,并做好记录向上级汇报。 3电源部份的维护保养 每半年由设备责任人对摄像机电源和控制中心内的监控设备电源的电压进行测量,并做好记录。 校园广播主要是为学生提供一个悠闲清新的环境,背景音乐、听力训练与上下课作息铃声是校园广播是必须的基本功能,对所有公共场所提供背景音乐,掩盖环境噪声,创造一种轻松、和谐、优雅、浪漫的气氛。根据需求我们只需在广播系统的前端加上一台智能控制主机,可实现定时将每天需固定播出的广播内容,按照预先排好的播放列表,到时自动播出到各个指定区域。 sxwy专业研发生产和销售公共广播和会议系统产品,并提供完善的售前、售中与售后服务。技术领先、品质优秀、服务贴心,是索想品牌一直坚持的企业管理理念,而“诚信”是我们的核心价值观。索想的一切行为都围绕“创造喜悦”这一企业理念而展开。为用户创造使用的喜悦,为中间商创造事业的喜悦,为员工创造成长的喜悦,为供应商创造合作的喜悦,为股东创造成功的喜悦。公共广播和会议系统产业,是高科技行业,早已突破了传统电子技术和电声技术的概念,数码技术和网络技术已经将这个行业推向了信息产业的领域。公共广播处于电声技术、安防技术、通讯技术的交叉处, 根据项目单位要求,在校园各主要干道两旁、绿化带、大门口、娱乐场所、小湖周边等位置安装公共广播系统,用来满足的背景音乐使用功能,覆盖噪音美化环境;满足在为人们提供优美动听的音乐的同时,还可为人们提供各种信息广播服务及消防、紧急事故广播服务本次广播系统的设计除了采用技术先进、功能完善的设备外,有关校园广播点的选择、广播范围、广播功能的设计、设备的配置以及整个系统的完整性、可靠性、开放性及整体的防范水平等与校园本身的功能分区相互适应,这将作为本设计的重点。校园广播目的主要为游客提供一个良好的、安全的优雅环境。

浅谈TimesTen内存数据库的结构_光环大数据培训

https://www.360docs.net/doc/706033376.html, 浅谈TimesTen内存数据库的结构_光环大数据培训 OracleTimesTenIn-MemoryDatabase(简称TimesTen或TT)是一种业界领 先的内存中关系数据库,2005年被oracle公司收购。TimesTen主要为电信、网络、证券交易等行业提供基础架构软件,并用这种软件进行事件管理、交易... 管理数据库存储HadoopOracle进程 朱亮云和恩墨技术专家,6年专职oracledba生涯先后服务于保险、金融、电信、百货等客户 OracleTimesTenIn-MemoryDatabase(简称TimesTen或TT)是一种业界领 先的内存中关系数据库,2005年被oracle公司收购。TimesTen主要为电信、网络、证券交易等行业提供基础架构软件,并用这种软件进行事件管理、交易和数 据的工作,支持的系统包括实时计费系统、股票交易系统、呼叫中心系统、航线 运营系统等。 TimesTen主要用于以下部署方式:1、用于独立的OLTP系统的内存数据库2、 用于Oracle物理数据库的内存缓存数据库3、在OracleExalytics的内存分析一般行业内,大多采用第一种和第二种方式使用TimesTen数据库。 文件结构 TimesTen数据库主要包括的文件有: 1、检查点文件主要用来记录和同步DataStore的内存数据,是内存在磁盘 上的一个镜像,类似于oracle数据库的数据文件。每个TimesTen实例有两个检 查点文件,在做检查点操作的时候会交替写入这两个文件,两个检查点文件之间 的存在一定的时间间隔。 在TimesTen数据库中,有两种类型的检查点:非阻塞检查点:非阻塞检查 点也被称为模糊检查点。这些检查点的频率可以通过应用程序进行调整。非阻塞 检查点不需要数据库上的任何锁,因此在检查点操作正在进行时,多个应用程序 可以在同一数据库上异步提交或回滚事务,它是一个不完全检查点,不必保证事 务的一致性。阻塞检查点:做该检查点操作时会加上数据库级别的锁,它是一个

(完整版)视频监控系统维保方案

菏泽天华集团会盟台 监控系统 维 保 说 明 技术支持: 菏泽金通电信讯息工程有限公司 2017.10

目录 一、系统概况 (3) 1、系统组成 (3) 2、系统拓扑图 (4) 二、维保服务内容 (4) 三、维保服务方式 (5) 1、系统全面排查 (5) 2、定期上门巡检服务 (5) 2、电话支持服务.............................................................. 错误!未定义书签。 3、现场技术服务.............................................................. 错误!未定义书签。 4、维护具体工作内容 (7) 四、响应时间及承诺............................................................ 错误!未定义书签。 五、监控系统包年维保报价及付款 ................................... 错误!未定义书签。 六、公司简介及相关业绩.................................................... 错误!未定义书签。 1、公司简介...................................................................... 错误!未定义书签。 2、相关业绩...................................................................... 错误!未定义书签。 七、维保相关表格 (11)

各公司管理系统使用地Ceph存储集群

Ceph 作为软件定义存储的代表之一,最近几年其发展势头很猛,也出现了不少公司在测试和生产系统中使用 Ceph 的案例,尽管与此同时许多人 Ceph 作为软件定义存储的代表之一,最近几年其发展势头很猛,也出现了不少公司在测试和生产系统中使用 Ceph 的案例,尽管与此同时许多人对它的抱怨也一直存在。本文试着整理作者了解到的一些使用案例。 1. 携程(Ctrip) 携程所使用的各种存储的现状: ?商业存储: ?SAN(HP/ HPS) , 1+ PB, 数据库 ?NAS (HW) , 800+ TB, 文件共享 开源存储 ?GlusterFS, 1+ PB, 数据库备份 ?FastDFS, 1+ PB, 海量照片 ?HDFS, 10+ PB, 大数据 而在不久的将来,随着公司业务的发展,携程需要的存储容量需要扩大到10倍以上。 携程选择Ceph的理由:低成本 + SDS + Scale-out + 统一存储 + 企业特性

携程目前的Ceph集群的配置: ?CephVersion: 0.94.2,H release ?Object Storage: RGW + Swift API ?SDK: Python/ Java/ C#/ Ruby ?OS: Centos 6.4 ?硬件:CPU(2 channels & 32 Core)、Mem128GB、disk(12*3TB/SATA disk +2*256GB raid1 SSD)、NIC(4*Gigabit LAN, bond 2 in 1 pair) RGW 使用架构:

携程有在数据中心之间的同步数据的需求。在研究了 CRUSHmap、Radosgw-agent、Federate gateway (不稳定、不灵活(只支持Zone 之间同步)、不易扩展)后,其自研了COS方案,它具有稳定、灵活、扩展性等特点:

在线监测系统维护手册样本

公用产品质量在线监测系统项目 系 统 维 护 手 册 山东煌通数码科技有限公司 版本: 0.8 编制人: 审核人: 审批人: 日期: 日期: 日期: 版本修订历史记录:

目录 1. 引言.................................. 错误!未定义书签。 1.1 编写目的: .......................... 错误!未定义书签。 1.2 项目背景: .......................... 错误!未定义书签。 1.3 定义: .............................. 错误!未定义书签。 1.4 参考资料: .......................... 错误!未定义书签。 2. 任务概述.............................. 错误!未定义书签。 2.1 目标................................ 错误!未定义书签。 2.2 用户类型............................ 错误!未定义书签。 2.3 条件与限制.......................... 错误!未定义书签。 3. 总体部署结构描述...................... 错误!未定义书签。 3.1 系统运行方法........................ 错误!未定义书签。 3.2 日常检查项目........................ 错误!未定义书签。 3.3 数据库维护.......................... 错误!未定义书签。 3.3.1 添加新的终端( 非OPC的) ........... 错误!未定义书签。 3.3.2 添加新的OPC终端................... 错误!未定义书签。 3.4 数据核对............................ 错误!未定义书签。 3.4.1 检查终端连接状态................... 错误!未定义书签。 3.4.2 检查实时数据....................... 错误!未定义书签。

Timesten重建用户,datastore

Timesten重建用户,datastore 一、实例背景: 在测试环境中需要在内存库上将bill用户下的所有对象全部删除,然后再从正式环境中将其bill用户下的对象导入测试环境的bill用户下。 二、操作总结(比较白话,没有直接写最终的操作方法,而是记录了所有错误经过) 1、沿袭操作ORACLE数据库的思想,在这种情况下,一般会首先DROP掉bill用户(drop 用户的同时,删除该用户下所有对象),然后重建bill用户,再从正式环境中将其bill 用户下的对象导入测试环境的bill用户下。 操作步骤: Command> drop user bill; 15167: Cannot drop a user that is currently connected 第1种报错:很明显,oracle也有这样的情况,当前有链接,不能drop,停下应用应该就能避免这个错了,还这么报错的话就不知道是谁连这个库了,直接杀session吧! 是不是要问怎么杀session,我当时也这么问自己的,很自然的就想当然一把,借鉴一下oracle的经验吧,从v$session系统视图里找出要杀的session,alter system kill session。。。其实压根不是这么回事,因为根本就没有v$session这么个视图,怎么办呢,timesten肯定不会杀不了session的,最笨的办法就是先把tt库停了,ttDaemonAdmin –stop,(停之前做个Command>call ttckpt;)然后再起来ttDaemonAdmin –start,这样以前的不管什么session也没了;可是这样太粗鲁了,咱们还是有温柔一点的方法的,ttxactadmin dsn 这条命令就能解决啦,是不是很难记,光记个起停就很烦了,其实执行下这个命令就知道这就是查出支持那个session的系统PID,查出来直接kill,既然是要找个pid,那ps –ef 足够了。 OK,经过一番努力session终于杀死了,重新drop下试试吧! Command> drop user bill; 15168: Cannot drop a user that owns database objects (TABLE BILL.A) The command failed. 第2种报错:看字面意思就是,不能删除有对象的用户,换句话说不就是删用户前要先把它的对象都删了,查看了下Timesten的文档对于drop user的描述: Description Before you can drop a user: ?The user must exist either internally or externally in the database. ?You must drop objects that the user owns. ?When replication is configured, this statement is replicated.

ceph集群维护手册

Ceph群集维护简明手册 (2) 前言 (2) MON (2) MON节点添加 (3) MON节点删除 (4) MON故障恢复 (4) OSD (6) OSD添加 (6) OSD删除 (6) 日志迁移 (6) 硬盘更换 (7) RBD (7) 块存储的基本操作 (7) 快照 (10) 导入导出 (11) 增量备份与恢复 (12)

Ceph群集维护简明手册 作者: 普通人 前言 本手册针对已部署完成ceph集群进行阐述(通过ceph-deploy工具),部署架构图如下: MON 环境配置 节点 主机名 Public ip address Cluster ip address Admin/ceph ubuntu-ceph-06 192.168.0.24 10.10.0.6 ceph ubuntu-ceph-07 192.168.0.25 10.10.0.7 ceph ubuntu-ceph-06 192.168.0.26 10.10.0.8

在管理节点的配置目录下,使用ceph-depoloy工具添加新的mon节点。 1.更新配置文件,添加新mon的信息 2.推送新的配置文件到所有节点,或者在添加时覆盖(ceph-deploy会提示) 3.使用ceph-deploy工具添加MON新节点 root@ubuntu-ceph-06:/opt/ceph# ceph-deploy mon create ubuntu-ceph-08 [ceph_deploy.cli][INFO ] Invoked (1.4.0): /usr/bin/ceph-deploy mon create ubuntu-ceph-08 [ceph_deploy.mon][DEBUG ] Deploying mon, cluster ceph hosts ubuntu-ceph-08 [ceph_deploy.mon][DEBUG ] detecting platform for host ubuntu-ceph-08 ... [ubuntu-ceph-08][DEBUG ] connected to host: ubuntu-ceph-08 [ubuntu-ceph-08][DEBUG ] detect platform information from remote host [ubuntu-ceph-08][DEBUG ] detect machine type [ceph_deploy.mon][INFO ] distro info: Ubuntu 14.04 trusty [ubuntu-ceph-08][DEBUG ] determining if provided host has same hostname in remote [ubuntu-ceph-08][DEBUG ] get remote short hostname [ubuntu-ceph-08][DEBUG ] deploying mon to ubuntu-ceph-08 [ubuntu-ceph-08][DEBUG ] get remote short hostname ………………..] **************************************************************************** [ubuntu-ceph-08][DEBUG ] status for monitor: mon.ubuntu-ceph-08 [ubuntu-ceph-08][DEBUG ] { [ubuntu-ceph-08][DEBUG ] "election_epoch": 0, [ubuntu-ceph-08][DEBUG ] "extra_probe_peers": [ [ubuntu-ceph-08][DEBUG ] "192.168.0.24:6789/0", [ubuntu-ceph-08][DEBUG ] "192.168.0.25:6789/0" [ubuntu-ceph-08][DEBUG ] ], [ubuntu-ceph-08][DEBUG ] "monmap": { [ubuntu-ceph-08][DEBUG ] "created": "0.000000", [ubuntu-ceph-08][DEBUG ] "epoch": 14, [ubuntu-ceph-08][DEBUG ] "fsid": "fc989fb1-eea9-47f4-83e1-999c47df0930", [ubuntu-ceph-08][DEBUG ] "modified": "2015-08-19 02:50:54.480663", [ubuntu-ceph-08][DEBUG ] "mons": [ [ubuntu-ceph-08][DEBUG ] { [ubuntu-ceph-08][DEBUG ] "addr": "192.168.0.24:6789/0", [ubuntu-ceph-08][DEBUG ] "name": "ubuntu-ceph-06", [ubuntu-ceph-08][DEBUG ] "rank": 0 [ubuntu-ceph-08][DEBUG ] }, [ubuntu-ceph-08][DEBUG ] { [ubuntu-ceph-08][DEBUG ] "addr": "192.168.0.25:6789/0", [ubuntu-ceph-08][DEBUG ] "name": "ubuntu-ceph-07", 添加mon节点也可以使用ceph-deploy mon add --address [ADDRESS] hostname

ceph安装配置说明

ceph安装配置说明 一、环境说明: 注:在配置系统环境时,需要指定各结点的机器名,关闭iptables、关闭selinux(重要)。相关软件包: ceph-0.61.2.tar.tar libedit0-3.0-1.20090722cvs.el6.x86_64.rpm libedit-devel-3.0-1.20090722cvs.el6.x86_64.rpm snappy-1.0.5-1.el6.rf.x86_64.rpm snappy-devel-1.0.5-1.el6.rf.x86_64.rpm leveldb-1.7.0-2.el6.x86_64.rpm leveldb-devel-1.7.0-2.el6.x86_64.rpm btrfs-progs-0.19.11.tar.bz2 $src为安装包存放目录 二、内核编译及配置:

cp /boot/config-2.6.32-279.el6.x86_64 /usr/src/linux-2.6.34.2/.config make menuconfig #选择把ceph编译成模块和加载btrfs文件系统

make all #若是多核处理器,则可以使用make -j8命令,以多线程方式加速构建内核makemodules_install make install

修改/etc/grub.conf文件,把新编译的linux-2.6.34.2版本内核做为默认启动内核。三、Ceph安装配置: 先安装相关依赖包: rpm -ivh libedit0-3.0-1.20090722cvs.el6.x86_64.rpm --force rpm -ivh libedit-devel-3.0-1.20090722cvs.el6.x86_64.rpm rpm -ivh snappy-1.0.5-1.el6.rf.x86_64.rpm rpm -ivh snappy-devel-1.0.5-1.el6.rf.x86_64.rpm rpm -ivh leveldb-1.7.0-2.el6.x86_64.rpm rpm -ivh leveldb-devel-1.7.0-2.el6.x86_64.rpm 编译安装ceph: ./autogen.sh ./configure --without-tcmalloc --without-libatomic-ops make make install 配置ceph: cp $src/ceph-0.61.2/src/sample.ceph.conf /usr/local/etc/ceph/ceph.conf cp $src/ceph-0.61.2/src/init-ceph /etc/init.d/ceph mkdir /var/log/ceph #建立存放ceph日志目录。 修改ceph配置文件,除客户端外,其它的节点都需一个配置文件ceph.conf,并需要是完全一样的。这个文件要位于/etc/ceph下面,如果在./configure时没有修改prefix的话,则应该是在/usr/local/etc/ceph下: vimceph.conf [global] max open files = 131072 log file = /var/log/ceph/$name.log pid file = /var/run/ceph/$name.pid keyring = /etc/ceph/keyring.admin auth supported = none #取消挂载时的认证 auth cluster required = none #取消挂载时的认证 auth service required = none #取消挂载时的认证 auth client required = none #取消挂载时的认证 [mon] mon data = /data/$name

环境监控系统日常维护手册 - 文库

地铁环境监控系统日常维护手册 1.1. 监控系统运行现状描述 为了保证本地区监控端局数据的实时性、准确性,监控系统中,各单元的运行与维护检查工作,一直属于重要工作内容。通过不懈的努力,对当前监控系统的各子系统进行重点设备的定期优化与日常维护相结合的办法,使得监控中心各单元系统没有发生过重大监控事故,有力的支撑了监控系统的正常运转,提高了监控基站环境数据的可靠性。 然而,由于站点基数过大、分布过广、设备使用环境恶劣、局方网络优化较快(割接、拆迁)等因素存在,部分监控基站仍有故障发生,截至目前,包括郊县、市区在内,仍有多起故障需现场处理解决;加上日常的监控中心的各项日常工作,维护工作的任务仍然十分紧张与繁重。 1.2. 监控系统维护现状分析 l 系统化、条理化是维护工作的核心内容。 通过整理监控维护经验,当前成都地区的维护工作主要包括了监控数据的日常分析、设备的例行检查、数据优化、故障告警处理等几大部分。根据维护内容,进行维护工作的开展,在完成每日例行检查的基础上,对属于数据的问题,原则上都能在第一时间内得到处理,与今年前半年相比,系统稳定性大大增强。 l 日常巡检与定期系统检修相结合,将减少监控故障的产生。 本年度九月下旬,经过网管值班人员统计的一份监控基站资料显示,郊县监控故障基站占到了整个郊县监控基站总数的5.8%,而市区监控故障基站则达到了6.6%,轨道交通技术监控故障基站的比例非常高。通过十月份未开始的一次大规模的巡检后,共处理了40起监控故障基站,大大减少了监控故障基站数量。以上情况充分说明了,开展定期巡检工作的作用,不言而喻。而日常的巡检工作,将保证故障问题在较短的时间内得到处理。为系统的高效运行,提供保障。 l 监控网管中心值班值班工作十分重要,直接关系到系统运行的效率问题。 通过最近两个月,网管人员对的数据的核查与基站数据的整合工作,清理出近200起监控故障是由于局方的数据问题、传输故障、拆迁、BTS无插口引起的,数目十分惊人,占到了监控基站总数的14.2%。这从侧面也反映出了,监控中心工作人员的重要性,防止了因其它原因,造成了监控故障的产生与对故障的定位不准等问题。 根据以往维护经验,维护工作的前期主要工作量都集中在监控网管中心,如:分析告警、判断故障、优化数据等。为了提高维护效率,针对环境与设备监控系统网管中心进行的日常维护梳理工作将十分必要。

Ceph-原理-安装-维护-Centos7

Ceph在存储中的层次 第一层:物理存储介质。 a.LUN:通常将硬件生成生成的虚拟磁盘叫LUN, 比如raid卡生成的虚拟磁盘。 b.Volume:通常将软件层次生成的虚拟磁盘叫做卷,比如LVM生成的逻辑卷。 c.Disk:就是物理磁盘 第二层:内核层次的文件系统,维护文件到磁层磁盘的映射关系。(用户一般不需要管) 第三层:应用层次的文件系统(需要用户自己手工安装应用程序,启动应用进程) 第四层:网络文件访问系统NFS, CIFS(服务器端装Server,客户端装Client,挂载目录远程访问) Ceph原理

1.Ceph存储系统的逻辑结构 2.Rados的系统逻辑结构 3.Ceph寻址流程

4.ceph部署网络拓扑 备注:Cluster Network可选,但是最好建议有该网络,用于OSD扩展时,后端网络传输数据用。 在实际工作中时,深有体会,如果只有public network,在OSD扩展时,由于ceph需要重新“搬运”数据,导致升级长达5个小时。如果有专门的集群网络(万兆交换机+光钎),几分钟升级完成。 Ceph安装(ceph-deploy) 1.环境准备以及各ceph节点初始化 ?部署逻辑架构 节点安装组件备注

该章节的操作均通过root执行且在各个ceph节点均要执行 ?修改/etc/hostname #vi /etc/hostname #如果为其他节点调整为其他节点的名称 ceph{number} #如ceph1 #hostname -F /etc/hostname #立即生效,断开shell重新登录 ?创建安装用户irteam且该用户不需要tty #useradd -d /home/irteam -k /etc/skel -m irteam #sudo passwd irteam #echo " irteam ALL = (root) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/irteam #chmod 0440 /etc/sudoers.d/irteam 修改/etc/sudoers,irteam用户不需要tty #chmod 755 /etc/sudoers #vi /etc/sudoers #添加如下配置,而不是将原来的Default requiretty注释掉 Defaults:irteam !requiretty #chmod 440 /etc/sudoers ?yum源以及ceph源设置 #yum clean all #rm -rf /etc/yum.repos.d/*.repo #wget -O /etc/yum.repos.d/CentOS-Base.repo https://www.360docs.net/doc/706033376.html,/repo/Centos-7.repo #wget -O /etc/yum.repos.d/epel.repo https://www.360docs.net/doc/706033376.html,/repo/epel-7.repo #sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo #sed -i 's/$releasever/7.2.1511/g' /etc/yum.repos.d/CentOS-Base.repo #vi /etc/yum.repos.d/ceph.repo #增加ceph源 [ceph] name=ceph baseurl=https://www.360docs.net/doc/706033376.html,/ceph/rpm-jewel/el7/x86_64/ gpgcheck=0 [ceph-noarch] name=cephnoarch baseurl=https://www.360docs.net/doc/706033376.html,/ceph/rpm-jewel/el7/noarch/ gpgcheck=0 ?安装ceph #yum makecache #yum install -y ceph

相关文档
最新文档