【数据库学习】pg安装与运维

1,安装与配置

#安装
yum install https:....rpm

1)安装目录

bin目录:二进制可执行文件目录,此目录下有postgres、psql等可执行程序;pg_ctl工具在此目录,可以通过pg_ctl --help查看具体使用。
conf目录:
empty
include:头文件目录
lib:动态库目录,如libpq.so
share:存放文档和配置模板文件,一些扩展包的sql文件在子目录extension下。

2)数据目录

/var/lib/pgsql/<verson>/data。

在这里插入图片描述

i>pg_hba.conf(认证配置文件)

用于配置数据库的远程连接,通过加入以下命令行,运行任何用户远程连接本数据库,连接时需要提供密码。

host    replication     all             127.0.0.1/32            md5
host    replication     all             10.99.99.99            md5  # ip为10.99.99.99机器可访问
host    all             all          0.0.0.0/0       md5     # navicat可访问。md5表示要求客户端提供一个 MD5 加密的口令进行认证。如果改为trust表示无条件地允许联接。
ii>postgresql.conf(主配置文件)

所有配置信息在系统视图pg_settings中可查看,通过context可知修改相关配置后是否需要重启。

  1. internal 只读参数,初始化实例时写死的。
  2. postmaster 改变后需要重启。
  3. sighup/backend 不需要重启,需要向postmaster主进程发送SIGHUP信号,让其重启装配配置新的参数。运行pg_ctl reload命令重新装配。
  4. superuser 超级用户使用set命令改变。
  5. user 普通用户使用set命令改变。
## 连接配置项
listen_addresses = '*'          # 默认为localhost,这会导致远程主机无法登录数据库。写具体网络ip表示让特定机器登录,*表示所有地址都可监听。
port = 5432                             # pg默认端口为5432。多个pg实例可以设置不同端口。
max_connections         #允许数据库连接的最大并发连接数,默认100,修改后需要重启。通过sql:show max_connections;也可以查看
superuser_reserved_connections  #超级用户连接数。默认为3,为防止普通用户消费连接数过多导致超级用户无法连接pg。## 日志配置项
logging_collector = on    #开启日志收集。pgSQL10已经默认开启
log_directory = 'log'     #日志目录。日志切换与覆盖有多种方案,可配。一是每天生成一个新的日志文件;二是日志写满到一定大小开启新文件;三是只保留最近7天日志,循环覆盖(pgSQL10默认模式)。## 内存配置项
shared_buffers = 4096MB                 # min 128kB  共享内存大小,主要用于共享数据块。默认值为32MB,尽量设置大一些。具体说明见后文讲解。
work_mem = 4MB                         # min 64kB 单个SQL执行、排序、Hash Join时使用的内存,执行完毕后释放。设置大一些会提高排序操作效率。具体说明见后文讲解。
max_stack_depth    #服务器执行堆栈的最大安全深度,默认为2M。如果发现不能运行复杂的函数时,可以调高此配置,但一个正在运行的递归函数可能会导致pg后台服务进程崩溃,慎重设置。
iii>其它文件
文件/目录作用备注
PG_VERSIONpg版本号
postmaster.opts记录服务器上次启动的命令行参数
base默认表空间的目录下面子目录以对应数据库的OID命名,对应OID子目录下存放着这个数据库的表、索引等数据文件。OID通过select oid,datname from pg_database;查询。
global一些共享系统表的目录
log程序日志目录pg10版本之前未pg_log目录
pg_commit_ts视图提交的时间戳数据pg9.5之后
pg_walWAL日志的目录,在pg10之前此目录是pg_clog

oid(objectID,行对象标识符)
该系统字段只有在创建表时使用了with oids或配置参数default_with_oids的值为真时出现。字段类型也是oid,是4字节无符号整数,不能提供大数据范围内的唯一性保证,因此pg官方不推荐在用户表中使用oid字段。

2,psql命令行操作

# 数据库连接: psql命令在postgresql/bin目录下。
# 添加参数-E可以在执行psql快捷命令时同时输出对应sql。也可以通过命令\set ECHO_HIDDEN on|off控制
psql "host=127.0.0.1 port=5432 user=postgres password=123456 dbname=postgres"
psql -U postgres -d DB_NAME -h localhost -c 'select * from user_info'
# 数据导出-pg_dump命令
pg_dump "host=XX.XX.XX.XX port=5432 user=XXXX password=XXXX dbname=XXXXX" -t table_name -f table_name.sql
# 数据导出-psql命令
psql "host=XX.XX.XX.XX port=5432  user=XXX password=XXX dbname=XXX" -f table_name.sql

常见psql快捷命令(通过psql连接数据库后,通过“\”开头的快捷命令进行数据库相关操作,tab键可补全命令):

说明命令备注
退出命令行模式\q
查看数据库\l小写L
切换数据库\c dbName
查询当前登录的数据库和用户\cYou are now connected to database “postgres” as user “postgres”
查看sql语法(help)\h create user
查看更多命令?
查看所有表\d
查看结构\d namename可以包含通配符*或?,可以是表名、索引、视图、序列、函数。如果使用\d+会显示的更详细
列出所有schema\dn
查看所有表空间\db
查看所有角色和用户\du或\dgpg中用户和角色是不区分的
查看表权限分配情况\dp或\z
查看执行时间\timing on sql语句
指定客户端字符编码\encoding gbkutf8
执行外部文件的sql命令\i fileNamepsql -x -f fileName
编辑器\e类似vi,退出vi后会执行其中输入的内容
查看或编辑函数\ef 函数名不加函数名显示函数模板。退出vi后可\reset来清除命令缓冲区数据,防止误操作。
查看或编辑视图\ev 视图名不加函数名显示视图模板。退出vi后可\reset来清除命令缓冲区数据,防止误操作。

3,系统命令

1)查看版本信息

说明命令
查看客户端版本psql --version
查看服务器版本详细信息select version();
查看服务器版本信息show server_version;
查看服务器数字版本信息包括小版号SHOW server_version_num;

2)时间相关命令

说明命令备注
查看数据库启动时间select pg_postmaster_start_time()
查看最后load配置文件的时间select pg_conf_load_time()pg_ctl reload后改变这个时间
显示当前数据库时区show timezone时区不一样的情况下,数据库时间和操作系统时间不一致。;PRC: People’s Republic of China
查看当前时间select now()
设置时区set time zone ‘GMT’PRC为北京时区
查看所有时区的名字SELECT * FROM pg_timezone_names

3)其它常用命令

说明命令备注
当前连接数据库select current_catalog, current_database();两者结果一样
查看pg是否正在做基础备份select pg_is_in_backup(),pg_backup_start_time();
查看数据库大小select pg_database_size('ngsoc'), pg_size_pretty(pg_database_size('ngsoc'));pg_size_pretty会转换成MB\GB等格式展示

4,服务启停及原理

1)服务启动

  1. 直接运行postgres进程
/lwh/postgresql/bin/postgres -D /lwh/data/postgresql &   #-D指定数据目录,&表示后台执行。postgres也可以换成postmaster,一回事。如果权限不够在命令前面添加:su postgres -c 
  1. 使用pg_ctl命令启动
/lwh/postgresql/bin/pg_ctl start -D /lwh/data/postgresql  #-D指定数据目录

2)服务停止

  1. 直接向运行的postgres主进程发送signal信号
signal信号关机模式描述
SIGTERMSmart Shutdown 智能关机服务器将不允许新连接,等所有连接断开才关闭数据库
SIGINTFast Shutdown 快速关机不再允许新连接,并向所有子进程发送 SIGINT 信号,让它们立刻退出,然后等待子进程退出后关闭数据库
SIGQUITImmediate Shutdown 立即关闭立即关闭并退出,下次启动时数据库重放WAL日志进行恢复。仅用于紧急情况的关闭。
  1. 使用pg_ctl命令停止数据库
#没有权限需要在最前面添加su postgres -c
pg_ctl stop -D dataDir -m smart  #对应Smart Shutdown 模式;fast对应 Fast Shutdown;immediate 对应 Immediate Shutdown.具体说明可通过--help查看。默认模式是哪个?谁知道啊???

3)服务检测是否启动

ps aux | grep /lwh/data/postgresql | grep -v grep | wc -l    #返回值不为0表示服务存在
ps aux | grep /lwh/data/postgresql | grep -v grep | awk '{print $2}' #返回具体的pid表示服务存在
或者:
netstat -ntlp | grep 5432  #5432为pg默认端口

5,备份与还原

分为逻辑备份和物理备份。

1)pg_dump/pg_dumpall命令

pg_dumpall是将一个pg集群全部转存到另一个脚本文件(sql脚本、归档文件)中,而pg_dump命令可以选择一个数据库或部份表进行备份。pg_dump结合pg_restore使用,能灵活备份和恢复。

2)冷备份

最简单的物理备份就是冷备份,即:停止pg,然后拷贝pg的data目录。

3)热备份

即不停止数据库进行备份,常见的方法有:PITR方法、使用文件系统或块设备级别的快照功能完成备份。Linux下最简单的备份方式是使用LVM的快照功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx日志检测分析工具 - WGCLOUD

WGCLOUD可以对Nginx的日志文件进行全面分析&#xff0c;包括IP、sql注入攻击、搜索引擎蜘蛛爬取记录、HTTP响应状态码、访问量最高的IP统计、扫描攻击统计等 效果如下图

C#winform上位机开发学习笔记13-串口助手显示系统时间功能添加

1.功能描述 在上位机中显示系统的实时时间 2.代码部分 步骤1&#xff1a;添加文本框控件并设置参数 #此处注意将BackColor颜色修改为非Control&#xff0c;即可正常显示ForeColor颜色&#xff0c;否则该颜色不变&#xff0c;原因暂且不明。 步骤2&#xff1a;添加timer控件…

Linux/Doctor

Enumeration nmap 已知目标开放了22,80,8089端口&#xff0c;扫描详细情况如下 可以看到对外开放了22,80,8089三个端口 TCP/80 SSTI 访问80端口&#xff0c;有一个infodoctors.htb的电子邮件&#xff0c;点击其他的也没有什么反应&#xff0c;猜测有可能需要域名访问 在/et…

[每日一题] 01.25 - 子数整数

子数整数 k int(input()) flag False for i in range(10000,30001):a,b,c [int(str(i)[j:j 3]) for j in range(3)]if a % k 0 and b % k 0 and c % k 0:print(i)flag Trueif not flag:print(No)

Python批量采集亚马逊商品数据

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 知识点: 爬虫基本流程 非结构化数据解析 开发环境&#xff1a; python 3.8 解释器, 运行代码 pycharm 随便 配置 python解释器 DrissionPage >>> p…

前出深入-机器学习

文章目录 一、K近邻算法1.1 先画一个散列图1.2 使用K最近算法建模拟合数据1.3 进行预测1.4 K最近邻算法处理多元分类问题1.5 K最近邻算法用于回归分析1.6 K最近邻算法项目实战-酒的分类1.6.1 对数据进行分析1.6.2 生成训练数据集和测试数据集1.6.3 使用K最近邻算法对数据进行建…

阿里云服务器部署幻兽帕鲁联机服务器详细教程

幻兽帕鲁是一款备受欢迎的多人在线游戏&#xff0c;其联机服务器对于游戏的稳定运行至关重要。本文将详细介绍如何在阿里云服务器上部署幻兽帕鲁联机服务器&#xff0c;新手小白也能轻松搭建并管理自己的游戏环境。 还未购买阿里云服务器可以参照下面的步骤部署&#xff0c;已经…

Vue+OpenLayers7入门到实战:在地图上添加缩放控件、比例尺控件和鼠标经纬度位置显示控件

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章主要介绍如何使用OpenLayers7在地图上添加地图缩放控件,比例尺显示控件和鼠标经纬度位置展示控件这三个Control控件。 二、依赖和使用 "ol": "7.5.2"使用npm安装依赖npm install ol@7.5.…

【SpringBoot】mybatis基础操作

mybatis入门 1.mybatis准备操作 创建数据库&#xff1a; CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4; -- 使⽤数据数据 USE mybatis_test; -- 创建表[用户表] DROP TABLE IF EXISTS userinfo; CREATE TABLE userinfo ( id INT ( 11 ) NOT NULL AUTO_INCRE…

LeetCode刷题---分隔链表

解题思路: 根据题意对链表进行分割 创建链表l用来表示小于给定值x的链表,创建辅助链表left指向l的初始节点 创建链表r用来表示大于等于给定值x的链表&#xff0c;创建辅助链表right指向r的初始节点 创建辅助链表cur&#xff0c;指向head节点 对原链表进行遍历 如果当前节点的va…

Flink多流转换(2)—— 双流连结

双流连结&#xff08;Join&#xff09;&#xff1a;根据某个字段的值将数据联结起来&#xff0c;“配对”去做处理 窗口联结&#xff08;Window Join&#xff09; 可以定义时间窗口&#xff0c;并将两条流中共享一个公共键&#xff08;key&#xff09;的数据放在窗口中进行配…

五、垃圾回收

1. 垃圾回收基础 1.1 什么是垃圾 简单说就是&#xff1a;内存中已经不再被使用到的内存空间就是垃圾。 1.2 如何判定是垃圾 1.2.1 引用计数法 引用计数法&#xff1a;给对象添加一个引用计数器&#xff0c;有访问就 1&#xff0c;引用失效就 -1 引用计数法的优缺点&#…

抖音信息流广告引流,这种方法你要知道-数灵通

随着抖音的普及&#xff0c;我们经常会在刷视频的过程中遇到各种广告。这些广告不仅种类繁多&#xff0c;而且形式各异。除了常见的开屏广告和达人合作广告&#xff0c;信息流广告也是抖音广告的一种重要形式。那么&#xff0c;什么是信息流广告呢&#xff1f; 信息流广告是一种…

03. 静态路由

文章目录 一. 静态路由概述1.1. 概述1.2. 路由信息获取方式1.3. 路由表的参数1.4. 路由协议的优先级1.5. 最优路由条目优先1.6. 最长前缀匹配原则 二. 实验实操2.1. 实验1&#xff1a;静态路由2.1.1. 实验目的2.1.2. 实验拓扑图2.1.3. 实验步骤&#xff08;1&#xff09;配置网…

数据结构——双链表

双链表中节点类型的描述&#xff1a; 双链表的初始化&#xff08;带头结点&#xff09; 、 双链表的插入操作 后插操作 InsertNextDNode(p, s): 在p结点后插入s结点 按位序插入操作&#xff1a; 思路&#xff1a;从头结点开始&#xff0c;找到某个位序的前驱结点&#xff…

周鸿祎回应坚定支持华为:因为 360 也被制裁了

在昨天的华为鸿蒙生态千帆启航仪式上&#xff0c;360集团创始人兼CEO周鸿祎发表演讲表示&#xff0c;360坚定地支持华为的决定源于双方都曾遭到制裁。周鸿祎在演讲中提到&#xff1a;“在华为最早被制裁的时候&#xff0c;我们是少数几个公开站出来坚定支持华为的公司。其实也很…

如何进行H.265视频播放器EasyPlayer.js的中性化设置?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;可支持H.264与H.265编码格式&#xff0c;性能稳定、播放流畅&#xff0c;能支持WebSocket-FLV、HTTP-FLV&#xff0c;HLS&#xff08;m3u8&#…

【域名解析】如何将域名指向对应服务器IP

目录 &#x1f337;一、域名解析基本概念 &#x1f33c;1. 定义 &#x1f33c;2. 域名解析类型 &#x1f337;二、域名解析服务器IP地址 &#x1f33c;1. 操作步骤 &#x1f33c;2. 验证 &#x1f337;一、域名解析基础知识 &#x1f33c;1. 基本概念 定义&#xff1a; …

luceda ipkiss教程 58:输出器件的版图和三维模型

在ipkiss中&#xff0c;通过visualize_3d_povray可以输出包含器件的三维模型参数的.pov文件&#xff0c;再通过POV-Ray&#xff08;免费软件&#xff0c;下载地址&#xff1a;https://www.povray.org/download/&#xff09;就可以查看器件的三维模型。 如&#xff1a; 代码如…

如何安装MeterSphere并实现无公网ip远程访问服务管理界面

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通…