Oracle中的expdp/impdp是传统的exp/imp的增强工具,极大的提高了导入速度,可以改变导入时表空间(例如公司库所用表空间为USERS,用户数据库所用表空间为ESA)。
expdp/impdp的限制为:导入导出文件只能保存在本地服务器上,不能保存在远程机器上。
创建目录(DIRECTORY)的步骤:
导入前需要(1)建立目录(directory),并且(2)把目录读写权限赋予进行导入导出的用户
示例:
(1) 建立目录dump_dir,该目录指向“d:\oracle\dump_dir\”
SQL> CREATE OR REPLACE DIRECTORYdump_dirAS'd:\oracle\dump_dir\';
(2) 赋予esa用户dump_dir目录读写权限(esa用户已赋予DBA权限可忽略此步骤)
SQL> GRANTREAD,WRITEON DIRECTORYdump_dirTOesa;
这样,oracle通过directory(路径)+ dumpfile(文件名)即可找到该文件
Oracle的图形化工具为PL/SQL Developer
导出命令:expdp
查看使用帮助:expdp -help
主要参数解释:
关键字 |
说明(默认值) |
DIRECTORY |
供转储文件和日志文件使用的目录对象。 |
DUMPFILE |
目标转储文件(expdat.dmp)的列表, 例如DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。 |
EXCLUDE |
排除特定的对象类型,例如EXCLUDE=TABLE:EMP。 |
FULL |
导出整个数据库(N)。 |
SCHEMAS |
要导出的方案的列表(登录方案)。 |
TABLES |
标识要导出的表的列表-只有一个方案。 |
注:1,SCHEMAS和TABLES参数只能二者选一。
示例:
1, 导出esa用户所有对象到指定目录的esa.dmp文件
expdpesa/esa directory=dump_dir dumpfile=esa.dmp SCHEMAS=esa
2, 导出esa用户的FM_STDEVENT和FM_PRIMARYEVENT表到指定目录的esa_tb.dmp
expdpesa/esa directory=dump_dir dumpfile=esa_tb.dmp tables=esa.fm_stdevent,esa.fm_primaryevent
导入命令:impdp
查看使用帮助:impdp -help
主要参数解释:
关键字 |
说明(默认值) |
DIRECTORY |
供转储文件,日志文件和sql文件使用的目录对象。 |
DUMPFILE |
要从(expdat.dmp)中导入的转储文件的列表, 例如DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。 |
EXCLUDE |
排除特定的对象类型,例如EXCLUDE=TABLE:EMP。 |
FULL |
从源导入全部对象(Y)。 |
REMAP_SCHEMA |
将一个方案中的对象加载到另一个方案。 |
REMAP_TABLESPACE |
将表空间对象重新映射到另一个表空间。 |
SCHEMAS |
要导入的方案的列表。 |
TABLES |
标识要导入的表的列表。 |
注:1,SCHEMAS和TABLES参数只能二者选一。
2,remap_*的语法为remap_*=oldValue:newValue
示例:
1, 导入esa.dmp文件中esa用户所有对象到esa_2用户中
impdp esa/esa directory=dump_dir dumpfile=esa.dmpschemas=esa remap_schema=esa:esa_2
2, 导入esa.dmp文件中esa用户的fm_stdevent和fm_primaryevent表到esa_2用户中
impdpesa/esa directory=dump_dir dumpfile=esa.dmp remap_schema=esa:esa_2 tables=esa.fm_stdevent,esa.fm_primaryevent
3, 导入esa.dmp文件中esa用户所有对象到esa_2用户中,表空间改为使用esa(原esa用户默认表空间为users)
impdp esa/esa directory=dump_dir dumpfile=esa.dmpschemas=esa remap_schema=esa:esa_2 remap_tablespace=users:esa
PostgreSQL的图形化工具为pgAdmin III,可在pgAdminIII上快速的备份、恢复数据库
导出命令: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文件中包含大对象 |
注:1,在导出命令最后加上数据库名称
示例:
1, 导出esa数据库所有对象到esa.backup文件
pg_dump.exe --host localhost --port 5432 --usernamepostgres --format custom --blobs --verbose --file "E:\Dl\esa.backup"esa
2, 导出esa数据库的FM_STDEVENT和FM_PRIMARYEVENT表到指定目录的esa_tb.backup
pg_dump.exe--host localhost --port 5432 --username postgres --format custom --verbose--file "E:\Dl\esa_tb.backup" --table"\"public\".\"fm_stdevent \"" --table "\"public\".\"fm_primaryevent\""esa
3.
Postgresql数据的导入和导出,以及copy命令介绍
2010-09-13 21:57
如何导出PostgreSQL数据库中的数据:
pg_dump -U postgres -f dump.sql mydatabase
具体某个表
pg_dump -U postgres -t mytable -f dump.sql mydatabase
导入数据时首先创建数据库再用psql导入:
createdb newdatabase
psql -d newdatabase -U postgres -f dump.sql
把数据按照自己所想的方式导出,强大的copy命令:
echo "copy students to? stdout DELIMITER '|'"|psql school|head
(students为表名,school为库名,各个字段以|分隔)
echo 'copy (select * from students order by age limit 10) to stdout;' | psql school
导入命令: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 |
恢复指定名称的表 |
注:1,在导入命令最后加上文件名
示例:
1, 导入esa.backup文件中esa数据库所有对象到esa数据库中
pg_restore.exe--host localhost --port 5432 --username postgres --dbname esa --verbose"E:\Dl\esa.backup"
2, 导入esa.backup文件中的FM_STDEVENT表到esa数据库中
pg_restore.exe--host localhost --port 5432 --username postgres --dbname test --data-only--table aaa --table fm_stdevent --verbose "E:\Dl\esa.backup"
Sybase
Sybase的图形化工具为Sybase Central,可通过SybaseCentral执行创建数据库定义(DDL)和导入导出数据(BCP)
BCP工具只能进行数据的导入导出,不能进行数据库结构的导入导出(表定义不被导出)。
导出命令:
bcp [[db_name.]owner.]table_name [partition pname] out[filename]
查看使用帮助:bcp --help
主要参数解释:
关键字 |
说明(默认值) |
-U username |
登陆用户名 |
-P password |
登陆用户密码 |
-S server |
服务器名 |
-c |
使用可见文本格式导出,不含text,image时采用 |
-n |
使用本地格式(操作系统相关)导出,包含text,image时采用 |
-t |
列终止符,列与列之间的分隔符 |
-r |
行终止符,行与行之间的分隔符 |
-J |
指定字符集 |
-T |
指定text,image的长度,默认为32k,超过32k截断 |
-Y |
指定字符集转换在服务器中被禁用,而是在使用bcp IN时由bcp在客户端上执行。 |
示例:
1,导出本机somc数据库的FM_STDEVENT表到esa.out中
bcp somc.dbo.FM_STDEVENT out e:\dl\esa.out -c -t , -r\n -U sa -P -S
导入命令:
bcp [[db_name.]owner.]table_name [partition pname] in [filename]
查看使用帮助:bcp --help
主要参数解释:
关键字 |
说明(默认值) |
-U username |
登陆用户名 |
-P password |
登陆用户密码 |
-S server |
服务器名 |
-c |
使用可见文本格式导出,不含text,image时采用 |
-n |
使用本地格式(操作系统相关)导出,包含text,image时采用 |
-t |
列终止符,列与列之间的分隔符 |
-r |
行终止符,行与行之间的分隔符 |
-J |
指定字符集 |
-T |
指定text,image的长度,默认为32k,超过32k截断 |
-Y |
指定字符集转换在服务器中被禁用,而是在使用bcp IN时由bcp在客户端上执行。 |
示例:
1, 从esa.out文件中导入FM_STDEVENT表到本机somc数据库中
bcp somc.dbo.FM_STDEVENT in e:\dl\esa.out -c -t , -r\n -U sa -P -S -Y