1、Sybase ASE 各系统数据库一、ASE 中的各种数据库在我们安装 Adaptive Server 后创建一套 ASE 数据库系统时,ASE 的数据库配置程序(asecfg、srvbuild、syconfig 等)将默认创建下面的系统数据库,每个数据库各有其用途:master 数据库,包含系统表,这些系统表中的数据用于管理;model 模板数据库,用于创建新的数据库;sybsystemprocs 数据库,存放系统存储过程;sybsystemdb 数据库,关于分布式事务管理功能;tempdb 数据库,包含临时表,放置临时数据。除去上述 5 个必须安装的系统数据库外,还可以选装下面几个数据库:
2、审计数据库 sybsecurity,包含审计信息,用于系统管理员对用户的审计;样本数据库 pubs2、pubs3,关于一个虚构的图书销售公司的示例;语法数据库 sybsyntax,包含 SQL 关键词的语法帮助;dbcc 数据库 dbccdb,包含从 dbcc checkstorage 的输入和输出,用于检查数据库一致性;Job Scheduler 数据库 sybmgmtdb,用于存储作业数据、预定作业信息等与 Job Scheduler 内部处理相关的数据。最后一种,是为应用而建立的,用于存放应用数据的应用数据库,或者说用户数据库。因此,在一套 ASE 系统中,可能有的数据库如图 1-25
3、所示。第一行:系统数据库第二行:用户数据库、演示数据库第三行:选装数据库ASE 是通过 master 数据库来管理其他数据库的,因此它也称为主数据库。它与其他数据库的关系如图 1-26 所示。ASE 中 master 库之所以可以管理其他数据库,是因为 master 中拥有记载和管理 ASE全系统信息的“系统表“,这些系统表(也可称为系统数据字典)存放了所有有关 ASE 系统配置、安全管理、对象管理的全局性信息。每个非 master 数据库也有自己的系统表,称为数据库级系统表。和 master 数据库中记录全局性信息的系统表不同,这些数据库级系统表用于存储这个特定数据库中的系统数据和状态信息记
4、录。master 中的系统表存放的是 ASE RDBMS 全局层面的信息,数据库级系统表存在的仅是局部数据库中的管理信息。这也是 master 数据库和其他所有数据库的区别所在-存在意义不同!1master 数据库master 数据库是 ASE 中管理整个系统、管理其他数据库的系统数据库,它对整个 ASE都至关重要。如果 master 数据库发生损坏,则 ASE 启动失败、不能运行。master 数据库特殊的作用在于其拥有其他数据库所没有的系统表,这些系统表记录了 ASE 系统级别的信息:分配给 ASE 系统的全部存储空间ASE 中创建的所有数据库系统一套 ASE 数据库系统中的用户登录信息可
5、与本 ASE 服务器进行互操作的远程服务器ASE 可以使用的联机引擎ASE 可以使用的备份设备ASE 用户可设置部分的环境变量ASE 所使用的字符集和语言当前在 ASE 中运行的进程信息当前在 ASE 中锁的活动信息可见,ASE 的 master 数据库存储了全局的数据字典数据,在功能上非常类似于 Oracle和 DB2 的系统表空间。由于 master 数据库存储内容的特殊性,master 的可靠性决定了整个系统的可靠性。因此,对于 master 数据库来说,一些特殊的 DBA 工作是必要的:保证 master 数据库所在的存储设备的可靠性,必要时使用镜像;保证 master 数据库存储内容
6、的逻辑可靠性,进行必要的备份。2sybsystemprocs 数据库sybsystemprocs 数据库存放的是 ASE 系统用于服务器管理的存储过程工具。当一个用户登录到 ASE 的某个数据库中,试图执行某个系统存储过程时,ASE 将在 sybsystemprocs数据库中寻找该过程。如果该系统过程未能在 sybsystemprocs 中找到,则继续搜索 master 数据库。这个数据库一般是一个“静态“的数据库。如果该数据库的内容发生改变,则即刻的备份操作是必要的。3model 数据库model 数据库,正如其名,是一个“模板“数据库,它是在 ASE 创建一个数据库时使用的模板,ASE 创
7、建新数据库的方法就是把 model 数据库中的所有内容复制到新数据库。正因为 model 数据库有这个特点,因此可以定制 model 数据库,用来作为建立新数据库的模板。作为数据库创建模板,有必要在 model 发生更改的时候制作其备份副本。当发生故障时,可以用来恢复 model 数据库。4tempdb 数据库tempdb 数据库称为临时数据库,用来存放数据库运行中出现的临时表和临时工作表。这些临时类型的表可能有如下几种形式:数据库临时表;SQL 导致的大数据量分组操作、排序操作、并行排序等活动。tempdb 数据库在 ASE 每次启动时都会临时性派生。ASE 的自动恢复进程在系统启动时,复制
8、 model 数据库并将其初始化到临时库所需大小,最后联机临时库。所以,tempdb 一定大于等于 model 数据库。tempdb 数据库为所有 ASE 用户所共享使用,其默认大小是 2MB(取决于数据页的大小)。在大多数情况下,这个数据库需要扩容,来应对大的 SQL 操作。在 Oracle 系统中,临时表空间的作用类似于 ASE 的临时数据库。5sybsystemdb 数据库sybsystemdb 数据库存储了有关于分布式事务的运行状态信息。ASE 从 12.0 版开始可以为使用远程过程调用(RPC)或组件集成服务(CIS)将 SQL 事务中的数据推送到远程数据库服务器的那些事务提供事务协
9、调服务。这也就是 ASE 著名的“分布式事务管理(DTM)服务“。6用户数据库用户数据库就是为应用系统而创建的自定义数据库。当然,用户数据库也是通过复制model 数据库生成的,用于存放用户应用系统的表、索引等数据库对象。ASE 系统的核心价值即在于这些用户数据库,因此其维护和管理是 ASE DBA 管理任务的核心。至于其他数据库,系统数据库也好,选装数据库也罢,都是为了这些用户数据库服务而存在的。二、ASE 选装数据库ASE 还有若干选装数据库,这些数据库用于某些个别的用途:sybsecurity:审计数据库sybsyntax:语法数据库pub2、pub3:样本数据库dbccdb:一致性检查
10、数据库sybmgmtdb:任务管理数据库1sybsecurity 审计数据库sybsecurity 审计数据库用于装载 ASE 审计系统。ASE 审计系统提供了跟踪、审计的系统表,用来记录数据库审计信息。2sybsyntax 语法数据库sybsyntax 数据库用来存储 Transact-SQL 命令、Sybase 系统过程、ASE、Open Client CT/DB-Library 函数的语法帮助。安装 sybsyntax 数据库后,ASE 中即可使用一个特殊的系统过程 sp_syntax 查看语法信息。例如,若要学习 Transact-SQL 的 select 命令,可以输入以下命令:1.
11、 1 sp_syntax “insert“ 2. 2 go 3. Syntax Help 4. - 5. Transact-SQL 6. insert - Adds new rows to a table or view. 7. insert into 8. database.owner.table_name|view_name 9. (column_list) 10. values (expression , expression.) 11. |select_statement plan “abstract plan“ 3pub2、pub3 样本数据库pub2 和 pub3 数据库是用来帮助
12、学习 Sybase ASE 这个庞大系统的辅助数据库。这两个数据库本身无任何功效,仿真的是一个“书店“系统。ASE 所有联机文档中使用的示例数据库对象和脚本,都是针对 pub2、pub3 数据库的。鉴于 pub2、pub3 数据库的局限性,本书也设计了另外一个示例数据库:ase_db,和pub2、pub3 数据库共同使用。4dbccdb 一致性检查数据库ASE 中有一个进行数据库一致性检查(dbcc 操作)的命令“dbcc checkstorage“,用来检查数据库的一致性状态信息。这些信息需要记录在一个特殊的数据库 dbccdb 中。dbccdb数据库专用于存放“dbcc checkstorage“命令的返回结果,并依据结果生成 dbcc 报告。5sybmgmtdb 数据库ASE 15 具有一个产品组件 Job Scheduler(任务调度器)用于执行 ASE 的任务。sybmgmtdb 数据库即用来保存任务作业信息、调度设置等相关数据以及已执行任务的输出结果。