我给你一些数据库常用的导入导出命令吧:\x0d\该命令在“开始菜单>>运行>>CMD”中执行\x0d\一、数据导出(expexe)\x0d\1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochudmp文件中\x0d\exp system/accp@orcl file=d:\daochudmp full=y\x0d\\x0d\2、将数据库orcl中scott用户的对象导出\x0d\exp scott/accp@orcl file=d:\daochudmp owner=(scott)\x0d\\x0d\3、将数据库orcl中的scott用户的表emp、dept导出\x0d\exp scott/accp@orcl file= d:\daochudmp tables=(emp,dept)\x0d\\x0d\4、将数据库orcl中的表空间testSpace导出\x0d\exp system/accp@orcl file=d:\daochudmp tablespaces=(testSpace)\x0d\\x0d\二、数据导入(impexe)\x0d\1、将d:\daochudmp 中的数据导入 orcl数据库中。\x0d\imp system/accp@orcl file=d:\daochudmp full=y\x0d\\x0d\2、如果导入时,数据表已经存在,将报错,对该表不会进行导入;加上ignore=y即可,表示忽略现有表,在现有表上追加记录。\x0d\imp scott/accp@orcl file=d:\daochudmp full=y ignore=y\x0d\\x0d\3、将d:\daochudmp中的表emp导入\x0d\imp scott/accp@orcl file=d:\daochudmp tables=(emp)
1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。
2、设置deferred_segment_creation
参数为FALSE后,无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
SQL>alter
system
set
deferred_segment_creation=false;
查看:
SQL>show
parameter
deferred_segment_creation;
该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。
3、可以使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。说明如下:
31
使用ALLOCATE
EXTENT的说明
使用ALLOCATE
EXTENT可以为数据库对象分配Extent。其语法如下:
-----------
ALLOCATE
EXTENT
{
SIZE
integer
[K
|
M]
|
DATAFILE
'filename'
|
INSTANCE
integer
}
-----------
可以针对数据表、索引、物化视图等手工分配Extent。
ALLOCATE
EXTENT使用样例:
ALLOCATE
EXTENT
ALLOCATE
EXTENT(SIZE
integer
[K
|
M])
ALLOCATE
EXTENT(DATAFILE
'filename')
ALLOCATE
EXTENT(INSTANCE
integer)
ALLOCATE
EXTENT(SIZE
integer
[K
|
M]
DATAFILE
'filename')
ALLOCATE
EXTENT(SIZE
integer
[K
|
M]
INSTANCE
integer)
针对数据表 *** 作的完整语法如下:
-----------
ALTER
TABLE
[schema]table_name
ALLOCATE
EXTENT
[({
SIZE
integer
[K
|
M]
|
DATAFILE
'filename'
|
INSTANCE
integer})]
-----------
故,需要构建如下样子简单的SQL命令:
-----------
alter
table
aTabelName
allocate
extent
-----------
32
构建对空表分配空间的SQL命令,
查询当前用户下的所有空表(一个用户最好对应一个默认表空间)。命令如下:
-----------
SQL>select
table_name
from
user_tables
where
NUM_ROWS=0;
-----------
根据上述查询,可以构建针对空表分配空间的命令语句,如下:
-----------
SQL>Select
'alter
table
'||table_name||'
allocate
extent;'
from
user_tables
where
num_rows=0
-----------
批量输出上述生成的SQL语句,建立C:\createsqlsql,其内容如下:
-----------
set
heading
off;
set
echo
off;
set
feedback
off;
set
termout
on;
spool
C:\allocatesql;
Select
'alter
table
'||table_name||'
allocate
extent;'
from
user_tables
where
num_rows=0;
spool
off;
-----------
执行C:\createsqlsql,命令如下:
-----------
SQL>@
C:\createsqlsql;
-----------
执行完毕后,得到C:\allocatesql文件。
打开该文件会看到,已经得到对所有空表分配空间的命令SQL语句。
34
执行SQL命令,对空表分配空间:
执行C:\allocatesql,命令如下:
-----------
SQL>@
C:\allocatesql;
-----------
执行完毕,表已更改。
34
此时执行exp命令,即可把包括空表在内的所有表,正常导出。
另外:Oracle11g中,对密码是大小写敏感的,即密码中的字母是区分大小写的。
在Oracle10g中及以前,密码中的字母大小写无所谓。
*** 作顺序:
1、打开本地终端,输入telnet命令:
>> telnet 服务器ip
输入用户名 密码 登陆成功
2、转到oracle用户下,输入:
>> su - oracle
>> exp
根据Oracle的exp命令提供的到处向导,导出用户需要的数据到dmp文件中 myxxxoutxxxdmp
3、接下来是讲这个dmp文件传到本地
两种方式
1、如果服务器端开启了ftpd 或者 sshd ,可以从本地连接过去,把dmp文件下载到本地
重新打开一个本地终端
>> ftp 服务器ip
输入用户名 密码 登陆成功
>> cd dmp文件目录的相对路径
>> get myxxxoutxxxdmp
2、如果本地服务器开启了相关服务 可以从服务器端上传dmp文件到本地
>> cd dmp文件目录的路径
>> ftp 服务器ip
输入用户名 密码 登陆成功
>> put myxxxoutxxxdmp
最后就是本地库的导入了
在终端中输入 imp 根据向导一步一步设置导入
或者用开发工具帮助导入
以上就是关于oracle 数据怎么导入全部的内容,包括:oracle 数据怎么导入、如何用EXP导出oracle数据库中没有记录的表、如何从linux 里导出oracle 数据库,命令是什么,请举例等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)