用SQL游标遍历循环数据的方法

用SQL游标遍历循环数据的方法
用SQL游标遍历循环数据的方法

如果对数据进行遍历循环操作,通过SQL的游标就可以实现,下面就为您详细介绍该方法,供您参考,希望对您学习SQL数据库能够有所帮助。

SQL游标的优点是可以方便从一个结果集中进行循环遍历数据在进行操作。

1、游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;

2、它还提供对基于游标位置而对表中数据进行删除或更新的能力;

3、游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。

然尔游标也有缺点——复杂和低效,是游标的最大缺点,也是致使很多时候在使用存储过程中没有想到游标的主要原因。

下面是在实际工作中的一个游标实例的应用,通过游标把A表的数据的一列值复制到B表的列当中,其中二个表都有相同的UID字段,条件是对相同UID的数据进行复制.

declare @level varchar(100)

declare @uid varchar(100)

declare cur cursor--定义一个游标

read_only

for select egg_https://www.360docs.net/doc/e076682.html,er_id,egg_prize_level

from egg_code inner join egg_prize on egg_https://www.360docs.net/doc/e076682.html,er_id=egg_https://www.360docs.net/doc/e076682.html,er_id--为所获得的数据集指定游标

open cur--打开游标

fetch next from cur into @uid,@level--把提取操作的列数据放到局部变量中

while(@@fetch_status=0)--返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。

begin

--print '等级:'+@level+'--------------用户ID:'+@uid

update egg_code set prize_level=@level where user_id=@uid--执行操作

--提前下一位信息

fetch next from cur into @uid,@level

end

close cur--关闭游标

deallocate cur--删除游标

go

使用游标的顺序:声名游标、打开游标、读取数据、关闭游标、删除游标。

由于 @@FETCH_STATUS 对于在一个连接上的所有游标是全局性的,要小心使用 @@FETCH_STATUS 。在执行一条 FETCH 语句后,必须在对另一游标执行另一 FETCH 语句前测试 @@FETCH_STATUS 。在任何提取操作出现在此连接上前,@@FETCH_STATUS 的值没有定义。

例如,用户从一个游标执行一条 FETCH 语句,然后调用一个存储过程,此存储过程打开并处理另一个游标

的结果。当控制从被调用的存储过程返回后,@@FETCH_STATUS 反映的是在存储过程中执行的最后的 FETCH 语句的结果,而不是在存储过程被调用之前的 FETCH 语句的结果。

使用上面的游标是泉州SEO在一次网站砸金蛋活动中,二个表的数据在使用的过程中有部份后期改到程序致使有部份数据无法同步,导致前台查询的时候所用到的表无法查到相关的数据,没用游标进行操作之前试过只用简单的SQL语句去实现这样的同步功能,但是始终无法实现,所以只能使用游标来实现。

监视并记录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指令提供的定义。

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

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 则创建一个可以存储一个直到实现精度上限的任意精度和标度的数值,一个这样类型的字段将不会把输

odbc安装文档

Linux/Unix下ODBC的安装 方法一: 先下载最新的unixODBC源码包(https://www.360docs.net/doc/e076682.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.360docs.net/doc/e076682.html,/linux/redhat/7.3/en/os/i386/RedHat/RPMS/unixODBC-2 .2.0-5.i386.rpm、 ftp://https://www.360docs.net/doc/e076682.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.360docs.net/doc/e076682.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按钮,会出现下图:

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 中读取查询到输入缓冲.

GP 常用数据库命令

Greenplum 日常简明维护手册 1.数据库启动:gpstart 常用参数:-a : 直接启动,不提示终端用户输入确认 -m:只启动master 实例,主要在故障处理时使用 访问单个数据实例: PGOPTIONS='-c gp_session_role=utility' psql template1 -p 5432 启动某个segment instance :pg_ctl stop/start -D /datadir/ 取端口号: select * from gp_segment_configuration 启动以后会在/tmp/ 下生成一个.lock 隐藏文件,记录主进程号。

2.数据库停止:gpstop: 常用可选参数:-a:直接停止,不提示终端用户输入确认 -m:只停止master 实例,与gpstart –m 对应使用 -f:停止数据库,中断所有数据库连接,回滚正在运 行的事务 -u:不停止数据库,只加载pg_hba.conf 和postgresql.conf中 运行时参数,当改动参数配置时候使用。 连接数,重启 3.查看实例配置和状态 select * from gp_segment_configuration order by content ; select * from pg_filespace_entry ; 主要字段说明: Content:该字段相等的两个实例,是一对P(primary instance)和M(mirror Instance) Isprimary:实例是否作为primary instance 运行 Valid:实例是否有效,如处于false 状态,则说明该实例已经down 掉。 Port:实例运行的端口 Datadir:实例对应的数据目录 4.gpstate :显示Greenplum数据库运行状态,详细配置等信息 常用可选参数:-c:primary instance 和mirror instance 的对应关系 -m:只列出mirror 实例的状态和配置信息 -f:显示standby master 的详细信息 该命令默认列出数据库运行状态汇总信息,常用于日常巡检。 5.查看用户会话和提交的查询等信息 select * from pg_stat_activity该表能查看到当前数据库连接的IP 地址,用户

Postgresql存储过程

用PL/pgSQL写postgreSQL的存储过程 一、存储过程结构: Create or replace function 过程名(参数名参数类型,…..) returns 返回值类型as $body$ //声明变量 Declare 变量名变量类型; 如: flag Boolean; 变量赋值方式(变量名类型:=值;) 如: Str text :=值; / str text; str :=值; Begin 函数体; End; $body$ Language plpgsql; 二、变量类型: 除了postgresql内置的变量类型外,常用的还有 RECORD ,表示一条记录 三、连接字符: Postgresql存储过程中的连接字符不再是“+”,而是使用“||”。 四、控制结构: 1、if 条件(五种形式) IF ... THEN IF ... THEN ... ELSE IF ... THEN ... ELSE IF IF ... THEN ... ELSIF ... THEN ... ELSE IF ... THEN ... ELSEIF ... THEN ... ELSE(注:ELSEIF 是 ELSIF 的别名)

2、循环 使用LOOP,EXIT,CONTINUE,WHILE,和 FOR 语句,可以控制PL/pgSQL 函数重复一系列命令。 1)、LOOP [ <

greenplum基本操作及管理命令

第1章系统管理 1.1 GP服务启停 su - gpadmin gpstart #正常启动 gpstop #正常关闭 gpstop -M fast #快速关闭 gpstop –r #重启 gpstop –u #重新加载配置文件 1.2 登陆 psql gpdb psql -d gpdb -h gphostm -p 5432 -U gpadmin 1.3 查看segment配置 select * from gp_segment_configuration; 1.4 文件系统 select * from pg_filespace_entry; 1.5 列出所有数据库 psql –l

1.6 行表库最大尺寸 一个数据库最大尺寸?无限制(已存在有32TB 的数据库) 一个表的最大尺寸?32 TB 一行记录的最大尺寸?1.6 TB 一个字段的最大尺寸? 1 GB 一个表里最大行数?无限制 一个表里最大列数?250-1600 (与列类型有关) 一个表里的最大索引数量?无限制 当然,实际上没有真正的无限制,还是要受可用磁盘空间、可用内存/交换区的制约。事实上,当这些数值变得异常地大时,系统性能也会受很大影响。 表的最大尺寸32 TB 不需要操作系统对大文件的支持。大表用多个 1 GB 的文件存储,因此文件系统尺寸的限制是不重要的。 如果缺省的块大小增长到32K ,最大的表尺寸和最大列数还可以增加到四倍 1.7 存储空间 一个Postgres 数据库(存储一个文本文件)所占用的空间最多可能需要相当于这个文本文件自身大小5倍的磁盘空间。

第2章Psql操作 2.1 创建/删除用户 创建用户: createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主机名] [-p port] 用户名参数说明: [-a]:允许创建其他用户,相当于创建一个超级用户; [-A]:不允许此用户创建其他用户; [-d]:允许此用户创建数据库; [-D]:不允许此用户创建数据库; [-e]:将执行过程显示到Shell上; [-P]:创建用户时,同时设置密码; [-h 主机名]:为某个主机上的Postgres创建用户; [-p port]:与-h参数一同使用,指定主机的端口。 createuser -h 172.28.18.51 -p 5000 -D -A -e testuser 创建超级用户:createuser -P -d -a -e testuser 删除用户: 命令:dropuser [-i] [-h] [-p] [-e] 用户名 参数说明: [ -i]:删除用户前,要求确认; [-h 主机名]:删除某个主机上的Postgres用户; [-p port]:与-h参数一同使用,指定主机的端口; [-e]:将执行过程显示到Shell上。 2.2 创建数据库 createdb -p 5432 -e -U gpadmin mydb

postgreSql基础命令及linux下postgreSql命令

(1)用户实用程序: createdb 创建一个新的PostgreSQL的数据库(和SQL语句:CREATE DATABASE 相同)createuser 创建一个新的PostgreSQL的用户(和SQL语句:CREATE USER 相同) dropdb 删除数据库 dropuser 删除用户 pg_dump 将PostgreSQL数据库导出到一个脚本文件 pg_dumpall 将所有的PostgreSQL数据库导出到一个脚本文件 pg_restore 从一个由pg_dump或pg_dumpall程序导出的脚本文件中恢复PostgreSQL数据库 psql 一个基于命令行的PostgreSQL交互式客户端程序 vacuumdb 清理和分析一个PostgreSQL数据库,它是客户端程序psql环境下SQL语句VACUUM的shell 脚本封装,二者功能完全相同 (2)系统实用程序 initdb 创建一个用于存储数据库的PostgreSQL数据目录,并创建预定义的模板数据库template0和template1,生成共享目录表catalog;此程序通常只在安装PostgreSQL时运行一次 initlocation 创建一个辅助的PostgreSQL数据库存储区域 ipcclean 从停止的PostgreSQL服务器中清除共享内在和孤立信号标志 pg_ctl 启动、停止、重启PostgreSQL服务(比如:pg_ctl start 启动PostgreSQL服务,它和service postgresql start相同) pg_controldata 显示PostgreSQL服务的内部控制信息 postgres PostgreSQL单用户模式的数据库服务 postmaster PostgreSQL多用户模式的数据库服务 4.这里面最重要的是psql这个客户端程序最为重要。启用客户端程序psql的方法是: 切换到PostgreSQL预定义的数据库超级用户postgres,启用客户端程序psql,并连接到自己想要的数据库,比如说:

window常用命令

window常用命令gpedit.msc-----组策略 sndrec32-------录音机 Nslookup-------IP地址侦测器 explorer-------打开资源管理器 logoff---------注销命令 tsshutdn-------60秒倒计时关机命令 lusrmgr.msc----本机用户和组 services.msc---本地服务设置 oobe/msoobe /a----检查XP是否激活 notepad--------打开记事本 cleanmgr-------垃圾整理 net start messenger----开始信使服务 compmgmt.msc---计算机管理 net stop messenger-----停止信使服务 conf-----------启动 netmeeting dvdplay--------DVD播放器 charmap--------启动字符映射表 diskmgmt.msc---磁盘管理实用程序 calc-----------启动计算器 dfrg.msc-------磁盘碎片整理程序 chkdsk.exe-----Chkdsk磁盘检查 devmgmt.msc--- 设备管理器 regsvr32 /u *.dll----停止dll文件运行 drwtsn32------ 系统医生 rononce -p ----15秒关机 dxdiag---------检查DirectX信息 regedt32-------注册表编辑器 Msconfig.exe---系统配置实用程序

mem.exe--------显示内存使用情况 regedit.exe----注册表 winchat--------XP自带局域网聊天 progman--------程序管理器 winmsd---------系统信息 perfmon.msc----计算机性能监测程序 winver---------检查Windows版本 sfc /scannow-----扫描错误并复原 taskmgr-----任务管理器(2000/xp/2003) Win2000里的一些高级命令 如果要打开win2k的系统盘,只要在“运行”对话框中输入“\”“/”“...”即可。 命令提示符下的命令: 1.在管理员权限下运行gpedit.msc (group plicy) 组策略-->“本地计算机”策略-->计算机配置-->管理摸板-->Windows安装服务 之下有一个“允许管理员从终端服务会话安装”(按默认值,系统管理员只有在登录到装有这个程序的计算机上时才能安装程序。这个策略为运行终端服务的计算机创建一个特殊的例外。这个策略只影响系统管理员。其他用户无法远程安装程序。) 2.taskmgr (任务管理器) 3.hostname (显示本机主机名) https://www.360docs.net/doc/e076682.html, config rdr (可以查看完整的、被认证的计算机名) 5.tsdiscon (在终端模式下中断与服务器的会话。) logoff (退出与服务器的进程,不保存会话的内容。) 6.dcomcnfg DCOM(分布式COM配置属性) 7.使用MMC有两种常规方法:在用户模式中,用已有的MMC控制台管理系统;在作者模式中,创建新控制台或修改已有的MMC 控制台。 8.ICMP (网际消息协议)

第七章 数据库概论实验报告Access2010

项目7 数据库概论 活动1 创建数据库和表 一、活动目的 1.熟悉Access的界面和主要功能 2.掌握在Access中创建数据库、表的方法 3.熟悉表的基本操作 二、活动内容 1.用教材中各种方法启动Access,并且熟悉Access 2010界面。 2.新建空白数据库,然后再向其中添加表、查询、窗体、报表等对象。 创建空数据库的操作步骤如下。 ①启动Access 2010程序,进入视图,在左侧导航窗格中单击“文件”命令,然后在中间窗格中单击“空数据库”选项。 ②在右侧窗格中的“文件名”文本框中输入数据库名称,单击“创建”按钮。也可单击文件名右侧的【样本模版】,,完成创建数据库,同时在数据库中自动创建一个数据表。3.创建表 每个学生用“表”模板和“表设计”方法创建“门诊收费表”和“门诊挂号表”,表格内容如下。

图7-1 创建表示例 图7-2 创建表示例 使用“设计视图”创建表主要是设置表的各种字段的属性,即创建表结构。表中数据记录要在“数据表视图”中输入。以创建“门诊收费表”为例说明操作步骤,如下所示。 ①新建数据库“门诊收费”。 ②切换到“创建”选项卡,单击“表格”组中的“表设计”按钮,进入表设计视图。 ③在“字段名称”栏中输入字段的名称“病人序号”;在“数据类型”选择该字段的 数据类型,这里选择“数字”选项;“说明”栏可根据需要输入。 ④用同样的方法,输入其他字段名称,并设置相应的数据类型。 ⑤选择要设为主键(能唯一标识一条记录的字段)的字段,例如选择“病人姓名”, 在“设计”选项卡的“工具”组中,单击“主键”按钮,即可将其设为主键。 ⑥在“常规”选项卡中可以定义字段的字段大小、格式、小数位数、输入掩码、标题、默认值、有效性规则、必需、索引等参数。 ⑦将所有字段设置完,保存。 表结构定义完成后,可以在数据库窗口中看到已建立的表对象。 图7-4 编辑关系 4.表对象的基本操作 ⑴创建关系 不同的表之间的关联是通过表的主键来确定的。因此当数据表的主键更改时,Access 2010会进行检查。 创建数据库表关系的方法如下: 单击数据库工具菜单的【关系】按钮,打开关系窗口。 拖放一个表的主键到对应的表的相应字段上。根据要求重复此步骤。 ⑵查看关系

Linux常用备份恢复工具

Linux常用备份恢复工具- [Linux] 2007-05-29 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 https://www.360docs.net/doc/e076682.html,/logs/5569495.html 关键词:Linux备份 阅读提示:在Linux 中可以通过各种各样的方法来执行备份。所涉及的技术从非常简单的脚本驱动的方法,到精心设计的商业化软件。备份可以保存到远程网络设备、磁带驱动器和其他可移动媒体上。本文只对二十个工具的用途、原理和使用作指导性的介绍 在Linux 中可以通过各种各样的方法来执行备份。所涉及的技术从非常简单的脚本驱动的方法,到精心设计的商业化软件。备份可以保存到远程网络设备、磁带驱动器和其他可移动媒体上。备份可以是基于文件的或基于驱动器映像的。可用的选项很多,您可以混合搭配这些技术,为您的环境设计理想的备份计划。重要数据的丢失可能意味着致命的破坏。尽管如此,还是有无数专业人员忽视了对他们的数据的备份。虽然原因可能各不相同,但是,最常见的一个解释是,执行例行备份确实烦琐。由于机器擅长于完成普通而重复的任务,因此,自动化备份的过程是降低工作内在的枯燥性和人们与生俱来的拖延倾向的关键所在。备份固然重要,但恢复文件更重要。当一些灾难发生时,没有哪种方法能比恢复系统更快地解决问题,除非备份已经失效。 如果您使用Linux,那么您就已经可以使用那些创建定制备份解决方案的极其强大的工具。下面介绍的软件,可以让您使用几乎每个Linux 发行版本都附带的开放源代码工具来执行从简单的到更高级而且安全的网络备份。以前Linux备份工作比较复杂,通常在命令行下完成,若你不熟悉Linux系统文件和设备,情况则会变得更糟。随着Linux应用扩展许多Linux下备份软件也都具有图形界面。这里分别介绍几种易于使用的Linux备份软件。Linux备份软件有许多种:系统自身的、基于开发源代码的、商业软件。由于篇幅的关系,本文只对二十个工具的用途、原理和使用作指导性的介绍,要了解更加详细的使用情况,读者可以根据文中的介绍去查找和使用。 1 Xtar 软件名称:Xtar

postgresql常用命令

1.createdb 数据库名称 产生数据库 2.dropdb 数据库名称 删除数据库 3.CREATE USER 用户名称 创建用户 4.drop User 用户名称 删除用户 5.SELECT usename FROM pg_user; 查看系统用户信息 \du 7.SELECT version(); 查看版本信息 8.psql 数据库名 打开psql交互工具 9.mydb=> \i basics.sql \i 命令从指定的文件中读取命令。 10.COPY weather FROM '/home/user/weather.txt'; 批量将文本文件中内容导入到wether表 11.SHOW search_path; 显示搜索路径 12.创建用户 CREATE USER 用户名WITH PASSWORD '密码' 13.创建模式 CREATE SCHEMA myschema; 14.删除模式 DROP SCHEMA myschema; 15.查看搜索模式 SHOW search_path; 16.设置搜索模式 SET search_path TO myschema,public; 17.创建表空间 create tablespace 表空间名称location '文件路径'; 18.显示默认表空间 show default_tablespace;

19.设置默认表空间 set default_tablespace=表空间名称; 20.指定用户登录 psql MTPS -u 21.显示当前系统时间、 now() 22.配置plpgsql语言 CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler 23.删除规则 DROP RULE name ON relation [ CASCADE | RESTRICT ] 输入 name 要删除的现存的规则. relation 该规则应用的关系名字(可以有大纲修饰). CASCADE 自动删除依赖于此规则的对象。 RESTRICT 如果有任何依赖对象,则拒绝删除此规则。这个是缺省。 24.日期格式函数 select 'P'||to_char(current_date,'YYYYMMDD')||'01' 25.产生组 Create Group 组名称 26.修改用户归属组 Alter Group 组名称add user 用户名称 26.为组赋值权限 grant 操作On 表名称to group 组名称: 27.创建角色 Create Role 角色名称 28.删除角色 Drop Role 角色名称 29.获得当前postgresql版本 SELECT version();

启动,停止和重起 PostgreSQL

https://www.360docs.net/doc/e076682.html,/server/2005-09-21/20050921013201.shtml ./pg_ctl -D /usr/local/pgsql/data -l logfile start pg_ctl start [-w] [-s] [-D datadir] [-l filename] [-o options] [-p path] pg_ctl stop [-W] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] pg_ctl restart [-w] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-o options] pg_ctl reload [-s] [-D datadir] pg_ctl status [-D datadir] pg_ctl kill [signal_name] [process_id] 描述 pg_ctl 是一个用于启动,停止,或者重起 PostgreSQL 后端服务器(postmaster),或者显示一个运行着的服务器的状态的工具,尽管我们可以手动启动服务器,但是 pg_ctl 封装了重新定向日志输出,与终端和进程组合理分离,以及另外提供了一个选项用于有控制的关闭。 在 start 模式里会启动一个新的服务器。服务器是在后台启动的,标准输入被附着到了 /dev/null 上。如果使用了 -l,那么标准输出和标准错误被定向到一个日志文件,要么就是重新定向到 pg_ctl 的标准输出(而不是标准错误)。如果没有选定日志文件,pg_ctl 的标准输出应该重新定向到一个文件或者用管道输出类似 rotatelogs 这样的日志旋转程序,否则,postmaster 将把它的输出写到控制终端(在后台)并且将不会脱离 shell 的进程组。 在 stop 模式下,那个正在特定数据目录运行的服务器被关闭。你可以用-m 选项选择三种不同的关闭模式:"Smart" 模式等待所有客户端中断联接。这个是缺省。"Fast" 模式并不等待客户端中断联接。所有活跃事务都被回卷并且客户端都强制断开。 "Immediate" 模式将在没有干净关闭的情况下退出。这么做将导致在重新启动的时候的恢复。 restart 实际上是先执行一个停止,然后紧跟一个启动。它允许变换postmaster命令行的选项。 reload 模式简单地给postmaster发送一个 SIGHUP 信号,导致它重新读取她的配置文件(postgresql.conf,pg_hba.conf 等等)这样就允许修改配置文件选项而不用完全重启系统来使之生效。 status 模式监查一个服务器是否在指定的数据目录运行,如果是,那么显示其 PID 和调用它的命令行选项。 kill 模式允许你给一个指定的进程发送信号。这个功能对 Microsoft Windows 特别有用,因为那里没有 kill 命令。使用 --help 查看支持的信号的名字的列表。

Postgres常用命令总结

①:首先切换为postgres用户 su postgres ②:备份名为host的数据库到临时文件host.dump pg_dump -W host > /tmp/host.dump ③:从备份文件infile中导入数据到数据库名为dbname的数据库 psql dbname < infile 二:更新数据表中的某条数据记录 ①:以postgres用户登录到数据库中 sudo su postgres -c psql template1 ②:连接一个数据库数据库 \c databasename ③:查询config表中的数据 select configid,key from config; ④:跟新value字段的值 update config set value='29' where configid='50ce7b11-53c3-4e5f-e02- e4df37af51aa18'; 三:创建postgres数据库

①:以postgres用户登录 su postgres 输入postgres用户的密码 ②:创建数据库 createdb host 四:制作PostgreSQL脚本,创建postgres中文数据库 echo "install database..." #install postgres from source process=$(cat /etc/passwd |grep postgres) if [ -z "$process" ]; then useradd postgres else echo "postgres:Postgres1" >/tmp.txt chpasswd < /tmp.txt rm -f /tmp.txt fi process=$(cat /etc/postgresql/8.4/main/pg_hba.conf |grep 0/0) proces1=$(cat /etc/ssh/sshd_config |grep "allowusers admin") if [ -z "$process" ] && [ -z "$proces1" ]; then echo "host all all 0.0.0.0/0 trust" >> /etc/postgresql/8.4/main/pg_hba.conf sed -i 's/#listen_addresses/listen_addresses/g'

PostgreSQL详解

PostgreSQL数据库 一:PostgreSQL介绍 1.PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为POSTGRES,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如,通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言。并且,因为许可证的灵活,任何人都可以以任何目的免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。 2.PostgreSQL图标 3.PostgreSQL优点 有目前世界上最丰富的数据类型的支持支持,其中有些数据类型可以说连商业数据库都不具备,具体类型下文会说明. PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高 PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。 4.PostgreSQL缺点 首先,早期的 PostgreSQL 继承了几乎所有 Ingres, Postgres, Postgres95 的问题:过于学院味,因为首先它的目的是数据库研究,因此不论在稳定性,性能还是使用方方面面,长期以来一直没有得到重视,直到 PostgreSQL 项目开始以后,情况才越来越好,PostgreSQL 已经完全可以胜任任何中上规模范围内的应用范围的业务 其次,PostgreSQL 的确还欠缺一些比较高端的数据库管理系统需要的特性,比如数据库集群,更优良的管理工具和更加自动化的系统优化功能等提高数据库性能的机制等。 5.目前官方最新版本:9.3.2 二、windows下安装过程 1、开始安装:

pmgp日常维护手册-常用命令 (1)

Greenplum 日常维护手册 1.数据库启动:gpstart 常用可选参数:-a : 直接启动,不提示终端用户输入确认 -m:只启动master 实例,主要在故障处理时使用 2.数据库停止:gpstop: 常用可选参数:-a:直接停止,不提示终端用户输入确认 -m:只停止master 实例,与gpstart –m 对应使用 -M fast:停止数据库,中断所有数据库连接,回滚正在运 行的事务 -u:不停止数据库,只加载pg_hba.conf 和postgresql.conf中 运行时参数,当改动参数配置时候使用。 -f:强制停止数据库 -r:重启数据库 3.查看实例配置和状态 select * from gp_segment_configuration order by 1 ; 主要字段说明: Content:该字段相等的两个实例,是一对P(primary instance)和M(mirror Instance) Isprimary:实例是否作为primary instance 运行 Valid:实例是否有效,如处于false 状态,则说明该实例已经down 掉。 Port:实例运行的端口 Datadir:实例对应的数据目录 注实例配置的数据表:gp_segment_configuration 、pg_filespace_entry、gp_fault_strategy; 其它常用的系统表:pg_class,pg_attribute,pg_database,pg_tables……

可以用tab来匹配表名; 4.gpstate :显示Greenplum数据库运行状态,详细配置等信息 常用可选参数:-c:primary instance 和mirror instance 的对应关系 -m:只列出mirror 实例的状态和配置信息 -f:显示standby master 的详细信息 -s:查看详细状态,如在同步,可显示数据同步完成百分比 --version,查看数据库version (也可使用pg_controldata查看数据库版本和postgresql版本)该命令默认列出数据库运行状态汇总信息,常用于日常巡检。 5.查看用户会话和提交的查询等信息 select * from pg_stat_activity该表能查看到当前数据库连接的IP 地址,用户 名,提交的查询等。另外也可以在master 主机上查看进程,对每个客户端连接,master 都会创建一个进程。ps -ef |grep -i postgres |grep -i con pg_backend_pid(); pg_cancel_backend(integer) 6.查看数据库、表占用空间 select pg_size_pretty(pg_relation_size('schema.tablename'));(与pg_tables子查询查看所有表的占用空间) select pg_size_pretty(pg_database_size('databasename)); 必须在数据库所对应的存储系统里,至少保留30%的自由空间,日常巡检,要检查存储空间的剩余容量。 set gp_enable_multiphase_agg=on; 7.收集统计信息,回收空间 定期使用Vacuum analyze tablename 回收垃圾和收集统计信息,尤其在大数据量删除,导入以后,非常重要、需要定期对数据字典做vacuum和reindex ,如 pg_class,pg_attribute等系统表。 可以gp_toolkit.gp_bloat_diag看膨胀很大的表; Alter table可以用来代替vacuum full 回收空间(除了系统表):

相关主题
相关文档
最新文档