RSS

Category Archives: DataBase

Windows7下8步骤轻松安装Oracle 11g(图解)

①在网上下载一个Oracle Database 11g 11.1.0.6.0安装包。如下图
 Oracle 11g setup

②双击setup.exe。然后出现以下CMD窗口。
Oracle 11g Installer

③开始安装oracle,基本安装比较快捷方便,这里选择高级安装。
Oracle 11g Installer 1

④选择oracle安装类型。一般都选择企业版。点击右下的[产品语言]可以选择多种语言。
Oracle 11g Installer 2

⑤选择安装oracle的路径。
Oracle 11g Installer 3

⑥对机器进行自检,如果有错误的话没有办法继续安装,警告没有关系。
Oracle 11g Installer 4

⑦可以在此创建数据库,也可以之后安装。这里选择[仅安装软件]。
Oracle 11g Installer 5

⑧安装信息确认。没有问题点击[安装]
Oracle 11g Installer 6

⑨然后等着COPY文件结束。大约30分钟。
Oracle 11g Installer 7

⑩oracle 11g 安装成功。然后点击[退出]
Oracle 11g Installer 8

⑪安装完oracle 企业版之后的菜单栏。

Oracle 11g Installer 9

※安装好几种,其实都很简单,只是看个面熟。

 
留下评论

Posted by 于 2012/08/10 22:34:44 在 Oracle

 

标签: ,

Windows下解决PostgreSQL8.1安装失败问题(图解)

先下载安装文件在官网上已经没有8.1版本了,不知道为什么这个版本撤掉了?不过我安装时候确实会安装失败,网上要怎么装才能装上呢?请看以下步骤,在Windwos XP + PostgreSQL8.1 安装测试通过,请放心参考。
这个地址已经失效:http://www.postgresql.org/ftp/binary/v8.1.0/win32/
这个地址目前有效:http://www.postgresql.biz/download/
PostgreSQL_Start 

PostgreSQL_Next 

PostgreSQL_Notes

PostgreSQL_Options 
不要选择安装成服务,仅仅安装软件。所以Install as a service 不要打勾(打了勾后,到最后启动不了服务,1069等等错误。要是能安装成功那就最好,不行的话就继续往下看,保证能成功。)
PostgreSQL_Service Configuration 

PostgreSQL_Ready

PostgreSQL_Installing

PostgreSQL_Finish 
没有初始化数据库,这里的配置文件什么的都是都指定到默认路径:C:\Program Files\PostgreSQL\8.1\data
如果初始化数据库的路径不一样,到时把路径改下就好。一样就不用改了。
PostgreSQL8.1 
以上安装可以避免诸如以下的错误:
之前装过8.3的版本但每次启动服务后过段时间总又停止了(这个不知道什么原因,但这么安装就没有这个问题)

the service user account ‘postgres’ could not be created

Service ‘PostgreSQL Database Server 8.1′(pgsql-8.1)failed to start.
Verify that you have sufficient privileges to start system servics.

如果还有其他问题可以查看官网和wiki帮助:
http://pginstaller.projects.postgresql.org/
在Windows平台上安装与运行PostgreSQL的常见问题与解答

初期化DB,然后是启动服务器。

Windows下启动和配置PostgreSQL8.1(图解)

 
一条评论

Posted by 于 2012/03/16 22:53:09 在 PostgreSQL

 

标签: ,

Windows下启动和配置PostgreSQL8.1(图解)

控制面板管理工具计算机管理,这个用户(postgres)在安装的时候就默认安装了,没有的话就建一个吧。
PostgreSQL_Add postgres
设定密码(设为永不过期)
PostgreSQL_Set Password
Win+R,打开command窗口。
PostgreSQL_CMD
执行以下CMD。x6x8-20110321CY是机器名称,会打开一个以postgres用户身份执行的控制台。
CMD:runas  /user:x6x8-20110321CY\postgres cmd
PostgreSQL_CMD
执行以下CMD。初始化数据库到”d:\PostgreSQL-data”,看到Success就说明安装成功了。
CMD:initdb.exe -E UTF-8 -D d:\PostgreSQL-data
PostgreSQL_initdb
修改配置文件pg_hba.conf,postgresql.conf(路径在初始化数据库里:d:\PostgreSQL-data)。
pg_hba.conf:
    host    all         all         0.0.0.0/0             trust
postgresql.conf:
    listen_addresses = ‘*’
port = 5432
最后启动PostgreSQL数据库,用pgadmin III就可以连接了。
CMD:pg_ctl start -D d:\PostgreSQL-data
PostgreSQL_Start Server
要是觉得用command窗口不方便或怕不小关闭了,那么可以在Windows里注册服务。
CMD:pg_ctl.exe register -N PostgreSQL -U postgres -P 1234 -D “d:\PostgreSQL-data”
PostgreSQL_Register
控制面板→管理工具→服务,选中[PostgreSQL](就是上面注册的名称),右键选择[属性]。
PostgreSQL_Server
选择登录页确认用户和密码,然后将服务设定为[自动],这样就每次启动机器时候就会自动启动服务器了。
PostgreSQL_Confirm
常用命令语句。
启动数据库:pg_ctl start -D d:\PostgreSQL-data
停止数据库:pg_ctl stop -D d:\PostgreSQL-data
创建超级管理员用户:createuser  -a  -d  -P  Administrator
创建DB:createdb  new_db
各个命令参数可以:xxx.exe –help 进行查看。

Windows下解决PostgreSQL8.1安装失败问题(图解)

 
一条评论

Posted by 于 2012/03/16 22:48:54 在 PostgreSQL

 

标签: , ,

修改PostgreSQL表中的字段排列顺序(图解)

像MySQL 调整字段顺序很简单(FIRST、AFTER),语句如下:
ALTER TABLE “users” CHANGE “user_password” “user_password” varchar(20) AFTER “user_name”;

在PostgreSQL里也可以调整字段的顺序但是就没有这么的方便了。以下内容都测试通过请放心参考。
首先看更改前后的效果图:
PostgreSQL_Comparison 
这里介绍两种方法:是用工具(EMS SQL Manager for PostgreSQL)自带的功能;是改系统表pg_attribute。

一、EMS SQL Manager for PostgreSQL(工具功能很强大也很好用但是收费软件)
选中表,然后右键单击选择[Tasks]→[Reorder Fields]
PostgreSQL_ReorderField 
警告对话框:意思是字段将被重新创建表重新排序,确保不在你的数据库出错,是否继续,点击Yes。
 PostgreSQL_ReorderField_Warning
选中字段,然后按上下箭头更改位置,点击OK。
 PostgreSQL_ReorderColumns
最后就生成SQL文(缺点:表于表建有多层外键关系的话SQL文是生成不了的。优点:简单,快捷,方便)
分析SQL语句可以看出:1.先建临时表 2.把现有数据放到临时表 3.删除表 4.新建一个已排序好的表 5.还原数据

— 1.Create a temporary table
CREATE LOCAL TEMPORARY TABLE “order_change_table0agots” (
  “id” VARCHAR(2),
  “name” VARCHAR(20),
  “password” INET,
  “new_field” CHAR(1)
) WITH OIDS;

— 2.Copy the source table’s data to the temporary table
INSERT INTO “order_change_table0agots” (“id”, “name”, “password”, “new_field”)
SELECT “id”, “name”, “password”, “new_field” FROM “public”.”order_change_table”;

— 3.Drop the source table
DROP TABLE “public”.”order_change_table”;

— 4.Create the destination table
CREATE TABLE “public”.”order_change_table” (
  “id” VARCHAR(2) NOT NULL,
  “new_field” CHAR(1) DEFAULT 1,
  “name” VARCHAR(20),
  “password” INET,
  CONSTRAINT “order_change_table_pkey” PRIMARY KEY(“id”)
) WITH OIDS;
COMMENT ON COLUMN “public”.”order_change_table”.”new_field” IS ‘追加Field’;

— 5.Copy the temporary table’s data to the destination table
INSERT INTO “public”.”order_change_table” (“id”, “new_field”, “name”, “password”)
SELECT “id”, “new_field”, “name”, “password” FROM “order_change_table0agots”;

二、通过修改系统表(pg_attribute)达到字段重新排序的目的
有关系统表的概述及用途可以查看官网:http://www.pgsqldb.org/pgsqldoc-cvs/catalogs.html

表名字 表用途
pg_class 表,索引,序列,视图(”关系”)
pg_attribute 表的列(”属性”,”字段”)

通过pg_class查找[表,索引,视图等的名字],[表在磁盘上的文件的名字]
    SELECT relname, relfilenode FROM pg_class WHERE relname=’order_change_table’;
    查询结果为:order_change_table | 12666
通过pg_attribute查找[此列/字段所属的表],[字段名字],[字段数目]
    SELECT attrelid, attname, attnum FROM pg_attribute WHERE attrelid=12666;
    查询结果为:12666 | id | 1      12666 | name | 2      12666 | password | 3      12666 | new_field | 4
更新pg_attribute的[attnum]字段(将要移动的字段先更新成数据库里面没有的值,再按顺序更新)。
    UPDATE pg_attribute SET attnum=7 WHERE attname=’new_field’  AND attrelid=12666;
    UPDATE pg_attribute SET attnum=6 WHERE attname=’name’       AND attrelid=12666;    
    UPDATE pg_attribute SET attnum=5 WHERE attname=’password’  AND attrelid=12666;
    UPDATE pg_attribute SET attnum=2 WHERE attname=’new_field’  AND attrelid=12666;
    UPDATE pg_attribute SET attnum=3 WHERE attname=’name’        AND attrelid=12666;
    UPDATE pg_attribute SET attnum=4 WHERE attname=’password’  AND attrelid=12666;
再检索表,字段就已经改好顺序了。(缺点:一旦改错表就崩溃,事先一定要备份好。优点:直达根处)
SELECT * FROM order_change_table;

 
4条评论

Posted by 于 2012/03/11 16:12:59 在 PostgreSQL

 

标签:

PostgreSQL自动备份(backup)与恢复(restore)数据库(图解)

以下内容为Windows下安装并测试通过。一般的工具(pgAdmin III等)都有对PostgreSQL数据库导入导出的功能。
这里就不讲了。下面介绍的是用命令pg_dump、pg_restore进行数据库的备份与恢复。

一、备份(backup)

导出命令:pg_dump [OPTION]… [DBNAME]
查看使用帮助:pg_dump –help
主要参数解释:

关键字 说明(默认值)
-h, –host=HOSTNAME 数据库服务器IP
-p, –port=PORT 数据库服务器端口号
-U, –username=NAME 用户名
-W, –password 密码
-F, –format=c|t|p 输出文件格式(custom,tar,plain text)
-v, –verbose 详细信息模式,会显示备份时的信息
-f, –file=FILENAME 输出文件名
-b, –blobs 在dump文件中包含大对象

更多参数查看官网:http://www.postgresql.org/docs/8.1/static/app-pgdump.html
CMD命令如下:
“C:\Program Files\PostgreSQL\8.3\bin\pg_dump.exe” -i -h 192.168.1.200 -p 5432 -U system1 -b -c -C -d -D -Fc -v -f D:\Backup\201237.backup techpro_db

pg_dump
输入密码后就会在指定目录生成07.backup文件(如下图)。
要是不用手动输入密码,然后写个批处理就可以做定期备份了是吧?那怎么做呢?下面介绍(要7.3以上的版本)
新建系统变量:
变量名:PGPASSFILE
变量值:C:\Program Files\PostgreSQL\8.3\data\pgpass.conf
pgpassfile
按上面的变量值新建文件:pgpass.conf
文件内容格式为:hostname:port:database:username:password
pgpass.conf
再输入上面的CMD命令是不是就不会提示密码了?下图是执行生成后的备份文件。
backup_file
最后写个bat批处理,然后保存。放在【任务计划】里定期执行就可以了。
@ECHO OFF
@ECHO ============================
@ECHO PostgreSQL Backup Command
@ECHO Created By: 許立尭
@ECHO Created Date:2012-03-07
@ECHO ============================
@set DirName=%date:~0,7%
@set FileName=%date:~0,10%.backup

@if %date:~8,2% == 01 (md D:\Backup\”%DirName%”)
@if not exist D:\Backup\”%DirName%” (md D:\Backup\”%DirName%”)
“C:\Program Files\PostgreSQL\8.3\bin\pg_dump.exe” -i -h 192.168.1.200 -p 5432 -U system1 -b -c -C -d -D -Fc -v -f D:\Backup\%FileName% techpro_db

if exist D:\Backup\%FileName% (“C:\Program Files\WinRAR\WinRAR.exe” a -df D:\Backup\%FileName%.rar D:\Backup\%FileName%)
@ECHO ON

二、恢复(restore)

导出命令:pg_restore [OPTION]… [FILE]
查看使用帮助:pg_restore –help
主要参数解释:

关键字 说明(默认值)
-h, –host=HOSTNAME 数据库服务器IP
-p, –port=PORT 数据库服务器端口号
-U, –username=NAME 用户名
-W, –password 密码
-d, –dbname=NAME 连接的数据库名
-v, –verbose 详细信息模式,会显示恢复时的信息
-a, –data-only 只导入数据,不导入结构
-t, –table=NAME 恢复指定名称的表

更多参数查看官网:http://www.postgresql.org/docs/8.1/static/app-pgrestore.html
CMD命令如下:
“C:\Program Files\PostgreSQL\8.3\bin\pg_restore.exe” -d new_db -U system1 D:\Backup\201237.backup

下图的红色部分(new_db)是已经建好了的DB。得先建好DB再执行命令。
下图的橙色部分报了个错:pg_restore: [archiver (db)] connection to database “new_db” failed: FATAL: password authentication failed for user “system1”
这是因为没有权限,给用户加权限,或者用权限高的用户。
下图的绿色部分是恢复成功的。用的是建立DB时的用户:postgrespg_restore
附录:

备份
C:\Program Files\PostgreSQL\8.1\bin>
pg_dump.exe -h 192.168.1.200 -p 5432 -U system1 “techpro_db” -i -F t -E UTF8 -b -d -D -v -f ”D:\techpro_db.tar”
恢复
恢复整个DB(含有表定义和数据)
C:\Program Files\PostgreSQL\8.1\bin>
pg_restore.exe -h 192.168.1.200 -p 5432 -U system1 -i -d “techpro_db” -c -v “D:\techpro_db.tar”

恢复整个数据库的表定义
C:\Program Files\PostgreSQL\8.1\bin>
pg_restore.exe -h 192.168.1.200 -p 5432 -U system1 -i -d “techpro_db” -c -s -v “D:\techpro_db.tar”

恢复整个数据库表的数据
C:\Program Files\PostgreSQL\8.1\bin>
pg_restore.exe -h 192.168.1.200 -p 5432 -U system1 -i -d “techpro_db” -c -a -v “D:\techpro_db.tar”

恢复某个表的表定义
C:\Program Files\PostgreSQL\8.1\bin>
pg_restore.exe -h 192.168.1.200 -p 5432 -U system1 -i -d “techpro_db” -t t_emp -c -s -v “D:\techpro_db.tar”

恢复某个表的数据
C:\Program Files\PostgreSQL\8.1\bin>
pg_restore.exe -h 192.168.1.200 -p 5432 -U system1 -i -d “techpro_db” -t t_emp -c -a -v “D:\techpro_db.tar”

 
留下评论

Posted by 于 2012/03/07 23:20:16 在 PostgreSQL

 

标签: , ,