2.1.?创建数据库集群

2.1.1. 二级文件系统的使用
2.1.2. 网络文件系统的使用

首先必须在磁盘上初始化一个数据库存储区域(数据库集群),一个数据库集群是一系列数据库的集合,这些数据库可以通过数据库服务器实例管理。在初始化后,一个数据库集群中会包含一个叫uxdb的数据库,这个数据库是给工具、用户和第三方程序使用的默认数据库。数据库服务器本身并不要求uxdb数据库的存在,但是很多外部工具假设它存在。另外一个在每个集群初始化过程中创建的数据库叫template1。正如其名一样,这个数据库将作为随后创建数据库的模版,在实际工作中不应该使用这个库。(在集群内创建新数据库的更多信息请见第?6?章

用文件系统的术语来说,一个数据库集群是一个目录(数据目录或数据区域),所有数据都将存放在这个目录中。澳门游戏平台注册网站称它为数据目录数据区域。在哪里存储你的数据完全由你选择。没有默认的位置,不过/usr/local/uxsql/data/var/lib/uxsql/data位置比较流行。

根据存储方式的不同可分为本地集群和分布式集群:创建本地集群不需要安装和配置UXFS,存储的数据通常会保存到本地的磁盘中。创建分布式集群需要安装和配置UXFS,UXFS由DIR、MRC和OSD三个模块组成,以Volume(卷)的形式管理文件。

要初始化一个数据库集群,可以使用initdb命令,该命令与UXDB一起安装。可以使用-D选项指定数据目录的位置,例如:

uxdb$ ./initdb -D uxdb -W (本地集群)
uxdb$ ./initdb -Z -D uxdb -W (分布式集群)

必须以uxdb用户的身份执行这条命令,同时可以使用UXDATA环境变量替换-D选项,或通过ux_ctl程序运行initdb:

uxdb$ ./ux_ctl init -D uxdb1 -o "-W" (本地集群)
uxdb$ ./ux_ctl init -Z -D uxdb1 -o "-W" (分布式集群)

如果你使用ux_ctl来启停服务器(见第?2.2?节),这种方法可能更直观,ux_ctl将是你用来管理数据库服务器实例的唯一命令。

如果你指定的目录还不存在,initdb将尝试创建它。当然,如果initdb没有在父目录中的写权限,这将会失败。通常推荐让UXDB用户拥有数据目录及其父目录,这样就不存在上面的问题了。如果想要的父目录也不存在,你将需要先创建它,如果父父目录不可写则使用root特权。因此,该过程可能像这样:

root# mkdir /usr/local/uxsql
root# chown uxdb /usr/local/uxsql
root# su uxdb
uxdb$ initdb -D /usr/local/uxsql/data -W

如果数据目录存在并且已经包含文件,initdb将拒绝运行。这可以避免无意中覆盖一个已有的安装。

因为集群目录包含所有存储在数据库里的数据,所以出于安全考虑,这个目录不能给任何非授权用户访问。因此,initdb禁止除uxdb用户以外的任何用户访问这个目录。

initdb同时也为数据库集群初始化默认区域。通常,它将只是使用环境中的区域设置并且把它们应用于被初始化的数据库,更多信息可以在第?7.1?节中找到。在特定数据库集群里的默认排序顺是由 initdb设置的,虽然可以创建使用不同排序顺序的新数据库,但在initdb创建的模板数据库中使用的顺序不能更改(除非删除并重建它们)。使用非C或POSIX的区域还对性能造成影响。因此,第一次选择正确很重要。

initdb还为数据库集群设置默认的字符集编码。通常字符集编码应该选择与区域设置匹配。详见第?7.3?节

2.1.1.?二级文件系统的使用

很多安装会在文件系统(卷)而不是机器的“根”卷上创建它们的数据库集群。如果这样做,不建议使用二级卷的顶层目录(挂载点)作为数据目录。最好的做法是在UXDB用户拥有的挂载点目录中创建一个目录,然后在其中创建数据目录。这可以避免权限问题,特别是对于ux_upgrade这类操作。

2.1.2.?网络文件系统的使用

很多安装操作是在网络文件系统中创建数据库集群,直接通过NFS或内部使用NFS的网络附加存储设备(NAS)完成。UXDB不对NFS文件系统做特殊处理,即它假定NFS的行为和本地连接的设备完全一样。如果客户端或者服务器NFS没有提供标准的文件系统语义,会引起可靠性问题(参阅http://www.time-travellers.org/shane/papers/NFS_considered_harmful.html)。尤其是延迟(异步)写入NFS服务器会导致数据损坏问题,如果可能,把NFS文件系统挂载为同步(无高速缓存)可以避免这个问题。不建议软挂载NFS。(存储区域网络(SAN)通常使用低级的通信协议而不是NFS。)

XML 地图 | Sitemap 地图