当前位置:文档之家› PostgreSql管理手册

PostgreSql管理手册

PostgreSql管理手册
PostgreSql管理手册

PostgreSQL管理手册

(版本:1.0)

除说明)

目录

下载安装及环境 (2)

1.1环境 (2)

1.2安装 (3)

1.2.1安装postgreSQL (3)

1.2.2环境变量(这里我使用VIM 文本编辑器,如果不会的使用其它的编辑器也可以

的) (3)

1.2.3建立数据库用户 (4)

1.2.4初始化数据库 (4)

1.2.5接下来是系统服务了: (4)

1.2.6:修改PostgreSQL数据库的postgres的密码 (5)

1.2.7:修改PostgresSQL数据库配置实现远程访问 (6)

1.2.8 修改防火墙,打开5432端口 (6)

1.2.9 CSV日志设置 (6)

客户端 (7)

2.1 客户端 (7)

2.1.1 PostgreSQL可安装的pgAdminIII (7)

2.1.2 Navicat (7)

优化配置 (9)

3.1 系统全局配置 (9)

集群 (13)

4.1 用pgpool管理配置集群 (13)

备份与恢复 (14)

5.1本机流复制备份 (14)

5.2双机热备 (16)

5.3 HA (主备切换) (18)

用PL/pgSQL写postgreSQL的存储过程 (20)

6.1.存储过程结构: (20)

6.2.变量类型: (20)

6.3.连接字符: (20)

6.4. 控制结构: (21)

6.4.1、if 条件(五种形式) (21)

6.4.2、循环 (21)

6.4.3、异常捕获 EXCEPTION (23)

Perl的DBI模块连接PostgresSQL数据库 (23)

7.1首先要在Linux/unix机器上安装DB模块 (23)

7.2在$PGDATA/pg_hba.conf开放外部访问端口,如果是本机 (23)

7.3连接数据库 (24)

下载安装及环境

1.1环境

系统:CentOS 6.4

内存:1G

安装系统:PostgreSQL 9.2.4

1.2安装

1.2.1安装postgreSQL

登陆Centos使用root用户登陆

下载postgresql

#:wget https://www.doczj.com/doc/d94286769.html,/pub/source/v9.2.4/postgresql-9.2.4.tar.gz

解压:

#tar zxvf postgresql-9.2.4.tar.gz

进入解压后的目录

#cd postgresql-9.2.4

#安装编译源码所需的工具和库

yum -y install wgetgccreadline-develzlib-devel make

执行源码编译配置脚本

#./configure

#编译源码、安装

#gmake

#gmake install

到这里就完成安装,接下来就是配置了

1.2.2环境变量(这里我使用VIM 文本编辑器,如果不会的使用其它的编辑器也可以的)#vim .bash_profile

把:PATH=$PATH:$HOME/bin

改为:PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin

保存退出,

让环境变量生效:

#. .bash_profile

1.2.3建立数据库用户

#useraddpostgres

更改用户目录(这一步可选)

#vim /etc/passwd

postgres:x:500:500::/home/postgres:/bin/bash

改为

postgres:x:500:500::/usr/local/pgsql:/bin/bash

删除用户目录:

rm -r /home/postgres

1.2.4初始化数据库

新建数据目录:

#mkdir /usr/local/pgsql/data

更改权限:

#chownpostgres:postgres /usr/local/pgsql/data

切换到刚刚建立的用户

#supostgres

$cd /usr/local/pgsql

$initdb -D data/

到这里数据的初始化就完成了。

1.2.5接下来是系统服务了:

回到root用户:

$exit

复制安装目录下的linux文件到/etc/init.d/

进入postgresql的安装目录,(即刚刚使用tar命令解压的目录)

#cd /root/postgresql-9.2.4

#cpcontrib/start-scripts/linux /etc/init.d/postgresql

添加执行权限:

#chmod +x /etc/init.d/postgresql

启动数据库

#service postgresql start

Starting PostgreSQL: ok

让数据库开机启动,

#chkconfig --add postgresql

#chkconfigpostgresql on

数据库操作的历史记录文件

#touch /usr/local/pgsql/.psql_history

#chownpostgres:postgres /usr/local/pgsql/.psql_history

测试一下:

#supostgres

$cd

$createdb test

$psql test

test=#create table test(id int);

CREATE TABLE

1.2.6:修改PostgreSQL数据库的postgres的密码

1.切换postgres用户

#supostgres

3.以postgres登录数据库,修改postgres用户的数据库密码psql-U postgres

3.修改PostgresSQL

postgres=# ALTER USER postgres WITH PASSWORD ‘postgres’

4.退出PostgreSQL客户端

postgres=# \q

1.2.7:修改PostgresSQL数据库配置实现远程访问

# vi/usr/local/pgsql/data/postgresql.conf

1.2.7.1.监听任何地址访问,修改连接权限

#listen_addresses = ‘localhost’改为listen_addresses = ‘*’

1.2.7.2.启用密码验证

#password_encryption = on改为password_encryption = on

1.2.7.3.可访问的用户ip段,测试使用,所以定义为0.0.0.0

# vi /usr/local/pgsql/data/pg_hba.conf,并在文档末尾加上以下内容# to allow your client visiting postgresql server

host all all 0.0.0.0 0.0.0.0 md5

1.2.7.4.重启PostgreSQL数据库

# servicepostgresqlrestart

1.2.8 修改防火墙,打开5432端口

vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT #重启防火墙使新设置生效

serviceiptables restart

1.2.9 CSV日志设置

打开$PGDATA/postgresql.conf

Log_destination = ’csvlog’

Logging_collector = on

Log_directory是输入日志路径,可改,可默认

客户端

2.1客户端

2.1.1 PostgreSQL可安装的pgAdminIII

点击,输入要连接的主机IP地址和密码,即可连接。

连接后展开数据库,选择一个数据库,就可以使用,创建SQL语句。

2.1.2 Navicat

请下载Navicat for PostgreSQL或者Navicat Premium,版本高于10.1.7。否则会报错:

ERROR: column "spclocation" does not exist

LINE 1: ...oid,spcname,pg_get_userbyid(spcowner) AS owner,spclocatio...

优化配置

3.1 系统全局配置

PG的配置文件是数据库目录下的postgresql.conf文件,8.0以后的版本可支持K,M,G这样的参数,只要修改相应参数后重新启动PG服务就OK了。

shared_buffers:这是最重要的参数,postgresql通过shared_buffers和内核和磁盘打交道,因此应该尽量大,让更多的数据缓存在shared_buffers中。通常设置为实际RAM的10%

是合理的,比如50000(400M)。将所有的内存都给shared_buffers将导致没有内存来运行

程序。unix管理内存使用 swap, 当没有内存可用的时候,内核会将长时间不用的内存挪到swap 去,这个叫:swap pageout,当你再次使用它的时候内核又会将其挪回来,这个叫:swap pagein,这个操作有很大的不好,因为它会导致你的程序挂起直到操作完成。

正确的 Shared Buffer Cache 大小:

(1) 它应该足够大来应付通常的表访问操作。

(2) 它应该足够小来避免 swap pagein的发生。

work_mem:在pgsql 8.0之前叫做sort_mem。postgresql在执行排序操作时,会根据

work_mem的大小决定是否将一个大的结果集拆分为几个小的和work_mem查不多大小的

临时文件。显然拆分的结果是降低了排序的速度。因此增加work_mem有助于提高排序的

速度。通常设置为实际RAM的2% -4%,根据需要排序结果集的大小而定,比如

81920(80M)。

cache size 和 sort size 都影响内存的使用。记住, cache size 是在postmaster 启动的时候就

申请好的,sort size 的改变是依赖于执行多少个排序。通常,cache size 比 sort size 更有效果。一开始调整, 如果你只有一些大的session而有更多的小session: 10% of RAM for cache size 2-4% of RAM for sort size 还有一个很有价值的参数:effective_cache_size。优化器用这

个参数来预估内核的硬盘 buffer cache. 当内核有 unified buffer cache (统一缓冲), 这个值将

是没被使用的内存的平均值,因为这种内核会使用所有没有使用的内存来作最近硬盘访问

的缓存的;当内核用 fixed-sized disk buffer cache 时,这个参数应该设成一样的,通常是内

存的 10%.

effective_cache_size:是postgresql能够使用的最大缓存,这个数字对于独立的pgsql服务

器而言应该足够大,比如4G的内存,可以设置为3.5G(437500)

maintence_work_mem:这里定义的内存只是在CREATE INDEX, VACUUM等时用到,因此用

到的频率不高,但是往往这些指令消耗比较多的资源,因此应该尽快让这些指令快速执行

完毕:给maintence_work_mem大的内存,比如512M(524288)

max_connections:通常,max_connections的目的是防止max_connections * work_mem超

出了实际内存大小。比如,如果将work_mem设置为实际内存的2%大小,则在极端情况下,如果有50个查询都有排序要求,而且都使用2%的内存,则会导致swap的产生,系

统性能就会大大降低。当然,如果有4G的内存,同时出现50个如此大的查询的几率应该是很小的。不过,要清楚max_connections和work_mem的关系。

maintenance_work_mem (integer):声明在维护性操作中使用的最大的内存数,比如VACUUM, CREATE INDEX,和 ALTER TABLE ADD FOREIGN KEY 等。数值是用千字节计的,

缺省是 16384 千字节(16 MB)。因为在一个数据库会话里,任意时刻只有一个这样的操

作可以执行,并且一个数据库安装通常不会有太多这样的工作并发执行,把这个数值设置

得比work_mem更大是安全的。更大的设置可以改进清理和恢复数据库转储的速度。

max_stack_depth (integer):声明服务器的执行堆栈的最大安全深度。为此设置一个参数的

原因是内核强制的实际堆栈尺寸(就是ulimit -s 或者局部等效物的设置),小于一个安全

的一兆字节左右的范围。需要这么一个安全的界限是因为在服务器里,并非所有过程都检

查了堆栈深度,儿只是在可能递规的过程,比如表达式计算这样的过程里面进行检查。把

这个参数设置得大于实际的内核限制讲意味着一个正在跑的递归函数可能会导致一个独立

服务器进程的崩溃。缺省设置是2048 KB (两兆),这个值相对比较小,不容易导致崩溃。但是,这个值可能太小了,以至于无法执行复杂的函数。

自由空间映射max_fsm_pages (integer):设置在共享的自由空间映射表里自由空间会跟踪

的最大数目的磁盘页面数。每个页面槽位需要消耗六个字节的共享内存。这个设置必须大

于 16 * max_fsm_relations。缺省是 20000。这个选项只能在服务器启动的时候设置。

max_fsm_relations (integer):设置自由空间将在共享地自由空间映射里跟踪的最大数目的

关系(表和索引)。每个槽位大概要使用五十字节左右。缺省是 1000。这个选项只能在服务器启动的时候设置。

内核资源使用max_files_per_process (integer):设置每个服务器进程允许同时打开的最大

的文件数目。缺省是 1000。如果内核强制一个合理的每进程限制,那么你不用操心这个设置。但是在一些平台上(特别指出的是,大多数 BSD 系统),sysconf返回一个系统真正

可以支持的数目大的多的数值。如果你发现有 "Too many open files" 这样的失败现象,那

么就尝试缩小这个设置。这个选项只能在服务器启动时设置。

preload_libraries (string):这个变量声明一个或者多个在服务器启动的时候预先装载的共享库。可以选择在装载每个库的时候调用一个无参数的初始化函数。要声明这个函数,可以

在库名字后面加一个冒号,然后增加一个初始化函数名字。比如 '$libdir/mylib:mylib_init'

会预先装载mylib并且执行mylib_init。如果装载了多过一个库,用逗号分隔它们。如果没

有找到声明的库或者没有找到初始化函数,那么服务器将启动失败。可以用这个方法预先

装载PostgreSQL的过程语言库,通常是使用 '$libdir/plXXX:plXXX_init' 语法,这里的 XXX 是pgsql,perl,tcl,或者 python。

通过预先装载一个共享库(以及在需要的时候初始化它),我们就可以避免第一次使用这

个库的那些启动时间。不过,启动每个服务器进程的时间可能会增加,即使进程从来没有

使用过这些库也这样。因此我们只是建议对那些将被大多数会话使用的库才使用这个选项。基于开销的清理延迟:在 VACUUM 和 ANALYZE 命令执行过程中,系统维护一个内部的指针,这个指针跟踪所执行的各种 I/O 操作的近似开销。如果积累的开销达到了一个限制

(通过vacuum_cost_limit声明),那么执行这个操作的进程将睡眠一会儿(用

vacuum_cost_delay声明)。然后它会重置指针然后继续执行。

这个特性的目的时允许管理员减少这些命令在并发活动的数据库上的 I/O 影响。有些情况下,像 VACUUM 和 ANALYZE 这样的维护命令并不需要迅速完成;但是,通常都不希望这

些命令会严重干扰系统执行其它数据库操作的响应能力。基于开销的清理延迟为管理员提

供了一个实现这个目的的手段。

缺省的时候,这个特性是关闭的。要想打开它,把vacuum_cost_delay变量设置为一个非

零值。

vacuum_cost_delay (integer):以毫秒计的时间长度,如果超过了开销限制,那么进程将睡

眠一会儿。缺省值是 0,它关闭基于开销的清理延迟特性。正数值打开基于开销的清理。

不过,要注意在许多系统上,sleep 延迟的有效分辨率是 10 毫秒;把vacuum_cost_delay

设置为一个不是 10 的整数倍的数值与将它设置为下一个 10 的整数倍作用相同。

vacuum_cost_page_hit (integer):清理一个在共享缓存里找到的缓冲区的开销。它代表锁住缓冲池,查找共享的散列表以及扫描页面的内容的开销。缺省值是 1。

vacuum_cost_page_miss (integer):清理一个要从磁盘上读取的缓冲区的估计开销。这个行

为代表锁住缓冲池,查找共享散列表,从磁盘读取需要的数据块以及扫描它的内容的开销。缺省值是 10。

vacuum_cost_page_dirty (integer):如果清理修改一个原先是干净的块的预计开销。它需要

一个把脏的磁盘块再次冲刷到磁盘上的额外开销。缺省值是 20。

vacuum_cost_limit (integer):导致清理进程休眠的积累开销。缺省是 200。

注意: 有些操作会持有关键的锁,并且应该尽快结束。在这样的操作过程中,基于开销的

清理延迟不会发生作用。为了避免在这种情况下的长延时,实际的延迟是这样计算的:vacuum_cost_delay * accumulated_balance / vacuum_cost_limit与vacuum_cost_delay * 4 之

间的最大值。

后端写进程

从PostgreSQL 8.0 开始,就有一个独立的服务器进程,叫做后端写进程,它唯一的功能就

是发出写"脏"共享缓冲区的命令。这么做的目的是让持有用户查询的服务器进程应该很少

或者几乎不等待写动作的发生,因为后端写进程会做这件事情。这样的安排同样也减少了

检查点造成的性能下降。后端写进程将持续的把脏页面刷新到磁盘上,所以再检查点到来

的时候,只有几个页面需要刷新到磁盘上。但是这样还是增加了 I/O 的总净负荷,因为以

前的检查点间隔里,一个重复弄脏的页面可能只会冲刷一次,而同一个间隔里,后端写进

程可能会写好几次。在大多数情况下,连续的低负荷要比周期性的尖峰负荷好,但是在本

节讨论的参数可以用于为本地需要调节其行为。

bgwriter_delay (integer):声明后端写进程活跃回合之间的延迟。在每个回合里,写进程都

会为一些脏的缓冲区发出写操作(可以用下面的参数控制)。选取的缓冲区总是那些在当

前的脏缓冲区里当前最少使用的。然后它就休眠bgwriter_delay毫秒,然后重复动作。缺

省值是 200。请注意在许多系统上,休眠延时的有效分辨率是 10 毫秒;因此,设置bgwriter_delay为一个不是10 的倍数的数值与把它设置为下一个10 的倍数是一样的效果。这个选项只能在服务器启动的时候或者postgresql.conf文件里设置。

bgwriter_percent (integer):在每个回合里,当前的脏缓冲区中不超过这个百分比的量将被

写到磁盘上(把小数圆整为下一个整数缓冲区的数值)。这个选项只能在服务器启动的时

候或者postgresql.conf文件里设置。

bgwriter_maxpages (integer):在每个回合里,不超过这个数值的脏缓冲区写入。缺省值是100。这个选项只能在服务器启动的时候或者postgresql.conf文件里设置。

小的bgwriter_percent和bgwriter_maxpages减少后端写进程导致的额外 I/O 负荷,但是会

导致在检查点的时候的更多工作。要降低检查点时的峰值负荷,增加这些值。要想完全关

闭后台写进程,可以把bgwriter_percent和/或bgwriter_maxpages设置为零。

集群

4.1 用pgpool管理配置集群

4.1.1安装pgpool

4.1.1.1下载

下载源码包,去https://www.doczj.com/doc/d94286769.html,/mediawiki/index.php/Downloads下载需要的版本包4.1.1.2安装

$Tar xvf

$./configure, make, make install

$cd /usr/local/etc

$cppgpool.conf.samplepgpool.conf

修改监听端口linsten_addresses=’*’

$cppcp.conf.samplepcp.conf

$mkdir /var/run/pgpool

4.1.1.3启动关闭

$pgpool–n –d (启动这里可以使用pgpool–n –d > /tmp/pgpool.log 2>&1&创建日志) $pgpool stop

4.1.2 pgpool基本配置

4.1.2.1配置数据节点信息

Backend_hostname0=’192.16.187.12’

Backend_post0 = 5432

Backend_weight0 = 1

Backend_hostname0=’192.16.187.17’

Backend_post0 = 5432

Backend_weight0 = 1

4.1.2.2配置负载均衡

Parallel_mode = off

load_balance_mode = on

其他默认即可。需要注意的是,pgpool根据backend_hostname0来判断哪是主服务器,pgpool往主服务器发送读写查询,而往备份服务器发送读查询。

4.1.2.3 写一个shell脚本测试

fori in {1..100}; do echo $i; psql -p 9999 -U postgres -h 192.168.57.176 -d 数据库 -c "select * from tablename"; done

这样连续发送100个请求,在数据库的日志中可以看出load balance的效果。

4.1.3重新加入down掉的服务器

在负载均衡模式下,如果有服务器down掉的话,pgpool无法自动重新加入,可以通过下面的命令加入

Pcp_attach_node–d 5 localhost 9898 postgrespostgres 1

其中:

-d 5:调试模式

localhost:pgpool所在的服务器

9898:pcp的端口号

postgres:postgres为pcp的访问用户名和密码

1:集群的node #

备份与恢复

5.1本机流复制备份

5.1.1.修改主数据库postgresql.conf

wal_level = hot_standby

archive_mode=on

archive_command=’cp %p /usr/local/pgsql/archive/%f’

max_wal_senders = 2

5.1.2.开启流复制访问

编辑pg_hba.conf

文档最下面已经写好了本机的配置,直接把#号去掉

# replication privilege.

#local replication postgres trust

host replication postgres 127.0.0.1/32 trust

#host replication postgres ::1/128 trust

5.1.3.生成热备份

#pg_basebackup -D /usr/local/pgsql/backup -h localhost -U postgres -Ft -v -p

pg_basebackup: base backup completed

Backup是创建好的文件夹,在backup下可以看到刚创建好的base.tar文件,在archive文件夹内有一些WAL数据,记得给archive文件夹添加权限。

5.1.4.利用热备恢复

复制生产的base.tar文件到$PGDATA/data

mv /usr/local/pgsql/backup/base.tar /usr/local/pgsql/data/

解压覆盖

tar-xvf base.tar

cp /usr/local/pgsql/share/recovery.conf.samplerecovery.conf

确定data目录下存在pg_xlog/archive_status目录,否则创建

mkdir -p pg_xlog/archive_status/

5.1.5.编辑recovery.conf

Restore_command = ‘cp /usr/local/pgsql/archive/%f %p’

5.1.

6.启动数据库

/etc/init.d/postgresql start

5.2双机热备

5.2.1.环境

主机:VMware虚拟主机

系统:CentOS 6.4

主机ip:192.168.1.104,备机ip:192.168.1.105

5.2.2.主库操作

5.2.2.1创建复制用户

进入主数据库

postgres=# CREATE USER replicator REPLICATION LOGIN CONNECTION LIMIT 2 ENCRYPTED PASSWORD 'replicator';

也可用pgAdmin3连接主库,创建登录角色。

5.2.2.2设置pg_hba.conf,添加备库地址

Host replication replicator 192.168.1.105/32 md5

5.2.2.3设置主库postgresql.conf,以下数据根据实际需要调整

checkpoint_segments = 16

wal_level = hot_standby

archive_mode = on

archive_command = '/bin/date'

max_wal_senders = 3

wal_keep_segments = 16

2.4重载配置文件

$pg_ctl reload -D $PGDATA

Server signaled

5.2.3.备库操作

5.2.3.1创建目录并授权

#mkdir -p /db/pgsql/repl_db

chmod 0700 /db/pgsql/repl_db

备库的数据是放在/db/pgsql下面的,主库是在/usr/local/pgsql下面,可根据自己需求设定。

5.2.3.2使用pg_basebackup生成备库

$pg_basebackup -D /db/pgsql/repl_db-Fp-Xs-v -P -h 192.168.1.104 -p 5432 -U replicator

5.2.3.3修改备库postgresql.conf

hot_standby = on

5.2.3.4设置备库recovery.conf

5.2.3.4.1生成recovery.conf

$cp /usr/local/pgsql/share/recovery.conf.sample /db/pgsql/repl_db/recovery.conf

5.2.3.4.2修改一下参数

standby_mode = on

primary_conninfo = 'host=192.168.1.104 port=5432 user=replicator password=replicator'

trigger_file = '/db/pgsql/repl_db/postgresql.trigger.5432'

5.2.3.5 启动服务器

$pg_ctl start -D /db/pgsql/repl_db/

Server starting

5.2.4测试

5.2.4.1主库

#supostgres

$psql test

test=# create table repl_test

(

id character(20) NOT NULL,

name character(20),

CONSTRAINT “primary_key_1” PRIMARY KEY (id)

);

CREATE TABLE

test=# insert into repl_test values(‘1’,’1’);

INSERT 0 1

test=# select * from repl_test;

id | name

----------+------------

1 1

(1 row)

5.2.4.2备库

$psql test

test=#select * from repl_test;

id | name

----------+------------

1 1

5.3 HA(主备切换)

5.3.1环境

环境为以上配置的双机热备环境。

5.3.2备库操作

5.3.2.1关闭主库

停止主库 , 千万不要用-m immediate,这个不会产生关机checkpoint,也不会发送checkpoint 给standby。会造出过程不可逆。

pg_ctl stop -m fast -D $PGDATA

确认主库关闭后

5.3.2.2 备机切换成主机

查看备机状态pg_controldata $PGDATA

备机状态为:

Database cluster state: in archive recovery

主机状态为:

Database cluster state: in production

之前备机上的recovery.conf中配置了trigger_file =

'/db/pgsql/repl_db/postgresql.trigger.5432'要切换备机成主机,只要创建一个触发文件postgresql.trigger.5432即可,这个名字可以随便写。

[postgres@localhost ]$ touch /db/pgsql/repl_db/postgresql.trigger.5432

此时查看备机上的日志,可以看到成功切换到主机了。

也可用以下命令激活备机:

Pg_ctl promote –D $PGDATA

5.3.3维护原来的主库

5.3.3.1拷贝recovery.conf文件并修改

cp $PGHOME/share/recovery.conf.sample $PGDATA/recovery.conf

recovery_target_timeline = 'latest'

primary_conninfo=’host=16.187.153.12 port=5432 user=replicator password=replicator’

trigger_file = ’/db/pgsql/repl_db/postgresql.trigger.5432’

standby_mode=on

5.3.3.2启动数据库

pg_ctl start –D $PADATA

这时查看数据库日志,会发现数据库一直报错

……”timeline 6 of the primary does not match recovery tartget timeline,,,,,”

这是时间线文件错误,因为新主库产生了一个新的时间线文件,只需要去新主库的pg_xlog 文件夹下把类似0000XXX6的文件拷贝到备库就可以了

[postgres@CentOSpg_xlog]scppostgres@新主库

IP/$PGDATA/pg_xlog/00000006.history .

5.3.4测试

在新主库上增加,删除数据,备库同步完成。

用PL/pgSQL写postgreSQL的存储过程

6.1.存储过程结构:

Create or replace function 过程名(参数名参数类型,…..) returns 返回值类型 as $body$ //声明变量

Declare

变量名变量类型;

如:

flag Boolean;

变量赋值方式(变量名类型:=值;)如:

Str text :=值; / str text; str :=值; Begin

函数体;

End;

$body$

Language plpgsql;

6.2.变量类型:

除了postgresql内置的变量类型外,常用的还有 RECORD ,表示一条记录

6.3.连接字符:

Postgresql存储过程中的连接字符不再是“+”,而是使用“||”。

监视并记录Apache网站服务器的运行

监视并记录Apache网站服务器的运行 LogFormat 指令承诺你告诉Apache你想要记录要求的哪些方面。而你仍需附加的指令来告诉Apache在哪里记录那些信息,这在下一章中将会介绍。下面的例子显示了两种最受欢迎的格式的配置:一般日志格式和整合日志格式。当Apache收到一个要求,他将会用相应的要求属性来替代以%为前缀的每一个域。假如您正在使用一般日志格式,您的日志文件里 尽管有附件提供日志格式的详尽索引,下表描述了一些最为重要的域: # %h: 客户端(例如,扫瞄器)向服务器发出连接要求时自己的当时的IP地址或域名(需开启HostNameLookups)。 # %u: 使用方式认证用户时,记录下的用户的编号。 # %t: 服务器同意到连接要求的时刻。 # %r: 客户端发出的原始连接要求中的文本信息,包含所使用的方法。 # %>s: 服务器应答扫瞄器后的返回状态代码,200表示要求成功。. # %b: 服务器应答扫瞄器发出的单个要求的回传对象的内容大小(字节为单位),不统计数据包头部字节。 整合日志格式在一般日志格式的基础上扩展出了两个附加的域。定义为: # %{Referer}i: 连接要求数据包包头,包含指向当前页面的文档关联信息。 # %{User-agent}i: 用户代理连接要求数据包包头,包含客户扫瞄器的信息。 创建一个自定义日志文件 您可能会想创建Apache自带以外的新的日志文件。下面的例子将运用CustomLog来创建一个新的日志文件,并储存由一个之前定义好的日志格式,即前一章提到的common,所定义的信息。您还能够用格式本身的定义来替换昵称。一个附加的,更为简单的指令是Transferlog,它只同意最后一个LogFormat指令提供的定义。

北京精雕- 自动油脂润滑系统使用维护说明书

定量式自动油脂润滑系统使用维护说明书 目前我司设备的润滑系统有两种形式:稀油润滑和油脂润滑。它们在使用上各有利弊。稀油润滑可以容易地实现自动润滑,而且由于润滑油的流动性好,在润滑的同时还可以带出粉尘异物;但是也会带来润滑油滴流的问题,造成工件和加工环境的污染。油脂润滑可以很好地避免润滑油滴流的问题,但不宜实现自动润滑。 现在推出了一种稀脂自动润滑系统,这种稀脂润滑系统使用的是00#极压锂基脂,它的流动性介于润滑油和普通锂基脂之间,既可以实现定时自动润滑,又不会发生润滑油的滴流现象,是一种比较理想的润滑系统。 由于自动脂润滑系统需要比较高的系统压力(最高压力可达10MPa),因此,该系统无论是油泵、油管还是计量件都与过去的稀油润滑系统有很大的区别。下面就以CarverPMS_A TC_G(厂家:浙江流遍)为例,来介绍自动脂润滑系统的使用及维护,以便各部门及分公司进行维护保养工作。 一、系统的组成 浙江流遍型自动油脂润滑系统主体采用的是DBS-J20-08D型电动卸压式油脂润滑泵(220V)和MG型定量加压式油脂分配器,并添加00#极压锂基脂。它主要由油脂润滑泵组件、Y轴油脂分油器组件、机头油脂分油器组件、两根可拆卸式高压油管组成。 润滑系统安装到机床上后,各位置如下:润滑泵组件如图1所示,Y 图1 浙江流遍型润滑泵组件安装位置 图2 浙江流遍型Y轴润滑油排安装位置 轴润滑油排如图2所示,X和Z轴润滑油排如图3所示。 图3 浙江流遍型X和Z轴润滑油排安装位置

二、分配器流量及加脂周期 本系统采用的分配器是定量式分配器,在一个供油周期内(即通、断电一次)分配器仅排油一次,并与分配器的安装位置无关。 CarverPMS_A TC_G整个润滑系统总共有16个润滑点,其中12个导轨滑块润滑点,3个丝杠润滑点,1个刀库润滑点。如图7、8所示,导轨滑块和刀库采用MG-05型定量加压式油脂分配器,泵油一次的油量为0.05ml;丝杠采用MG-10型定量加压式油脂分配器,泵油一次的油量为0.1ml。故润滑油泵泵油一次的总流量为0.95ml。 在软件中,这两种机型的泵油频率都设置为:开机泵油一次,然后每隔8小时泵油一次。 注意:公司于2011.10.26下发关于推出机床全行程润滑功能的说明的技术通知单,在客户处全面推行机床全行程润滑保养工作。这是在上述加油频率之外的额外给油,故在计算润滑泵加油周期时需特别考虑。每家客户的保养频率和相关参数设置都不尽相同,有关详情,参看《机床自动运行功能说明20111026》。 浙江流遍润滑泵的容量为0.6L,在不考虑机床全行程润滑保养的前提下,按理论计算:若机床24小时运转,则润滑泵每隔6个月需添加一次润滑油脂;在考虑机床全行程润滑保养的前提下,加脂周期大概会缩短50%,甚至更多,但每家客户的具体情况有所差异,应自行予以注意。当达到最低液位线时,机床会自动报警,提示添加润滑脂,添加方法见后面介绍。 图7 浙江流遍型Y轴润滑油排及分配器牌号 图8 浙江流遍型X轴、Z轴润滑油排及分配器牌号 三、油脂润滑泵组件的结构、连线及加油方法 1、油脂润滑泵组件的结构 油脂润滑泵组件主要由润滑泵主体、滤油器、压力表、压力开关(24V电源)、接线盒、出油口等组成。泵体上有放气阀、调压阀;滤油器上有加油口,如图11所示。润滑泵电缆线与电控柜的连接都如图12所示。高压油管与润滑泵的连接如图1所示。 图11 浙江流遍型润滑泵组件结构(最新) 图12 电缆线的连接 2、添加油脂方法 本润滑系统采用的润滑脂是00#极压锂基脂(推荐厂商:长城、美孚Mobil LUX EP 004)。

OB开发手册中文版

OB开发手册中文版

Contents [hide]1 简介 ? 1 简介 ? 1.1 开发概述 ? 1.2 开发方法 ? 1.3 组织开发工作 ? 1.4 标识符命名标准 ? 1.4.1 数据库元素 ? 1.4.2 MVC目录 ? 1.4.3 存储过程语法 ? 1.5 目录结构 ? 1.6 风格指南 ? 1.6.1 逻辑比较 ? 1.6.2 逗号分隔列表 ? 1.6.3 圆括号中的空格 ? 1.6.4 SELECT INTO和INSERT INTO ? 1.6.5 SQL关键字 ? 1.7 编译程序 ? 1.7.1 命令行编译任务 ? 1.7.2 开发环境 ? 1.7.3 生产环境 ? 1.8 从源代码构建 ? 1.8.1 安装Subversion ? 1.8.2 从Subversion中检出源代码 ? 1.8.3 快速构建指南 ? 1.9 集成开发环境 ? 2 Openbravo数据模型 ? 2.1 存储的数据库对象 ? 2.2 实体-关系(ER)图 ? 2.3 创建存储过程 ? 2.3.1 AD_PInstance和AD_PInstance_Para表 ? 2.3.2 存储过程的输入参数 ? 2.3.2.1 从AD_PInstance表中获取有用的信息 ? 2.3.2.2 AD_Update_PInstance存储过程 ? 2.3.2.3 例外和错误管理 ? 2.4 存储过程语法的建议 ? 2.4.1 通用规则 ? 2.4.1.1 游标 ? 2.4.1.2 数组 ? 2.4.1.3 ROWNUM ? 2.4.1.4 %ROWCOUNT ? 2.4.1.5 %ISOPEN,%NOTFOUND ? 2.4.2 表 ? 2.4.3 函数 ? 2.4.4 存储过程

PostgreSQL学习手册

tgreSQL学习手册(五) 函数和操作符 阿里云携手开源中国众包平台发布百万悬赏项目? 一、逻辑操作符: 常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。 二、比较操作符: 下面是PostgreSQL中提供的比较操作符列表: 操作符描述 <小于 >大于 <=小于或等于 >=大于或等于 =等于 !=不等于 比较操作符可以用于所有可以比较的数据类型。所有比较操作符都是双目操作符,且返回boolean类型。除了比较操作符以外,我们还可以使用BETWEEN语句,如: a BETWEEN x AND y 等效于 a >= x AND a <= y a NOT BETWEEN x AND y 等效于 a < x OR a > y 三、数学函数和操作符: 下面是PostgreSQL中提供的数学操作符列表: 操作符描述例子结果 +加 2 + 35 -减 2 - 3-1 *乘 2 * 36 /除 4 / 22 %模 5 % 41 ^幂 2.0 ^ 3.08 |/平方根|/ 25.05 ||/立方根||/ 27.03 !阶乘 5 !120 !!阶乘!! 5120 @绝对值@ -5.05 &按位AND91 & 1511 |按位OR32 | 335

#按位XOR17 # 520 ~按位NOT~1-2 <<按位左移 1 << 416 >>按位右移8 >> 22 按位操作符只能用于整数类型,而其它的操作符可以用于全部数值数据类型。按位操作符还可以用于位串类型bit和bit varying, 下面是PostgreSQL中提供的数学函数列表,需要说明的是,这些函数中有许多都存在多种形式,区别只是参数类型不同。除非特别指明,任何特定形式的函数都返回和它的参数相同的数据类型。 函数返回类 型 描述例子结果 abs(x)绝对值abs(-17.4)17.4 cbrt(double)立方根cbrt(27.0)3 ceil(double/numeric)不小于参数的最小的整 数 ceil(-42.8)-42 degrees(double) 把弧度转为角度degrees(0.5)28.6478897565412 exp(double/numeric)自然指数exp(1.0) 2.71828182845905 floor(double/numeric)不大于参数的最大整数floor(-42.8)-43 ln(double/numeric)自然对数ln(2.0)0.693147180559945 log(double/numeric)10为底的对数log(100.0)2 log(b numeric,x numeric)numeric指定底数的对 数 log(2.0, 64.0) 6.0000000000 mod(y, x)取余数mod(9,4)1 pi() double"π"常量pi() 3.14159265358979 power(a double, b double)double求a的b次幂power(9.0, 3.0)729 power(a numeric, b numeric) numeric求a的b次幂power(9.0, 3.0)729 radians(double)double把角度转为弧度radians(45.0)0.785398163397448 random()double 0.0到1.0之间的随机 数值 random() round(double/numeric)圆整为最接近的整数round(42.4)42 round(v numeric, s int)numeric圆整为s位小数数字round(42.438,2)42.44 sign(double/numeric)参数的符号(-1,0,+1) sign(-8.4)-1 sqrt(double/numeric)平方根sqrt(2.0) 1.4142135623731 trunc(double/numeric)截断(向零靠近)trunc(42.8)42 trunc(v numeric, s int)numeric 截断为s小数位置的数 字 trunc(42.438,2)42.43 三角函数列表: 函数描述 acos(x)反余弦

碧桂园知识管理制度

附件:1.碧桂园知识管理制度(试行版) 碧桂园知识管理制度(试行版) 目录 1.制度说明 (2) 1.1.撰写目的 (2) 1.2.适用范围 (2) 1.3.术语与定义 (2) 2.知识管理组织 (2) 2.1.知识管理组织架构图 (2) 2.2.知识管理组织架构说明 (3) 2.3.知识管理决策委员会 (3) 2.4.知识管理领导委员会 (3) 2.5.管理推进组 (4) 2.6.技术推进组 (4) 2.7.中心/区域、部门/项目知识管理组 (5) 2.8.通用岗位 (6) 3.知识管理行为准则 (6) 3.1.知识仓库模块管理行为准则 (6) 3.2.知识财富挖宝 (8) 3.4.知识问答模块管理行为准则 (10) 3.5.知识专家模块管理行为准则 (11) 3.6.圈子模块管理行为准则 (13)

1.制度说明 1.1.撰写目的 1.1.1.明确知识管理组织架构及岗位的权责,保障知识管理工作正常运转; 1.1. 2.规范员工的知识管理行为,保障知识管理工作有序推进; 1.2.适用范围 1.2.1.本制度适用于集团职能中心(部门)、区域(项目)及子公司的知 识管理工作。 1.3.术语与定义 1.3.1.知识管理:指对知识、知识创造过程以及对知识的应用进行规划和管理的活动。 1.3. 2.知识:知识管理的对象,即对工作有直接指导意义的操作规范、制度、策划方案、研究报告、项目成果、工作经验与教训、工作技巧、个人实战总结等。

2.知识管理组织 2.1.知识管理组织架构图 2.2.知识管理组织架构说明 知识管理组织是知识管理持续运作的有效保障。知识管理组织依据目前的三级组织架构设置,主要包括:集团知识管理领导委员会、中心/区域知识管理组、部门/项目知识管理组,进行三级垂直管控。为了保障知识管理有效的推动,建立知识管理决策委员会,作为知识管理组织最高决策机构,指导全集团知识管理工作的开展。其中,集团知识管理领导委员会对知识管理决策委员会负责,集团知识管理领导委员会统筹全集团知识管理工作的开展与推广。 2.3.知识管理决策委员会 知识管理委员会是知识管理组织的最高决策机构,把控集团知识管理建设主要方向,由董事局副主席、集团总裁、副总裁等组成,主要职责如

PostgreSQL+Linux 从入门到精通培训文档 2命令

本章大纲 1. 如何访问命令行 2. 使用命令行下的工具 非编辑模式 进入编辑模式 3. 正则表达式、管道和I/O 重定向 4. 管理用户账户 5. 文件访问控制 6. 管理进程 1,如何访问命令行 1.1 本地命令行的访问 在图形界面中,访问命令行的方法:打开Terminal,Console。或者:Ctrl+Alt+F1 ~ F6 1.2 使用SSH 访问命令行 同上 2,使用命令行下的工具 2.1 使用硬链接

硬链接,指在同一个文件系统中,对inode的引用,只要文件上存在至少1个硬链接,就可以找到对应的inode。 [digoal@digoal01 ~]$ echo "abc" > ./a [digoal@digoal01 ~]$ stat a File: `a' Size: 4 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 656374 Links: 1 -- 硬链接数量 Access: (0664/-rw-rw-r--) Uid: ( 500/ digoal) Gid: ( 500/ digoal) Access: 2017-04-11 13:18:14.292848716 +0800 Modify: 2017-04-11 13:18:14.292848716 +0800 Change: 2017-04-11 13:18:14.292848716 +0800 创建硬链接 [digoal@digoal01 ~]$ ln -L ./a ./b [digoal@digoal01 ~]$ stat a File: `a' Size: 4 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 656374 Links: 2 Access: (0664/-rw-rw-r--) Uid: ( 500/ digoal) Gid: ( 500/ digoal) Access: 2017-04-11 13:18:14.292848716 +0800 Modify: 2017-04-11 13:18:14.292848716 +0800 Change: 2017-04-11 13:18:34.631855044 +0800 [digoal@digoal01 ~]$ stat b File: `b' Size: 4 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 656374 Links: 2 Access: (0664/-rw-rw-r--) Uid: ( 500/ digoal) Gid: ( 500/ digoal) Access: 2017-04-11 13:18:14.292848716 +0800 Modify: 2017-04-11 13:18:14.292848716 +0800 Change: 2017-04-11 13:18:34.631855044 +0800 删除一个硬链接,还能通过其他硬链接找到对应的inode。 [digoal@digoal01 ~]$ rm a rm: remove regular file `a'? y [digoal@digoal01 ~]$ cat b abc 2.2 归档和解压 常用的归档命令tar 归档-c (常用压缩库-j bz2, -z gzip) [digoal@digoal01 ~]$ tar -jcvf test.tar.bz2 b

ZDRH-2000智能集中润滑系统说明书

目录 一、系统简介------------------------------------2 二、系统工作原理------------------------------3 三、系统主要部件的基本配置与技术 参数-----------------------------------------11 四、润滑系统工作制度-----------------------13 五、润滑系统操作规程-----------------------14 六、系统维护与注意事项--------------------22

一、系统简介 ZDRH-2000型智能集中润滑系统是我公司研制开发的新一代高新润滑技术产品(专利号:012402260.5),系国内首创。该润滑系统可根椐设备现场温度、环境等不同条件或设备各部位润滑要求的不同,而采用不同油脂,适应单台设备或多台设备的各种润滑要求。 润滑系统突出优点是在设备配置、工作原理、结构布置上都做了最大的改进,改变了以往以单线或双线为主的传统润滑方式,采用微电脑技术与可编程控制器相结合的方式,使设备润滑进入一个新的里程。系统中主控设备、高压电动油泵、电磁给油器、流量传感器、压力传感器等每一个部件都是经过精心研制并专为智能润滑系统所设计的。 设备采用SIEMENS S7-200系列可编程控制器作为主要控制系统,为润滑智能控制需求提供了最恰当的解决办法,可网络挂接与上位机计算机系统进行连接以实时监控,使得润滑状态一目了然;现场供油分配直接受可编程控制器的控制,供油量大小,供油循环时间的长短都由主控系统来完成;流量传感器实时检测每个润滑点的运行状态,如有故障及时报警,且能准确判断出故障点所在,便于操作工的维护与维修。操作员可根据设备各点润滑要求的不同,通过文本显示器远程调整供油参数,以适应烧结机的润滑要求。整个润滑系统的供油部分,通过公司最新研制的

PostgreSQL学习手册(PLpgSQL过程语言)

一、概述: PL/pgSQL函数在第一次被调用时,其函数内的源代码(文本)将被解析为二进制指令树,但是函数内的表达式和SQL命令只有在首次用到它们的时候,PL/pgSQL解释器才会为其创建一个准备好的执行规划,随后对该表达式或SQL命令的访问都将使用该规划。如果在一个条件语句中,有部分SQL命令或表达式没有被用到,那么PL/pgSQL解释器在本次调用中将不会为其准备执行规划,这样的好处是可以有效地减少为PL/pgSQL函数里的语句生成分析和执行规划的总时间,然而缺点是某些表达式或SQL命令中的错误只有在其被执行到的时候才能发现。 由于PL/pgSQL在函数里为一个命令制定了执行计划,那么在本次会话中该计划将会被反复使用,这样做往往可以得到更好的性能,但是如果你动态修改了相关的数据库对象,那么就有可能产生问题,如: CREATE FUNCTION populate() RETURNS integer AS $$ DECLARE -- 声明段 BEGIN PERFORM my_function(); END; $$ LANGUAGE plpgsql; 在调用以上函数时,PERFORM语句的执行计划将引用my_function对象的OID。在此之后,如果你重建了my_function函数,那么populate函数将无法再找到原有my_function函数的OID。要解决该问题,可以选择重建populate函数,https://www.doczj.com/doc/d94286769.html,或者重新登录建立新的会话,以使PostgreSQL重新编译该函数。要想规避此类问题的发生,在重建my_function时可以使用CREATE OR REPLACE FUNCTION命令。 鉴于以上规则,在PL/pgSQL里直接出现的SQL命令必须在每次执行时均引用相同的表和字段,换句话说,不能将函数的参数用作SQL命令的表名或字段名。如果想绕开该限制,可以考虑使用PL/pgSQL 中的EXECUTE语句动态地构造命令,由此换来的代价是每次执行时都要构造一个新的命令计划。 使用PL/pgSQL函数的一个非常重要的优势是可以提高程序的执行效率,由于原有的SQL调用不得不在客户端与服务器之间反复传递数据,这样不仅增加了进程间通讯所产生的开销,而且也会大大增加网络IO的开销。 二、PL/pgSQL的结构: PL/pgSQL是一种块结构语言,函数定义的所有文本都必须在一个块内,其中块中的每个声明和每条语句都是以分号结束,如果某一子块在另外一个块内,那么该子块的END关键字后面必须以分号结束,不过对于函数体的最后一个END关键字,分号可以省略,如: [ <

知识管理制度

第一章总则 1目的和适用范围 为了对知识实行统一、有效的控制和管理,特制定本程序。本程序适用于达实智能股份有限公司内部知识的交流和共享的管理、外部知识管理、企业知识资产的管理。 该管理制度不应与《文件和资料控制程序》发生冲突,如在执行中发生冲突,应以《文件和资料控制程序》为准则。 2职责 2.1总裁办与经营管理部负责公司知识管理的协调工作。知识管理的总责任人为总裁。 2.2总裁办负责公司所有制度文件和资料的管理。 2.3总裁办负责公司无形资产的管理。(实物可放在行政部机要室保管)2.4总裁办负责信息系统的建设与管理 2.5人力资源部文管中心负责所有制度文件和资料的发放和记录。 2.6所有制度文件和资料应在总裁办归档。涉及专业性较强的资料在当年由该专业部门归档保存,年度终了应统一移交总裁办保管。以后可根据文件借阅权限借阅或使用。 2.7所有项目文档由经营管理部负责管理 2.8所有研发与技术文档由研发中心负责管理,研发中心应定期将文档目录交经营管理部备案。 第二章知识的积累与交流 3内部知识管理信息系统的建设 3.1建立内部信息网以便于员工进行知识交流

3.2利用各种知识数据库、专利数据库存放和积累信息,从而在企业内部营造有 利于员工生成、交流和验证知识的环境,并要求员工主动进行知识积累与交流 3.3 内部知识系统分为不同的数据库模块,并指派不同的应用人员进行维护 4内部知识的积累与交流 4.1内部知识可分为公司信息、专业技术知识、项目积累三大类。 ——公司信息包括管理制度、程序文件与公司信息公告,管理制度规定了企 业各项功能的运作和发展原则及要求;程序文件用于描述各部门为实现集团 经营目标,开展各项工作的程序;公司信息公告是公司事件的宣传窗口,也 是员工交流的园地 ——专业技术包括自动化技术知识与工程应用的经验教训积累 ——项目积累指各项目进程中的经验教训积累 4.2 公司信息由总裁办负责收集、整理与发布 4.3 专业技术知识分为研发、技术知识与工程应用知识两类,其中研发、技术知识由研发中心负责收集、整理与发布,每个技术人员都有责任主动完善该信息库,工程应用知识由经营管理部负责收集、整理与发布,每个项目参与工程师都有责任主动完善该信息库 4.4 项目积累由经营管理部负责收集、整理与发布,每个项目参与人员都有责任主动完善该信息库 5 外部知识的积累与交流 5.1外部知识可分为外来资料、市场信息两大类 --外来资料包括供应商、用户和竞争对手等利益相关者的动向报告,专家、顾客意见的采集,技术动态的跟踪,行业领先者的最佳实践调查 等 --市场信息包括国家有关宏观信息、行业信息、市场动态、客户信息等 5.2 外来资料应与内部资料相融合,由公司内部信息系统负责管理传递 5.3 外来资料由经营管理与战略发展部负责收集、整理与发布。但两部门应要求知识相关责任部门提供协助。相关部门有责任主动完善该信息库。 5.4外来引用资料为公司直接引用国际、国家或行业标准及其它有关法规性文件。引用资料需经总裁办审核、总裁批准后方可公开与使用。其引用资料文字版应加盖“受控”章,列入受控范围。 5.5所有外来资料均需表明出处

PostgreSql 基础知识

PostgreSql 常见数据类型 1.CREATE TYPE命令增加新的数据类型 2.数据类型

3.数值类型 3. 整数类型 smallint, integer, bigint 类型存储各种范围的全部是数字的数,也就是没有小数部分的数字。试图存储超出范围以外的数值将导致一个错误。 常用的类型是 integer ,因为它提供了在范围、存储空间、性能之间的最佳平衡。一般只有在磁盘空间紧张的时候才使用 smallint 。而只有在 integer 的范围不够的时候才使用 bigint ,因为前者绝对快得多。 bigint 类型可能不是在所有平台上都运转正确,因为它依赖编译器对八字节整数的支持。在那些没有八字节整数支持的机器上,bigint 的作用和 integer 一样(但是仍然占据八字节存储)。不过,我们目前还没听说过有这样的平台。 SQL 只声明了整数类型 integer(或 int) 和 smallint 。类型 bigint 和类型别名 int2, int4, int8 都是扩展,并且也在许多其它 SQL 数据库系统中使用。 4.任意精度数值 numeric 类型可以存储最多 1000 位精度的数字并且准确地进行计算。特别建议将它用于货币金额和其它要求精确计算的场合。不过,numeric 类型上的算术运算比整数类型要慢很多。 术语:一个 numeric 类型的标度(scale)是小数部分的位数,精度(precision)是全部数据位的数目,也就是小数点两边的位数总和。因此数字 23.5141 的精度为 6 而标度为 4 。你可以认为整数的标度为零。 numeric 字段的最大精度和最大标度都是可以配置的。要声明一个字段的类型为 numeric ,你可以用下面的语法: NUMERIC(precision, scale) 精度必须为正数,标度可以为零或者正数。另外, NUMERIC(precision) 选择了标度为 0 。不带任何精度与标度的声明 NUMERIC 则创建一个可以存储一个直到实现精度上限的任意精度和标度的数值,一个这样类型的字段将不会把输

干油润滑系统使用说明

宁波北仑DQ4200/4200.42堆取料机干油集中润滑系统 技术说明

目录 1系统技术参数及工作原理………………STI 2 2典型双线系统工作原理……………………STI 4 3FYK分油块…………………………………STI 6 4DRB泵………………………………………STI 8 5SSP双线分配器………………………………STI 16 6YCK-M5压差开关……………………………STI 19 1.系统技术参数及工作原理 宁波北仑DQ4200/4200.42堆取料机干油集中电动润滑系统润滑点部位包括:大车集中润滑系统和回转集中润滑系统.其余润滑系统均采用分油块润滑系统. 大车集中润滑系统原理图 回转集中润滑系统原理图 电动双线集中润滑系统:整个系统由电动干油润滑泵、双线分配器、连接管路和接头等组成。 2.典型双线系统工作原理 润滑泵开始工作后,泵不断地从贮油桶中吸入油 脂,从出油口压出油脂。泵排出的 压力油脂经液动换向阀进入主管1,送至各分配器。此 时,主管2通过XYDF型液动换向阀与回油管相连,处 图A

于卸荷状态。主管1中的油脂进入各分配器的上部进油口(图A所示),利用上部进油口处的压力油推动分配器中的所有活向下运动,并将活塞下腔的油经分配器的下出油口2,定量地送入各润滑点。当所有分配器的下出油口一次送油结束后(即所有分配器中的供油活塞下行到活塞行程的末端停止运动后),主管 1中的压力将迅速上升,当压力达到额定压力后,换 向阀换向。 换向阀换向后,润滑泵输出的压力油进入主管 2,同时主管1卸荷,各分配器的下进油口进油(图B 所示),分配器中的活塞向上运动,将活塞上腔的油 经分配器的上出油口1,定量地送入各润滑点。当所 有分配器的上出油口一次送油结束后,主管2的压力 上升,当压力达到额定压力后,换向阀换向。这样系 统就完成了一次循环,每个润滑点均得到了一次定量 的润滑油脂。 分油块示意图 3.FYK型分油块 用途及特点 分油块有结构紧凑、体积小、安装补脂方便的特点。FYK型分油块是我公司为手动集中供油而设计的一种给油装置。 FYK型分油块分为两种形式,按出油口数量分,又各有8种规格。该分油块通常与油枪或移动式加油泵车配合使用,广泛应用在港口机械、冶金设备等手动集中润滑系统中。 规格型号及技术参数 FYK-A型FYK-B型 规格型号出油口数L1 L2 重量Kg 安装螺钉规格进、出油口螺纹D FYK-A-1 1 80 — 1 GB 70-85 内六角圆柱头螺钉 M10X40 标准产品为Rc1/4 可根据用户要求定 制加工 FYK-A-2 2 110 80 1.3 FYK-A-3 3 140 110 1.7 FYK-A-4 4 170 140 2 FYK-A-5 5 200 170 2.5 图B

odbc安装文档

Linux/Unix下ODBC的安装 方法一: 先下载最新的unixODBC源码包(https://www.doczj.com/doc/d94286769.html,/unixODBC-2.2.1.tar.gz)放到/usr/local下,然后运行下述命令: 安装成功后,unixODBC所需的头文件都被安装到了/usr/inlucde下,编译好的库文件安装到了/usr/lib下,与unixODBC相关的可执行文件安装到了/usr/bin下,配置文件放到了/etc下。 方法二: 下载rpm包进行安装,我们这里以Red Hat 7.3为例: unixODBC-2.2.0-5 RPM for i386(安装包及源码包) (ftp://https://www.doczj.com/doc/d94286769.html,/linux/redhat/7.3/en/os/i386/RedHat/RPMS/unixODBC-2 .2.0-5.i386.rpm、 ftp://https://www.doczj.com/doc/d94286769.html,/linux/redhat/7.3/en/os/i386/SRPMS/unixODBC-2.2.0-5.src.rpm)unixODBC-devel-2.2.0-5 RPM for i386 (ftp://https://www.doczj.com/doc/d94286769.html,/linux/redhat/7.3/en/os/i386/RedHat/RPMS/unixODBC-d evel-2.2.0-5.i386.rpm) 直接将unixODBC-2.2.0-5.i386.rpm和unixODBC-devel-2.2.0-5.i386.rpm装入系统就可以了,命令如下:

Linux/Unix下ODBC的配置 运行ODBCConfig程序(在/usr/bin下),如下图: 图一:ODBCConfig主窗口 和Windows下的ODBC设置窗口是不是很像?我想大家都能看懂吧。 第一步:安装数据库的ODBC驱动程序 Drivers这一栏中用来设置数据库的驱动程序,点击Add按钮,会出现下图:

三浪集中润滑KFU操作维护手册

第1章 KFU2-40自动集中润滑系统系统组成 控制器 压力传感器 润滑点 主油管 堵头集中润滑泵分配器 分油管 1-1

部件介绍 一、油泵 KFU2-40油泵由一个12VDC或24VDC直流电机带动齿轮泵旋转,通过一个限压溢流阀和卸压的卸荷阀组成一个泵源系统,其工作或休息由DKQ型程序控制器控制,整个外形为半封闭状,以防外力打击透明油箱。 外形尺寸 1-2

1-3 液压原理图 KFU2-40 技术参数: KFU2-40KFU2-40B 最多连接润滑点数 60工 作压 力 油 箱容 积 使 用电 压 控制器3.8MPa 3L 12或24VDC DKQ型或SL-ECU SL-ECU 参数 型号

工作原理:当油泵收到控制器发来的起动指令后,电机带动齿轮泵沿压油方向旋转,产生真空吸入油脂,油脂被齿轮泵压送至压力出口,迅速打开卸荷阀中的出油通道,开始对外供油,当外接分配器储油结束后,整个系统成封闭,压力上升到溢流阀控制压力,压力传感器向控制器发出系统正常讯息,系统余油经溢流阀泄回油箱,这样主油路保持溢流阀控制压力值不变。如果油泵接收到控制器发来的停止指令,油泵电机停转(间歇工况),泵出口至卸荷阀入口段压力逐步下降,在卸荷阀弹簧作用下打开卸荷口,系统主油管的油压迅速下降,定量分配器开始进入向润滑点供油工况。由于管路的滞阻作用,系统只能卸压至0.05-0.1MPa。 t1:系统上压时间,取决于泵大小,分配器数量多少。 t2:系统压力保持时间,为了保证分配器可靠储油。 t3:泵工作时间 t7:一个润滑周期时间 t4:系统卸荷时间 P1:最大残压0.1MPa t5:分配器供油时间 P2:分配器动作压力区间 t6:间歇时间 P:额定压力 注 意: 油泵的电压必须与汽车的电源电压相匹配。 1-4

PostgreSQL学习手册:SQL语言函数

PostgreSQL学习手册:SQL语言函数 一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。 SQL函数的函数体应该是用分号分隔的SQL语句列表,其中最后一条语句之后的分号是可选的。除非函数声明为返回void,否则最后一条语句必须是SELECT。事实上,在SQL函数中,不仅可以包含SELECT查询语句,也可以包含INSERT、UPDATE和DELETE等其他标准的SQL 语句,但是和事物相关的语句不能包含其中,如BEGIN、COMMIT、ROLLBACK和SAVEPOINT 等。 CREATE FUNCTION命令的语法要求函数体写成一个字符串文本。通常来说,该文本字符串常量使用美元符($$)围住,如: CREATE FUNCTION clean_emp() RETURNS void AS $$ DELETE FROM emp WHERE salary < 0; $$ LANGUAGE SQL; 最后需要说明的是SQL函数中的参数,PostgreSQL定义$1表示第一个参数,$2为第二个参数并以此类推。如果参数是复合类型,则可以使用点表示法,即$https://www.doczj.com/doc/d94286769.html,访问复合类型参数中的name字段。需要注意的是函数参数只能用作数据值,而不能用于标识符,如:INSERT INTO mytable VALUES ($1); --合法 INSERT INTO $1 VALUES (42); --不合法(表名属于标示符之一) 二、基本类型: 最简单的SQL函数可能就是没有参数且返回基本类型的函数了,如: CREATE FUNCTION one() RETURNS integer AS $$ SELECT 1 AS result; $$ LANGUAGE SQL; 下面的例子声明了基本类型作为函数的参数。 CREATE FUNCTION add_em(integer, integer) RETURNS integer AS $$ SELECT $1 + $2; $$ LANGUAGE SQL; # 通过select调用函数。 postgres=# SELECT add_em(1,2) AS answer; answer -------- 3 (1 row) 在下面的例子中,函数体内包含多个SQL语句,它们之间是用分号进行分隔的。CREATE FUNCTION tf1 (integer, numeric) RETURNS numeric AS $$ UPDATE bank SET balance = balance - $2 WHERE accountno = $1; SELECT balance FROM bank WHERE accountno = $1; $$ LANGUAGE SQL;

知识管理规定

知识管理规定 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

目录 第一章总则 第一条本制度适用于华润置地江苏公司(以下简称公司)对企业知识资源及其使用环境进行管理的一切活动,包括内部知识的交流和共享的管 理、外部知识的管理。 第二条公司知识管理以实现公司知识共享、总结经验、优化流程,保障公司产品标准化产品复制、快速开发策略实施,实现公司管理水平及业务 能力不断提升为目的。 第二章知识管理的定义及范围 第三条知识管理是组织一种有意识采取的战略,它保证能够在最需要的时间将最需要的知识传送给最需要的员工,帮助员工共享信息,并进而将 之通过不同的方式付诸实践,最终达到提高组织业绩的目的。 第四条公司知识管理涵盖战略管理、项目论证、报批报建、项目定位、设计管理、营销策划、工程管理、成本管理、客户服务、项目后评估等核 心知识领域。

第五条知识管理分为知识积累和知识优化两个范畴,其中知识积累的主要内容包括上述核心知识领域中的关键成果或法律法规、标准模板等,知 识优化指对公司对现有业务环节流程标准的优化改进建议。 第六条公司知识管理实行分步实施的原则,首批纳入华润置地江苏公司纳入知识管理范围的知识积累内容为上述核心知识领域中的关键成果或法 律法规、标准模板等,具体见附件《华润置地江苏公司知识管理文件 目录》。公司员工均可主动提出对现有业务环节流程标准的优化改进 建议,或贡献其它有共享价值的知识文件,经投资运营部评审后纳入 对现有知识管理库进行优化。 第三章知识管理的组织 第七条投资运营部是公司知识管理的主导部门,区域总部各部门、各城市公司协助知识管理工作的进行。各部门职责如下: 投资运营部: 负责公司知识管理体系的建立以及知识管理成果的收集以及分级管 理; 组织对改进性建议实施的评审及更新。 区域总部各部门及各城市公司: 按知识管理制度要求提交相关的知识成果文件; 按级别权限查阅知识管理文件并转化成工作成果及个人知识能力;第八条投资运营部负责公司所有纳入知识管理范围内的知识文件的管理、发放、记录及归档。 第四章知识的管理

psql常用命令大全

psql常用命令大全 \d [ table ] 列出数据库中的表,或(如果声明了)表table 的列/字段.如果表名是用统配符(“*”)声明的,列出所有表和表的列/字段信息. \da 列出所有可用聚集. \dd object 列出pg_description 里对声明的对象的描述,对象可以是一个表,表中的列/字段,类型,操作符或聚集. 小技巧:并非所有对象在pg_description 里有描述.此后期命令在快速获取Postgres 内部特性时很有用. \df 列出函数. \di 只列出索引. \do 只列出操作符. \ds 只列出序列. \dS 列出系统表和索引. \dt 只列出非系统表. \dT 列出类型. \e [ filename ] 编辑当前查询缓冲或文件filename 的内容. \E [ filename ] 编辑当前查询缓冲或文件filename 的内容并且在编辑结束后执行之. \f [ separator ] 设置域分隔符.缺省是单个空白. \g [ { filename | |command } ] 将当前查询输入缓冲送给后端并且(可选的)将输出放到filename 或通过管道将输出送给一个分离的Unix shell 用以执行command. \h [ command ] 给出声明的SQL 命令的语法帮助.如果command 不是一个定义的SQL 命令(或在psql 里没有文档),或没有声明command ,这时psql将列出可获得帮助的所有命令的列表.如果命令command 是一个通配符(“*”),则给出所有SQL 命令的语法帮助. \H 切换HTML3 输出.等效于-H 命令行选项. \i filename 从文件filename 中读取查询到输入缓冲.

职业生涯规划知识管理手册

职业生涯规划知识管理 手册 Revised at 2 pm on December 25, 2020.

职业生涯规划知识手册目录 1、职员职业生涯规划与集团未来战略的关系 (3) 2、职业生涯规划基础知识 (4) 3、职业生涯开发与管理模式 (17) 4、评估工具 (19) 5、参考资料 (50) 职员职业生涯规划与集团未来战略的关系 市场经济体制的发展,打破了旧的就业制度,个人越来越有择业的自由,企业也越来越有选择员工的自由。因此,怎样利用职业机会取得事业上的发展和怎样利用现有的社会条件和员工情况取得企业的发展,成为了个人和企业的一个重要课题。这就是职业生涯规划要说明和解决的问题。 制定职员职业生涯规划,应依据集团的发展战略,充分理解组织的愿景,把个人发展的需求与组织发展的规划相结合,才能确定符合实际的职员职业生涯目标。目前,集团正处在扩张性发展阶段,同以往任何时期的人力资源工作都有所不同。集团已完成财务资本的原始积累阶段,完全进入人力资本积累阶段,实现财务资本新的飞跃,机遇、关系、业务品种的独特性等因素都不能帮助我们完成再次飞跃,只有积累人力资本,完成人力资本的原始积累,才能实现财务资本的迅速增长。 现代企业人力资本定义是为企业所用的、有价值的管理人才和技术开发人才的总和,是企业的人力资本。集团的人力资本就是集团的人才高

地。集团的人力资源战略就是人才战略,即积累人力资本,在人才的各个层级形成人才高地,满足集团战略发展需求。 个人发展是企业发展和社会发展的基础,只有充分发挥人的主观能动性,在集团建立以人为本的职业生涯开发与管理的目标体系,帮助每个职员实现自我价值,通过做好职员的职业生涯开发与管理,把企业的人力资源最大限度的变成人力资本,企业才能最终实现未来的愿景。职员的职业生涯规划与管理正是集团人才战略的核心内容,把制定职员职业生涯规划作为集团的战略管理的重要组成部分理应是我们当代集团发展到现阶段的重要工作任务。 在职业生涯规划中,企业目标和个人目标的关系就是,企业目标的实现是所有员工部分个人目标(与企业目标一致的部分)实现之和。 职员个人目标与企业目标的关系示意图

相关主题
文本预览
相关文档 最新文档