带有Wallet的impdp导入过程

带有Wallet的impdp导入过程

今天接到一个任务,要求还原由Expdp方式导出的dmp包。

环境:

源ORACLE版本:ORACLE 10G R2,目标ORACLE版本 :11g R2。

源操作系统 :Windows 2003 Server SP2,目标操作系统:SUSE 11.1。

步骤如下:

1、创建ORACLE DIRECTORY。

使用root用户登录SUSE系统,建立目录/u01/oradir,作为DIRECTORY的物理目录。同时授予ORACLE用户访问此目录的权限 chown 777 oracle /u01/oradir。切换至ORACLE 用户,用system账户登录ORACLE,创建DIRECTORY。Create or replace directory dpdata as ‘/u01/oradir’.创建完成后,输入命令查看结果。Select * from dba_directories。

OWNER                          DIRECTORY_NAME

------------------------------ ------------------------------

DIRECTORY_PATH

--------------------------------------------------------------------------------

SYS                            DPDATA

/u01/oradir

2、将dmp文件copy至/u01/oradir中。

3、切换至ORACLE用户,数据impdp命令进行导入。

impdp system/password encryption_password=password dumpfile=init.dmp

悲剧的发现无法正常导入无法找到wallet配套的密钥。看来还需要启动wallet才行.上网查了一下,发现需要在ORACLE的sqlnet.ora文件中新增加对wallet的路径设置才行。于是兴致勃勃的找到你安装oracle 的路径,例如:/u01/oracle/product/11gR2/db/network/admin,又一次悲剧的发现居然没有sqlnet.ora。原来对于oracle服务端来说sqlnet.ora不是必须的,所以我们在这里必须手动建立一个。

从windows下的oracle client中拷贝一个sqlnet.ora到Linux中,配置wallet路径,配置项如下:

ENCRYPTION_WALLET_LOCATION =

 (SOURCE=

   (METHOD=file)

     (METHOD_DATA=

       (DIRECTORY=/u01/orawallet)))

重启oracle服务,再次执行导入命令,又一次的发现报出权限错误,这又是什么问题啊。查了一下,发现问题处在sqlnet文件的第一行上,SQLNET.AUTHENTICATION_SERVICES= (NTS),这里表示在windows中进行操作系统的权限验证,需要将这一行注释掉。

再次重启oracle服务,发现导入命令终于可以正常使用了。

4、 导入某个Schema数据。在导入过程中发现无法进行多个schemad的同时导入操作,只能单个Schema导入,这个有待再研究,导入命令为:

impdp system/password encryption_password=password dumpfile=init.dmp Schemas=yourschema

   5、以上操作均是在system用户下进行的。

 

posted @ 2013-01-07 20:05  三夏健  阅读(1230)  评论(0编辑  收藏  举报