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)
 
 
原文地址:https://www.cnblogs.com/lizm166/p/8533398.html