oracle 11g 数据库表空间创建与数据导入导出

** oracle数据库中进行数据的导入导出时要在cmd中进行而不是在sqlplus中进行操作!

(1)向oracle数据库中导入完整的数据库(后缀名:dmp)

     首先进入cmd,输入sqlplus /nolog运行oracle自带程序,然后输入conn /as sysdba,以数据库管理员(dba)的身份链接到后台数据库 ,也就是进入数据库创建表空间,创建用户并将这个表空间授权给这个用户,并且给这个用户授予dba,connect ,resource 等权限,在退出早cmd或重新打开窗口倒cmd进行imp 命令导入。

        step1:  建立临时表空间(取名为:libsys_temp)

        create temporary tablespacelibsys_temp

                    tempfile 'D:\oracle\libsys_temp.dbf'   // 指定空间存放路径

                    size  1000M                                   //为临时表空间分配磁盘空间

                    autoextend on    next 10M             

                  maxsize 2048M                              //若存入的数据量超过了分配的空间大小,

                                                                     //则以每次新增10M的大小增大表间,但最大为2048M 

                                                                    // 而也可以使用unlimited 没有最大值的限制。

扫描二维码关注公众号,回复: 3972437 查看本文章

          

  extent management local;                            //设置表空间的区管理为本地管理,为的是减少分配extent的时

                                                                       //候产生的内部递归sql,提高数据库分配空间的效率.

       

 step2: 建立数据表空间,用于存储导入的数据库中的所有数据(取名:libsys_data)

       create tablespace libsys_data

                    logging    //指明导入过程记入日志中

                   datafile   'D:\oracle\libsys_ data.dbf'      //指定数据库保存的路径

                   size 10240M   //注意表空间应足够大,否则导入将出错!

                   autoextend on

                   next 100M maxsize 20480M

                   extent management local;

      

step3: 创建用户并指定表空间(需拥有dba权限)

 

        createuser libsys  identified by abc123   //设置用户名:libsys,码:abc123.

                default tablespace libsys _data  //为用户指定刚刚建立的表空间libsys_data, 以便保存与此用户相关的所有数据.

               temporary tablespace libsys_temp;   //为用户指定临时表空间libsys_temp,以提高数据库运行效率.      

    

  step4:  给用户授权(需授予dba,connectresource三个权限,否则无法完成数据库导入)

            grant dba,connect,resource to  libsys ;

 

   step5:  将拷贝来的完整的数据库文件(此处为:'libsys.dmp')导入到自己机器中的oracle数据库中

         imp  libsys/abc123   file='D:\libsys.dmp'  full=y   ignore=y; 

              //full=y表示全部导入,ignore=y表示忽略数据库中已存在的表,否则可能出错。如果有数据则不会更改而   如果没有则会进行修改。

     (特别注意:在进行step5之前,需要输入“exit”命令退出并返回到'cmd'命令后,才能做导入导出操作!!!!)

      另外:若只想将数据库dmp文件中的部分表(此处为:item)导入,则只需加上表名即可,方法如下:

          imp libsys/abc123file='D:\libsys.dmp'  tables=(item);      //其中的itemlibsys.dmp数据库文件中的一张表对象.

 

     (2)oracle数据库中的数据导出

         A. 导出完整的数据库(此处数据库为:libsys_data):

            exp libsys/abc123 file='D:\oracle\libsys.dmp' full=y;  //full=y表示全部导出.

         B. 将指定用户的数据表导出(此处为:用户xdw和用户newuser)

             explibsys/abc123  file='D:\oracle\libsys.dmp'  owner=(xdw,newuser);

         C.导出指定的数据库中的表(此处为:student表和teacher表):

            exp libsys/abc123 file='D:\oracle\libsys.dmp' tables=(student,teacher);

         D.导出数据库中表的指定字段(此处为:学生姓名中的姓为"")的数据(此处为:student):

            exp libsys/abc123 file='D:\oracle\libsys.dmp' tables=(student) query=\"where studentNamelike '%'\";

猜你喜欢

转载自blog.csdn.net/xuhangRS/article/details/80238903