EnterpriseDB92安装文档.docx

上传人:b****5 文档编号:29110981 上传时间:2023-07-20 格式:DOCX 页数:20 大小:944.36KB
下载 相关 举报
EnterpriseDB92安装文档.docx_第1页
第1页 / 共20页
EnterpriseDB92安装文档.docx_第2页
第2页 / 共20页
EnterpriseDB92安装文档.docx_第3页
第3页 / 共20页
EnterpriseDB92安装文档.docx_第4页
第4页 / 共20页
EnterpriseDB92安装文档.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

EnterpriseDB92安装文档.docx

《EnterpriseDB92安装文档.docx》由会员分享,可在线阅读,更多相关《EnterpriseDB92安装文档.docx(20页珍藏版)》请在冰豆网上搜索。

EnterpriseDB92安装文档.docx

EnterpriseDB92安装文档

EDB数据库软件安装

EnterpriseDB9.2安装文档

●安装须知

安装环境:

目标机器RHEL664bit;本地机器win7,采用Xmanager图形化界面进行安装。

安装用户权限:

root。

数据库版本:

EnterpriseDB9.2.1.3。

●安装详细过程

✧首先传输对应版本的安装包到需要安装的机器上,进行解压。

tar-zxvfppasmeta-9.2.1.3-linux-x64.tar.gz

✧在Xmanager中查看目录中包含的文件,确认有一个.run的文件并执行该文件。

✧弹出界面,进入安装过程语言选择界面。

✧选择所需要的语言后点击”ok”,进入安装程序的欢迎界面。

✧点击“前进”,进入用户软件授权协议界面。

✧选择“我接受此协议”,并点击“前进”,进入数据库软件安装路径选择界面。

✧选择好要安装的路径,并点击“前进”,进入安装组件选择界面。

✧选择所需要的安装组件,并点击“前进”,进入其他目录选择界面。

✧选择好数据文件和日志文件的路径后,点击“前进”,进入配置模式界面。

✧在配置模式界面内,可以选择Oracle兼容模式和PostgreSQL兼容模式,此处选择默认的Oracle兼容模式,并点击“前进”,进入口令设置界面。

✧输入超级用户的口令后,点击“前进”,进入其它配置界面。

✧选择服务器的默认监听端口和语言环境信息后(更改为en_us.utf8),点击“前进”,进入数据库类型选择界面。

✧根据具体的环境和需求选择使用的模式,在专有模式下数据库能使用最多的系统资源,点击“前进”,进入工作负载类型选择界面。

✧根据具体情况选择工作负载类型,点击“前进”,进入高级选项配置界面。

✧根据具体情况,选择相关的配置后,点击“前进”,进入安装概述的界面。

✧确认安装概述文件符合自己的要求后,点击“前进”,进入安装过程的界面。

安装完成后,点击“完成”,结束了数据库的安装。

安装完成后,系统会建立一个enterprisedb的用户,修改该用户的密码:

[root@systemdbppasmeta-9.2.1.3-linux]#passwdenterprisedb

Changingpasswordforuserenterprisedb.

Newpassword:

BADPASSWORD:

itisWAYtooshort

BADPASSWORD:

istoosimple

Retypenewpassword:

passwd:

allauthenticationtokensupdatedsuccessfully.

✧修改数据目录下的pg_hba.conf文件

#IPv4localconnections:

hostallall127.0.0.1/32md5

添加一行数据:

#IPv4localconnections:

hostallall127.0.0.1/32md5

hostallall0.0.0.0/0md5

EnterpriseDB9.2命令行安装

首先用FTP工具传输安装包到指定的主机:

执行.run程序:

注意为避免安装过程乱码,建议安装过程选择英文。

接受条款:

设置安装路径:

选择安装的组件:

根据具体情况,不需要时,可以不安装InfiniteCache,PEMclient,slonyReplication.

其它路径的设置:

兼容模式选择:

口令选择:

端口5444(图没截到)

字符集选择zh_CN.utf8(修改为en_us.utf8)

是否安装样例库:

选择服务器类型模式:

选择服务并进行安装前的确认:

开始安装:

安装完成后,系统会建立一个enterprisedb的用户,修改该用户的密码:

[root@systemdbppasmeta-9.2.1.3-linux]#passwdenterprisedb

Changingpasswordforuserenterprisedb.

Newpassword:

BADPASSWORD:

itisWAYtooshort

BADPASSWORD:

istoosimple

Retypenewpassword:

passwd:

allauthenticationtokensupdatedsuccessfully.

修改数据目录下的的pg_hba.conf文件:

#IPv4localconnections:

hostallall127.0.0.1/32md5

添加一行数据:

#IPv4localconnections:

hostallall127.0.0.1/32md5

hostallall0.0.0.0/0md5

数据库参数调整

1.postgresql.conf

PostgreSQL数据库的参数配置文件,编辑该文件可以调整数据库参数。

注意修改有些参数需重启数据库,有些reload参数文件即可。

shared_buffers设置数据库将使用的共享内存缓冲区大小,推荐设为内存的20%-25%;同时,设置这个参数时,要设置/etc/sysctl.conf中kernel.shmmax的值,为kernel.shmmax至少等于postgresshared_buffers+32MB。

maintenance_work_mem声明在维护性操作(比如VACUUM,CREATEINDEX,ALTERTABLEADDFOREIGNKEY等)中使用的最大的内存数,推荐设置为256M。

fsync默认为on,postgres会等待数据被写入硬盘,才会给query返回成功的信号。

需根据应用特点进行调整。

full_page_writes开启的时候,在checkpoint之后的第一次对page的更改,postgres会将每个diskpage写入WAL。

需根据应用特点进行调整。

wal_buffersWAL的存储大小,推荐设为128K。

checkpoint_segments推荐设为30。

checkpoint_timeout推荐设为15分钟。

max_connections需根据应用特点进行调整,最高推荐2000。

archive_mode是否采用归档模式,设为on。

wal_level=minimal归档级别,设为archive。

archive_command='cp-i%p/edb/archive_travel/%f'。

archive_timeout推荐设为300s。

autovacuum是否自动启用VACUUM,推荐设为off。

effective_cache_size推荐设为内存的3/4。

log_destination设为stderr。

log_directory指定pg_log。

log_filename指定成alert_postgresql.log。

log_line_prefix='%t%d%u%h'。

log_rotation_age设为0。

log_rotation_size设为0。

log_truncate_on_rotation设为off。

log_min_messages设为fatal。

log_min_error_statement设为error。

log_min_duration_statement设为60000ms。

log_statement设为ddl。

2.pg_hba.conf

EDB/PostgreSQL数据库的客户端认证文件,当用户尝试连接数据库时,系统会为每个连接顺序检查该文件中的记录。

pg_hba.conf文件的常用格式是一组记录,每行一条,一条记录是由若干用空格和/或制表符分隔的字段组成,记录不能跨行存在。

如:

#TYPEDATABASEUSERCIDR-ADDRESSMETHOD

#TYPEDATABASEUSERIP-ADDRESSIP-MASKMETHOD

TYPE参数的说明如下:

TYPE

说明

local

这条记录匹配企图通过Unix域套接字进行的连接

host

这条记录匹配企图通过TCP/IP进行的连接

hostssl

记录匹配企图使用TCP/IP的SSL连接,但必须是使用SSL加密的连接

hostnossl

它只匹配那些在TCP/IP上不使用SSL的连接请求

DATABASE参数说明:

声明记录所匹配的数据库名称。

值all表明该记录匹配所有数据库;值sameuser表示如果被请求的数据库和请求的用户同名,则匹配;值samerole表示请求的用户必须是一个与数据库同名的角色中的成员;或特定的PostgreSQL数据库名字,可以通过用逗号分隔的方法声明多个数据库。

USER参数说明:

为这条记录声明所匹配的数据库用户。

值all表明它匹配于所有用户,多个用户名可以通过用逗号分隔的方法声明。

CIDR-ADDRESS参数说明:

声明这条记录匹配的客户端机器的IP地址范围。

这个字段只适用于host,hostssl,hostnossl记录。

典型的CIDR-address举例:

172.20.143.89/32表示一个主机,172.20.143.0/24表示一个小子网,10.6.0.0/16表示一个大子网。

要声明单个主机,给IPv4地址声明CIDR掩码32,给IPv6地址声明128。

不要在地址中省略结尾的0。

IP-ADDRESS、IP-MASK参数说明:

这些方法可以用于作为CIDR-address表示法的替补。

它不是声明掩码的长度,而是在另外一个字段里声明实际的掩码。

些字段只适用于host,hostssl,hostnossl记录。

METHOD参数说明如下:

METHOD

说明

trust

无条件地允许连接而不需要口令

reject

无条件地拒绝连接,常用于从一个组中"过滤"某些主机

md5

要求客户端提供一个MD5加密的口令进行认证

password

要求客户端提供一个未加密的口令进行认证

ident

获取客户的操作系统名然后检查该用户是否允许以要求的数据库用户进行连接,方法是参照在ident关键字后面声明的映射

krb5

用KerberosV5认证用户,只有在进行TCP/IP连接的时候才能用

ldap

使用LDAP进行认证

pam

使用操作系统提供的可插入认证模块服务(PAM)来认证

推荐设置:

需设置本地登录、办公网段登录、NETIQ监控所在网段登录、应用服务器所在网段登录

#TYPEDATABASEUSERCIDR-ADDRESSMETHOD

#"local"isforUnixdomainsocketconnectionsonly

localallalltrust

#IPv4localconnections:

hostallall127.0.0.1/32md5

hostallall172.17.23.0/24md5

#IPv6localconnections:

hostallall:

:

1/128md5

数据库相关脚本部署

为了完成数据库全备、归档备份、日常空间回收、统计信息收集等工作,需部署相关脚本以完成上述功能。

并将这些脚本放入postgreql安装用户的crontab中,并定时运行。

目前,需要部署的脚本如下表所示:

脚本名称

功能

执行频率

执行时间

backup_db.sh

数据库全库备份

每周一次

每周日零时

backup_wal.sh

数据库归档备份

每小时一次

--

vacuum_db.sh

资源回收及统计信息收集

每天一次

视情况而定

 

将上述脚本放入EDB安装用户的$EDBBIN所指向的目录下,并修改脚本内关于数据库名称,服务器HOSTNAME,NBUPOLICYNAME相关变量的值,确认无误后,放入CRONTAB内定时运行。

附:

分区表的使用

1.EDB分区表的功能

EDBV92支持使用分区表,支持范围/列表两种分区方式,支持添加/删除/清空/交换/分裂/移动分区,并且可以为不同的分区指定不同的表空间。

EDB分区表有以下优势:

l将数据分散到各个分区中,提高查询性能

l提高分区表可管理性

相比ORACLE而言,EDB分区表有以下劣势:

l分区表以及触发器以及约束实现,有额外性能损耗(CPU损耗)

l没有全局索引

l查询分区表的SQL语句有严格要求

我们建议在单表数据总行数超过2000W时采用分区表技术。

2.EDB分区表与SQL语句

EDBV92虽然支持分区表,但对使用分区表的SQL语句有严格的要求,简单的说:

lSQL语句中尽量使用分区键作为条件,并且分区键条件等号后面的值为常量

lSQL语句不能出现分区表和它表关联/嵌套查询等

反之,对于那些违反上述原则的SQL,EDB的查询优化器不能产生最优的执行计划(不能进行分区裁剪,不能命中正确的分区)

原因有二:

l相比ORACLE而言,EDB的优化器不具有动态分区裁剪功能(DynamicPartitionPruning),若SQL语句中使用了嵌套查询/多表关联等情况时,不能选择正确的分区

l相比ORACLE而言,EDB分区表没有全局索引,会影响那些不按照分区条件作查询的SQL语句的相应时间

例如:

建立测试用范围分区表empinfo以及普通表details,两表按empid关联

createtableempinfo

(empidint,namevarchar2(30),departmentidint,ageint,salarynumber(10,0),jointimevarchar2(10),primarykey(empid))partitionbyrange(empid)(

partitionp_1valueslessthan(10000001),

partitionp_2valueslessthan(20000001),

partitionp_3valueslessthan(30000001),

partitionp_4valueslessthan(40000001),

partitionp_5valueslessthan(50000001)

);

createtabledetails(empidintprimarykey,cdatedatetime,cnumint);

我们推荐的查询分区表的SQL是:

select*fromempinfowhereempid=xxxx

其中,where条件中应当出现分区键,并且等号后面的值为常量。

另外,以上述两表empinfo,details为例,列出的查询分区表主要其他几种方式:

SQL语句

是否

命中

分区

备注

select*fromempinfowhereempid=200;

使用常数查询

select*fromempinfowhereempid<200andempid>100;

范围查询

select*fromempinfowhereempid=300andname='ccc';

复合查询

select*fromempinfowhereempid=to_number('1234');

使用函数

selectname,empidfromempinfowhereempidin(selectdistinctempidfromdetailswhereempid<=100);

嵌套查询

selectname,a.empid,cnumfromempinfoa,detailsbwherea.empid=b.empidandb.cdate=to_date('20130402','YYYYMMDD');

关联查询

其中前三种查询SQL语句都能产生命中正确分区的查询计划。

而后三种(使用函数/嵌套查询/关连查询)的SQL语句都不能产生最优的的查询计划。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1