Oracle本地与远程数据的导入导出

来源:互联网 发布:从手机淘宝哪交电费 编辑:程序博客网 时间:2024/06/05 14:58
Oracle本地导出数据:
    1、以system用户的身份进行登录,创建逻辑目录directory,有两种方式:
            1)、select * from dba_directories;  查询已经创建的目录,可选择对应的目录字典作为directory;
               2)、create directory MY_DUMP as 'd:\MY_DUMP'; 显示目录已经创建(执行此语句之前需在所在物理路径    
                                                                                                                        下先创建目录);
                注:标红部分为directory的字典

    2、创建操作导入导出的用户并进行授权 (system/11):
        【1】localname用户
            1)创建用户:
                create user localname identified by password default tablespace users quota unlimited on users; 
            2)对用户localname进行对目录的读写授权以及对其他用户操作的权限:
                 grant read,write on directory dpdata1 to localname;
                 grant exp_full_database to localname;          
        
        【2】system用户
            1)不用创建用户; 
            2)不用进行授权;

    3、导出数据:
            1)按用户导(cmd下):
                   expdp localname/password@orcl schemas=bh_app dumpfile=expdp.dmp DIRECTORY=MY_DUMP (别用分号,
                                                                                                                                                               需授权对其他用户操作的权限)
                   expdp system/11@orcl schemas=bh_app dumpfile=expdp.dmp DIRECTORY=MY_DUMP(保险)
                    多个用户:
                   expdp system/11@orcl schemas=bh_app,bh_base dumpfile=expdp.dmp DIRECTORY=MY_DUMP(保险)
                    注:标红部分是以什么身份进行导出,标蓝部分即 schemas是要导出的用户,dumpfile是导出的dmp文件名;directory为
                           字典


Oracle本地导入数据:
    1)在本地上创建物理目录d:\MY_DUMP,并将expdp.dmp文件放到所在目录下,然后在sqlplus执行以下语句:
         create directory MY_DUMP as 'd:\MY_DUMP';
    2)在cmd下执行:
            impdp 'sys/sys@orcl as sysdba' directory=MY_DUMP dumpfile=expdp.dmp logfile=checkcar.log  schemas=bh_app
            注:如果报错提示没有表空间,则根据要求创建表空间,然后再执行语句,其中标红部分是导出的用户

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

Oracle远程导出数据:
     1、在本地库以system用户的身份进行登录,创建逻辑目录directory,有两种方式:
            1)、select * from dba_directories;  查询已经创建的目录,可选择对应的目录字典作为directory;
            2)、create directory MY_DUMP as 'd:\MY_DUMP'; 显示目录已经创建(执行此语句之前需在所在物理路径    
                                                                                                                               下创建先创建目录);

     2、在本地库创建dblink指向远程库:
          create database link mylink connect to system identified by "11" using 'MDATA';
             注:标红为dblink连接名字(字典),标蓝部分为远程数据库用户(即以该身份对数据进行导出),标绿部分为
                    本地配置的tnsnames,可在tnsnames.ora文件中配置,一般先建立该tnsnames在本地根据测试是否能连上
                    远程数据库,若能连接上则引用该名字,tnsnames.ora中配置如下:
                
           也可写成:
               create database link mylink connect to system identified by "11" using '192.168.8.220:1521/orcl';
               create database link mylink connect to system identified by "11" using '(DESCRIPTION =     
              (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.220)(PORT = 1521)))  
              (CONNECT_DATA =  (SERVER = DEDICATED)   (SERVICE_NAME = orcl )  ) )';

注意:以上建立dblink的时候,是已经知道system用户的密码,也可以用远程的用户,不过需要 connect,resource,
           exp_full_database的权限
          create database link mylink connect to remote identified by "password" using 'MDATA';
          (前提条件下需要知道至少一个远程的用户密码)

     3、导出数据:
         1)按用户导:
                   expdp localname/password@orcl schemas=bh_app dumpfile=expdp.dmp DIRECTORY=MY_DUMP  
                   network_link=mylink logfile=bfzg0828.log(别用分号,  需授权对其他用户操作的权限)
                   expdp system/11@orcl schemas=bh_app,bh_base dumpfile=expdp.dmp DIRECTORY=MY_DUMP 
                   network_link=mylink logfile=bfzg0828.log(保险)
               注:标红部分为本地上的用户,标蓝部分为要在远程数据库上导出的数据,dumpfile是导出的dmp文件名;directory为字典;
                      因为dblink用的是远程库上的system用户,拥有全部的权限,如果远程库用的是别的用户,需在远程库上授
                      权exp_full_database;




















1 0
原创粉丝点击