【云原生进阶之数据库技术】第三章-PostgreSQL-管理-2.2-运维操作

news/2024/7/9 21:37:12 标签: 数据库, postgresql, 运维, mysql, oracle

2 PostgreSQL运维管理

2.1 登入登出

#登入postgres用户
[root@client ~]# su - postgres
#psql -h 服务器 -U 用户名 -d 数据库 -p 端口
-bash-4.2$ psql -U dbuser -d demo -h 127.0.0.1 -p 5432

-bash-4.2$ psql        #链接数据库,默认用户和数据库都是postgres
#相当于系统用户postgres以同名数据库用户的身份登录数据库,这时不用输入密码的,如果一切正常,系统提示符会变成postgres=# ,表示这时已经进入了数据库控制台

#登出
postgres=# \q或exit

2.2 数据库操作

2.2.1 查看psql命令列表

?

2.2.2 数据库相关操作

1.查看有哪些数据库(postgres是该数据库的默认用户)

        切换su - postgres用户(直接在终端输入psql也可实现),在postgres用户下输入\l

2.连接指定服务器上的数据库

psql -h IP地址或数据库名 -p 端口 -U 用户名 -d 数据库

3.创建名字为mydb的数据库

CREATE DATABASE mydb

4.查看所有数据库

\l

5.退出数据库

\q

6.切换到名字为mydb的数据库

\c mydb

7.删除mybd数据库

drop database mybd

2.2.3 备份与恢复PostgreSQL数据库

        备份格式:*.bak、*.sql、*.tar

1.将数据库mydb备份到当前目录(.bak或.sql格式)

pd_dump mydb > mydb.bak

2.将数据库mydb备份到/tmp目录(.bak或.sql格式)

pd_dump -U 用户名 -f /tmp/mydb.bak mydb

3.将数据库mydb备份为指定格式

pd_dump -U 用户名 -F t -f /tmp/mydb.tar mydb

4.恢复*.bak或*.sql的备份数据库,以下命令代表将mydb.sql的备份数据库恢复到mydb数据库

psql -U 用户名 -f /tmp/mydb.sql mydb

5.恢复自定义格式的备份数据库

pg_restore -U 用户名 -d mydb /tmp/mydb.tar

备注:在恢复备份数据库之前需要新建空白数据库

2.2.4 其他创建操作库的方法

1.在bash环境中创建

2.在Navicat软件中创建

2.3 如何备份PostgreSQL数据库

        如果在生产环境中使用PostgreSQL,请务必采取预防措施以确保用户的数据不会丢失。

2.3.1 单数据库

        PostgreSQL提供了pg_dump实用程序来简化备份单个数据库的过程。必须以对要备份的数据库具有读取权限的用户身份运行此命令:

        以postgres用户身份进行登录

[root@client ~]# su - postgres

        通过运行以下命令将数据库的内容转存到文件中。替换dbname为要备份的数据库的名称。

-bash-4.2$ pg_dumo 数据库名 > 自定义名.bak

        生成的备份文件*.bak可以使用scp传输到另一台主机也可以存储在本地以供之后使用。使用psql恢复数据库

-bash-4.2$ psql 数据库名 < 自定义名.bak

        备份格式有几种选择:

  1. bak:压缩二进制格式
  2. sql:明文转储
  3. tar:tarball

        在默认情况下,PostgreSQL将忽略备份过程中发生的任何错误,这可能导致备份不完整,要防止这种情况,可以使用-1选项运行pg_dump命令。这会将整个备份过程视为单个事务,将在发生错误时阻止部分备份。

2.3.2 所有数据库

        由于pg_dump一次只创建一个数据库的备份,因此他不会存储有关数据库角色或其他集群范围配置的信息,要存储此信息并同时备份所有数据库,可以使用pg-dumpall。

创建配置文件:

-bash-4.2$ pg_dumpall > pg_backup.bak

        从备份还原所有数据库

-bash-4.2$ psql -f pg_backup.bak postgres

##备份数据库
##导出数据库保存为……
$ pg_dump -U 用户名 -f 备份文件 库名 
##导出数据库中某表保存为……
$ pg_dump -U postgres -f 备份文件 -t 表名 库名
##导出数据库以tar格式压缩保存为……
$ pg_dump -U postgres -F t -f 备份文件 库名 

##恢复数据库
##恢复备份文件到指定库
$ psql -U postgres -f 备份文件 库名
##从pg_dump创建的备份文件中恢复数据库,用于恢复由pg_dump转储的任何非纯文本格式中的数据库。
#pg_restore --
##恢复备份文件到指定数据库
$ pg_restore -U 用户名 -d 库名 备份文件

2.4 PostgreSQL用户管理

        在postgresql里没有区分用户和角色的概念,create user是create role的别名,这两个命令几乎是完全相同的,唯一的区别就是create user命令创建的用户默认带有login属性,而create role命令创建的用户不带login属性。

角色属性

说明

login

只有具有login属性的角色可以用作数据库链接的初始角色名

superuser

超级用户

createdb

创建数据库权限

createrole

允许创建或删除其他普通用户角色(超级用户除外)

replication

做流复制时用到的一个用户属性,一般单独设定

password

在登录时要求指定密码时才会起作用,跟客户端的链接认证方式有关

inherit

用户组对组员的一个继承标志,成员可以继承用户组的权限特性

2.5 控制台常用命令总结

命令

说明

\password

设置当前密码

\q

退出

\h

查看sql命令的解释,如\h select

?

查看psql命令列表

\l

列出所有数据库

\c [database_name]

链接其他数据库

\d

列出当前数据库的所有表格

\d [table_name]

列出某一张表格的结构

\du

列出所有用户

2.6 数据表操作

2.6.1 数据类型

        创建表格时每列都必须使用数据类型,PostgreSQL中主要有三类数据类型:

  • 数值数据类型
  • 字符串数据类型
  • 日期/时间数据类型
2.6.1.1 常用数值类型

名字

存储长度

描述

范围

smallint

2字节

小范围整数

-32768到32767

int(integer)

4字节

常用的整数

-2147483648到2147483647

bigint

8字节

大范围整数

-9223372036854775808到9223372036854775807

decimal

可变长

用户指定的精度,精确

小数点前131072位;小数点后16383位

numeric

可变长

用户指定的精度,精确

小数点前131072位;小数点后16383位

real

4字节

可变精度,不精确

6位十进制数字精度

double

8字节

可变精度,不精确

15位十进制数字精度

2.6.1.2 字符串类型包括

名字

描述

char(size)

固定长度字符串,size规定了需存储的字符数,由右边的空格补齐

varchar

可变长度字符串,size规定了需存储的字符数

text

可变长度字符串

2.6.1.3 日期/时间类型

名字

描述

timestamp

日期和时间

data

日期,无时间

time

时间

2.6.1.4 其他数据类型

        其他数据类型还有布尔值boolean(false或true),货币数额(money)和几何数据等。

2.6.2 表管理相关操作

(1)查看数据库中的表

\d

(2)查看表的具体信息

\d 表名

(3)创建表

#命令:

CREATE TABLE 表名(字段1 字段1的数据类型,字段2 字段2的数据类型,字段3 字段3的数据类型,···);

(4) 删除某个表

drop table 表名;

(5)在表中每次插入一条数据

命令:

INSERT INTO 表名 (字段1,字段2,字段3,···) VALUES (字段1的值,字段2 的值,字段3的值,···);

(6)查询表中的所有数据

SELECT * FROM 表名;

(7)查询表中特定条件的数据记录

SELECT * FROM 表名 WHERE 字段名 = 字段值;

(8)统计表中的所有记录总数

SELECT COUNT(*) AS "RECORDS" FROM 表名;

(9)更新表中某个ID的某个字段的值

UPDATE 表名 SET 字段名=字段更新的值 WHERE ID =ID 号;

(10) 同时更新表中某个ID的多个字段的值

UPDATE 表名 SET 字段1=字段1更新的值,字段2=字段2更新的值 WHERE ID =ID号;

(11)同时更行表中多个字段的值(不区分ID)

UPDATE 表名 SET 字段1=字段1更新的值,字段2=字段2更新的值;

(12)按特定条件删除表中的数据

DELETE FROM 表名 WHERE 字段名=字段值;

(13)查看当前时间

SELECT CURRENT_TIMESTAMP;

(14)找出表中某个字段为空/不为空的记录

SELECT * FROM 表名 WHERE 字段 IS NOT NULL; SELECT * FROM 表名 WHERE 字段 IS NULL;

(15)从表的某行开始获取N条数据,一般通过该命令实现分页功能

        以下语句表示:从表t_host的0行开始获取20条数据。

SELECT "t1"."id", "t1"."create_at", "t1"."update_at", "t1"."sn", "t1"."ip", "t1"."ipmi", "t1"."ipmi_user", "t1"."ipmi_password", "t1"."card_type", "t1"."power_status", "t1"."stage", "t1"."task_id", "t1"."create_by", "t1"."update_by" 
FROM "t_host" AS "t1" LIMIT 20 OFFSET 0

参考链接

进阶数据库系列(一):PostgreSQL 基础入门与安装 - 知乎

PostgreSQL数据库-CSDN博客

PGSQL(PostgreSQL)数据库基础篇:PostgreSQL 的 主要优点 、 劣势 、体系结构 、核心功能 、安装教程。-CSDN博客

PostgreSQL 数据库介绍与使用 - 知乎

PostgreSQL数据库_数据库_单纯的一比-CSDN开发云


http://www.niftyadmin.cn/n/5435289.html

相关文章

【微服务】分布式调度框架PowerJob使用详解

目录 一、前言 二、定时任务调度框架概述 2.1 为什么需要定时任务调度框架 2.2 定时任务调度使用场景 三、PowerJob 介绍 3.1 PowerJob 概述 3.2 PowerJob 功能特性 3.3 PowerJob 应用场景 3.4 PowerJob 与其他同类产品对比 四、PowerJob 部署 4.1 PowerJob 架构 4.…

如何定期清理数据库中的无效数据?

企业的数据库在运行相当长一段时间后&#xff0c;都会出现无效数据的堆积&#xff0c;这些数据包含了过时、重复、错误、缺失&#xff08;空字段&#xff09;的数据&#xff0c;长期占据着宝贵的数据库空间。而在上云热潮的推动下&#xff0c;绝大多数企业已经将他们的业务数据…

静默安装OGG21.3微服务版本FOR ORACLE版本

静默安装OGG21.3微服务版本FOR ORACLE版本 silent install ogg21.3 for oracle 某度找来找去都没有找到一份可靠的静默安装OGG21.3微服务版本的案例&#xff0c;特别难受&#xff0c;为此将自己静默安装的步骤一步步贴出来分享给大家&#xff0c;请指点&#xff0c;谢谢。 至…

[ Linux ] vim的使用(附:命令模式的常见命令列表)

1.下载安装 这里是在通过yum进行下载安装 yum install -y vim 2.了解 vim是一款编辑器&#xff0c;它具有多模式的特点 主要有&#xff1a;插入模式&#xff0c;命令模式&#xff0c;底行模式 3.使用 打开 vim 文件名 命令模式的常见命令列表 插入模式 按「 i 」切换…

WebSocket多服务实例下的消息推送

最近在做一个项目&#xff0c;涉及到前后端的消息同步、推送&#xff0c;进而我们选择使用webSocket的方案进行实现&#xff0c;但是当websocket服务端部署在多个实例下&#xff0c;会出现前端socket意外断开导致无法收到消息的情况。手下我们先说我们的实现方案&#xff1a; 1…

IOS面试题object-c 131-135

131. 简述category如何被加载的?两个 category 的load方法的加载顺序?两个 category 的同名方法的加载顺序? ?category的加载是在运行时发生的,加载过程是:把category的实例方法、属性、协议添加到类对象上,把category的类方法、属性、协议添加到metaclass上。 category…

Dubbo(一)

RPC框架 不仅具备RPC访问功能&#xff0c;还具备服务治理功能 2.5.3 2.7.3 Provider 提供者。编写持久层和事务代码 registry&#xff1a;Provider的ip 端口 协议 接口中的方法 consumer&#xff0c;service、controller monitor&#xff1a; dubbo支持的协议&#xff1a; Du…

STM32G4高精度定时器的同步功能

1、引言 STM32G474 所含的高精度定时器(HRTIMER)其实包含了多个定时器&#xff0c;多个定时器之间可以单独工作&#xff0c;也可以进行同步&#xff0c;且高精度定时器还能与片上的其他定时器以及其他芯片进行同步&#xff0c;本文将对高精度定时器的同步功能进行介绍。 2、定…