postgresql端末コマンドとpostgersqlデータベースのバックアップ

7405 ワード

postgresql端末コマンド
  • postgresのインストールが完了すると、オペレーティングシステムとpostgresデータベースにpostgresというユーザーと、同じpostgresというデータベースが自動的に作成されます.
  • postgresqlデータベースをインストールしてpsql shellに入ります
  • windowsの下の端末は一般的にC:\ProgramData\Microsoft\Windows\Start Menu\Programs\PostgreSQL 9.6というディレクトリの下にデフォルトである.
  • ubuntuは入力コマンドが端末に入る
  • su - postgres psql

  • centosも入力コマンドが端末に入る
  • su - postgres
  • psql



  • shellでよく使われるコマンド
  • データベース接続、デフォルトのユーザーとデータベース時postgres
  • データベースを切り替えmysqlのuse dbnameに相当
  • \c dbname

  • データベースがmysqlのshow databasesに相当する
  • \l

  • 列挙表、mysqlのshow tablesに相当
  • \dt

  • テーブル構造を表示します.desc tblname、show columns from tbnameに相当します.
  • \d tblname

  • \diインデックス
  • を表示
  • データベース関連アクション
  • #     
    create user "odoo" with password 'odoo' createdb;(  odoo     )
    createdb                  
        alert user "xxx" createdb;
    
    #      
    create database [     ];
    create database testdb;
    
    #            
    create database testdb with owner = "zhangps";
    
    #      
    drop database [     ];
    DROP(drop) DATABASE testdb;
    
    #       
    alter table [  A] rename to [  B];
    
    #      
    drop table [  ];
    
    #          
    alter database adempiere owner to adempiere; 
    
    #         
    alter database testa rename to test;
    
    
  • 表の関連操作
  • #           
    alter table [  ] add column [   ] [  ]; 
    
    #        
    alter table [  ] drop column [   ]; 
    
    #          
    alter table [  ] rename column [   A] to [   B]; 
    
    #             
    alter table [  ] alter column [   ] set default [     ];
    
    #      
    alter table [  ] alter column [   ] drop default; 
    
    #        
    insert into    ([   m],[   n],......) values ([ m  ],[ n  ],......); 
    
    #             
    update [  ] set [     ]=[   ] where [    ]; 
    
    #          
    delete from [  ] where [    ]; 
    delete from [  ];--      
    
    #    : 
    create table ([   1] [  1] ;,[   2] [  2],......;); 
    
    
  • その他
  • #    PostgreSQL         
    \copyright
    
    #             
    \encoding [      ]
     
    # SQL         ,  *       
    \h [  ]
    
    #           
    \prompt [  ]   
      
    # securely change the password for a user               
    \password [USERNAME]
                     
    #    psql
    \q             
    
    

    データベースのバックアップと移行
  • Postgresqlには多くのツールが内蔵されており、バックアップ・リカバリ・スキームはpg_dump.exe psql.この2つの指定は、ローカルインストール(windows下)C:Program FilesPostgreSQL9.5;などのインストールディレクトリの下にあります.そしてbinフォルダに入ります.
  • データベースのバックアップとリカバリ
  • #          :
    #     postgresql      bin         
    pg_dump -h 127.0.0.1 -U postgres databasename > C:\databasename.dump
    
    #     
        # pg_dump         
        # 164.82.233.54     ip  (                ),        ip localhost
        #          ,                --->  
        # postgres         
        # databasename      
        # >        C:\databasename.bak   ,       ,   databasename.bak   ,           C: \Program Files\PostgreSQL\9.0\bin     。
    
    
    #          : 
    psql -h localhost -U postgres -d databasename <  C:\databasename.bak(      )
    
    pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password  --verbose "databasename.backup"(    )
    
    #     
        # psql        
        # localhost             ,       ip  ,         (                 )
        # postgres               
        # databasename           
        # <       C:\databasename.bak            
        
    
  • linuxでのデータのバックアップとリカバリ
  • データをバックアップするときのユーザと、データをリカバリするときのユーザとでは同じ権限を持たなくてもよい.
  • #   
    #       postgresql      bin  
    /usr/PostgreSQL/9.5/bin/pg_dump -h 164.82.233.54 -U postgres databasename > databasename.dmp
    
    #   
    /usr/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename < databasename.dmp
    
    
  • 別のバックアップ方法
  • #   192.168.122.1     osdba,      192.168.122.2   .
    #       postgresql      bin  
    #               
    #        , -Fc      pg_restore -C         
    pg_dump -h 192.168.122.1 -U postgres osdba -Fc > osdba.dump
    pg_restore -h 192.168.122.2 -U postgres -d postgres osdba.dump
    #  pg_restore   , -d          192.168.122.2            ,pg_restore  
              ,    CREATE DATABASE    osdba   ,        osdba   ,   
               osdba    
    
    
  • postgresql外部アクセスを開く
  • pg_を修正hba.confファイル
  • # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local   all             all             trust
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            trust
    host    all             all             0.0.0.0/0                md5
    # IPv6 local connections:
    host    all             all             ::1/128                 ident
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local   replication     postgres                                peer
    #host    replication     postgres        127.0.0.1/32            ident
    #host    replication     postgres        ::1/128                 ident
    
    
  • postgresqlを修正する.confファイル
  • #------------------------------------------------------------------------------
    # CONNECTIONS AND AUTHENTICATION
    #------------------------------------------------------------------------------
    
    # - Connection Settings -
    
    listen_addresses = '*'                  # what IP address(es) to listen on;
                                            # comma-separated list of addresses;
                                            # defaults to 'localhost'; use '*' for all
                                            # (change requires restart)
    port = 5432                             # (change requires restart)
    max_connections = 100                   # (change requires restart)
    #superuser_reserved_connections = 3     # (change requires restart)
    #unix_socket_directories = '/var/run/postgresql, /tmp'  # comma-separated list of directories
                                            # (change requires restart)
    #unix_socket_group = ''                 # (change requires restart)
    
    
  • クラウドサーバシステムの場合、クラウドサーバにセキュリティグループルールを追加し、対応するポートを開き、ローカルのファイアウォールを開く.対応するポートを追加します.
  • # centos   
    #      8069  
    firewall-cmd --zone=public --add-port=8069/tcp --permanent
    firewall-cmd --reload
    #       
    firewall-cmd --list-all
    
    
  • バックアップの他の方法(テストに成功)
  • #        PostgreSQL           。
    
    #         
    #                                  ,         
    pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname
    #   
    pg_dump -C -h remotehost -U remoteuser dbname | psql -h localhost -U localuser dbname
    
    
  • その他のバックアップ方法(検証なし)
  • # pg_dump         ,             。                 ,    pg_dumpall
    
      shell  
    pg_dumpall > outfile  
      shell  
    psql -f infile postgres  
    
    #   pg_dumpall       superuser  ,                    。
    # pg_dumpall  emitting      、        ,          pg_dump.                  ,                
    
    
    #       
    1.     
    
      shell  
    pg_dump dbname | gzip > filename.gz
      shell  
    gunzip -c filename.gz | psql dbname  
      
    cat filename.gz | gunzip | psql dbname