在做任何事情之前,必须先初始化磁盘上的数据存储区,叫作数据库集群。一个数据库集群是一系列数据库的集合,这些数据库可以通过单个数据库服务器的实例管理。在初始化后,一个数据库集群将包含一个叫uxdb的数据库,这个库是给工具、用户和第三方程序使用的缺省数据库。数据库服务器本身并不要求uxdb数据库的存在,但是很多外部工具假设它存在。另外一个在每个集群初始化过程中创建的数据库叫template1。正如其名一样,这个数据库将作为随后创建的数据库的模版;在实际工作中不应该使用这个库。用文件系统的术语来说,一个数据库集群是一个目录,所有数据都将存放在这个目录中。澳门游戏平台注册网站把它称做数据目录或数据区。在哪里存放数据完全取决于你的选择,澳门游戏平台注册网站没有缺省值。要初始化一个数据库集群,可以使用initdb命令,这个命令与UXDB一起安装。UXDB的数据目录可以用-D 选项指定为本地目录,也可以通过-Z选项指定为分布式文件系统中的目录。数据库集群所需要的配置和数据文件都存储在集群的数据目录里,该数据目录通常记录在环境变量UXDATA中。
UXDATA
目录包含几个子目录以及一些控制文件, 如表?15.1所示。除了这些必要的东西之外,集群的配置文件uxsinodb.conf
、ux_hba.conf
和ux_ident.conf
通常都存储在UXDATA
中,不过可以把它们放在别的地方。
表?15.1.?UXDATA
的内容
项 | 描述 |
---|---|
UX_VERSION | 一个包含UXDB主版本号的文件 |
base | 包含每个数据库对应的子目录的子目录 |
current_logfiles | 记录日志记录收集器当前写入的日志文件 |
global | 包含集群范围的表的子目录,比如ux_database |
ux_commit_ts | 包含事务提交时间戳数据的子目录 |
ux_dynshmem | 包含被动态共享内存子系统所使用的文件的子目录 |
ux_logical | 包含用于逻辑复制的状态数据的子目录 |
ux_multixact | 包含多事务(multi-transaction)状态数据的子目录(用于共享的行锁) |
ux_notify | 包含LISTEN/NOTIFY状态数据的子目录 |
ux_replslot | 包含复制槽数据的子目录 |
ux_serial | 包含已提交的可序列化事务信息的子目录 |
ux_snapshots | 包含导出的快照的子目录 |
ux_stat | 包含用于统计子系统的永久文件的子目录 |
ux_stat_tmp | 包含用于统计信息子系统的临时文件的子目录 |
ux_subtrans | 包含子事务状态数据的子目录 |
ux_tblspc | 包含指向表空间的符号链接的子目录 |
ux_twophase | 包含用于预备事务状态文件的子目录 |
ux_wal | 包含 WAL (预写日志)文件的子目录 |
ux_xact | 包含事务提交状态数据的子目录 |
uxsinodb.auto.conf | 一个用于存储由ALTER SYSTEM
设置的配置参数的文件 |
uxmaster.opts | 一个记录服务器最后一次启动时使用的命令行参数的文件 |
uxmaster.pid | 一个锁文件,记录着当前的 uxmaster 进程ID(PID)、集群数据目录路径、uxmaster启动时间戳、端口号、Unix域套接字目录路径(Windows上为空)、第一个可用的listen_address(IP地址或者* ,或者为空表示不在TCP上监听)以及共享内存段ID(服务器关闭后该文件不存在) |