Sybase SQL Anywhere数据库管理技巧在线教程

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 22:41:44

Sybase SQL Anywhere数据库管理技巧 
 
Sybase SQL Anywhere数据库功能很强,结构也比较复杂。一般情况下,用户都是通过用PowerBuilder开发的应用程序界面来访问它。但应用程序固定的界面不能完全满足数据库管理员的特殊要求。这时,就需要用系统工具进行直接访问。

案例环境:应用程序test,含三个SQL数据库文件:test1.db、test2.db、test3.db,存放在 C:\test\db下,可执行文件和动态链接库放在C:\test\exe下。

同时启动多个后台数据库服务器进程

Sybase SQL Anywhere可以同时启动多个后台数据库服务器进程,而每个进程又都可以至少控制一个SQL数据库,这大大方便了数据库的分类管理。

操作方法是:

1.开始→程序→MS-DOS方式→在命令行窗口里“C:\test\exe〉”提示符号下运行:dbstart -n db_server1。

2.同样,打开第2个命令行窗口,键入:dbstart -n db_server2。

这两条命令分别启动了名为db_server1、db_server2的数据库服务器进程,其中-n参数用来为进程命名。

同时打开多个数据库

在进行复杂的数据提取时,往往需要同时打开多个数据库。在下面的示例中,数据库服务器进程db_server1同时控制着数据库db_alias1(对应的物理数据库文件为C:\test\db\test1.db)、db_alias2(对应的物理数据库文件为C:\test\db\test2.db)。

操作方法是:

资源管理器→运行C:\test\exe\scview.exe,打开SQL控制中心→“工具”选单→连接→弹出“SQL Anywhere Logon”数据库登录窗口→填入:用户标识:数据库管理员dba;口令:dba的口令;服务器进程名:db_server1;数据库名:为要打开的数据库任取一别名,这里是db_alias1;数据库文件:用“浏览”按钮选中物理数据库C:\test\db\test1.db→点击OK按钮。这样就打开了第1个数据库db_alias1。

为了打开第2个数据库,在SQL控制中心→选中数据库服务器db_server1图标→单击右键,弹出快捷选单→单击“启动数据库”项→弹出“启动SQL Anywhere数据库”窗口→在“With database name”文本框中填入要使用的数据库名db_alias2→在“Using database file”文本框中填入要使用的数据库文件名C:\test\db\test2.db→点击“确定”按钮→选中db_alias2从右键选单中选“打开”→出现Logon界面→输入dba和口令→点击“确定”按钮。这样就打开了第2个数据库db_alias2。

SQL命令工具的使用

Sybase SQL Anywhere数据库包含了一个交互式SQL命令解释器----ISQL。有时,直接用SQL命令来操纵数据库,速度要比用Sybase图形界面工具高得多。

1.操作方法是:选中要操作的数据库db_alias1→单击右键,弹出快捷选单→单击“打开ISQL”项→弹出ISQL界面,共有3个小窗口:数据窗口、状态窗口、命令窗口→在命令窗口里输入SQL命令,单击“执行”按钮,即可在“数据窗口”里显示命令结果,同时“状态窗口”也会显示一些系统提示信息。

2.几个隐含功能:


在“文件”选单中选“打开”,可以将事先编辑好的SQL命令过程调入,以批处理的方式执行。
在“编辑”选单中选“插入”,可以看到当前数据库所包含的表的名称及其字段信息。
在“命令”选单中选“重新调用”,可以看到历史命令列表,从中点取一个,ISQL自动将其粘贴进命令窗口等待编辑或执行,省去了重新录入的麻烦。


数据库表的导出

一个SQL Anywhere数据库往往包含上百个二进制格式的二维表。为了便于备份和管理,DBA经常需要将其导出存为文本格式。SQL Anywhere支持两种形式的数据库表导出:

1.数据库停止状态下二维表的离线导出。这种形式的导出,比较安全完整,DBA可以在服务器比较空闲、无人使用数据库时进行。

2.数据库正在运行时二维表的在线导出。这种形式的导出,DBA可以随时进行,便于为数据库的当前状态保存一个“快照”。

操作步骤为:进入SQL控制中心窗口→在左窗格单击SQL Anywhere实用工具项→在右窗格列出当前可用的实用工具→选择Unload工具→出现导出询问窗口,选择离线导出或在线导出。若是离线导出,用“浏览”按钮选择物理数据库文件名;若是在线导出,录入数据库服务器名、数据库名。

然后,单击“下一步” →以DBA名义登录→系统自动创建一个名为RELOAD.SQL的命令文件,用于以后的重新导入,您可以给它改名。单击“下一步”→出现导出位置选择窗口。一种是内部导出,导出文件放在网络服务器端;另一种是外部导出,导出文件放在网络客户端。需要DBA根据网络和存储设备的负载情况进行选择。系统将在指定位置下自动创建一个名为“UNLOAD”的文件夹,用于存放导出文件。单击“下一步”,出现导出内容选择窗口。可以选数据和结构全部导出,也可选只导出数据或结构。单击“下一步” →出现“确认”对话窗,如有需要更改的选项,单击“上一步”退回修改,否则,单击“完成”→出现导出状况动态显示窗口,实时显示某个数据库表正在被导出。需要注意的是,导出的文件主名由SQL Anywhere自行编号设定,和表名不一定相同,其后缀为dat,可用文本编辑器打开。

数据库的压缩/解压缩

通常,SQL数据库文件的体积都比较大,几百MB一个文件并不稀奇。所以,如果不进行压缩,备份起来费时费力,比较麻烦。幸好,SQL Anywhere自带了数据库压缩工具,而且效率也很高,一般可压缩掉70%以上。

ccid_nobr>

压缩


比较快捷的方法是:在MS-DOS方式窗口中,直接使用dbshrink压缩命令。格式为:dbshrink 〈要压缩的数据库文件名〉 。

以压缩test1.db为例,键入:dbshrink C:\test\db\test1.db


提示:将C:\test\db\test1.db压缩为C:\test\db\test1.cdb,然后自动进入压缩过程,生成名为test1.cdb的压缩文件。

还有一种方法,利用SQL控制中心图形界面工具。


选中SQL Anywhere实用工具项→选择“压缩数据库”项目→弹出“压缩SQL Anywhere 数据库”窗口→按“浏览”按钮选择要压缩数据库文件C:\test\db\test1.db→在“压缩文件命名”选择默认文件名C:\test\db\test1.cdb→在确认窗口单击“确定”即可。


解压缩


同样地,比较快捷的方法是:使用dbexpand解压缩命令,其格式为:dbexpand 〈压缩文件名〉 。

要解压缩test1.cdb,键入dbexpand C:\test\db\test1.cdb

这时,屏幕出现:将C:\test\db\test1.cdb解压缩为C:\test\db\test1.db,同时 提示:C:\test\db\test1.db已存在,是否覆盖?选“是”,即开始解压缩,覆盖掉当前数据库文件。

利用SQL控制中心解压缩。


选中SQL Anywhere实用工具→选择“解压缩数据库”项→弹出“解压缩SQL Anywhere 数据库”窗口,默认解压缩“C:\test\db\test1.cdb”,按“浏览”按钮可以选择其他压缩文件→“下一步”,将弹出选择窗口,为解压缩后的数据库文件指定存放路径及名称,默认为C:\test\db\test1.db→下一步,出现询问窗口,“是否替换已有的C:\test\db\test1.db”,选“是”→在随后的确认窗口中单击“确定”→进入“解压缩进度”窗口→完成后单击“关闭”按钮。


Tags:

作者:佚名
分享到: 微信 更多