You are on page 1of 90

Sybase IQ 技术交流

Sybase Shanghai
9/17/2014

Copyright 2008 Sybase, Inc. All rights reserved.


No part of this publication may be reproduced, transmitted, or translated in any form or by any means,
electronic, mechanical, manual, optical or otherwise, without prior written permission from Sybase, Inc.
冲向终点的瞬间
环法自行车赛
工欲善其事,必先利其器
真正的“冠军”是怎样炼成的
OLTP vs. OLAP

OLTP OLAP

应用特性 事务型,数据的插入,删除, 查询报表类,复杂分析


修改为主
事务总量 多 少

单个事务或查询时间 短(毫秒级) 长(分钟到小时)

并发度 高(几百到几千个) 低(几个到几十个)

涉及的数据量 小(几行) 大--海量(几千万-几千亿


行)
数据模型 三范式 多维模型

查询涉及的字段 所有字段(几十个) 个别字段(往往是几百个


中的几个)
传统行式数据库的挑战

没有单一数据库系统能够同时满足OLTP和OLAP类型的数据需求

传统行式数据库
内存数据库 列式数据库

更多事务处理 更大量数据的分析

OLTP 交易业务 OLAP 分析系统


IT瓶颈在哪里?

•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 …为智能分析而构建

高速实时 高性能 超快 高并发 客户端


数据加载 批量ETL 并行分析 报表 数据加载和查询

Kerberos – Authenticated ECC/RSA/FIPS-Encrypted Connectivity


R/W Node R/W Node R Node R Node R/W Node

Scale out Scale out


Node 1 Node 2 Node 3 Node 4 Node 5

高速内部互联

图形化系统管理
历史数据存储
近线数据存储
活动数据存储

Scale out Scale out

共享、压缩、分区的 列式数据存储
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

CREATE DATABASE full_path_db-name


... [ [ TRANSACTION ] { LOG ON [ log-file-name ]
[MIRROR mirror-file-name ] } ]
... IQ PATH iq-file-name
... [ IQ SIZE iq-file-size ]
... TEMPORARY PATH temp-file-name
... [ TEMPORARY SIZE temp-db-size ]
... [ CASE {RESPECT | IGNORE} ]
... [ PAGE SIZE page-size ]
... [ COLLATION collation-label ] [ ENCRYPTED
ON | OFF | key-spec} ] {... [ BLANK PADDING ON ] ]
... [ JAVA { ON | OFF } ]
... [ JCONNECT { ON | OFF } ]
... [ PASSWORD CASE {RESPECT | IGNORE} ]
... [ IQ PAGE SIZE iq-page-size ]
... [ BLOCK SIZE block-size ]
... [ IQ RESERVE sizeMB ]
... [ TEMPORARY RESERVE sizeMB ]
... [ MESSAGE PATH message-file-name ]
Create Database – dbspaces and Files

CREATE DATABASE full_path_db-name


[ [ TRANSACTION ] { LOG ON [ log-file-name ]
[MIRROR mirror-file-name ] } ]
IQ PATH iq-file-name
[ IQ SIZE iq-file-size ]
[ IQ RESERVE sizeMB ]
TEMPORARY PATH temp-file-name
[ TEMPORARY SIZE temp-db-size ]
[ TEMPORARY RESERVE sizeMB ]
[ MESSAGE PATH message-file-name ]
Environment Variables

 $SYBASE
 Set to the /sybase directory (should already be set)
 Contains up to three subdirectories
 ASIQ-12_7
 sybase-central (optional)
 OCS-15

/sybase

/OCS-15 /ASIQ-12_7 /sybcentral

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*

 The shell scripts will set all variables needed


for IQ
 ASIQ-12.7_sh – for Bourne or Korn shell
 ASIQ-12.7_csh – for ‘C’ shell
Continued …
Environment Variables

 $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
内存分配

 OS and other apps


 UNIX: 60MB,WIN: 30MB+
 IQ Server
 30MB,动态增长(load, Conn)
 IQ memory overhead
 User:10MB active/5MB idle
 Load, backup etc.
 IQ main buffer cache
 剩余可用内存的40%
 IQ temp buffer cache
 剩余可用内存的60%  维持I/O最小化
 消除OS页面调度
Dropping a Database

Removes a database and all of its contents


 Syntax:
DROP DATABASE db-filename

 Example:
DROP DATABASE 'D:\\mydb\\mydb.db'

 Drops database mydb


 Must specify the database file name defined during
the create database operation
 The database must be stopped before dropping
Server Configuration File

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 ]

 When creating a new dbspace, specify


logical and physical names
 Example:
CREATE DBSPACE mydb_tmp_2
AS 'e:\\s2\\data\\mydb_2.iqtmp'
IQ TEMPORARY STORE
SIZE 200
RESERVE 50

 Creates a 200MB file system dbspace for the


IQ temporary store with a 50MB reserve
Enlarging a Database: Sybase Central

 Click the DBspaces folder


 Click dbspace wizard icon
or
 In the right pane, right-
click
 Follow the wizard to add a
dbspace:
 Enter the dbspace name
 Click the type of store
 Enter filename and size
(or raw partition name)
 Click ‘OK’
Removing a dbspace

 An IQ store dbspace containing data cannot be


dropped
 Utilities exist to relocate data from one dbspace to
another to facilitate removing a dbspace
 This will be addressed later in the course
 IQ temporary store dbspaces can be dropped only if
empty
 If a database has been running for any length of time
it unlikely that the IQ temp store would be empty
 Restart the IQ server and immediately connect as DBA
 The IQ temporary store dbspace may then be dropped
IQ Database Configuration

 The SET OPTION command is changes database options


 Can change the database behavior for all users or
an individual user
 Changes can be either temporary or permanent
 Syntax:
SET [TEMPORARY] OPTION
[user_id. | PUBLIC.]option-name = [option-value]
 Example:
SET OPTION public.Force_No_Scroll_Cursors = ‘On'
 “Public” is a scope and applies to all database users

Continued …
Scope and Duration of Database
Options

 Scope refers to who the option applies to


 Public – affects all users
 User_id – affects an individual user or Group
 Individual User options override a PUBLIC setting
 Duration refers to the duration the option will
apply
 Public – permanent (or until changed)
 Restricted to DBA Authority
 Temporary – for the session duration
 Overrides a Public Setting
 Temporary … Public – permanent until IQ server is
rebooted
 Restricted to DBA Authority
Database Options

These options are typically changed for better performance


 Public.Force_No_Scroll_Cursors='On'; (default = 'off')
 Setting to 'On' prevent caching of user query results
 Turns of scrolling of result sets from start to end
 Public.Query_Temp_Space_Limit = 0; (default 2000 MB)
 The 2000 MB limit may be too low for some users
 0 sets no limit to the amount of Temporary Cache memory
 Public.Query_Plan = ‘Off’; (default ‘on’)
 Turns off printing of user query plans into the IQ Message
File
 These query plans will cause this file to grow rapidly
sp_iqcheckoptions

 A stored procedure to show any database options


that have been changed from the default value
Sybase IQ 简介
安装与管理
Sybase IQ 索引
AGENT

用户管理及安全性
事务管理及锁机制
监控与维护
备份与恢复
Sybase IQ Multiplex 架构
IQ的特殊存储方式——垂直存储

Sybase IQ: 数据是按列存储


的,而不是按行存储 Date
Date
Store
Store
State
State
Class
Class
Sales
Sales
3/1/96 32 NY A 6
3/1/96
3/1/96 32
36 NY
MA A A 9 6
好处: 3/1/96
3/1/96 36
38 MA
NY B A 5 9
 只存取查询所需的数据 3/1/96
3/1/96 38
41 NY
CT A B 11 5
3/1/96
3/1/96 41
43 CT
NY A A 9 11
 数据类型是一致的,因 3/1/96 43
46 RI B A 3
3/1/96 NY 9
而可以很容易被压缩 3/1/96 46
47 CT B B 7
3/1/96 RI 3
 数据库易于修改和管理 3/1/96 47
3/1/96 49 NY
CT A B 12 7
RDBMS data stored by ROWS
3/1/96 49 NY A 12
9种类型的索引
Fast Projection索引

缺省索引方式 传统的存储方法 IQ的存储方法


替代原始数据的存储位置
alpha alpha 1 1
基于压缩的单列的索引
alpha beta 2 1
beta gamma 3 2
gamma 3
beta 2
beta 2
传统的Bitmap索引

Bit Mapped Index for YES and NO


什么是位图索引(bitmaps)?
ROW ID YES NO
位图的每一位代表一个唯一的取值
True = 1 250 1 0
False = 0 251 0 1
位(Bit)的位置则对应于某个确定
252 0 1
的行标识(row ID) 253 0 1
254 1 0
用于低级数的索引 255 1 0
256 0 1
257 0 1
258 0 1
258 0 1
260 1 0
261 0 1
位图索引
针对州的位图索引
Row ID AK AL AR CA CO DC FL GA HI ID IN

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

Sales in binary form Sales in HNG form


Sales 8 bit 4 bit 2 bit 1 bit 8 bit 4 bit 2 bit 1 bit
6 0 1 1 0 0 1 1 0
9 1 0 0 1 1 0 0 1
5 0 1 0 1 0 1 0 1
11 1 0 1 1 1 0 1 1
9 1 0 0 1 1 0 0 1
3 0 0 1 1 0 0 1 1
7 0 1 1 1 0 1 1 1
12 1 1 0 0 1 1 0 0
•级数任意,数据以二进制形式存在
•数据垂直分割-任何一位都可以独立进行内部操作
•由于大量的0和1同时出现,因此数据的压缩比较容易实现
•Query Example:Select * where Sales>7
高基数分类索引——HG

• 适用于基数个数超过10,000的列 B-Tree
• 磁盘占用空间最大 Index
• 使用增强的B-Tree索引
• 对数据装载和查询有很大影响 a b c
• 适用以下操作场合: 1,2 4
– 连接(Join)
ptr
– 唯一性取值(Distinct) 操作
– 相等或不等操作
– 最小或最大操作 1011010101001

– 分组操作(Group by) 1010001001001


0010100101010
CMP索引

该索引用在同一个表中经常会发生比较操作的两个同类型列之间

最佳使用场合:
<, =, > 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

sp_iqcheckdb ‘mode target […] [resources resource-percent]’


 检查数据库/表/索引的一致性
 参数用单引号括起,小于255bytes
 mode : allocation | check | verify | repair
 target: [main | local] database | database resetclocks |
table table-name | index index-name
 resource-percent: 可选,限定可用CPU资源
 sp_iqdbstatistics报告最后一次sp_iqcheckdb的结果
 Future Version Errors
 check期间有DLL命令执行
 不会报告‘Leaked Blocks’以及期间新创建的对象
 Leaked Blocks 是指块已经被分配但是没有使用
建库Buffer Cache

 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

Temp Counters O/P


Main Counters O/P
IQ Temp Store
IQ UTILITIES

 语法
IQ UTILITIES { MAIN | PRIVATE }
INTO dummy_table_name
START MONITOR monitor_options [...];
 Example:
create table monitor_table( a varchar(1));

IQ UTILITIES PRIVATE INTO monitor_table


START MONITOR '-summary -interval 20';
 停止监控
IQ UTILITIES { MAIN | PRIVATE }
INTO dummy_table_name STOP MONITOR;
常见问题

 数据库不能启动
 环境变量设置不准确
 网络/端口问题
 内存配置不当
 事务日志(.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

BACKUP DATABASE ... [{FULL|INCREMENTAL|INCREMENTAL SINCE FULL}] ...


[CRC ON | OFF] ... [ATTENDED ON | OFF] ... [BLOCK FACTOR integer] ...
[{VIRTUAL DECOUPLED | VIRTUAL ENCAPSULATED ‘shell_command’}] ...
TO 'archive_device ' [SIZE #of_KB integer ]
[ STACKER #of_tapes_in_stack integer ] ... [WITH COMMENT ’string’]

 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

RESTORE DATABASE 'db_file’


FROM 'archive_device' [FROM 'archive_device'] ... [ KEY key_spec]
... [RENAME dbspace_name TO ‘new_dbspace_path']
... [CATALOG ONLY]

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无限扩展能力

IQ–M IQ–M IQ–M IQ–M IQ–M

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

Fraud Detection Finance


App Client App Client

IQ1 IQ2 IQ3 IQ4


IQ IQ IQ IQ

4 8 4 8cpus
Sales Fraud Detection Finance
Application Application Application

Sales Data Fraud Detection Data Finance Data

Shared Disk Storage


配置项

 主机名
 主机名与IP地址的对应关系(hosts文件)
 端口号
 Server名称
 Catalog DBSpace路径
 DBSpace定义/路径
 为每个共享的 DBSpace 定义别名(符号链接)
 允许各个节点使用不同的物理路径
 每个Temp DBSpace可以使用本地文件系统,名称/路径可以不同
 为Local Store定义Local DBSpace

通过Central管理配置, 不要修改管理脚本!
Sybase IQ …为智能分析而构建

高速实时 高性能 超快 高并发 客户端


数据加载 批量ETL 并行分析 报表 数据加载和查询

Kerberos – Authenticated ECC/RSA/FIPS-Encrypted Connectivity


R/W Node R/W Node R Node R Node R/W Node

Scale out Scale out


Node 1 Node 2 Node 3 Node 4 Node 5

高速内部互联

图形化系统管理
历史数据存储
近线数据存储
活动数据存储

Scale out Scale out

共享、压缩、分区的 列式数据存储

You might also like