标准 GIS 存储建议倾向于将索引和日志文件与矢量和表格业务表分开保存。出于性能方面的考虑,最好分开放置业务、要素和空间索引表,并根据表空间数据文件的使用模式对其进行放置。对于多版本化且非常活跃的编辑地理数据库,VERSIONS 表空间的数据库文件可能是分开的并分布于各个可用磁盘中,从而避免出现输入/输出争用情况。
下表列出了为存储工作空间要素类和表而建议创建的工作空间。
TABLESPACE | CONFIGURATION_KEYWORD_PARAMETER |
---|---|
WMX_BDATA | 业务表 |
WMX_BINDEX | 业务表索引 |
WMX_ADATA | 添加表(版本化) |
WMX_AINDEX | 添加表索引 |
WMX_DDATA | 删除表(版本化) |
WMX_DINDEX | 删除表索引 |
使用脚本来创建角色、目录、表空间和权限
以下脚本可用于通过 pgAdmin 或 psql 添加表空间。
1. 创建角色
以下脚本可用于创建角色。
\connect postgres postgres
--create sde role
DROP ROLE sde;
CREATE ROLE sde LOGIN ENCRYPTED PASSWORD 'sdeadmin' SUPERUSER NOINHERIT CREATEDB
CREATEROLE;
--User to own data called 'wmx'.
DROP ROLE wmx;
CREATE ROLE wmx LOGIN ENCRYPTED PASSWORD 'wmxadmin' NOINHERIT CREATE DB;
--Group role wmx_editor;
DROP ROLE role_wmx_wmx_editor;
CREATE ROLE role_wmx_wmx_editor NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
--Group role wmx viewer;
DROP ROLE role_wmx_wmx_viewer;
CREATE ROLE role_wmx_wmx_viewer NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
--User to edit called 'pmeditor'.
DROP ROLE pmeditor;
CREATE ROLE pmeditor LOGIN ENCRYPTED PASSWORD 'pmeditor' INHERIT;
GRANT role_wmx_wmx_editor TO pmeditor;
--User to edit called 'pmviewer'.
DROP ROLE pmviewer;
CREATE ROLE pmeditor LOGIN ENCRYPTED PASSWORD 'pmviewer' INHERIT;
GRANT role_wmx_wmx_editor TO pmviewer;
2. 创建目录
以下脚本可用于创建目录。
cd D:/postgresqldata/wmx D:
mkdir wmx_sde_dict mkdir wmx_sde_dict_index mkdir wmx_sde_log mkdir wmx_sde_log_index mkdir wmx_Adata mkdir wmx_Aindex mkdir wmx_Ddata mkdir wmx_Dindex mkdir wmx_Bdata
mkdir wmx_Bindex
3. 创建表空间
以下脚本可用于创建表空间。
--sde dictionary DROP TABLESPACE wmx_sde_dict;
CREATE TABLESPACE wmx_sde_dict OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_sde_dict';
DROP TABLESPACE wmx_sde_dict_index;
CREATE TABLESPACE wmx_sde_dict_index OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_sde_dict_index';
--sde log files DROP TABLESPACE wmx_sde_log;
CREATE TABLESPACE wmx_sde_log OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_sde_log';
DROP TABLESPACE wmx_sde_log_index;
CREATE TABLESPACE wmx_sde_log_index OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_sde_log_index';
--delta tables DROP TABLESPACE wmx_Adata;
CREATE TABLESPACE wmx_Adata OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_Adata';
DROP TABLESPACE wmx_Aindex;
CREATE TABLESPACE wmx_Aindex OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_Aindex';
DROP TABLESPACE wmx_Ddata;
CREATE TABLESPACE wmx_Ddata OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_Ddata';
DROP TABLESPACE wmx_Dindex;
CREATE TABLESPACE wmx_Dindex OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_Dindex';
--vector data DROP TABLESPACE wmx_Bdata;
CREATE TABLESPACE wmx_Bdata OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_Bdata';
DROP TABLESPACE wmx_Bindex;
CREATE TABLESPACE wmx_Bindex OWNER postgres LOCATION
'D:/postgresqldata/wmx/wmx_Bindex';
4. 向表空间授予权限
以下脚本可用于授予权限。
GRANT CREATE ON TABLESPACE wmx_sde_dict TO sde;
GRANT CREATE ON TABLESPACE wmx_sde_dict_index TO sde;
GRANT CREATE ON TABLESPACE wmx_Adata TO wmx;
GRANT CREATE ON TABLESPACE wmx_Aindex TO wmx;
GRANT CREATE ON TABLESPACE wmx_Ddata TO wmx;
GRANT CREATE ON TABLESPACE wmx_Dindex TO wmx;
GRANT CREATE ON TABLESPACE wmx_Bdata TO wmx;
GRANT CREATE ON TABLESPACE wmx_Bindex TO wmx;
GRANT CREATE ON TABLESPACE wmx_sde_log TO sde;
GRANT CREATE ON TABLESPACE wmx_sde_log_index TO sde;
GRANT CREATE ON TABLESPACE wmx_sde_log TO wmx;
GRANT CREATE ON TABLESPACE wmx_log_index TO wmx;
GRANT CREATE ON TABLESPACE wmx_sde_log TO pmeditor;
GRANT CREATE ON TABLESPACE wmx_sde_log_index TO pmeditor;
GRANT CREATE ON TABLESPACE wmx_sde_log TO pmviewer;
GRANT CREATE ON TABLESPACE wmx_sde_log_index TO pmviewer;