本节旨在帮助您快速入门 Sybase 特有的部分。您仍然需要了解一些关于关系数据库、创建表、设计数据库等方面的知识。您将学习如何启动和停止服务器、执行命令以及一些关于备份的知识。
启动服务器使用 startserver 工具。在安装过程中,会创建一个名为RUN_然后是服务器名称的脚本文件。由于文件名会因您的服务器名称而异,因此通常将其称为RUN_SERVER文件。要启动服务器,请确保所有环境变量(特别是$SYBASE)都已正确设置。使用 showserver 检查服务器是否已在运行 - 两次启动服务器没有风险,但您可能会收到一些关于主设备已被使用的令人困惑的错误消息。假设服务器未启动,请执行以下操作:startserver -f RUN_SYBASE假设您在安装时将服务器命名为 "SYBASE",这应该会让以时间戳开头的各种消息滚动显示在屏幕上,并希望以关于默认字符集和排序顺序的消息结束。如果没有,请仔细阅读消息以查找任何错误。如果它们已滚动出您的屏幕缓冲区,您可以读取错误日志文件,该文件位于与RUN_SERVER文件相同的目录中。
一旦服务器启动并运行,您就可以尝试连接到它。首先使用最简单的工具,这也是 Sybase 管理和使用的传统实用程序:isql。它需要许多参数,如实用程序指南中所列,但我们只需要几个。像这样进行您的第一次连接:isql -Usa -P -Sserver将-S参数替换为您在安装过程中选择的逻辑服务器名称。
![]() | 记住更改空的 sa 密码 |
---|---|
参数-U是登录名,我们在这里以 "sa" 登录,它是 Sybase 相当于 "root" 的用户。 使用-P参数指定的密码为空,这是此用户的默认密码。 应该很明显,您不希望将您最强大的登录名保留为空密码。请注意,ASE 登录名独立于 OS 登录名和密码。 |
结果应该是一个简单的提示符
1> |
如果连接不成功,请确保服务器正在运行,并且端口已通过 netstat -na 报告为 LISTENING 状态。
现在您可以开始输入 T-SQL 命令,并使用关键字 "go" 作为终止符。
isql -Usa -P -SSERVER 1> select @@version 2> go ----------------------------------------------------------------------------------------------------------------------------------------------- Adaptive Server Enterprise/12.5.0.3/EBF 10980 ESD#1/P/Linux Intel/Linux 2.4.18-18.7.xsmp i686/rel12503/1919/32-bit/OPT/Mon Mar 24 20:49:12 2003 (1 row affected) |
首先要做的是为 "sa" 设置密码,然后创建一个权限较低的新登录名,我们可以用它来玩。默认情况下,您在登录后会被放置在master数据库中。我们将使我们的新登录名默认为示例数据库,以避免错误地在 master 数据库中创建对象。 因此,我们首先通过调用存储过程 sp_password 并使用旧密码和新密码作为参数来为 sa 设置密码
1> exec sp_password NULL, "Secr3t" 2> go Password correctly set. (return status = 0) |
1> exec sp_addlogin "sybtest", "SomePass" 2> go Password correctly set. Account unlocked. New login created. (return status = 0) |
1> exit |
该isql命令也可以被非交互地使用以适用于T-SQL的脚本到服务器。与服务器一起提供的脚本之一是installpubs2,位于脚本目录中。 这是一个非常简单的示例数据库,适用于书店或出版社,保存有关书籍、作者、出版商等的数据。 它用于 Sybase 手册和培训课程,也用于一些 SQL 书籍。 除了他们添加的 Northwind 示例数据库之外,Microsoft SQL Server 还包含一个类似的数据库。 为了创建数据库,请使用-i参数来读取脚本。 首先查看该文件,以便您了解其正在执行的基本操作。 它将创建一个名为 pubs2 的数据库以及几个填充有数据的表。 现在是执行脚本的时候了。 我们将以 sa 的身份执行此操作,sa 也将成为数据库的所有者(dbo - 数据库所有者)。 我们将输出重定向到我们称为errors.out的文件。 该-e参数告诉 isql 也将 T-SQL 命令回显到同一文件中,从而提供更多输出,但可以更轻松地将任何错误与导致它们的命令相匹配。
bash$ cd $SYBASE/$SYBASE_ASE/scripts bash$ isql -Usa -PSecr3t -SSYBASE -iinstallpubs2 -e -oerrors.out |
isql -Usa -PSecr3t -SSYBASE 1> use pubs2 2> go 1> exec sp_changedbowner sybtest 2> go DBCC execution completed. If DBCC printed error messages, contact a user with System Administrator (SA) role. Database owner changed. (return status = 0) |
1> exit bash$ isql -Usybtest -PSomePass -SSYBASE 1> use pubs2 2> go 1> sp_help 2> go [Lots of output deleted - the command displays all objects in the current database] |
1> quit |
1> exit bash$ isql -Usa -PSecr3t -SSYBASE 1> sp_modifylogin sybtest, "defdb", "pubs2" 2> go Default database changed. (return status = 0) |
为了以受控方式停止服务器,请以 sa 身份登录并发出 shutdown 命令。
bash$ isql -Usa -PSecr3t -SSYBASE 1> shutdown 2> go Server SHUTDOWN by request. The SQL Server is terminating this process. CT-LIBRARY error: ct_results(): network packet layer: internal net library error: Net-Library operation terminated due to disconnect |
作为数据库管理员的最重要方面之一可能是备份。 关系数据库的 I/O 负载意味着硬盘驱动器几乎没有休息时间,一旦驱动器发生故障,数据库就需要进行严重的灾难恢复。 即使是错误输入的命令也可能导致需要恢复到以前的备份生成。 为此,使用了一个单独的服务器应用程序,称为备份服务器。 默认情况下,它与您的服务器同名,扩展名为 BCK。 使用 startserver -f RUN_SYBASE_BCK 启动它。 键入到 isql 提示符中的某些命令将从数据服务器进程转发到备份服务器进程,然后它将继续进行实际备份(在 Sybase 术语中,这是一个数据库转储),而数据库中的处理过程将继续不受影响。 您应该安排数据库转储(通常通过 cron)在低活动时段运行。 典型的完整数据库备份只需这样完成
isql -Usa -PSecr3t -SSYBASE 1> dump database pubs2 to "/mnt/backup/pubs2.bkp" 2> go Backup Server session id is: 8. Use this value when executing the 'sp_volchanged' system stored procedure after fulfilling any volume change request from the Backup Server. Backup Server: 4.41.1.1: Creating new disk file /mnt/backup/pubs2.bkp. Backup Server: 6.28.1.1: Dumpfile name 'pubs2011710275E ' section number 1 mounted on disk file '/mnt/backup/pubs2.bkp' Backup Server: 4.58.1.1: Database pubs2: 396 kilobytes DUMPed. Backup Server: 4.58.1.1: Database pubs2: 602 kilobytes DUMPed. Backup Server: 3.43.1.1: Dump phase number 1 completed. Backup Server: 3.43.1.1: Dump phase number 2 completed. Backup Server: 3.43.1.1: Dump phase number 3 completed. Backup Server: 4.58.1.1: Database pubs2: 610 kilobytes DUMPed. Backup Server: 3.42.1.1: DUMP is complete (database pubs2). 1> |
随着时间的推移,当用户在数据库中进行修改、添加、删除或更改数据时,所有操作都会被写入事务日志。 这会跟踪更改,以便可以通过隐式或显式回滚来撤消这些更改,或者用于启动时的撤消/重做阶段。 出于多种原因,此事务日志通常应放置在自己的设备上,但是可以在单个混合日志和数据设备上创建一个小型测试数据库。
除了扩展 I/O 的性能优势之外,将日志和数据分开的一个原因是出于恢复目的。 您可以根据您的恢复需求,定期将此更改日志转储到数据库。 结合完整的数据库转储,此事务日志转储现在构成增量备份。 如果需要还原,您可以加载数据库转储,然后加载所有后续事务日志转储。 甚至还有一个“until_time”选项可用于 load 命令,使您可以指定要还原到的确切时间,从而放弃在该时间之后所做的任何错误。 转储日志的语法类似
isql -Usa -PSecr3t -SSYBASE 1> dump transaction database to "/mnt/backup/dbtrandump2003_08_27_T23_32.bkp" 2> go |
除非您不断转储事务日志,否则它会不断增长,直到填满其空间并开始报告错误 1105。 在情况未解决的情况下,用户将被暂停并显得挂起。 将事务日志转储到文件或磁带,或者如果您不使用增量备份,则只需截断它。
isql -Usa -PSecr3t -SSYBASE 1> dump transaction pubs2 with truncate_only 2> go 1> |
DBCC,数据库一致性检查器,它将验证 ASE 设备上的数据结构的物理完整性是否正常。
update statistics,这将确保 ASE 具有对您的数据在表中如何分布的正确视图,从而使其能够做出最佳决策,以最短的时间检索数据。
还有一些其他外部实用程序很有用。 基于 Java 的应用程序需要安装 JDBC 驱动程序,它包含在产品名称 jConnect 下的较新服务器中。 还有一个单独的 CD,随附 ASE 11.9.2.x 和 12.5.0.x,名为 "PC Client CD"。 这是一组基于 Windows 的管理工具,将 CD 放入您的 Windows 框中,安装程序将启动,以便您可以从 CD 中选择组件。
bcp 或 Bulk Copy 是一个具有大量参数的命令行实用程序,可以从平面文件导入表数据并将数据导出到文件。
Sybase Central 是一个用于数据库管理的 GUI 工具。 它曾经是一个原生的 Win32 应用程序,但在 ASE 12.5.0.x 中,它现在是基于 Java 的,并且可以安装在 Linux 上。 请注意,您还需要安装和注册用于管理 ASE 的插件,因为 Sybase Central 只是一个框架,通过注册各自的插件,可用于许多 Sybase 产品。
Jisql 是基于 Java 的 GUI 版本的 isql,具有一些简洁的功能,例如命令历史记录以及表和列名查找。