1.背景
龙芯3A3000,中标麒麟,gcc等开发工具已经安装好了。
2.postgres 12源码下载
打开https://www.postgresql.org/ftp/source/v12.2/ ,选择源码压缩包postgresql-12.2.tar.gz下载到龙芯机器里面。
3.开始编译安装pg12源码
创建工作目录
sudo mkdir /data/pg12
sudo mkdir /data/pgdata
useradd postgres
chown postgres:root /data/pgdata
将pg源码压缩包移动到/data/pg12里面并解压缩
mv postgresql-12.2.tar.gz /data/pg12
cd /data/pg12
tar -zxvf postgresql-12.2.tar.gz
cd postgresql-12.2
./configure --without-readline --without-zlib
命令大概执行5分钟左右,最后执行完成后出现如下图所示的结果:
然后输入
make && make install
这个执行过程长,大概20分钟左右,最后成功执行后出现如下所示的结果:
到这里编译就完成了,下面是配置过程。
4.配置及初始化数据库等
4.1 将pg的可执行程序加入到PATH环境变量中去
vi /etc/profile
找到export PATH那一行,在最后追加/usr/local/pgsql/bin
然后source /etc/profile 让配置文件生效
4.2 初始化数据库
su - postgres 切换到postgres用户
执行
initdb -D /data/pgdata
初始化数据库,结果如下:
4.3 将pg12安装为系统服务
切换回root用户,下面的命令都在root用户下执行。
vi /etc/systemd/system/pg12.service
输入以下内容:
[Unit]
Description=pg
[Service]
User=postgres
ExecStart=/usr/local/pgsql/bin/postmaster -D /data/pgdata
Restart=always
[Install]
WantedBy=multi-user.target
保存后执行:
systemctl enable pg12
systemctl restart pg12
systemctl status pg12
正常情况应该如上图一样,显示绿色的running就对了。
4.4 修改数据库配置参数
4.4.1 修改服务监听IP及端口等
还是以root用户执行以下命令
vi /data/pgdata/postgresql.conf
找到以下三个参数并进行修改:
listen_addresses = '*'
port = 5432
max_connections = 2000
4.4.2 修改连接及密码校验规则等
vi /data/pgdata/pg_hba.conf
找到IPV4那里,新增以下内容:
host all all 0.0.0.0/0 md5
4.4.3 修改数据库超级用户postgres的密码
su - postgres
执行psql
输入
alter role postgres with password 'MyPassword123@';
如果提示:ALTER ROLE则密码修改成功,如果没有提示就是密码不够复杂没有修改成功。
修改密码后ctrl+d退出psql,exit退出postgres用户,systemctl restart pg12重启服务,然后用开发工具进行连接测试就可以了。
5.跑个分吧,国产处理器3A3000,8G内存,SSD
su - postgres
psql
create database pgbench;
\q
pgbench -i
pgbench -i --unlogged-tables -s 16 -U postgres -p 5432 -d pgbench
[postgres@localhost postgresql-12.2]$ pgbench -i --unlogged-tables -s 16 -U postgres -p 5432 -d pgbench
dropping old tables...
NOTICE: table "pgbench_accounts" does not exist, skipping
NOTICE: table "pgbench_branches" does not exist, skipping
NOTICE: table "pgbench_history" does not exist, skipping
NOTICE: table "pgbench_tellers" does not exist, skipping
creating tables...
generating data...
100000 of 1600000 tuples (6%) done (elapsed 0.27 s, remaining 4.09 s)
200000 of 1600000 tuples (12%) done (elapsed 0.56 s, remaining 3.91 s)
300000 of 1600000 tuples (18%) done (elapsed 0.85 s, remaining 3.68 s)
400000 of 1600000 tuples (25%) done (elapsed 1.15 s, remaining 3.46 s)
500000 of 1600000 tuples (31%) done (elapsed 1.44 s, remaining 3.18 s)
600000 of 1600000 tuples (37%) done (elapsed 1.75 s, remaining 2.91 s)
700000 of 1600000 tuples (43%) done (elapsed 2.04 s, remaining 2.62 s)
800000 of 1600000 tuples (50%) done (elapsed 2.33 s, remaining 2.33 s)
900000 of 1600000 tuples (56%) done (elapsed 2.62 s, remaining 2.04 s)
1000000 of 1600000 tuples (62%) done (elapsed 2.93 s, remaining 1.76 s)
1100000 of 1600000 tuples (68%) done (elapsed 3.23 s, remaining 1.47 s)
1200000 of 1600000 tuples (75%) done (elapsed 3.55 s, remaining 1.18 s)
1300000 of 1600000 tuples (81%) done (elapsed 3.86 s, remaining 0.89 s)
1400000 of 1600000 tuples (87%) done (elapsed 4.17 s, remaining 0.60 s)
1500000 of 1600000 tuples (93%) done (elapsed 4.48 s, remaining 0.30 s)
1600000 of 1600000 tuples (100%) done (elapsed 4.79 s, remaining 0.00 s)
vacuuming...
creating primary keys...
done.
插入16万条记录用了4.79s