PostgreSQL管理命令

0. 安裝:

# wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
# sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
# apt install postgresql-11
# apt install postgis

1. 系統(tǒng)程序:

createdb       創(chuàng)建一個新的數(shù)據(jù)庫(同SQL:CREATE DATABASE) 
createuser     創(chuàng)建一個新的用戶(同SQL:CREATE USER )
dropdb         刪除數(shù)據(jù)庫 
dropuser       刪除用戶 
pg_dump        將指定數(shù)據(jù)庫導出到一個腳本文件 
pg_dumpall     將所有數(shù)據(jù)庫導出到一個腳本文件 
pg_restore     從一個由pg_dump或pg_dumpall程序?qū)С龅哪_本文件中恢復數(shù)據(jù)庫 
psql           命令行交互式客戶端,如psql [database]
vacuumdb       清理和分析一個PostgreSQL數(shù)據(jù)庫,它是客戶端程序psql環(huán)境下SQL語句VACUUM的shell腳本封裝,二者功能完全相同

pg_ctl         啟動、停止、重啟(如:pg_ctl start 和 service postgresql start相同) 
pg_controldata 顯示PostgreSQL服務的內(nèi)部控制信息 

2. psql 命令

db=# \l  查看系統(tǒng)中現(xiàn)存的數(shù)據(jù)庫 
db=# \q  退出客戶端程序psql 
db=# \c  從一個數(shù)據(jù)庫中轉(zhuǎn)到另一個數(shù)據(jù)庫中,如db=# \c sales 從db轉(zhuǎn)到sales 
db=# \dt 查看表列表
db=# \d  查看Object [表,序列等]
db=# \d [表名]  查看表結(jié)構(gòu) 
db=# \di 查看索引

3. 基本數(shù)據(jù)庫操作及DML

安裝擴展:  CREATE EXTENSION postgis
創(chuàng)建數(shù)據(jù)庫:create database [數(shù)據(jù)庫名]; 
刪除數(shù)據(jù)庫:drop database [數(shù)據(jù)庫名]; 
創(chuàng)建表:   create table 
重命名表: alter table [表名A] rename to [表名B]; 
刪除表:   drop table [表名]; 
在已有的表里添加字段: alter table [表名] add column [字段名] [類型]; 
刪除字段: alter table [表名] drop column [字段名]; 
修改數(shù)據(jù)類型:alter table [表名] alter column [字段名] type [類型];
重命名字段: alter table [表名] rename column [字段名A] to [字段名B]; 
給字段設(shè)置缺省值: alter table [表名] alter column [字段名] set default [默認值]; 
去除缺省值: alter table [表名] alter column [字段名] drop default; 

4. PostgreSQL用戶管理

PostgreSQL數(shù)據(jù)目錄中的pg_hba.conf的作用就是用戶認證。
有以下幾個例子可以看看:

  1. 允許在本機上的任何身份連接任何數(shù)據(jù)庫
# TYPE DATABASE USER IP-ADDRESS METHOD 
 local  all      all            trust
  1. 允許IP地址為192.168.1.x的任何主機與數(shù)據(jù)庫sales連接
# TYPE DATABASE USER IP-ADDRESS  METHOD 
  host  sales   all  192.168.1.0/32  md5
創(chuàng)建PostgreSQL數(shù)據(jù)庫用戶示例
  • 啟用客戶端程序,并進入template1數(shù)據(jù)庫
    psql template1
  • 創(chuàng)建用戶
    CREATE USER hellen WITH ENCRYPED PASSWORD 'zhenzhen';
  • 修改密碼
    ALTER USER hellen WITH PASSWORD 'postgres';
  • 因為設(shè)置了密碼,所以要編輯pg_hba.conf,使用戶和配置文件同步。
    在原有記錄上面添加md5
    local all hellen md5
  • 使用新用戶登錄數(shù)據(jù)庫
    template1=# \q
    psql -U hellen -d template1
  • 切換用戶:
    template1=# \!psql -U tk -d template1
設(shè)定用戶的權(quán)限
  • 創(chuàng)建一個用戶組:
    CREATE GROUP sale;
  • 添加幾個用戶進入該組
    ALTER GROUP sale ADD USER sale1,sale2,sale3;
  • 授予用戶級sale針對表employee和products的SELECT權(quán)限
    GRANT SELECT ON employee,products TO GROUP sale;
  • 在sale中將用戶user2刪除
    ALTER GROUP sale DROP USER sale2;

5. 備份數(shù)據(jù)庫

可以使用pg_dump和pg_dumpall來完成。比如備份sales數(shù)據(jù)庫:
pg_dump sales>/home/tk/pgsql/backup/1.bak

6. 主從配置

MASTER:

psql

CREATE ROLE replica login replication encrypted password 'replica'
vi /etc/postgresql/11/postgresql.conf

wal_level = replica
max_wal_senders=10
wal_keep_segments=256
archive_mode = on
archive_command = 'rsync -a %p postgres@slave:/var/lib/pgsql/11/walarchive%f' 
listen_addresses = '*'
vi /etc/postgresql/11/pg_hda.conf

host    replication     replica         172.59.59.0/24          md5

SLAVE:

mkdir -m 700 /var/lib/pgsql/11/walarchive

service stop postgresql
rm -rf $PGDATA/*
pg_basebackup -h 172.59.59.112  -D /var/lib/postgresql/10/main/ -P -U replicate --wal-method=stream

vi /etc/postgresql/11/postgres.conf

hot_standby = on
hot_standby_feedback=on
vi  $PGDATA/recovery.conf

standby_mode = 'on'
primary_conninfo = 'user=replica password=replica host=172.59.59.112 port=5432'
restore_command = 'cp /var/lib/pgsql/11/walarchive/%f %p'
archive_cleanup_command='/usr/bin/pg_archivecleanup /var/lib/postgresql/11/walarchive %r'
trigger_file = '/var/lib/postgresql/11/main/finish.replication'
recovery_target_timeline = 'latest'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • (1)用戶實用程序:createdb 創(chuàng)建一個新的PostgreSQL的數(shù)據(jù)庫(和SQL語句:CREATE DAT...
    小線亮亮閱讀 1,763評論 0 1
  • About:PostgreSQL About 《PostgreSQL 源碼分析系列》 PostgreSQL 源碼分...
    ty4z2008閱讀 8,567評論 1 40
  • 在上一章中我們講了怎么安裝PostgreSQL,在數(shù)據(jù)庫安裝完成及啟動數(shù)據(jù)庫服務以后,需要連接到數(shù)據(jù)庫上對數(shù)據(jù)庫里...
    shark_tear閱讀 95,988評論 3 2
  • 聽說,人在二十多歲的時候會明白自己要做什么。這個說法聽起來好玄幻,好像一點兒根據(jù)也沒有。如果你愿意靜下來想一想,在...
    森和閱讀 339評論 0 0
  • 橙子學院作業(yè)
    Real_bin閱讀 124評論 1 0

友情鏈接更多精彩內(nèi)容