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

  

  

原文地址:https://www.cnblogs.com/zhenning17/p/9362092.html