Sybase:SAP IQ学习笔记
Sybase:SAP IQ学习笔记
-- 启动IQ管理
>> start_iq -n utility_db -n utility_db
>> dbisql -c "uid=dba;pwd=sql;eng=utility_db;dbn=utility_db"
-- 创建数据库
CREATE DATABASE 'D:\\SyLabs\\data\\mydb'
CASE IGNORE
PAGE SIZE 4096
BLANK PADDING ON
IQ PATH 'D:\\SyLabs\\data\\mydb'
IQ SIZE 200
IQ PAGE SIZE 131072
DBA USER 'dba'
DBA PASSWORD 'sql'
-- 启动mydb
start_iq mydb
-- 连接到mydb
dbisql -c "uid=dba;pwd=sql;eng=mydb;dbn=mydb"
-- 为temp dbspace添加dbfile
ALTER DBSPACE IQ_SYSTEM_TEMP ADD FILE ds_tmp 'D:\\SyLabs\\data\\mydb_temp' SIZE 200;
-- 创建用户dbspace,并添加dbfile
CREATE DBSPACE user_ds USING FILE ds_f1 'D:\\SyLabs\\data\\ds_f1' SIZE 200;
ALTER DBSPACE user_ds ADD FILE ds_f2 'D:\\SyLabs\\data\\df_f2' SIZE 200;
-- 创建测试表,添加数据
CREATE TABLE TEST1(F_ID INT, F_NAME VARCHAR(32)) IN USER_DS;
INSERT INTO TEST1 VALUES(101, 'FOO');
INSERT INTO TEST1 VALUES(102, 'BAR');
/* 移除dbfile */
-- 首先设置要移除的dbfile属性为readonly
ALTER DBSPACE user_ds ALTER FILE ds_f1 READONLY;
-- empty要移除的dbfile
SP_IQEMPTYFILE ds_f1;
-- 删除dbfile
ALTER DBSPACE user_ds DROP FILE ds_f1;
-- 查看dbfile信息
SP_IQFILE;
-- 查看options
sp_iqcheckoptions;
sa_conn_properties;
sa_conn_options;
SET OPTION PUBLIC.FORCE_NO_SCROLL_CURSORS='ON';
SET OPTION PUBLIC.STRING_RTRUNCATION='OFF';
SET OPTION PUBLIC.DEFAULT_DBSPACE='USER_DS';
SET OPTION PUBLIC.INDEX_ADVISOR='ON';
SET OPTION PUBLIC.INDEX_ADVISOR_MAX_ROWS=1000;
SP_IQCHECKOPTIONS;
-- grant 用户
GRANT CONNECT TO u1 IDENTIFIED BY '123456';
-- 添加用户u2,密码为sybase
SP_IQADDLOGIN 'u2', 'sybase'
-- 数据库的备份和恢复
/* 版本信息
每个客户端操作时会产生一个版本,执行commit版本提交消除。
*/
-- 查看otherversion信息
sp_iqversionuse;
/*
* 当IQ version过多导致IQ性能下降时,执行
sp_iqversionuse
* 查看当前version信息;
* 然后执行
sp_iqconnection
* 查看IQ连接信息connID;
* 再通过
sp_iqcontext
* 查看连接是否有任务在执行,如果没有,可以通过
drop connection
* 语句断开该连接。
*/
/* multiplex IQ集群
* 在单节点上设置IQ集群,将本地数据库转换为multiplex
*/
-- start_iq启动coordinator
>> start_iq @params.cfg -n mpxnode_c -x "tcpip{port=2763}" mydb.db
-- 连接到coordinator
>> dbisql -c "uid=dba;pwd=sql;eng=mpxnode_c;dbn=mydb"
-- create multiplex server
CREATE MULTIPLEX SERVER mpxnode_w1 DATABASE 'D:\\SyLabs\\data2\\mydb.db'
HOST 'localhost' PORT 2957 ROLE WRITER STATUS INCLUDED
-- 重新启动coordinator
>> start_iq @params.cfg -n mpxnode_c -x "tcpip{port=2763}" mydb.db
-- 备份catalog信息
>> dbbackup -y -d -c "uid=DBA;pwd=sql;links=tcpip{port=2763};eng=mpxnode_c" D:\\SyLabs\\data2
-- 进入节点db所在目录,重置log信息
>> cd D:\\SyLabs\\data2
>> dblog -r -t mydb.log mydb.db
-- 启动节点db
>> start_iq @params.cfg -n mpxnode_w1 -x "tcpip{port=2957}" mydb.db
-- 连接到节点IQ
dbisql -c "uid=DBA;pwd=sql;eng=mpxnode_w1;links=tcpip{port=2957}"
-- 添加临时dbspace文件
ALTER DBSPACE IQ_SYSTEM_TEMP ADD FILE mpxnode_w1_temp 'w1_temp1.iqtmp' SIZE 100
-- 之后使用mydb,不使用multiplex模式
start_iq @params.cfg -n mydb mydb.d
-- 启用IQ查询计划
set temporary option query_plan='On';
set temporary option query_detail='On';
set temporary option query_plan_after_run='On';
set temporary option query_plan_as_html='On';
set temporary option query_plan_as_html_directory='D:\\temp';
set temporary option query_timing='On';
IQ Store:
DBSPACES: IQ_SYSTEM_MAIN
默认只有一个DBSPACE,如果添加需要额外授权。
Catalog Store:
catalog.db文件;
catalog.log文件;
以上2个文件恢复数据库所需的文件,不能够删除或者修改!!!
必须放在文件系统上。
IQ Temporary Store:
params.cfg:
-c catalog缓存
-cl 缓存下限
配置和.db的文件大小一样
-ch 缓存上限
配置和-cl大小的4到8倍
-iqtc
-iqmc
-iqlm
(选择系统内存80%左右,三者内存分配建议为1:1:1)