设为首页 收藏本站
查看: 1007|回复: 0

[经验分享] PostgreSQL中国用户会DBA2000培训计划北京第一课笔记

[复制链接]

尚未签到

发表于 2016-11-21 02:33:47 | 显示全部楼层 |阅读模式
PostgreSQL及中国用户会简介
  主讲人 李元佳 galy
  原文地址:http://chenlinux.com/2012/03/17/postgreSQL-DBA-2000-note1/

数据库分类
  商业数据库: Oracle, DB2, SQLserver, Sybase… 开源数据库: MySQL, PostgreSQL, Firebird, SQLite, Apache Derby…

PostgreSQL沿革
  类BSD许可的,面向对象的,关系型数据库管理系统。
  MIT –> Ingres –> Postgres –> PostgreSQL ( 同源的还有SQLserver等 )
  支持SQL2008标准的大部分功能特性,是各种RDBMS的SQL方言中最贴近标准的。

PostgreSQL简介
  主讲人 萧少聪 Scott.Siu

用户与进程
DSC0000.png

  注意在上图中,不管是workmem还是sharebuffer,每个page都是8KB大小。

复制流程
  stream replica的流程如下:

client --> postgres --> WAL (not file)--> slave --> (return OK) --> master --> commit

  在master上的流程细节如下:

client --> write-ahead log(WAL) buffer --> commit --> (async/fsync~~160%) --> WAL Files (16MB * 132个)
^
|--> share buffer  --> bgwriter --> db files
^                            |
|--        check point     <-- ## 安装

  linux: 注意使用独立的非root用户来安装启动pgsql。在version9.1后,可以跟SElinux结合使用,提高安全性。
win: 只能在NTFS文件系统上创建表空间。
窗口统一式安装,可以方便的安装stack builder套件。

目录
  默认使用窗口安装的情况下,目录结构如下:

/opt/PostgreSQL/9.1/
|
|--> bin/
|--> doc/
|--> include/
|--> lib/
|--> share/
|--> install/
|--> data/
|--> base/存放table和index的ID号
|--> global/
|--> pg_clog/运行日志
|--> pg_xlog/WAL日志
|--> pg_tblspc/表空间ID,实质为到真实数据目录的软连接
|--> postgresql.conf
|--> pg_hba.conf

创建


  • 使用bin/initdb命令;
  • 修改data/pg_hba.conf里的连接地址段和登录权限;
  • 修改data/postgresql.conf里的监听网卡。

启动与停止
  使用bin/pg_ctl命令。其停止命令可指定三种类型:


  • smart模式,即等待全部client连接断开后停止;
  • fast模式,即直接回滚全部尚未完成的事务后停止;
  • immediate模式,即立刻中止全部进程。

配置说明



  • work_mem: 
    并不是每个client连接的postgres进程分配一个work mem,而是SQL每一次的排序work使用一个work mem。包括join和order by。如果没有排序,就不用work mem。如果一条sql里同时使用了N次排序,那么就要使用N个work mem。所以理想的使用方法不是提供太大的work mem来排序,而是尽量缩小需要排序的数据大小,设置为4/8MB即可。 
    该配置是可以online修改的。命令如下: 
    SET work_mem = 2048; SET work_mem = ‘2MB’; 上面两条命令等价。可以看书其计量单位为1KB,且类型为字符串,所以在自定义计量时需要用引号。


  • share_buffers: 
    理论上为机器物理内存的40%大小。实际测试显示大于8GB后,性能不会有相应的提升,即可认为最大设置到8GB。


  • temp_buffers: 
    无修改意义


  • max_prepared_transactions: 
    并发事务数


  • maintenance_work_mem: 
    vacuum、create index、alter table add foreign key等管理命令使用的work_mem,建议设置1G。因为这些命令经常涉及全表扫描。


postgreSQL的数据集概念

                      DataBase Cluster
|
|---------|---------|
|         |         |
user     database   tablespace
|
schema

  这里的cluster不是HA cluster,而是数据集。
一个database里可以有多个schema,一个user可以有多个schema的管理权限,但一个schema只能归属于一个user。
默认有一个template0为schema的基础,不可修改,在template0基础上有template1,可以修改。实际创建schema时就是复制template1出来。 创建user时,一般都会再创建一个同名的schema,并规定该schema的所属人为该user。这样在pgsql连接到database后,其默认schema即为该同名schema。

备份与恢复

备份
  pg_dump命令,使用-s指定只备份数据结构,-t指定只备份数据内容。

基于时间点的备份恢复


  • select pg_start_backup(‘FullBackup’);
  • tar zcvf full_backup/week1.tgz /opt/PostgreSQL/9.1/data/

  • select pg_stop_backup();

  • tar zxvf full_backup/week1.tgz -C /
  • echo ‘restore_command=”cp %f %p”’ > data/recovery.conf

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302996-1-1.html 上篇帖子: Public key for postgresql-libs-8.4.7-1PGDG.rhel5.i386.rpm is not installed 下篇帖子: PostgreSQL for Win V8.2.0支持以超级用户启动数据库了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表