Professional Documents
Culture Documents
Sybase Shanghai
9/17/2014
OLTP OLAP
没有单一数据库系统能够同时满足OLTP和OLAP类型的数据需求
传统行式数据库
内存数据库 列式数据库
更多事务处理 更大量数据的分析
•I/O瓶颈(或内存储器存取瓶颈)
•Speed(Disk) << speed(RAM) << speed(CPU)
•CPU速度增长: 每年50%
•内存容量增长: 每三年增长4倍
•Disk吞吐量 : 过去的十年里只增长了2倍
列式数据库是革命性的
传统行式数据库
c c c c c c c c c
数据是按行存储的
…
r1
1 2 3 4 5 6 7 8 9
没有索引的查询使用大量I/O
r2 建立索引和物化视图需要花费大量时间和资源
r3
面对查询的需求,数据库必须被大量膨胀才能满
r4
足性能要求
r5
列式数据库
c c c c c c c c c
数据按列存储 – 每一列单独存放
…
1 2 3 4 5 6 7 8 9
r1
数据即是索引
r2 只访问查询涉及的列 – 大量降低系统IO
r3
每一列由一个线索来处理 – 查询的并发处理
r4
r5 数据类型一致,数据特征相似 – 方便压缩
What is Sybase IQ?
Sybase IQ是一个高度可扩展的关系型数据库,专门为分
析型应用与决策支持系统而设计,从而使数据仓库应用具有卓
越的查询性能与最低的总拥有成本
Sybase IQ …为智能分析而构建
高速内部互联
图形化系统管理
历史数据存储
近线数据存储
活动数据存储
共享、压缩、分区的 列式数据存储
Sybase IQ 简介
安装与管理
Sybase IQ 索引
AGENT
用户管理及安全性
事务管理及锁机制
监控与维护
备份与恢复
Sybase IQ Multiplex 架构
Sybase IQ Server
Sybase IQ Server
一个主机上的进程
Sybase IQ 系统的 ‘大脑’
用户通过连接Server访问IQ数据库中的数据
允许自定义配置
Sybase IQ Database
’one server-one database’ 设计
不推荐单个server中建多个数据库,用户可通过逻辑分离整合
Sybase Adaptive SQL Anywhere
ASA: 连通性、安全性、查询分析器、组件集成
IQ : 专利的存储技术、高性能的查询引擎;支持T-SQL与Watcom SQL
Windows平台: 由于DLL冲突问题, ASA与IQ Server不能共存
IQ Architecture
[单节点]
Sybase IQ Database
Dbspaces
Catalog store (metadata)
IQ store (data)
IQ temporary store (temporary data)
Server files
IQ message file
IQ server logs
Catalog store transaction log
DBSPACES
数据库文件的逻辑名称,文件系统或者裸分区
Catalog Store
逻辑名称:SYSTEM
传统的行式存储
文件系统,物理名称:dbname.db
元数据(系统表),系统、用户存储过程,随着对象增加动态增长
IQ Store
逻辑名称: IQ_SYSTEM_MAIN
压缩存储用户数据和索引
文件系统或裸分区,允许由多个组成,文件系统扩展名 .iq
IQ Temporary Store
逻辑名称: IQ_SYSTEM_TEMP
load数据期间build索引时排序数据,查询处理时排序和分组工作区
文件系统或裸分区,允许由多个组成,文件系统扩展名 .iqtmp
SERVER FILES
IQ Message Log
文件系统,物理名称: dbname.iqmsg
只读数据库日志: insert/delete信息、错误/状态信息、查询计划
Catalog Transaction Log
catalog store的事务日志
文件系统,默认.db同目录
不要移除,镜像保护,dblog程序管理维护
create, alter或drop对象命令、adding或removing用户、adding
或changing用户权限、adding或changing dbspace、针对catalog
中的用户数据的DML语句
IQ Server Logs
每次启动IQ的引擎日志文件,默认位于: $ASDIR/logfiles
允许-o参数重定向
IQ Architecture
[多节点]
Sybase IQ的技术参数
连接数无限制
最大CPU数:1,200,000颗
数据库大小:192PB
设备大小:最大4TB (依赖于具体操作系统)
设备个数:最多65,524
数据库高速缓冲:每个节点500GB
最大节点:12,000个,支持跨平台的多机集群模式
字段个数:每表45,000个
记录行数:281万亿条
IQ页大小 64k-512k
IQ运行的平台
HP Itanium
HP-UX PA-RISC
IBM AIX
Linux x86
Linux x86-64
Linux on Power
Sun Solaris SPARC
Sun Solaris x64
Windows x64/x86
IQ的优势
高速
面向即席查询设计,查询速度快
最佳全索引数据装载引擎
大大减少磁盘I/O
快速部署、实施
经济
维护成本低,无需为每一个查询优化
优异的数据压缩特性
节约磁盘存储
灵活
支持各种数据源:文本、DBMS
支持各种查询工具:BO、Cognos、MicroStrategy
开放的接口:ODBC/JDBC、Open Client/Open Server
高效地数据装载和更新能力
IQ提供业界最快速地全索引下的数
据装载,在TPC-H等测试中表明,数
据装载可达到30-50GB/小时;以前在
几十TB数据库建造往往需要花费几周
的时间,而Sybase IQ仅需要4天
秘诀是IQ中索引和数据是一体的
IQ提供稳定持续一致的装载效率,
无论表中有多少纪录,装载的速度保
持恒定
Sybase IQ 简介
安装与管理
Sybase IQ 索引
AGENT
用户管理及安全性
事务管理及锁机制
监控与维护
备份与恢复
Sybase IQ Multiplex 架构
安装需求
IQ 安装目录
Unix / Linux: 至少800MB
Windows: 至少375MB
数据库空间
IQ Store: 实际数据的70到100%
IQ Temporary Store:与用户数、索引和数据量相关; IQ Store的20到
25%
数据转储区
根据需要加载的原始文件大小决定
Swap
与物理内存大小一致
OS补丁安装及核心参数调整
安装环境
环境变量
安装路径 $SYBASE
Open Client: OCS-15_0, source $SYBASE/SYBASE.sh
IQ Server : source $SYBASE/ASIQ-12_7/ASIQ-12_7.sh
数据库管理员用户(DBA/SQL)
启停命令
start_asiq [config file] dbname [switches]
stop_asiq
连接客户端
ODBC/OLE-DB/JDBC/Open Client, Central, DBISQL, DBISQLC
demo库及utility数据库
验证安装,$ASDIR/demo, start_asiq @asiqdemo.cfg asiqdemo.db
utility库是一个空库,用于创建新库或者恢复数据库
启动选项
-c
-gm
-gc
-gd
-iqgovern
-iqmt
-iqtss
-ti / tl
-zo
-zr
-iqrec / f / droplks / m
创建数据库
STEP 1:数据库类型
主机? <---> ?IQ Server
Multiplex架构DBSPACE必须用裸分区
STEP 2:设备类型
推荐用裸分区,并创建符号连接
不推荐使用LVM,为每个CPU建1-2个DBSPACE
STEP 3:数据库空间
IQ Store
原始数据的75%
考虑因素: 数据重复值,数据类型,索引个数及类型
IQ Temporary Store
典型设为IQ Store的20%
考虑因素: HG索引加载,活跃用户数,用户查询复杂度
STEP 4:创建数据库
创建数据库(cont.)
建库途径
通过demo/其它数据库、Sybase Central、utility库
重要参数[建库后不可更改]
case - 默认sensitivity
password case - 默认跟case参数,ID始终跟case参数
page size - 默认4096bytes,可选4096,8192,16384,32768
iq page size - 默认131072,可选65536,131072,262144, 524228
• 32位WIN/LINUX平台推荐64K或128K;64位平台推荐128K或更大
• 数据库/表越大建议该参数也越大
block size - I/O单位,默认也强烈推荐由iq page size参数决定
collation - 默认ISO_BINENG,中文CP936 = ZHO936
java - 允许java过程,默认on
jconnect - 允许JDBC连接,默认on
Create Database – Full Syntax
$SYBASE
Set to the /sybase directory (should already be set)
Contains up to three subdirectories
ASIQ-12_7
sybase-central (optional)
OCS-15
/sybase
Continued …
Setting Environment Variables
$ASDIR
$ASDIR = $SYBASE/ASIQ-12_7
This directory contains the IQ server binary
directories
and shell scripts to set Unix environment variables*
bin/ lib/ /cxmp
charsets/ res/ /jxmp
include/ scripts/ /usrlib
java/ tix/
sample/ logfiles/ ASIQ-12_7.csh*
demo/ ASIQ-12.7_sh*
$SYBASE_OCS
$SYBASE_OCS = OCS-15
$PATH
The path must include the following:
$ASDIR/bin – for the IQ server binaries
$SYBASE_OCS/bin – for Open Client binaries
$ASLOGDIR (optional)
Specify a directory for IQ server log messages
内存分配
Example:
DROP DATABASE 'D:\\mydb\\mydb.db'
Example: params.cfg
Create a configuration -n megaphone_bet101
file for the database -c 32m
-gc 6000
Specify IQ server name -gm 10 # Connections
Specify port number -gp 4096 # Page Size
-ti 4400
Specify other options -tl 300
Can use the params.cfg -iqmc 100
file automatically -iqtc 150
created by Sybase Central
-n megaphone
- still need to edit, add -x tcpip{port=2640}
server name, etc..
Located in the same
directory as .db file
Other Useful Stored Procedures
sp_iqcheckdb
Checks the validity of the current database
sp_iqdbsize
Lists the size of the current database
sp_iqdbstatistics
Contains statistics for the IQ store
sp_iqspaceused
Shows information about space available and used in
both the IQ store and the IQ temporary store
Need to create a user-defined procedure to declare four
output parameters, example in lab 9
Enlarging a Database
Syntax:
CREATE DBSPACE dbspace-name AS filename
... { IQ STORE | IQ TEMPORARY STORE | IQ LOCAL STORE }
... [ [SIZE] file-size ]
... [ RESERVE sizeMB ]
Continued …
Scope and Duration of Database
Options
用户管理及安全性
事务管理及锁机制
监控与维护
备份与恢复
Sybase IQ Multiplex 架构
IQ的特殊存储方式——垂直存储
250 0 0 0 0 0 0 0 1 0 0 0
任意一行记录都可以
251 0 0 1 0 0 0 0 0 0 0 0
252 0 0 0 0 1 0 0 0 0 0 0
找到一个对应的州
253 1 0 0 0 0 0 0 0 0 0 0
254 0 0 1 0 0 0 0 0 0 0 0
255 0 0 0 0 0 0 0 0 0 0 1
256 0 0 0 1 0 0 0 0 0 0 0
257 1 0 0 0 0 0 0 1 0 0 0
258 0 0 0 1 0 0 0 0 0 0 0
259 0 0 0 0 0 0 0 0 0 0 0
260 0 1 0 1 0 0 0 0 0 0 0
261 0 0 0 0 0 确定所有CA的记录
0 0 0 0 1 0
262 0 0 0 0 0 0 0 0 0 1 0
263 0 0 0 0 0 0 0 0 0 1 0
264 0 0 0 0 0 0 0 1 0 0 0
265 0 1 0 0 0 0 0 0 0 0 0
266 0 0 0 0 0 0 0 0 0 0 0
267 0 0 0 1 0 0 0 0 0 0 0
268
269
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
看起来要存储
0
0
0
0
0
0
270 0 0 0 0 0 0 1 0 很多的数据….
0 0 0
Bit-Wise索引
针对州的位图索引
Row ID AK AL AR CA CO DC FL GA HI ID IN
250 1
251 1
252 1
253 1
254 1
255 1
256 1
257 1 1
258 1
259
260 1 1
261 1
262 1
263 1
264 1
265 1 IQ 只存储所有的 1
266
267 1 这就使索引非常小...
268 1
269 1
270 1
高基数Bit-Wise索引——HNG
• 适用于基数个数超过10,000的列 B-Tree
• 磁盘占用空间最大 Index
• 使用增强的B-Tree索引
• 对数据装载和查询有很大影响 a b c
• 适用以下操作场合: 1,2 4
– 连接(Join)
ptr
– 唯一性取值(Distinct) 操作
– 相等或不等操作
– 最小或最大操作 1011010101001
该索引用在同一个表中经常会发生比较操作的两个同类型列之间
最佳使用场合:
<, =, > in WHERE clause
IQ索引特性
快速加载, 快速查询
紧凑
比传统数据库使用更少得空间
缓存更多的数据在内存中
索引即数据
列式存储, 加快查询响应的秘诀,
IQ 索引类型的选择基于数据类型,基数,以及查询的列数
每种索引的存储和操作机制都不同
追加,更新和删除数据时增量rebuilding
Sybase IQ 简介
安装与管理
Sybase IQ 索引
AGENT
用户管理及安全性
事务管理及锁机制
监控与维护
备份与恢复
Sybase IQ Multiplex 架构
数据安全
实现数据安全机制的三个层面
用户
组
对象级
权限
DBA
DB/SERVER管理所有权限,允许授予其它用户
建库/备份/恢复必需
RESOURCE
在数据库中创建对象,由DBA权限的用户授予
REMOTE DBA
SQL Remote代理和MobiLink客户端所需
用户
创建
Sybase Central
GRANT CONNECT TO userid [,…] IDENTIFIED BY password [,…]
sp_iqaddlogin login_name, password, num_of_conn, pwd_expire
DBA用户
初始用户, 数据库管理员, 默认口令’SQL’应该立即更改
具有DBA、RESOURCE权限
如果建库时指定大小写不敏感,DBA用户ID和口令都大小写不敏感
管理
sp_iqmodifyadmin, IQ_USER_LOGIN_INFO_TABLE
系统存储过程
除sp_iqpassword, 需要DBA权限
组
创建
GRANT GROUP TO userid
GRANT MEMBERSHIP IN GROUP groupname TO userid
系统组
SYS - 拥有Catalog中系统表,没有/也不能创建成员用户
PUBLIC - SYS组成员,对部分系统表和视图具有只读权限,
新用户默认属于PUBLIC组
权限管理
GRANT { ALL|ALTER|DELETE|INSERT|REFERENCES|UPDATE|SELECT
[(column-name[,...])]...ON table-name TO userid[,...] [WITH GRANT OPTION]
层次: DBA - 独立用户 - 组
允许独立用户接替组权限,DBA用户接替所有权限
访问前缀: 除owner及与owner同组的用户,对象名前必须加owner前缀
Sybase IQ 简介
安装与管理
Sybase IQ 索引
AGENT
用户管理及安全性
事务管理及锁机制
监控与维护
备份与恢复
Sybase IQ Multiplex 架构
事务
SNAPSHOT VERSIONING
ANSI隔离级别3,表级VERSIONING
Version驻留磁盘,所有非更新versioning共享数据页
用户通过显示地COMMIT更新VERSIONING
事务模式
JDBC/Open Client: UNCHAINED
ODBC : CHAINED
有用的过程
sp_iqstatus
sp_iqtransaction
sp_iqcontext
sp_iqconnection
锁
获取写权限
用户可以通过’old’ table version读访问
所有连接(ODBC/JDBC/Open Client)遵循ANSI隔离级别3
DML
原则: 读不阻塞写,写不阻塞读
在已经以写模式访问的事务打开的表上,后续事务将收到一个错误
DDL
所有DDL命令获取一个DDL锁
同一对象同一时间只能有一个DDL锁,创建索引命令除外
DDL命令自动COMMIT
有用的过程
sp_iqlocks
Multiplex Versioning
新版本VERSIONING对读节点立即可用
读节点需要使用,写节点将一直保留老版本VERSIONING
DDL使用TLV记录(单节点不存在)
写节点进行DDL操作时数据对读节点继续可用
读节点通过IQ Store与更新后的Catalog访问变化后的对象
读写节点间通讯
消息代理 SQL Remote
写节点服务器进程,每个SERVER一个
Versioning Example
T1,两个用户同时读取三个表
Versioning Example
T2,一个写用户login,并开始插入数据到customer表
Versioning Example
T3,COMMIT提交变更
Versioning Example
T4,新的读用户login,将看到customer的V2
Versioning Example
T5, 读用户1和2发出COMMIT命令,或者退出后重新登陆
Sybase IQ 简介
安装与管理
Sybase IQ 索引
AGENT
用户管理及安全性
事务管理及锁机制
监控与维护
备份与恢复
Sybase IQ Multiplex 架构
监控用户
捕获SQL
启动参数(Server需要重新启动)
-zr {ALL|SQL|NONE}
-zo 重定向输出文件 (不需要引号)
-zs 限制日志文件大小 (bytes)
存储过程(交互式/无需重启)
call sa_server_option(‘ request_level_logging', 'SQL');
call sa_server_option(‘ request_level_log_file',
‘ sqllog.txt’);
select property( ‘ RequestLogFile');
select property( ‘ RequestLogging');
监控数据库
存储过程
sp_iqcheckdb
IQ UTILITIES
监控IQ活跃的Buffer Cache
收集它们的统计信息以及I/O,写入文件
Monitor
Monitor Language Processor
Temp
Main Catalog
Catalog Store
IQ IQ Temp Catalog
Store Store Store
IQ Store
语法
IQ UTILITIES { MAIN | PRIVATE }
INTO dummy_table_name
START MONITOR monitor_options [...];
Example:
create table monitor_table( a varchar(1));
数据库不能启动
环境变量设置不准确
网络/端口问题
内存配置不当
事务日志(.log)不匹配/找不到
操作系统补丁不满足要求
网络中Server名称不唯一
不能访问数据库/对象
帐户(ID/PWD/LOCK)
权限
连接数/启动时指定了-gd DBA
dbspace空间不足
Slows Down or Hangs
只是个别用户, 或者是所有用户
个别用户需要关注在处理什么
如果是所有用户,需要检查数据库或Server
通过 sp_iqcontext 查看正在执行的命令
页面切换会严重影响系统性能
检查 Buffer Caches
是否足够大, 但也不能太大
应用层
捕获SQL,检查索引使用情况
Sybase IQ 简介
安装与管理
Sybase IQ 索引
AGENT
用户管理及安全性
事务管理及锁机制
监控与维护
备份与恢复
Sybase IQ Multiplex 架构
备份
在线备份类型
Full
Incremental
Incremental-since-full
归档设备
磁盘文件系统
磁带, 不支持自动换带(支持DLT on UNIX,4mm DDS,8MM)
多卷备份时允许并行执行
备份时允许除元数据变更外的其它数据库操作
顺序
Catalog Store -> Transaction log -> IQ Store
手工复制备份 params.cfg
.log主要用于recovery,不是restore
BACKUP DATABASE
CRC:在每块上执行32-bit循环冗余校验,备份/恢复都将执行
该参数将影响这两个命令的执行效率
BLOCK FACTOR:备份时内存块分配因子,与页面大小及block size相关,
默认值 25(UNIX)/15(Windows NT)
IQ备份通过并行以及一些IO操作特性可以提高备份性能,
因此如果内存足够可用, Sybase 推荐设置BLOCK FACTOR 大于 25
SIZE:备份数据分卷大小,windows平台必须是64的倍数,无人值守磁带
备份必须指定
STACKER:带库备份,指定磁带位置
archive_device:最长 1023 bytes
TO:指定备份设备,使用多卷备份将利用并行功能提高备份效率
恢复
恢复特性
全量/增量恢复数据库
重定向设备位置
自动校验裸设备大小
多卷并行恢复
恢复环境
start_asiq -n utility_db –gd DBA
关于事务日志
全量恢复 - 必须不存在
增量恢复 - 必须存在
RESTORE DATABASE
db_file:绝对路径
CATALOG ONLY:显示数据库dump的头信息
RENAME:重新定位dbspace路径(.log不能)
维护事务日志
dblog 实用程序
重建事务日志
事务日志镜像
语法
dblog [options] database-file
选项
-t log-name (重命名事务日志)
-m mirror-name (设置事务日志镜像/-r 停止镜像)
Emergency Recovery
使用条件: 没有备份,没有事务日志,事务日志没有镜像,时间
限制
使用选项: start_asiq -n server_name [其它选项] -f
可能导致数据库损坏
Sybase IQ 简介
安装与管理
Sybase IQ 索引
AGENT
用户管理及安全性
事务管理及锁机制
监控与维护
备份与恢复
Sybase IQ Multiplex 架构
IQ-Multiplex无限扩展能力
CPU CPU CPU CPU CPU CPU CPU Mem CPU Mem
Mem CPU CPU Mem Mem Mem CPU Mem CPU Mem
CPU Mem CPU Mem Mem Mem CPU Mem CPU Mem
Fiber Channel
系统架构:
•共享数据存储
•不同节点快速同步,拥有独立的元数据和临时空间,
系统高度可靠,互不干扰
•各个接点可以使用不同的配置(CPUs, memory, disk)
•对高并发的最佳支持
应用举例
Sales Sales
App Client App Client
4 8 4 8cpus
Sales Fraud Detection Finance
Application Application Application
主机名
主机名与IP地址的对应关系(hosts文件)
端口号
Server名称
Catalog DBSpace路径
DBSpace定义/路径
为每个共享的 DBSpace 定义别名(符号链接)
允许各个节点使用不同的物理路径
每个Temp DBSpace可以使用本地文件系统,名称/路径可以不同
为Local Store定义Local DBSpace
通过Central管理配置, 不要修改管理脚本!
Sybase IQ …为智能分析而构建
高速内部互联
图形化系统管理
历史数据存储
近线数据存储
活动数据存储
共享、压缩、分区的 列式数据存储