Oracle常用脚本

常用SQL脚本

  1. 表空间相关操作

    • 创建表空间文件

      CREATE TABLESPACE NNC_DATA01 DATAFILE 'D:\app\Administrator\oradata\orcl\nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
      CREATE TABLESPACE NNC_DATA02 DATAFILE 'D:\app\Administrator\oradata\orcl\nnc_data02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
      CREATE TABLESPACE NNC_DATA03 DATAFILE 'D:\app\Administrator\oradata\orcl\nnc_data03.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K ;
      CREATE TABLESPACE NNC_INDEX01 DATAFILE 'D:\app\Administrator\oradata\orcl\nnc_index01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;
      CREATE TABLESPACE NNC_INDEX02 DATAFILE 'D:\app\Administrator\oradata\orcl\nnc_index02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;
      CREATE TABLESPACE NNC_INDEX03 DATAFILE 'D:\app\Administrator\oradata\orcl\nnc_index03.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; 
      
    • 查看表空间使用情况

      SELECT a.tablespace_name "表空间名",total/1024/1024  "表空间大小单位M",free/1024/1024 "表空间剩余大小单位M",(total - free)/1024/1024 "表空间使用大小单位M",
             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;
      
      SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
             D.TOT_GROOTTE_MB "表空间大小(M)",
             D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
             TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                           2),
                     '990.99') "使用比",
             F.TOTAL_BYTES "空闲空间(M)",
             F.MAX_BYTES "最大块(M)"
        FROM (SELECT TABLESPACE_NAME,
                     ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
                     ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
                FROM SYS.DBA_FREE_SPACE
               GROUP BY TABLESPACE_NAME) F,
             (SELECT DD.TABLESPACE_NAME,
                     ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
                FROM SYS.DBA_DATA_FILES DD
               GROUP BY DD.TABLESPACE_NAME) D
       WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
       ORDER BY 4 DESC;
      
    • 查看表空间是否具有自动扩展的能力

      SELECT T.TABLESPACE_NAME,
             D.FILE_NAME,
             D.AUTOEXTENSIBLE,
             D.BYTES,
             D.MAXBYTES,
             D.STATUS
        FROM DBA_TABLESPACES T, DBA_DATA_FILES D
       WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME
       ORDER BY TABLESPACE_NAME, FILE_NAME;
      
  2. 增加表空间文件

    • method1:给表空间增加数据文件

      ALTER TABLESPACE app_data ADD DATAFILE  
      'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;  
      
    • method2:新增数据文件,并且允许数据文件自动增长

      ALTER TABLESPACE app_data ADD DATAFILE
      'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
      AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
      
    • method3:允许已存在的数据文件自动增长

      ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'  
      AUTOEXTEND ON NEXT 5M MAXSIZE 100M;  
      
    • method4:手工改变已存在数据文件的大小

      ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'  
      
  3. 常用SQL操作

    • DMP文件导出的时候允许导出空表

      Alter system set deferred_segment_creation=false scope=both;
      
    • 查看被锁的表或者数据以及解锁方法

      • 查看

        select a.object_name,b.session_id,c.serial#,c.program,c.username,c.command,c.machine,c.lockwait
        from all_objects a,v$locked_object b,v$session c where a.object_id=b.object_id and c.sid=b.session_id;
        
      • 解锁

        alter system kill session'session_id,serial#';
        
      • 例句

        alter system kill session'74,2433';
        
  4. 用户相关操作

    • 创建用户

      CREATE USER utest IDENTIFIED BY utest DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp;
      
    • 授权

      GRANT CONNECT TO utest 
      GRANT RESOURCE TO utest 
      GRANT UNLIMITED TABLESPACE TO utest 
      GRANT DBA to utest 
      grant read,write on directory exp_dir to utest 
      
    • 删除用户

      drop user utest cascade;
      
    • 创建备份文件夹

      create directory exp_dir as 'D:\dmp';
      
    • 授权文件夹操作给用户

      grant read,write on directory exp_dir to utest;
      
  5. 数据库dmp文件导入导出

    • 导入

      方式1:
      imp test1/test1@orcl file= full=y owner = 'nc631_ft0221_04'  log=d:\gzgl570118.log
      
      方式2:
      impdp utest/utest@orcl schemas=estate directory=dmp_814 dumpfile=814erp.DMP logfile=dmp_814.log table_exists_action=replace remap_schame=utest2:utest
      
    • 导出

      方式1:
      exp nc631_ft0103_test/1@//20.10.129.164:1521/ft file =C:\Users\javaboy\Desktop\nc631_ft0103_test.dmp owne=xmt_0
      
      方式2:
      expdp btpg/1@orcl11g  DUMPFILE=BTPG20140223.DMP DIRECTORY=DATA_PUMP_DIR logfile=BTPG20140223.log
      
      
posted @ 2020-11-25 17:43  sankuoshu  阅读(104)  评论(0编辑  收藏  举报