连锁当家运维手册


gp和pg数据库运维常用命令

<p>1、 在gp数据库上执行如下命令, COPY (select <em> from g_viprecord) TO '/home/a_list_g_viprecord.txt’;     或者 COPY g_viprecord TO '/home/a_list_g_viprecord.txt’; 如果需要导出csv格式包含表头 COPY (select </em> from g_viprecord) TO '/data/a_list_g_viprecord.csv’; CSV HEADER;</p> <p>2、 在pg上相同结构的表中执行如下命令 COPY g_viprecord FROM '/home/a_list_g_viprecord.txt’ 3、用select count(*) from g_viprecord 检查记录数量是否一致 4、 查看版本信息 SELECT version();</p> <p>5、 整个数据库导出 pg_dumpall -h 192.168.91.82 -p 5432 -U postgres &gt;/data/younger20150110.sql</p> <p>备份或者还原时候,先切换用户# su postgres 如果权限不足;先 cd/data 然后在执行命令;</p> <p>在postgres用户下 执行还原命令  psql -f /data/younger20150110.sql postgres 还原时如果不想看输出信息 加上 -q 参数、、   只备份某个数据库;</p> <p>在postgres用户下 执行备份命令 pg_dump -U  postgres  -h  192.168.91.82  -p 5432   honggu_9i  &gt;  /data/younger20150110_honggu_9i.sql 或者 pg_dump  honggu_9i  &gt;  /data/younger20150110_honggu_9i.sql </p> <p>或者在这个目录执行cd  /usr/bin/  或者在cd /usr/pgsql-9.5/bin</p> <p>如果有多个库,会要求多次输入数据库密码</p> <p>卸载旧版本postgresql yum remove postgresql*p</p> <p>6.恢复数据库     pg_dump创建的备份文件可以被工具psql识别。因此可以使用psql来读取pg_dump创建的备份文件,实现恢复数据库的功能。例如: 先切换为postgres用户;然后执行  注意命令行之间没有空格 psql  honggu_9i&lt;  /data/younger20150110_honggu_9i.sql 或者用root用户执行 psql zgs80 -h pos.9isoft.com -U postgres   &lt; /data/younger20150206_zgs80.sql</p> <p>或者 手动还原服务器上面的数据库 cd  /data       ---进入备份文件所在目录  su postgres   ---进入 postgres   bash-4.1$ pg_restore  -d zgs80 zgs80.backup  ---恢复  ZGS80 为数据库名 zgs80.backup 为备份文件  </p> <p>7.  数据字典查看表结构 SELECT column_name, data_type from information_schema.columns where table_name = 'g_spdm’; 8.  查看客户端连接情况 SELECT client_addr ,client_port,waiting,query_start FROM pg_stat_activity;</p> <ol> <li>查看数据库大小 select pg_size_pretty(pg_database_size('zgs80')); </li> </ol> <p>10 .安装最新版postgres</p> <p>yum install <a href="https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm">https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm</a> yum install postgresql10 yum install postgresql10-server /usr/pgsql-10/bin/postgresql-10-setup initdb systemctl enable postgresql-10 systemctl start postgresql-10</p> <p>配置pgsql:修改数据库的安全认证方式   /var/lib/pgsql/10/data/pg_hba.conf `` # ipv4 local connections: 中 host    all         all         127.0.0.1/32           ident host    all         all         127.0.0.1/24           md5 host    all         all         0.0.0.0/0             md5  </p> <h5>host all all 0.0.0.0/0 </h5> <p>配置postgresql.conf /var/lib/pgsql/10/data/postgresql.conf 前面去掉#号 listen_addresses = '*'   监听所有地址,让外部IP地址可以访问数据库 port = 5432      监听端口</p> <p>  重启pgsql服务   service postgresql10-server restart 11.为了数据库存在/data目录下,所以需要创建表空间</p> <p>创建表空间 用winscp在/data中创建zgsplace文件夹,赋予用户postgres用户写入和读取权限 <code># mkdir /data/zgsplace </code> # chown postgres:postgres /data/zgsplace/ $ su postgres $ psql $ CREATE TABLESPACE zgsplace LOCATION '/data/zgsplace';  \q 退出psql 16.切换用户 su postgres psql 修改数据库密码 ALTER USER postgres PASSWORD 'bearsoft’; 20.bearsoft.sh脚本内容 使用前先chmod 777 bearsoft.sh 再通过 ./bearsoft.sh 运行 cd /home yum install wget -y wget <a href="http://www.9isoft.com/pgdg-centos95-9.5-2.noarch.rpm">http://www.9isoft.com/pgdg-centos95-9.5-2.noarch.rpm</a> rpm -ivh pgdg-centos95-9.5-2.noarch.rpm yum install postgresql95-server -y service postgresql-9.5 initdb service postgresql-9.5 start yum install httpd php php-pgsql -y service httpd start chkconfig httpd on chkconfig postgresql-9.5 on echo '&lt;?php phpinfo() ?&gt;' &gt;/var/www/html/phpinfo.php sed -i 's/;date.timezone =/date.timezone = &quot;PRC&quot;/g' /etc/php.ini sed -i &quot;s/#listen_addresses = 'localhost'/listen_addresses = '*'/g&quot; /var/lib/pgsql/9.5/data/postgresql.conf ``#sed -i &quot;s/#client_encoding = sql_ascii/client_encoding = GBK/g&quot; /var/lib/pgsql/9.5/data/postgresql.conf mkdir /data mkdir /data/zgsplace chown postgres:postgres /data/ chown postgres:postgres /data/zgsplace/ su postgres -c &quot;psql &lt;&lt;EOF ALTER USER postgres PASSWORD 'sh9ihyn2012n’; CREATE TABLESPACE zgsplace LOCATION '/data/zgsplace'; CREATE DATABASE zgs80 tablespace zgsplace; EOF&quot; service postgresql-9.5 restart service httpd restart 打开浏览器输入http://ip地址/phpinfo.php查看是否安装正确 手动修改pg_hba.conf 21.pg自己建立用户,数据库</p> <p>CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity'; CREATE DATABASE redmine</p> <p>  WITH ENCODING='UTF8'</p> <p>       OWNER=redmine</p> <p>       CONNECTION LIMIT=-1</p> <p>       TABLESPACE=zgsplace;</p> <p>22 pg根据一个数据库复制新数据库命令</p> <p> su postgres</p> <p>createdb  -T templatedb  demo</p> <ol> <li> <p>定时备份pg数据库 `` #!/bin/sh mkdir /data/backup chown postgres:postgres /data/backup cd /data/backup TODAY=$(date &quot;+%Y%m%d%H&quot;) su postgres -c &quot;pg<em>dump -U postgres zhengshi&gt;zhengshi</em>${TODAY}.sql&quot;</p> </li> <li>修改数据库名称</li> </ol> <p>ALTER DATABASE eb3 RENAME TO eb3_hongmei</p> <p>25.查看哪个表有n_id字段</p> <p>select c.* from pg_class c, pg_attribute a where c.relfilenode=a.attrelid and a.attname='n_id'</p> <p>26.查看所有表行数 </p> <p>SELECT relname, reltuples  FROM pg_class r JOIN pg_namespace n  ON (relnamespace = n.oid)  WHERE relkind = 'r' AND n.nspname = 'public';</p>

页面列表

ITEM_HTML