• oracle常用命令


    数据库操作

    1、备份数据库
    exp bapp/bapp@172.16.0.93/bapp file=d:\bapp.dmp
    2、还原数据库
    imp crmtest/crmtest@crm full=y file=d:\crm.dmp
    3、只还原数据
    imp crmtest/crmtest@crm full=y file=d:\crm.dmp ignore=y
    

    表空间操作

    1、删除表空间	
    DROP TABLESPACE 表空间名称 INCLUDING CONTENTS CASCADE CONSTRAINTS;
    2、创建表空间	
    --BIGFILE创建大文件使用
    CREATE BIGFILE TABLESPACE 表空间名称
    //	TODO
    DATAFILE '盘符路径\xxx.ORA' SIZE 409800M
    EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
    
    16、创建表空间
    CREATE TABLESPACE BAPP 
      DATAFILE 'F:\app\Administrator\oradata\BAPP\BAPP.DBF' 
      SIZE 5120M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED  -- 300M/20M(生产)
      LOGGING
      ONLINE
      PERMANENT
      EXTENT MANAGEMENT LOCAL AUTOALLOCATE
      BLOCKSIZE 8K
      SEGMENT SPACE MANAGEMENT AUTO 
      FLASHBACK ON;
    

    表用户操作

    1、创建表用户
    create user CRMTEST identified by CRMTEST  --用户名 密码
      default tablespace 表空间名   --表空间
      temporary tablespace temp;
    GRANT create session,create trigger,create procedure, create sequence, create table, create view, create public synonym, drop public synonym TO CRMTEST;
    ALTER USER CRMTEST QUOTA UNLIMITED ON CRM;
    2、授权dba权限
    grant dba to crmtest;
    

    dblink

    6、创建dblink
    create database link LINK7021 --连接名称
      connect to UPRR  --连接用户名
    IDENTIFIED BY UPRR --连接密码
      using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 7.0.2.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = UPRR)))'
    7、查询所有表空间及路径
    select t.name as tablespace,d.name as datafile from v$datafile d,v$tablespace t
    where   d.ts# = t.ts#
    
    8、查询表空间使用情况
    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 1;
             
    9、为这个表空间增加一个数据文件
    alter tablespace 表空间名 add datafile '/u1/oradata/userdata_002.ora' size 50m;  --Unix中
    alter tablespace 表空间名 add datafile 'c:\oradata\userdata_002.ora' size 50m;   --Windows NT中
    10、重新调整数据文件的大小
    alter database datafile '/u1/oradata/userdata_001.ora' resize 50M;  --Unix中
    alter database datafile 'c:\oradata\userdata_002.ora' resize 50M;  --Windows NT中
    11.检查数据库中配置的允许打开游标的最大数量。
    show parameter open_cursor;
    12.调整最大游标数量,至少大于1000,最多3000,并不是越大越好!
    alter system set open_cursors=1000 scope=both;
    

    13.查询是否锁表
    –查询锁的那张表
    select b.owner,b.object_name,a.session_id,a.locked_mode from vKaTeX parse error: Expected 'EOF', got '#' at position 106: …,b.sid,b.serial#̲,logon_time fro…locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
    –杀掉进程 1025为sid,41为serial#.
    alter system kill session’1025,41’;
    14导出表为0的数据库
    –导出表为0的数据库
    select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0

    15、数据泵
    create directory dump_dir as ‘f:\backup’–创建路径(dmp文件所在路径) SELECT * FROM dba_directories 查询是否创建成功
    GRANT READ,WRITE ON DIRECTORY DUMP_DIR to bapp; 给bapp付权,用system登录
    expdp bapp/bapp@bapp directory=dump_dir dumpfile=bapp20141120.dmp full=y 导出数据
    impdp FSI/FSI@CREDIT directory=dump_dir dumpfile=FSIFORTEST.DMP full=y 导入数据 table_exists_action=replace 替换数据

    QUERY参数后面跟的是where条件,值得注意的是,整个where子句需要使用""括起来,where子句的写法和SELECT中相同;
    如果是UNIX平台所有"和'都需要使用\u26469屏蔽它们的特殊含义: 
    exp test/test file=1.dmp log=1.log tables=testtable query="where c1=20 and c2=test"
    注意:>,<,单引号等特殊字符需要转译
    exp test/test file=1.dmp log=1.log tables=testtable query="where c1\>20 and c2=to_date\(\'20090506\',\'yyyymmdd\'\)"
    如果是windows平台,则使用下面的格式:   exp c/c@ncn file=c.dmp log=c.log tables=t query="""where id=1 and name='gototop'"""(使用unix下格式也是可以的,具体情况测试一下即可)
    
    --服务器A上的数据库(用户名:USER1)导入到服务器B上的数据库(用户名:USER1)
    
    GRANT READ,WRITE ON DIRECTORY dump_dir TO system;
    
    GRANT EXECUTE ON SYS.UTL_FILE TO system;
    

    17、把用户usera的对象导到用户userb,用法区别在于fromuser=usera touser=userb ,remap_schema=‘usera’:‘usera’ 。例如

    imp system/passwd fromuser=usera touser=userb file=/oracle/exp.dmp log=/oracle/exp.log;

    impdp system/passwd directory=expdp dumpfile=expdp.dmp remap_schema=‘usera’:‘userb’ logfile=/oracle/exp.log (SCHEMAS = user1,user2,user3 …) ;

    18 select * from dba_directories(DIRECTORY的存放目录,需要DBA权限)
    expdp scott/orcl@orcl dumpfile=emp.dmp DIRECTORY=DATA_PUMP_DIR full=y(整个数据库) 后面可选:schemas=bapp(用户导出) tablespaces=tbs_01(表空间) tables=emp(表导出) query=‘where …’(条件) table_exists_action=replace(替换数据)

    19 例子:

    	expdp  wxlun/wxlun123 tables=wxlun.WXLUN_TAB01,wxlun.WXLUN_TAB02 directory=expdp dumpfile=wxlun1212.dmp logfile=wxlun1212.log version=10.2.0.4.0
    
    impdp  scott/tiger  directory=expdp  dumpfile=wxlun1212.dmp logfile=wxlun1212.log remap_schema=wxlun:scott  REMAP_TABLESPACE=wxlun:USERS
    
  • 相关阅读:
    Leetcode 206反转链表、3无重复字符的最长子串、912排序数组(快排)、215数组中的第k个最大元素、53最大子数组和、152乘积最大子数组
    飞桨 - 模型开发
    6-FreeRTOS流缓冲区
    java学习--day11(抽象类、接口)
    C++入门(2)—函数重载、引用
    机器学习实训(2)——分类(补充)
    UniApp和HbuilderX避坑
    计算机图形学环境配置java3D
    Sentinel
    这个 MySQL 问题困扰了我一个月,现在终于把他解决了
  • 原文地址:https://blog.csdn.net/weixin_44653409/article/details/114691697