Oracle数据库导入、导出(远程、10g、11g)

1  查看oracle的版本信息

(1)用客户端连接到数据库,执行select * from v$instance
            查看version项

(2)select * from product_component_version

(3)或查询V$VERSION查看组件级信息

1.1. oracle参数设置 11g数据泵导出、导入

进入CMD操作界面,使用sqlplus连接数据库,

Oracle数据库导入、导出(远程、10g、11g)

图例 1 数据库连接操作

连接语法:sqlplus system/Oracle2013@orcl

参数说明

参数

说明

备注

sqlplus

语法命令

 

system

数据库管理员用户名

 

Oracle2013

system用户密码

 

orcl

数据库连接标示符

数据库安装目录的tnsnames.ora文件中可以找到

Oracle11G目录:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

一、在客户端创建和服务端对应的服务名
方法1:
修改tnsnames.ora文件
加入远程服务器的命名:

Sql代码
TEST_ORCL =  
(DESCRIPTION =  
    (ADDRESS_LIST =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))  
    )  
    (CONNECT_DATA =  
      (SERVICE_NAME = orcl)  
    )  
)

方法2:

在oracle客户端,打开net manager。

创建一个服务命名TEST_ORCL,主机IP为:192.168.1.110,服务名orcl,端口1521

Oracle数据库导入、导出(远程、10g、11g)

图例 2 成功连接数据库

环境变量设置(在Sqlplus中执行)

首先使用DBA权限的用户创建directory,我使用system ,可以在服务器本地创建,也可以远程连接sqlplus进行创建,使用的将是服务器上面的路径。要确保创建directory时,操作系统层面的路径已经存在。如果不存在,可以删除directory后,再重新建立directory。

create or replace directory file_path as ‘c:\tmpdir’;

参数说明

参数

说明

备注

file_path

路径名称

 

c:\tmpdir

文件路径

也可以是另外的随意目录,用单引号括起来。

Oracle数据库导入、导出(远程、10g、11g)

图例 3 环境变量设置

SQL> grantread,write on directory file_path to scott;

授权成功。

查询创建了那些子目录:

SELECT * FROM dba_directories;

 

1.2. 数据备份

备份脚本:expdp system/Oracle2013@orcl directory=file_path dumpfile=ARADMIN.dat logfile=ARADMIN.log schemas=ARADMIN

参数说明

参数

说明

备注

expdp

语法命令

 

system

数据库管理员用户名

 

Oracle2013

system用户密码

 

orcl

数据库连接标示符

数据库安装目录的tnsnames.ora文件中可以找到

Oracle11G目录:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

directory

文件目录名称

导出数据库文件的存放目录

dumpfile

数据库文件名称

导出数据库文件的文件名

logfile

数据库日志文件名称

导出数据库的日志文件名称

schemas

数据库用户

 

操作:

Oracle数据库导入、导出(远程、10g、11g)

图例 4 数据库备份操作

成功导出。

Oracle数据库导入、导出(远程、10g、11g)

图例 5 成功导出


1.3. 数据恢复

1.3.1. 删除ARADMIN用户

1. 连接数据库

sqlplus system/Oracle2013@orcl

Oracle数据库导入、导出(远程、10g、11g)

图例 6 连接数据库

2. 删除目标数据库中的ARADMIN用户

drop user ARADMIN cascade;

Oracle数据库导入、导出(远程、10g、11g)

图例 7 成功删除目标数据库中的ARADMIN用户

1.3.2. 重新创建ARADMIN用户

1. 连接数据库

sqlplus system/Oracle2013@orcl

Oracle数据库导入、导出(远程、10g、11g)

图例 8 连接数据库

2. 创建ARADMIN用户

create user ARAdmin identified by AR#Admin# default tablespace ARSYSTEM temporary tablespace ARTMPSPC quota unlimited on arsystem;

Oracle数据库导入、导出(远程、10g、11g)

图例 9创建ARADMIN用户

3. 赋予数据库权限

grant alter session,create cluster,create database link,create sequence,create session,create synonym,create table,create view,create procedure,create trigger,query rewrite to ARAdmin;

Oracle数据库导入、导出(远程、10g、11g)

图例 10 赋予数据库权限


1.3.3. 数据库导入

导入命令:impdp system/Oracle2013@orcl directory=file_path dumpfile= ARADMIN20130606.DAT logfile= ARADMIN20130614.log schemas=ARADMIN

Oracle数据库导入、导出(远程、10g、11g)

图例 11 数据库导入

导入完成

Oracle数据库导入、导出(远程、10g、11g)

2.exp导出与imp本地导入 10g

exp命令:
1 exp username/psw@TEST file=d:test.dmp full=y
2 exp username/psw@TEST file=d:test.dmp owner=(ly)
3 exp username/psw@TEST file= d:test.dmp tables=(grid1,grid2)
1其中一是将Test(与某一数据库对应的oracle服务名)数据库进行整体导出
2将属于用户ly的所有表导出
3将表grid1,与grid2导出
d:test.dmp是导出的文件地址

imp命令:
1 imp system/psw@TEST file=d:test.dmp
2 imp system/psw@TEST full=y file=d:test.dmp ignore=y
3 imp system/psw@TEST file=d:test.dmp tables=(grid1)ignore=y表示如果被导入的数据库中某个表已经存在就忽略不导入那个表
3表示只导入grid1这个表

在导入导出前要先测试下对应的数据库是否是通的:tnsping test来测试,同样test是服务名
所有命令可在cmd下执行

用exp/imp远程操作数据库

对ORACLE数据库进行远程操作,假设数据库在192.168.1.110上,具体方法如下:
一、在客户端创建和服务端对应的服务名
方法1:
修改tnsnames.ora文件
加入远程服务器的命名:

Sql代码
TEST_ORCL =  
(DESCRIPTION =  
    (ADDRESS_LIST =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))  
    )  
    (CONNECT_DATA =  
      (SERVICE_NAME = orcl)  
    )  
)

方法2:

在oracle客户端,打开net manager。

创建一个服务命名TEST_ORCL,主机IP为:192.168.1.110,服务名orcl,端口1521

二、测试远程服务器是否畅通

进入到cmd后,执行命令:tnsping TEST_ORCL。

三、远程操作数据库
导出:

Sql代码
1:exp username/password@TEST_ORCL file=bak_filepath
2:exp username/password@TEST_ORCL full=y file=bak_filepath
username 用户名,password 密码,TEST_ORCL 客服端服务名,bak_filepath 备份文件存放的路径

=============================================================

1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中

exp system/manager@TEST file=d:\daochu.dmp full=y

2 将数据库中system用户与sys用户的表导出

exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)

3 将数据库中的表table1 、table2导出

exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)

4 将数据库中的表table1中的字段filed1以"00"打头的数据导出

exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

导入:

Sql代码
1:imp username/password@TEST_ORCL file=bak_filepath full=y
2:imp username/password@TEST_ORCL/database_name file=bak_filepath full=y
3:imp username/password@TEST_ORCL file=bak_filepath fromuser=fromadmin touser=toadmin

username 用户名,password 密码,TEST_ORCL 客服端服务名,bak_filepath 备份文件存放的路径
fromadmin 备份数据的用户名,toadmin 还原数据库的用户名。database_name 还原到那个数据库上

full=y 将数据库整体导出,包括表结构等。

利用PL/SQL Developer工具导出:
菜单栏---->Tools---->Export Tables,如下图,设置相关参数即可:
 
Oracle数据库导入、导出(远程、10g、11g)
Oracle数据库导入、导出(远程、10g、11g)
 
上一篇:python计算文件夹大小(linux du命令 简化版)


下一篇:C语言 第八章 函数、指针与宏