zoukankan      html  css  js  c++  java
  • oracle 数据导入案例

    1、数据库监听启动关闭
    2、创建表空间,创建用户赋权和回收用户权限
    3、查看用户权限
    4、删除用户和表空间
    5、快速删除某个用户所有的表数据,表结构,回收权限,删除用户

    6、查看表空间的大小及使用情况sql语句

    7、表结构及数据导入与导出

    1、数据库监听启动关闭

    // 登录方式  
    SQL> sqlplus "/as sysdba"
    SQL> conn / as sysdba
    // 以system用户身份登陆oracle 
    SQL> sqlplus /nolog
    SQL> conn / as sysdba
     
    //立 即关闭方式  
    SQL> shutdown immediate
    // 启动数据库    
    SQL> startup
    // 查看监听状态 
    SQL> lsnrctl status 
    // 启动监听    
    SQL> lsnrctl start
    // 关闭监听    
    SQL> lsnrctl stop

    附:oracle常用的45个查询Sql   http://blog.sina.com.cn/s/blog_6d6e54f70102w78r.html

    2、创建表空间,创建用户赋权和回收用户权限

    //创建tablespace自动扩展大小
    create tablespace URSP_SLSADMIN logging datafile '/data/URSP_SLSADMIN.dbf' size 1500M
    autoextend on next 8000M  maxsize unlimited extent management local segment space
    management auto;
    SQL> create tablespace SLSADMIN datafile '/data/SLSADMIN.dbf' size 1500M
    //自动扩展表空间大小
    create tablespace SLSADMIN datafile '/tab/SLSADMIN.DBF' size 100M autoextend on;
     
    //删除tablespace,需要手动删除路径下对应的文件
    SQL> drop tablespace SLSADMIN.dbf
     
    //创建用户赋值tablespace
    SQL> create user SLSADMIN_1104 identified by SLSADMIN_1104 default tablespace URSP_SLSADMIN;
    SQL> alter user SLSADMIN_1104 default tablespace TBS_SJ_POC;
    //赋值用户BDA权限
    SQL> grant connect,resource,dba to SLSADMIN_1104 ;
    //回收dba权限
    SQL> revoke dba from SLSADMIN_1104;
     
    // 授权表的权限给某个用户
    select 'grant select,insert,update,delete  on ' || table_name || ' to user;'  from user_tables
    

      

    3、查看用户权限

    //可能遇到的问题?
    //当在一个新建数据库用户上创建表失败时,可以查看系统权限;在当前用户执行
    select * from dba_role_privs where grantee=upper('username');
    //如果不能执行(提示表或视图不存在),说明没有dba权限
        解决方法:可以登录sys账户赋予dba权限
        登录sys:sqlplus / as sysdba
        给username赋权限:grant dba to username;
     
    //也可以直接登录sys账户:
    如果granted_role的值没有dba,说明没有dba权限
    select * from dba_role_privs where grantee=upper('username'),
     
    //查看指定用户有哪些系统权限
    SQL> select * from dba_role_privs where grantee=upper('username');
     
    //查看指定用户有哪些对象权限
    SQL> select * from dba_tab_privs where grantee=upper('username');
    

      

    4、删除用户和表空间

    //查询DBA权限用户
    select * from dba_role_privs where granted_role='DBA'
    //回收DBA权限
    revoke dba from SLSADMIN_GX
    //查询所有用户,包含普通用户
    select  * from dba_users;
     
     
    //查看表tablespace路径
    select * from dba_data_files;
    //删除tablespace
    drop tablespace SLSADMIN including contents and datafiles cascade constraint
     
    //锁定用户
    alter user SLSADMIN_GX account lock
    //查看用户的连接状况
    select * from V$session where username='SLSADMIN_GX'
    //kill 当前用户session回话
    alter system kill session 'xx,xx'
    //删除用户以及所有关联的数据库对象
    drop user xx cascade
    

      

    5、快速删除某个用户所有的表数据,表结构,回收权限,删除用户

    //查询单列重复信息
    select * from test
    where name in (select name from test group by name having count
    (name) > 1)
    
    //删除重复信息
    select * from
    delete from cap_user where rowid in (
    select  max(rowid) from cap_user group by operator_id having count(1)>1
    )

    //快速查询删除用户下的表数据据 select 'delete from '|| table_name || ';' from user_tables order by table_name; //锁定用户 alter user reports account lock; //查询用户的session连接 select * from V$session where username='REPORTS' //kill当前用户session连接 alter system kill session '239,85' drop user reports cascade

      

     

    6、查看表空间的大小及使用情况sql语句

    1、//查看表空间的名称及大小 
    SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size 
    FROM dba_tablespaces t, dba_data_files d 
    WHERE t.tablespace_name = d.tablespace_name 
    GROUP BY t.tablespace_name; 
     
    2、//查看表空间物理文件路径的名称及大小 
    SELECT tablespace_name, 
    file_id, 
    file_name, 
    round(bytes / (1024 * 1024), 0) total_space 
    FROM dba_data_files 
    ORDER BY tablespace_name; 
     
    3、//查看回滚段名称及大小 
    SELECT segment_name, 
    tablespace_name, 
    r.status, 
    (initial_extent / 1024) initialextent, 
    (next_extent / 1024) nextextent, 
    max_extents, 
    v.curext curextent 
    FROM dba_rollback_segs r, v$rollstat v 
    WHERE r.segment_id = v.usn(+) 
    ORDER BY segment_name; 
     
    4、//查看控制文件 
    SELECT NAME FROM v$controlfile; 
    5、//查看日志文件 
    SELECT MEMBER FROM v$logfile; 
     
    6、//查看表空间的使用情况 
    SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name 
    FROM dba_free_space 
    GROUP BY tablespace_name; 
    SELECT a.tablespace_name, 
    a.bytes total, 
    b.bytes used, 
    c.bytes free, 
    (b.bytes * 100) / a.bytes "% USED ", 
    (c.bytes * 100) / a.bytes "% FREE " 
    FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
    WHERE a.tablespace_name = b.tablespace_name 
    AND a.tablespace_name = c.tablespace_name; 
     
    7、//查看表空间总数求和,已经使用的表空间
    select total.tablespace_name,round(total.MB,2) as Total_MB,
    round(total.MB-free.MB, 2) as Used_MB
    from (select tablespace_name, sum(bytes)/1024/1024 as MB from dba_free_space 
    group by tablespace_name) free,
    (select tablespace_name, sum(bytes)/1024/1024 as MB from dba_data_files group by
    tablespace_name) total
    where free.tablespace_name=total.tablespace_name
     
    8、//查看数据库库对象 
    SELECT owner, object_type, status, COUNT(*) count# 
    FROM all_objects 
    GROUP BY owner, object_type, status; 
    9、//查看数据库的版本  
    SELECT version 
    FROM product_component_version 
    WHERE substr(product, 1, 6) = 'Oracle'; 
    10、//查看数据库的创建日期和归档方式 
    SELECT created, log_mode, log_mode FROM v$database;
     
    11、//查表空间使用率情况(含临时表空间)
    SELECT d.tablespace_name "Name", d.status "Status", 
           TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') "Size (M)",
              TO_CHAR (NVL (a.BYTES - NVL (f.BYTES, 0), 0) / 1024 / 1024,
                       '99999999.99'
                      ) USE,
           TO_CHAR (NVL ((a.BYTES - NVL (f.BYTES, 0)) / a.BYTES * 100, 0),
                    '990.00'
                   ) "Used %"
      FROM SYS.dba_tablespaces d,
           (SELECT   tablespace_name, SUM (BYTES) BYTES
                FROM dba_data_files
            GROUP BY tablespace_name) a,
           (SELECT   tablespace_name, SUM (BYTES) BYTES
                FROM dba_free_space
            GROUP BY tablespace_name) f
     WHERE d.tablespace_name = a.tablespace_name(+)
       AND d.tablespace_name = f.tablespace_name(+)
       AND NOT (d.extent_management LIKE 'LOCAL' AND d.CONTENTS LIKE 'TEMPORARY')
    UNION ALL
    SELECT d.tablespace_name "Name", d.status "Status", 
           TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') "Size (M)",
              TO_CHAR (NVL (t.BYTES, 0) / 1024 / 1024, '99999999.99') USE,
           TO_CHAR (NVL (t.BYTES / a.BYTES * 100, 0), '990.00') "Used %"
      FROM SYS.dba_tablespaces d,
           (SELECT   tablespace_name, SUM (BYTES) BYTES
                FROM dba_temp_files
            GROUP BY tablespace_name) a,
           (SELECT   tablespace_name, SUM (bytes_cached) BYTES
                FROM v$temp_extent_pool
            GROUP BY tablespace_name) t
     WHERE d.tablespace_name = a.tablespace_name(+)
       AND d.tablespace_name = t.tablespace_name(+)
       AND d.extent_management LIKE 'LOCAL'
       AND d.CONTENTS LIKE 'TEMPORARY';
     
     
      
     
      
     
    --------------------------tablespace使用大小计算-------------------------------
     
    1G=1024MB 
    1M=1024KB 
    1K=1024Bytes 
    1M=11048576Bytes 
    1G=1024*11048576Bytes=11313741824Bytes 
    SELECT a.tablespace_name "表空间名", 
    total "表空间大小", 
    free "表空间剩余大小", 
    (total - free) "表空间使用大小", 
    total / (1024 * 1024 * 1024) "表空间大小(G)", 
    free / (1024 * 1024 * 1024) "表空间剩余大小(G)", 
    (total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)", 
    round((total - free) / total, 4) * 100 "使用率 %" 
    FROM (SELECT tablespace_name, SUM(bytes) free 
    FROM dba_free_space 
    GROUP BY tablespace_name) a, 
    (SELECT tablespace_name, SUM(bytes) total 
    FROM dba_data_files 
    GROUP BY tablespace_name) b 
    WHERE a.tablespace_name = b.tablespace_name
     
     
     
    -----------------------------扩增表空间大小-----------------------------------------
     
    //查询用户对应的表空间,我们可以看到针对不同的数据库用户ORACLE
    select username, default_tablespace, temporary_tablespace
    from dba_users;
     
    //查询用户的对应的数据文件,以及数据文件大小
    select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;
     
    //扩增表空间大小
    SQL> ALTER DATABASE DATAFILE '/data/URSP_SLSADMIN.dbf' RESIZE 8000M ;
    

        

    7、表结构及数据导入与导出

    // 导入数据
    imp AML/AML@172.16.87.140:1521/orcl fromuser=URSPMONITOR touser=AML
      FILE=/data/aml.dmp full=y ignore=y;
    imp aml/xjnx_ursp_aml1@10.1.51.53:1521/pisa  fromuser=URDPMONITOR touser=aml file=/jgtest/aml_rule_autoslay.dump
    
    
    在导入数据时出现无法找到目标用户进行赋值错误,需要使用fromuser=URSPMONITOR  touser=AML,即忽略用户授权错误;
    exp urspmonitor/urspmonitor@10.1.48.53:1521/dwursp file=aml_rule_autoslay.dump tables=aml_rule_autoslay_0705
    

      

      

  • 相关阅读:
    leetcode 279. Perfect Squares
    leetcode 546. Remove Boxes
    leetcode 312. Burst Balloons
    leetcode 160. Intersection of Two Linked Lists
    leetcode 55. Jump Game
    剑指offer 滑动窗口的最大值
    剑指offer 剪绳子
    剑指offer 字符流中第一个不重复的字符
    leetcode 673. Number of Longest Increasing Subsequence
    leetcode 75. Sort Colors (荷兰三色旗问题)
  • 原文地址:https://www.cnblogs.com/zhenning17/p/9362092.html
Copyright © 2011-2022 走看看