第一步:首先安装postgresql93的RPM资料库
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比宁江网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式宁江网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖宁江地区。费用合理售后完善,十年实体公司更值得信赖。
wget
第二步:执行命令安装rpm -ivh pgdg-redhat93-9.3-1.noarch.rpm
第三步:执行yum install postgresql93-server postgresql93-contrib
发现如下问题:Error: Package: postgresql93-contrib-9.3.5-1PGDG.rhel6.i686 (pgdg93) Requires: libcrypto.so.10(libcrypto.so.10)
原因居然是openssl的版本不对。解决方案如下:
升级openssl下载openssl10-libs-1.0.1e-1.ius.el6.i686.rpm文件然后用rpm –force -ivh openssl10-libs-1.0.1e-1.ius.el6.i686.rpm 强制安装,居然让我成功安装。
第四步:继续执行yum install postgresql93-server postgresql93-contrib。又碰到如下问题,
uuid-1.6.1-10.el6.i686: failure: Packages/uuid-1.6.1-10.el6.i686.rpm from rhel-source-beta: [Errno 256] No more mirrors to try. 解决办法是下载uuid-1.6.1-10.el6.i686.rpm然后用rpm -ivh uuid-1.6.1-10.el6.i686.rpm 首先安装
第五步:最后重新执行yum install postgresql93-server postgresql93-contrib。
第六步:service postgresql-9.3 initdb
配置PostgreSQL对应的yum源
使用命令:dnf install -y ,获取yum配置文件。
安装PostgreSQL13对应的rpm包
一般来说PostgreSQL需要安装的包包括:
依赖库包:postgresql13-libs.x86_64
模块分布式:postgresql13-contrib.x86_64
客户端:postgresql13.x86_64
服务端:postgresql13-server.x86_64
创建postgres用户及组
groupadd postgres 创建postgres组
useradd -g postgres创建postgres用户
初始化数据库
安装postgresql数据库后,默认的数据目录为: /var/lib/pgsql/10/data/。但是在实际使用中,我们必须为postgresql数据库指定专用的数据路径。
1、创建指定路径
mkdir -p /data/pgdata
2、修改pgdata的所有者
chown postgres /data/pgdata
3、切换到postgres用户
su - postgres?
4、初始化postgres数据库实例
/usr/pgsql-13/bin/initdb -D /data/pgdata
到这里就安装完成了。
sequence 是 pg 自带的高效的自增id工具(也叫序列)。sequence 使用了轻量级锁的方式来做到高效自增id的,所以会比 UPDATE 行锁快。sequence 的返回数据类型默认是64位的整数,pg 10 可以自定 smallint, integer 或者是 bigint。
sequence 是可以保证自增数据不重复的,也就是说每次自增后都会持久化保存,那么为了继续提高性能,可以加上 CACHE 参数(默认为1),每个进程(连接)可以缓存一个子序列在当前进程内存里面,当子序列用完了才会去原序列取新的子序列。
这个用个例子简单说一下,创建 sequence temp_seq3 时用了 CACHE 10,A session 可以获取到的值是 1...10,B session 可以获取到的值是 11...20,那么获取顺序可能是 (A, A, B, A),返回值是 (1, 2, 11, 3),这个不是严格自增的序列,但可以保证回次返回都是唯一的,用了 CYCLE 参数的除外。
根据文档和源码( link 第80行),缓存在内存里面的最大值(cached)是每个进程都不一样的,所以如果要求严格自增的服务不能用 CACHE。
这里写三种用 pg 做自增id的方式
测试命令,在 MacOS 上用 docker 开一个 pg 在里面运行一下 pgbench 脚本,其中 sql.sql 的内容替换成对应的压测脚本。
TPS: 986
TPS: 7332
TPS: 7451
看看微信的分布式id生成器,原理都差不多,"实际应用中每次提升的步长为10000" = "CACHE 10000"。 link
以上优化已经是用在友好速搭电商系统的订单号和优惠券号生成服务中,为商家提供更快更可靠的服务。
您好,参考故障现象
使用Windows Vista系统,恢复自行备份后,出现“User Profile Service服务未能登录,无法加载用户配置文件”如下图:
?
原因分析
User Profile Service服务负责加载和卸载用户配置文件。如果已停止或禁用此服务,用户将无法再成功登录或注销,应用程序在获取用户数据时可能会出问题,而且为接收配置文件事件通知注册的组件将无法接收这些通知。出现此类问题有可能是该服务被禁用,通过进入安全模式将该服务设置为启动,即可解决。
解决方案
一、开启此服务
1、重新启动计算机开机时连续点击F8,选择进入安全模式。
2、开始-在搜索栏中输入services.msc /s(如图)
?
弹出用户帐户控制对话框后选择同意,进入本地服务设置,找到User Profile Service服务(如图)
?
双击出现属性对话框,将启动类型设置为自动(如图)
?
确定后重新启动计算机。
二、如果上述操作无效的情况下,可以执行以下操作:
1、按F8进入安全模式。
2、重新添加一个用户帐户,
1、看看服务里的 Postgres 服务的用户名、密码,必须用 postres 用户启动的。
2、鉴于重启后就启动不了,是不是服务设置手动,或者是安装了影子系统
3、会不会是安装的时候,上一次的安装没有卸载干净?
4、手动启动服务试试看,看看系统日志有没有相应内容分。
5、到 c:\program files下的安装目录(假设是windows)看看log 文件夹里的日志
6、进入cmd, netstat -na ,看看开了多少端口,很多病毒会强占许多端口,包括5432端口,如果5432被占用,肯定不行。netstat -navbo 会查看是哪个进程
7、安装的时候,locale 是不是选择了默认一路Next, 卸载,用locale = 'C'试试看!