当
当我们开启数据库时,是否有两个DBMaster.bin进程被默认开启?
1. 当用户连接数据库时,子进程是不是一个接一个被开启?
2. 如果用户想检查数据库是否活跃,在LINUX中,他们能否通过PS命令查看活跃进程个数?(如果DBMaster.bin进程的个数少于2个,是否意味着数据库断开?)
默认地,当DBMaster启动后,在Linux系统里有三个进程被启动;一个是可以通过AP访问的主进程,另两个分别是IO_Server (2) 和Service_Server (1)。IO_Server支持I/O需求但不能被终止,Service_Server如期更新统计信息,若不需要可以被终止。所以,当数据库启动时,至少两个进程存在。如果通过dmSQL/C连接数据库,另一个进程(3)将通过主进程序被启动以用于dmSQLC客户端向server端的连接。 ...
当通过终止DB命令关闭数据库时,DBMaster会强制终止那些活跃的会话吗?
是的,当DB因终止命令被关闭时,DBMaster会强制终止那些当前的会话。 ...
当调用ODBC函数返回SQL代码为SQL_ERROR 或SQL_SUSSESS_WITH_INFO时,程序该如何处理,需要进行错误处理吗?
是的,程序需要作错误处理。首先,用户可以使用函数SQLERROR()来得到错误信息的详细内容,然后针对不同的计算机语言使用不同的处理方法,例如,java程序使用SQLException或SQLWarning来处理,VC程序则不同。 ...
当VC程序出现SQL_ERROR 或 SQL_SUCCESS_WITH_INFO时,如何进行错误处理?
这需要程序进行预算,如果SQLCODE=-1,则需要编写代码来处理错误,考虑到示例代码很长,所以不在这里添加,如果想参考示例代码,请与DBMaster的技术支持联系。 ...
当VB程序出现SQL_ERROR 或 SQL_SUCCESS_WITH_INFO时,如何进行错误处理?
这时,需要使用对象adodb.sqlerror代替err对象来得到原始错误,因为err对象无法得到数据库的原始错误代码。下面是VB程序中进行错误处理的示例:
// VB
Dim objConn As New ADODB.Connection
On Error GoTo ErrorHandle
objConn.Open "dsn=dbsample4"
objConn.Execute "insert into t1 values (2, '12345678901234567abcdefg')"
If objConn.Errors.Item(0).NativeError = ...
当把从别的数据库(非DBMaster)上卸载的SQL脚本文件加载到DBMaster里时,该注意什么?(USE: DBMR: 1643)
要成功向DBMaster加载文件,应该注意以下几点:
设置文件的扩展名为.s0.
确报在s0文件中的行的最大长度不超过80个字符。使用转译符号“\”将每80个字符分离为两行或更多行。请记住要处理双字节单词。
...
当从一个DB上卸载文件时,DBMaster什么时候创建.s1文件?(USE: DBMR: 1643)
目前,从DBMaster上卸载的文件大小大概是1G,这是在dmSQL工具里DBMaster的限定,所以当DBMaster发现输出文件的大小接近1G时,它将会为其他的数据创建一个新的外部数据文件,直到输出完所有的数据。其他的文件将被命名为**.s1, **.s2等等。 ...
当通过网络连接到数据库时,用户ID和密码是被加密了的吗?或者只有设定DB_NetEc=1,才会加密?设置DB_NetEc=0,会不会有泄露用户ID和密码的可能性?
是的,在网络上,无论是否设置关键字DB_NetEc。用户ID和密码都已被加密。即使设定DB_NetEc=0,在网上用户ID和密码也不会被泄露。 ...
当我使用dmSQL工具连接数据库服务器时,为什么返回了以下错误信息?(From DBMR1741)
ERROR (1119): [DBMaster] OS shared memory setting is too small, please increase OS shared memory maximum size. [dbstart. 816],0,0,0
这不是内存的问题,请为数据库设置关键字DB_SVADR,如下所示:
DB_SVADR=192.168.0.170;
这样就可以了。
...
当安装DBMaster时我们可以选择字符集,这是否意味着也可以选择信息文件的字符集?(From DBMR 1805)
在安装DBMaster期间,选择字符集和语言有两个步骤。字符集仅决定数据存储形式,和DBMaster信息文件无关。
在安装DBMaster的最初,你能够选择语言编码;它会决定DBMaster的显示语言和在GUI工具及别的工具中所返回的DBMaster信息。
第二级的语言选择是决定在DBMaster中默认使用哪种字符集来保存数据的。 ...
当序列号超过最大值时,有没有办法使序列号自动重置?(From DBMR1836)
通过存储过程和触发器可以达到此目的。
例如:假设这有一个名为 t1 (c1 serial)的表
[存储过程]
$ create procedure sp1(char(32) tbname, int ns1); { $ begin declare section;
char sqlstring[100];
$ end declare section;
$ begin code section;
if (ns1 >= ...
当使用存储过程而发生编译错误时为什么.msg文件是空的?
一般来说,如果.msg文件是空的,就意味着用户没有安装C编译器。请安装C编译器,如VC6 或者 VC7 或者.NET C++,DBMaster 5.0只支持VC6和.NET2003两种编译器。 ...
当DBMaster4.0.5升级到5.0时我们可以将本地编码由中文更改为日文吗?会发生什么问题吗?
Unload/load是文本模式,所以,数据将是一致的,DB_LCODE与数据一致没有关系。 ...
当在DBMaster5.0运行DBMaster perl示例程序 ("demo.pl") 时,用户应该注意什么?
假设DBD::DBMaster的版本是0.15。
注意DBMaster的版本:原始的Makefile.PL的入口可能在第12行:
my $DEFAULTVER = '3.7';
按照下面的更改入口:
my $DEFAULTVER = '5.0';
2. 用户会发现:在demo.pl程序中"fetchrow_hashref"方法不会取得正确的结果,在每行只显示0。
这是示例的一个bug,因为关于区分大小写的问题DBMaster4.x和5.x已经做了更新,所以demo.pl应该按照如下更改:
$hash_ref->{"Id"},$hash_ref->{"Name"},$hash_ref->{"Title"},$hash_ref->{"Phone"});
==>
$hash_ref->{"ID"},$hash_ref->{"NAME"},$hash_ref->{"TITLE"},$hash_ref->{"PHONE"});
...
当从DBMaster4.3.0 import数据到Excel 2003时,为什么会返回“选项类型超出范围”这样的错误信息呢?(DBMR 1930; 版本: DBMaster4.3.0)
这是一个bug;我们已经在DBMaster4.3.0之后的版本进行修复了,并且测试了4.3.1,4.3.2和4.3.3都是正常的。用户可以尝试升级DBMaster版本再进行重新测试。
另外,一般来讲,对于错误“选项类型超出范围”应该与连接串相关。如果连接串包括不支持的选项或者在尾端有垃圾字符,有时也可能返回这个错误信息,但不会总是这样。 ...
当使用DBMaster编译PHP时,会发生“undefined reference to ´__ctype_b'”错误,原因是什么?该怎么办?(DBMR 1946, Version; DBMaster 4.2)
这个错误不是DBMaster的问题;它是Linux glibc版本问题。DBMaster使用glibc-2.1来make静态库,但是glibc-2.3删除了一些函数—ctype_b(), _ctype_toupper()…并且glibc保证共享库的二进制兼容性,这些共享库不包括静态库,所以不能保证静态库是兼容的,这就是返回undefined reference to ´__ctype_b'错误信息的原因。
用以下的方法解决这个问题:
1. 移动/home/dbmaster/4.2/lib/libdmapic.a到别的文件夹下。
2. 复制/home/dbmaster/4.2/lib/so/libdmapic.so到/home/dbmaster/4.2/lib/。
3. ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-dbmaster=/home/dbmaster/4.2 --enable-track-vars --enable-mbstring
4. make
这是一个连接.so的解决方法,别的客户已经make成功并应用于他们的系统中。 ...
当DBMaster安装在高端机上,组提交会产生什么影响?(DBMR: 1922 DBMaster 4.2 OS: CentOS 4.0)
设置DB_GCXMW = 0,关闭组提交,保持服务器端连接处于激活状态。当数据库服务器准备进行组提交时,一些连接会先处于睡眠状态,随后再一起提交。但是dbserver不能激活处于睡眠状态的连接,这样将有可能导致客户端命令停留在“EXDIR”状态。
版本:DBMaster 4.x, 5.x
产品:Normal, Bundle
平台:Linux ...
当升级dbmaster 4.3到5.1版本时 ,在应用端应注意些什么?(DBMR: 1975)
应用端注意事项:
ODBC驱动程序:如果应用程序涉及驱动程序名(比如 “Driver= {DBMaster 4.3 Driver}…”), 用户应该把它修改为5.1驱动程序。
DSN:如果应用程序涉及到DSN,用户应该利用5.1驱动器重新创建DSN。
如果涉及到dmapi43.lib, 用户应该用dmapi51.lib代替它;
如果涉及到4.3内部文件,用户应该用5.1内部文件代替它。
JDBC驱动程序:如果使用环境变量CLASSPATH和LD_LIBRARY_PATH,用户应该修改它们关联到5.1相关文件。
DDL:使用DDL时,用户应该根据UTF8数据库调整每列的长度;
并且,如果被移植的数据库是5.0或5.0以上版本,用户应该注意对象命名限制。
注意:DBMaster5.1新增了一个关键字DB_CLILCODE,当使用多语言数据库或者数据库服务器端的LCODE是UTF-8时,客户端可以使用任意本地编码连接该UTF-8数据库的服务器。
版本:DBMaster 5.1
产品:Normal, Bundle
平台:Linux, Windows ...
当出现多线程使用相同的连接句柄调用服务器函数时如何避免这些限制? (DBMR2299)?
当多线程使用相同的连接句柄调用服务器函数时将会碰到一些预料不到的行为(例如挂起)。我们可以设置DB_MTIMO 来解决此问题。
DB_MTIMO = 0/n (关闭/秒)
使用DB_MTIMO确保同一时间只有一个ODBC函数将被执行。使用latch来防止另一个线程在同一时间使用同一个连接句柄执行ODBC函数。
尽管我们可以设置此关键字来解决此问题,但是一般情况下我们不推荐用户这么设置。因为可能会引起数据库性能降低或者出现未知的问题。
版本:DBMaster5.x
产品: Normal
平台:Windows ...
当DMERROR.LOG被更改时,如何立即发送邮件至DBA? (DBMR2257)
一旦DMERROR.LOG被更改,DBMaster将立即给DBA发送一封内容为“请参考C:\DBMaster5.2\DMERROR.LOG中的信息”(对于不同的用户C:\DBMaster5.2\DMERROR.LOG路径将被DMERROR.LOG实际所在路径替代)的邮件。用户需要在dmconfig.ini中设置DB_ERMRv和EB_ERMSv 。
例如:
DB_ERMSV = LAMBS.ad.syscom.com.tw ;SMTP server address
DB_ERMRV = Snow_Wang@email.lingan.com.cn ;DBA’s email aeddresses
版本: DBMaster4.x/5.x
产品: Normal/Bundle
平台: Windows/Linux ...