在此页:
目标用户:
CAST AI 管理员
摘要:在安装CAST数据库(CAST 管理、分析、仪表盘和测量服务)之前,必须满足各种RDBMS的安装需求。此外修改目标RDBMS的某些配置设置可以增强和改进总体的“CAST体验”,因此CAST强烈推荐这样做。
请注意,如果使用CAST存储服务,则不需要满足安装要求——除非计划使用用户定义的表空间。请参见附录-CAST数据库-创建和配置选项以获取更多信息。
下面的子章节专门介绍每种受支持的RDBMS。在每一个章节中,都可以找到以下内容(如果CAST建议进行调整):
- 内存管理
- 硬盘管理
- 权限管理
- 大小写和核对管理
- 优化管理
- 其它
在详细介绍这些特定的DBMS实现之前,这里有一些一般的指导原则:
通用
托管分析服务的服务器与潜在参与服务器之间的排序兼容性
字符以不同的方式编码,称为“字符集”——一个例子是“ASCII”。存在许多不同的字符集。在20世纪90年代初,UNICODE被创建来编码任何字母表中的任何字符。不可能直接将用ASCII编码的字符串与用Unicode编码的另一个字符串进行比较(例),即使包含相同的正交元素。事实上,UNICODE编码的宽度是ASCII编码的两倍,排序将提供解决此问题的方法。
排序是指一组规则,用于确定如何对数据进行排序和比较。字符数据使用定义正确字符序列的规则进行排序。大小写的影响(这与Microsoft SQL Server/Sybase ASE: "CS" =区分大小写,"CI" =区分大小写相关),重音字符、kana字符类型的影响以及对存储宽度的敏感性:ASCII/EBCDIC使用2位,UNICODE使用4位。
区分大小写的样本
如果A和A、B和B等以相同的方式处理,则不区分大小写。计算机对待A和A是不同的,因为它使用ASCII码来区分输入。ASCII值“A”为65,“A”为97。“B”的ASCII值是66,“B”是98。
重音灵敏度样本
如果a和á, o和ó以相同的方式处理,那么它是不区分重音的。计算机对待A和A是不同的,因为它使用ASCII码来区分输入。“a”的ASCII值是97,“á”是225。“o”的ASCII值是111,“ó”是243。
宽度敏感性样本
如果将单字节字符(半宽度)和相同字符(双字节字符(全宽度)表示为不同的字符,则该字符对宽度敏感。
RDBMS如何管理排序和分类顺序?
- 在Sybase ASE中,大小写敏感(in)以及更一般的排序规则是全有或全无设置。在安装阶段,它是服务器范围的参数。因此,它同时应用于数据和存储库对象(表的名称、列的名称、存储过程等)。
- 在Microsoft SQL服务器上,大小写敏感 (in)和更一般的排序规则是在服务器级别定义的,但是每个数据库和列可以有不同的设置。这里有两个概念:特定对象(数据库或列)的排序规则和SQL 服务器实例的默认排序规则(至少包括主数据库、tempdb和模型数据库)。此外,与Sybase ASE类似,它们也适用于数据和存储库对象。
- 在Oracle服务器和IBM DB2服务器上,数据总是区分大小写的。但是对于dictionary对象,两个DBMS都只能使用大写,除非使用“”。
- 在CAST存储服务中,数据总是区分大小写的。
CAST和排序和分类顺序
使用上面的列表,当Microsoft SQL服务器承载CAST数据库或作为参与服务器(用于分析)时,或者当Sybase ASE服务器作为参与服务器(用于分析)时,可能会遇到一些问题。
目前可以分析Microsoft SQL Server / Sybase ASE,并将其存储在任何受支持的RDBMS上的CAST分析服务中。然而,在这两种环境中,目前附加到产品上的排序兼容性都有一些限制,如下表所示:
CS CAST 分析服务 | CI CAST 分析服务 | |
---|---|---|
CS 参与数据库/模式 |
| |
CI 参与数据库/模式 |
|
Notes
- CS指的是“区分大小写”
- CI表示“不区分大小写”
- 潜在问题是指在分析过程中可能没有正确识别或完全错过链接的可能性。
例如,对于case (CS,CI),如果所分析的整个代码集包含使用相同case的标识符,则不会出现链接相关的问题:
select * from T ; update T set x=2 ;
但是,使用另一个示例,如果不遵守前面的条件,那么在分析期间链接解析可能会失败。在下面的示例代码中,“t”和“t”是参与服务器的同一对象,但在CAST分析服务的排序中被标识为不同的对象。
select * from T ; update t set X=2;
检查支持版本
- 必须确保使用的是受支持的RDBMS。出于存储目的,CAST不再支持某些版本。请参见版本发布信息获得更多信息。
- 必须确保使用了在CAST管理工作站上正确安装的受支持的客户机/服务器API。请参见版本发布信息获得更多信息。
检查对网络的访问
- 如果CAST管理工作站没有物理的承载将承载存储项的RDBMS(即正在使用的专用计算机),请确保CAST管理工作站能够访问所需的网络资源。
Oracle
内存管理
下面是Oracle服务器中不同内存区域的基本值列表。请注意,这些只是建议,对于特定的RDBMS环境,这些值可能有所不同。一般来说,以下建议适用于配置如下的机器:
- 具有4GB RAM和一台不“专用于CAST”的机器(即正在运行其它进程)
- 在“专用于CAST”的机器上使用2GB RAM
Pools
Pool内存(SGA和PGA)可以通过OEM (Oracle 企业管理器)或SQL脚本进行更改。
通过Oracle 企业管理器(SGA和PGA)进行修改
如果可以访问Oracle 企业管理器,请使用下面的屏幕截图作为pool内存设置的示例。
SGA
PGA
请注意,可能需要禁用自动内存管理来修改SGA和PGA内存值。
通过SQL脚本修改
如果无法访问Oracle 企业管理器,可以使用SQL脚本命令(即通过SQL*Plus或等效命令)更改pool内存,如下所示。
请注意:
- 下面的命令都假设服务器使用spfile.ora(与init.ora相对的)。请参见Oracle服务器文档获得更多关于init.ora文件的信息。
- 还假设自动共享内存管理是禁用的。
- 必须以“超级用户”或“根用户”(sys或sysdba,而不是system)的身份登录才能执行以下命令。
使用的基本语法如下:
alter system set <parameter_name>='<value>' SCOPE=spfile;
举个例子:
alter system set SHARED_POOL_SIZE='190M' SCOPE=spfile; alter system set DB_CACHE_SIZE='570M' SCOPE=spfile; alter system set LARGE_POOL_SIZE='15M' SCOPE=spfile; alter system set JAVA_POOL_SIZE='20M' SCOPE=spfile; alter system set PGA_AGGREGATE_TARGET='500M' SCOPE=spfile;
如果想在修改之前检查上述任何参数的值,请使用以下语法:
show parameter <parameter_name>;
类别
Change via SQL*Plus:
sort_area_size | 1048576 (1 MB) |
sort_area_retained_size | = sort_area_size |
hash_area_size | = 2x sort_area_size |
硬盘管理
表空间
在专门用于CAST的Oracle服务器上安装新模式(通过CAST 服务管理器)时,需要指定表空间。可以是Oracle服务器上现有的表空间(用户、临时等等),也可以根据需要为数据、临时表、表和索引创建专用的表空间。
要创建表空间,使用CREATE TABLESPACE语句,例如:
CREATE TABLESPACE "CASTKB_DATA" NOLOGGING DATAFILE 'C:\ORACLE\ORADATA\WESLEY\CASTKB_DATA.ora' SIZE 500M EXTENT MANAGEMENT LOCAL
命令行中的表空间参数必须是唯一的。可以使用任何名称,但是CAST建议在选择新模式时使用相同的名称。例如,如果新模式名为“CASTTEST”,那么CAST建议使用:“CASTTEST_DATA”、“CASTTEST_TABLES”、“CASTTEST_INDEXES”等。
要确定表空间的大小,可以使用下表作为非常近似的指南(其中对象= CAST 管理、分析、仪表盘和测量服务中存储的对象:
对象 | 表空间 |
---|---|
1000 | 100MB |
2000 | 200MB |
5000 | 500MB |
10000 | 1GB |
撤消表空间
在分析过程中,根据分析的代码量,Undo表空间(回滚段)的大小有时可能超过3GB。确保undotbs参数的设置方式能使相关文件按需要增长(并且磁盘上也有足够的空间)。
此外,在生成快照之前,可能需要将Undo表空间(回滚段)的大小增加到存储在CAST 分析/仪表盘服务中的分析数据总量的两倍左右(有时可能需要两倍以上)。如果进行此调整,则必须在更新CAST系统视图之后、生成快照之前完成(即在分析过程之后完成——注意,在CAST管理器中,可以运行分析,生成一个快照作为两个单独的功能,从而允许根据需要调整Undo表空间)。在完成快照生成过程后,可以重置Undo表空间值。
归档日志选项
归档日志选项提供了一种跟踪对托管CAST分析服务的模式所做更改的方法。此操作生成大量日志数据并消耗大量CPU资源。因此性能可能会急剧下降。因此CAST建议在使用CAST分析服务时不激活归档日志选项。
权限管理
需要用户权限
使用CAST 服务管理器执行任何服务器端安装过程都需要以下Oracle用户权限(即:在用于连接服务器的CAST 服务管理器连接配置文件(参见 安装 CAST AIP 模式中的连接) 中指定的用户名/密码组合必须具有以下特权)。如果不是这样,安装过程可能会失败。
- CREATE_USER
- ALTER_USER
- GRANT_ANY_PRIVILEGE
- GRANT_ANY_ROLE
- SELECT_ANY_DICTIONARY
请注意这些用户权限必须直接授予用户,而不是通过角色的使用。例如,如果将这些权限授予某个角色,然后将这些权限授予用于执行该角色的安装过程的用户,那么安装可能会失败。
授予在安装过程中创建的用户特权
CAST 服务管理器将以下特权授予在安装CAST数据库的新模式期间创建的用户名(CAST 管理/分析/仪表盘/测量服务)。例如如果创建并安装一个名为“CASTTEST”的新模式,那么将创建一个名为“CASTTEST”的用户,并授予以下Oracle系统特权:
- CREATE_TABLE
- CREATE_PROCEDURE
- CREATE_SEQUENCE
- CREATE_SYNONYM
- CREATE_VIEW
- CREATE TRIGGER
- SELECT_ANY_DICTIONARY
- 用粗体标记的特权非常强大,超出了授予普通数据库用户的“普通”特权。
- 这些是模式所有者的“经典”特权,以及SELECT_ANY_DICTIONARY特权。
最小化在安装过程中为用户创建的特权
在安装新模式期间创建的用户被授予SELECT_ANY_DICTIONARY特权,以便查询V$SESSION数据字典视图。CAST使用此视图检索用户连接的会话id,以获得其内部锁定机制,以管理对CAST管理/分析/仪表盘/测量服务中的对象的并发访问。
如果不想将SELECT_ANY_DICTIONARY特权授予在新模式安装过程中创建的用户,可以通过执行以下查询来撤销该特权(其中“CASTTEST”替换为承载CAST管理、分析、仪表盘或测量服务的模式的名称):
grant select on sys.v_$session to CASTTEST
这必须在安装CAST 管理/分析/仪表盘/测量服务之后完成,并且只有系统用户可以授予此特权。
授予这些特权的原因
初始特权…
- CREATE_TABLE
- CREATE_PROCEDURE
- CREATE_SEQUENCE
- CREATE_SYNONYM
- CREATE_VIEW
- CREATE TRIGGER
…指定为模式所有者的用户所需的最低权限。
为:
- SELECT_ANY_DICTIONARY
此特权授予新模式的所有者,因为允许对某些Oracle系统表的读访问权限为:
- 标识(只读)详细的服务器版本信息和其它服务器属性
- 列出当前会话(用于用户管理和CAST锁)
服务器连接
CAST 服务管理器使用两个特定的连接:
- 第一个是在首次启动CAST 服务管理器时定义的连接——授予对RDBMS的访问权限,通常需要使用系统用户或具有DBA同等权限的用户。
- 第二个连接使用与试图安装CAST 管理/分析/仪表盘/测量服务的模式相关联的用户名,或者在创建新模式之前使用CAST 服务管理器创建的用户名。在这种情况下,将使用授予用户名的特权。
其它所有操作都是使用与要安装CAST 管理/分析/仪表盘/测量服务的模式相关联的用户名执行的。在这种情况下,将使用授予用户名的特权。
与模式所有者或“系统”之外的用户连接到CAST 分析/仪表盘服务
当手动创建连接配置文件把CAST分析/仪表盘服务使用CAST管理器,CAST Enlighten和CAST报告中心,如果使用一个用户分析/仪表盘服务以外的所有者或“系统”的用户有自己的特权,会发现使用终端用户CAST应用无法执行一些操作(通常是生成快照在CAST管理器)和一个“权限不足”信息显示在日志中。
因此,如果“公共”用户被自动授予对所有类型CAST对象的访问权,那么希望连接到不拥有的模式的Oracle用户需要以下特权:
- 具有访问其默认模式的正确权限的用户
- CREATE ANY TABLE
- INSERT ANY TABLE
- DELETE ANY TABLE
- UPDATE ANY TABLE
- SELECT ANY TABLE
- SELECT ANY SEQUENCE
- DROP ANY TABLE
- CREATE ANY INDEX
- DROP ANY INDEX
- ANALYZE ANY
有关终端用户应用登录权限的详细信息,请参见附录- CAST产品的登录权限。
其它
身份验证错误: ORA-12638
当使用Oracle 服务器10g或更高版本来承载CAST管理、分析、仪表盘或测量服务时,应该确保SQLNet身份验证是专门为CAST而设置的。定位网络network\admin\sqlnet.ora文件,并确保如下所示:
SQLNET.AUTHENTICATION_SERVICES = (NONE)
本机vs解释模式
CAST产品将以本机或解释模式运行,前提是在安装CAST数据库的Oracle实例上正确设置了每种模式:
- 如果本机模式被停用(默认),CAST产品将使用解释模式
- 如果本机模式是激活CAST产品将:
- 使用本机模式安装DML对象
- 使用PL/SQL对象的本机版本
检查实例版本
在Oracle服务器上,每个实例可以运行不同的Oracle服务器版本。为了检查一个实例正在运行的版本,使用以下命令:
select comp_name, status, substr(version,1,10) as version from dba_registry
CURSOR_SHARING 参数
请确保CURSOR_SHARING参数在托管CAST管理、分析或仪表盘服务的Oracle服务器上设置为“EXACT”。可以通过执行以下查询来确定CURSOR_SHARING参数的值:
select * from v$version; select COMP_ID||' : '||COMP_NAME||' : '|| VERSION||' : ' ||STATUS||' : '|| MODIFIED Comp from dba_registry; show parameter cursor_sharing;
如果CURSOR_SHARING返回的值不是“EXACT”,那么请在服务器上执行以下操作:
alter system set cursor_sharing = EXACT scope = spfile; alter system set cursor_sharing = EXACT;
Microsoft
内存管理
从DBA的角度来看,最好使用固定的内存大小,而不是动态调整的内存大小(默认设置)。当机器是专用数据服务器时,建议值为服务器物理内存的75%。如果不这样操作,那么需要减少这个值,作为每个“密集”流程之间的折衷。
硬盘管理
数据和日志文件
CAST建议对数据和日志使用不同的物理硬盘系统。但系统和tempdb数据库应该在同一个硬盘上,且这个磁盘不应用于存储CAST数据库。tempdb文件大小的增长必须以绝对值 衡量(即单位是兆字节,不是百分比)。
事务日志
在计算快照之前,可能需要将事务日志的大小增加到分析/仪表盘服务中存储的分析数据总量的大约两倍(尽管有时需要增加一倍以上)。如果这种调整,它必须完成后更新CAST系统的观点,但在计算快照之前(换句话说,在分析过程之后——注意,在CAST管理器可以运行一个分析,然后生成一个快照作为两个独立的功能,因此允许调整事务日志值如果需要的话)。事务日志值可以在快照计算过程完成时重置。
权限管理
安装权限
使用CAST 服务管理器(即:用户名/密码组合把服务器管理器连接配置文件中指定(参见安装 CAST AIP 模式中的手动创建连接配置文件)用于连接到服务器,必须有以下特权)。如果不是这样,安装过程可能会失败。
- 以“sa”或“sysadmin”角色登录(系统管理员)
使用权限
在Microsoft SQL 服务器环境中使用任何CAST产品(CAST Enlighten等)时,请确保已授予登录视图服务器状态特权。如果正在使用已经具有此特权的“sa”或“sysadmin”登录(不推荐),则不需要这样做。
此特权授予通过主进程访问服务器当前进程列表的权限master..sysprocesses或通过sys.dm_exec_requests。CAST产品需要这些信息来进行数据库锁定和分析器保存过程的内部管理。
为了避免产品使用错误,如果用户的登录无法访问当前流程列表,那么将阻止用户访问数据库。
区分大小写和排序
必须遵守下列规则:
- 为了分析区分大小写的语言(例如Java、. NET等),承载CAST分析服务的Microsoft SQL 服务器应该区分大小写。如果服务器不区分大小写,那么名称仅在大小写方面有所不同的不同对象(如MyFunction和MyFunction)将合并到同一个对象中
- CAST分析服务必须安装在具有与DBMS服务器本身的默认排序规则相同的排序规则的数据库中
- CAST分析服务的排序规则必须与任何参与服务器(即出于分析目的而访问的其他DBMS服务器)的排序规则兼容。