精华内容
下载资源
问答
  • 创建表空间有很多种方式,在安装好oracle 11g 后在网站上 https://localhost:1158/em 手动创建也可以,但是没有sql直接生成方便,下面介绍下如何用sql语句直接生成表空间,用户名和密码 --创建 表空间 表空间名:...

    创建表空间有很多种方式,在安装好oracle 11g 后在网站上 https://localhost:1158/em 手动创建也可以,但是没有sql直接生成方便,下面介绍下如何用sql语句直接生成表空间,用户名和密码

    --创建 表空间 表空间名:ylzcbp
    create tablespace ylzcbp
    logging
    datafile 'ylzcbp.dbf' size 1024m autoextend on next 30m
    extent management local segment space management auto;

    --创建用户名和密码 这里用户名和密码都是:ylzcbp

    -- USER SQL

    CREATE USER ylzcbp IDENTIFIED BY ylzcbp
    DEFAULT TABLESPACE ylzcbp
    TEMPORARY TABLESPACE TEMP;

    GRANT execute on DBMS_PIPE to  ylzcbp ;
    GRANT connect to ylzcbp;
    GRANT resource to ylzcbp;
    GRANT create any trigger to ylzcbp;
    GRANT DBA to ylzcbp;

     

    --删除用户

    drop user xxx;
    如果用户的schema中有objects ,需要加cascade参数,即drop user xxx cascade;

     

    --删除表空间

    alter tablespace ylzcbp offline;

    drop tablespace ylzcbp including contents and datafiles;

     

     

    --查看各表空间分配情况。

     

    select tablespace_name, sum(bytes) / 1024 / 1024  from dba_data_files  

     

     group by tablespace_name;  

     

    --查看各表空间空闲情况。

     

    select tablespace_name, sum(bytes) / 1024 / 1024  from dba_free_space  group by tablespace_name;  

     

    --更改数据表大小(10G)

     

    alter database datafile '/ora/oradata/radius/undo.dbf' resize 10240m;

     

    --设置表空间不足时自动增长

     

    ----查看表空间是否自动增长  yes代表自动增长

     

    SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;

     

    ----设置表空间自动增长

     

    ALTER DATABASE DATAFILE 'c:\SmartDB01.ora' AUTOEXTEND ON;//打开自动增长

     

    ALTER DATABASE DATAFILE 'c:\SmartDB01.ora' AUTOEXTEND ON NEXT 200M ;//每次自动增长200m

     

    ALTER DATABASE DATAFILE 'c:\SmartDB01.ora' AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;//每次自动增长200m,数据表最大不超过1G

     

    --导出数据库命令(在cmd中执行命令)

    exp wsbsbb/wsbsbb@10.92.131.48:1521/esb2  file=E:\wsbsbb.dmp  owner=(wsbsbb)

    --导入数据库命令

    imp wsbsbb/wsbsbb@10.92.131.48:1521/esb2 file=E:\wsbsbb.dmp full=y ignore=y

    注意事项:

    1、使用的用户要有权限导出数据库,没有的话需要DBA赋权

     grant CONNECT,RESOURCE,EXP_FULL_DATABASE,IMP_FULL_DATABASE,create session,create table,create database link,create view,create sequence,CREATE ANY PROCEDURE,create any type,drop any type,execute any procedure,debug any procedure,debug connect session,create trigger,unlimited tablespace to wsbsbb;   
     
    2、出现下列问题:可能是该用户下有无效的DBLINK 删除在重新操作尝试下。

    即将导出指定的用户...
    . 正在导出 pre-schema 过程对象和操作
    . 正在导出用户 WSBSBB 的外部函数库名
    . 导出 PUBLIC 类型同义词
    . 正在导出专用类型同义词
    . 正在导出用户 WSBSBB 的对象类型定义
    即将导出 WSBSBB 的对象...
    . 正在导出数据库链接
    EXP-00106: 数据库链接口令无效
    EXP-00000: 导出终止失败

     

     

    转载于:https://www.cnblogs.com/weiyi1314/p/6549386.html

    展开全文
  • 删除表空间

    2012-07-16 11:59:33
    PLSQL中如何彻底删除已经创建的或错误的表空间
  • 这样,回收站里的信息就可以被恢复,或彻底清除。 通过查询回收站user_recyclebin获取被删除信息,然后使用语句 flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to ...

    一、drop表

    执行drop table xx 语句
       drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。

       通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句
       flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>];

                      将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。

                      若要彻底删除表,则使用语句:drop table <table_name> purge;

                      清除回收站里的信息

                      清除指定表:purge table <table_name>;

                      清除当前用户的回收站:purge recyclebin;

                      清除所有用户的回收站:purge dba_recyclebin;

       不放入回收站,直接删除则是:drop table xx purge;

    举例如下:

    ===============================================================================

    SQL> select * from test1;

    A B C

    -- -- ----------

    11 5

    11 10

    2 rows selected

    SQL> create table test2 as select * from test1;

    Table created

    SQL> select * from test2;

    A B C

    -- -- ----------

    11 5

    11 10

    2 rows selected

    SQL> drop table test2;

    Table dropped

    SQL> select object_name, original_name, operation, type from user_recyclebin;

    OBJECT_NAME ORIGINAL_NAME OPERATION TYPE

    ------------------------------ -------------------------------- --------- -------------------------

    BIN$vQwemDg4R9mK9fYJNdYzvg==$0 TEST2 DROP TABLE

    SQL> flashback table test2 to before drop rename to test3;--【to test3】将表重命名

    Done

    SQL> select * from test3;

    A B C

    -- -- ----------

    11 5

    11 10 

    2 rows selected

    SQL> select * from test2

    ORA-00942: 表或视图不存在

    --彻底删除表

    SQL> drop table test3 purge;

    Table dropped

    二、清除表中的数据

    truncate操作 同没有where条件的delete操作十分相似,只是把表里的信息全部删除,但是表依然存在。

    例如:truncate table  XX

    Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。

    truncate table 后,有可能表空间仍没有释放,可以使用如下语句:

    alter table 表名称 deallocate   UNUSED KEEP 0;

    注意如果不加KEEP 0的话,表空间是不会释放的。

    例如:

    alter table F_MINUTE_TD_NET_FHO_B7 deallocate   UNUSED KEEP 0;

    或者:

    TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。

    例如: truncate table  test1 DROP STORAGE;

    三、查询分区表存在哪些分区:

    查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如:

       select 'alter table '||t.table_name ||' truncate  partition ' || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like 'F_%'

       清除指定某个分区表的分区数据:

       alter  table 表名称  truncate  partition  分区名称;

    四、清除分区表占用的空间:

    alter table 表名称 DROP   partition 分区名称;

       例如:

       alter table F_HOUR_TD_NET_MPVOICE DROP   partition P_09121913        ;

    五、查询表空间信息

       可以利用如下语句查询各表在存储空间的使用分情况:

       SELECT TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999')  CNT_MB  FROM  DBA_EXTENTS  WHERE  OWNER='&OWNER'  AND  SEGMENT_NAME='&TABLE_NAME'  AND  SEGMENT_TYPE  LIKE  'TABLE%'  GROUP  BY  TABLESPACE_NAME;

    可以使用如下语句,查询存储空间情况:

    Select Tablespace_Name, Sum(bytes)/1024/1024 From Dba_Segments group By Tablespace_Name

    六、查询用户下的表

       如果你的用户权限不是DBA:  

     那你用  

     select  *  from  user_tables;  

     可以查询到当前用户所拥有的表。  

     如果是DBA用户:  

     select  *  from  dba_tables;

    展开全文
  • 这样,回收站里的信息就可以被恢复,或彻底清除。 通过查询回收站user_recyclebin获取被删除信息,然后使用语句 flashback table to before drop [rename to ]; 将回收站里的...
    一、drop表

    执行drop table xx 语句

    drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。

    通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句

    flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>];

    将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。

    若要彻底删除表,则使用语句:drop table <table_name> purge;

    清除回收站里的信息

    清除指定表:purge table <table_name>;

    清除当前用户的回收站:purge recyclebin;

    清除所有用户的回收站:purge dba_recyclebin;

    不放入回收站,直接删除则是:drop table xx purge;

    举例如下:

    ===============================================================================

    SQL> select * from test1;

    A B C

    -- -- ----------

    11 5

    11 10

    2 rows selected

    SQL> create table test2 as select * from test1;

    Table created

    SQL> select * from test2;

    A B C

    -- -- ----------

    11 5

    11 10

    2 rows selected

    SQL> drop table test2;

    Table dropped

    SQL> select object_name, original_name, operation, type from user_recyclebin;

    OBJECT_NAME ORIGINAL_NAME OPERATION TYPE

    ------------------------------ -------------------------------- --------- -------------------------

    BIN$vQwemDg4R9mK9fYJNdYzvg==$0 TEST2 DROP TABLE

    SQL> flashback table test2 to before drop rename to test3;--【to test3】将表重命名

    Done

    SQL> select * from test3;

    A B C

    -- -- ----------

    11 5

    11 10

    2 rows selected

    SQL> select * from test2

    ORA-00942: 表或视图不存在

    --彻底删除表

    SQL> drop table test3 purge;

    Table dropped

    二、清除表中的数据

    truncate操作 同没有where条件的delete操作十分相似,只是把表里的信息全部删除,但是表依然存在。

    例如:truncate table XX

    Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。

    truncate table 后,有可能表空间仍没有释放,可以使用如下语句:

    alter table 表名称 deallocate UNUSED KEEP 0;

    注意如果不加KEEP 0的话,表空间是不会释放的。

    例如:

    alter table F_MINUTE_TD_NET_FHO_B7 deallocate UNUSED KEEP 0;

    或者:

    TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。

    例如: truncate table test1 DROP STORAGE;

    三、查询分区表存在哪些分区:

    查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如:

    select 'alter table '||t.table_name ||' truncate partition ' || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like 'F_%'

    清除指定某个分区表的分区数据:

    alter table 表名称 truncate partition 分区名称;

    四、清除分区表占用的空间:

    alter table 表名称 DROP partition 分区名称;

    例如:

    alter table F_HOUR_TD_NET_MPVOICE DROP partition P_09121913 ;

    五、查询表空间信息

    可以利用如下语句查询各表在存储空间的使用分情况:

    SELECT TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999') CNT_MB FROM DBA_EXTENTS WHERE OWNER='&OWNER' AND SEGMENT_NAME='&TABLE_NAME' AND SEGMENT_TYPE LIKE 'TABLE%' GROUP BY TABLESPACE_NAME;

    可以使用如下语句,查询存储空间情况:

    Select Tablespace_Name, Sum(bytes)/1024/1024 From Dba_Segments group By Tablespace_Name

    六、查询用户下的表

    如果你的用户权限不是DBA:

    那你用

    select * from user_tables;

    可以查询到当前用户所拥有的表。

    如果是DBA用户:

    select * from dba_tables;
    展开全文
  • 一、drop 执行drop table xx 语句 ...这样,回收站里的信息就可以被恢复,或彻底清除。 通过查询回收站user_recyclebin获取被删除信息,然后使用语句 flashback table to before drop [rena
    一、drop表
    
    执行drop table xx 语句
    
    drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。
    
    通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句
    
                       flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>];
    
                       将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。
    
                       若要彻底删除表,则使用语句:drop table <table_name> purge; 
    
                       清除回收站里的信息
    
                       清除指定表:purge table <table_name>;
    
                       清除当前用户的回收站:purge recyclebin;
    
                       清除所有用户的回收站:purge dba_recyclebin;
    
        不放入回收站,直接删除则是:drop table xx purge;
    
    举例如下:
    
    ===============================================================================
    
    SQL> select * from test1;
    
    A B C
    
    -- -- ----------
    
    11 5 
    
    11 10 
    
    2 rows selected
    
    SQL> create table test2 as select * from test1;
    
    Table created
    
    SQL> select * from test2;
    
    A B C
    
    -- -- ----------
    
    11 5 
    
    11 10 
    
    2 rows selected
    
    SQL> drop table test2;
    
    Table dropped
    
    SQL> select object_name, original_name, operation, type from user_recyclebin;
    
    OBJECT_NAME ORIGINAL_NAME OPERATION TYPE
    
    ------------------------------ -------------------------------- --------- -------------------------
    
    BIN$vQwemDg4R9mK9fYJNdYzvg==$0 TEST2 DROP TABLE
    
    SQL> flashback table test2 to before drop rename to test3;--【to test3】将表重命名
    
    Done
    
    SQL> select * from test3;
    
    A B C
    
    -- -- ----------
    
    11 5 
    
    11 10  
    
    2 rows selected
    
    SQL> select * from test2
    
    ORA-00942: 表或视图不存在
    
    --彻底删除表
    
    SQL> drop table test3 purge;
    
    Table dropped
    
    二、清除表中的数据
    
    truncate操作 同没有where条件的delete操作十分相似,只是把表里的信息全部删除,但是表依然存在。
    
    例如:truncate table  XX
    
    Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。
    
    truncate table 后,有可能表空间仍没有释放,可以使用如下语句:
    
    alter table 表名称 deallocate   UNUSED KEEP 0;
    
    注意如果不加KEEP 0的话,表空间是不会释放的。
    
    例如:
    
    alter table F_MINUTE_TD_NET_FHO_B7 deallocate   UNUSED KEEP 0;
    
    或者:
    
    TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。
    
    例如: truncate table  test1 DROP STORAGE;
    
    三、查询分区表存在哪些分区:
    
    查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如:
    
        select 'alter table '||t.table_name ||' truncate   partition ' || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like 'F_%'
    
        清除指定某个分区表的分区数据:
    
        alter   table  表名称   truncate   partition   分区名称;
    
    四、清除分区表占用的空间:
    
    alter table 表名称  DROP    partition 分区名称;
    
        例如:
    
        alter table F_HOUR_TD_NET_MPVOICE  DROP    partition P_09121913         ;
    
    五、查询表空间信息
    
        可以利用如下语句查询各表在存储空间的使用分情况:
    
        SELECT  TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999')   CNT_MB   FROM   DBA_EXTENTS   WHERE   OWNER='&OWNER'   AND   SEGMENT_NAME='&TABLE_NAME'   AND   SEGMENT_TYPE   LIKE   'TABLE%'   GROUP   BY   TABLESPACE_NAME;
    
    可以使用如下语句,查询存储空间情况:
    
    Select Tablespace_Name, Sum(bytes)/1024/1024 From Dba_Segments group By Tablespace_Name
    
    六、查询用户下的表
    
        如果你的用户权限不是DBA:   
    
      那你用   
    
      select   *   from   user_tables;   
    
      可以查询到当前用户所拥有的表。   
    
      如果是DBA用户:   
    
      select   *   from   dba_tables;
    展开全文
  • 一、drop 执行drop table xx 语句 ...这样,回收站里的信息就可以被恢复,或彻底清除。 通过查询回收站user_recyclebin获取被删除信息,然后使用语句 flashback table <user_recyclebin.o...
  • 演示删除表空间,成功。 SQL> alter database datafile '/oracle/u01/app/oracle/oradata/orcl/SMS.dbf' offline drop; 最后确认,删除得很彻底。 SQL>select file#,status,name from v$datafile where...
  • 在Windows(从XP到Win7)中删除文件时,无论是Delete或者是Shift+Delete,都不能真正的删除文件,它做的事情只是从文件分配删除了该文件的信息,而并未将文件从存储介质中真正删除。直到硬盘需要此数据空间时,...
  • MySQL 清除表空间碎片 碎片产生的原因: (1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大; ...
  • Dataguard配置Step by Step - Oracle Life.files 如何从自动备份中恢复控制文件和SPFILE文件 - Oracle Life.files ...如何彻底删除Oracle 使用RMAN进行快速Dataguard数据库创建 - Oracle Life 等等。。。
  • 一、起因:收到运维需求需要清理两张监控告警的日志,数据删除之后,发现磁盘空间并未释放。  二、分析:InnoDB 数据库在使用 delete 进行删除操作的时候,只会将已经删除的数据标记为删除,并没有把数据文件...
  • 例如,如何避免语法和语义的错误,如何使用预处理指令,如何产生随机数,如何估计程序运算所花费的时间,如何从现有文件读取数据,如何将执行结果存盘,如何使用对象来仿真实际的互动关系等常遇到的编程问题,都可在...
  • 卧槽,安装完MySQL竟然提示数据不存在!! 冰河视频聊架构:三分钟带你彻底掌握MySQL Undo Log和MVCC机制!! 一文搞懂select语句在MySQL中的执行流程! 小伙伴们说要看MySQL体系架构的视频,我连夜整理出来了! ...
  • 利用项目中的代码分为三个主要部分,每个部分都可以单独进行编辑以彻底改变项目的结果和交互。 C代码是结果所基于的原始源文件。 脚本为Matlab进行文件的处理和分类。 最后,Matlab执行机器学习算法并执行结果分析。...
  • Oracle专家高级编程--详细书签版

    热门讨论 2012-08-21 11:57:09
    11.9.6 默认情况下大纲在SYSTEM 表空间中 505 11.9.7 OR扩展 505 11.9.8 性能 506 11.9.9 大纲的名称空间是全局变量 510 11.10 可能遇到的错误 511 11.11 小结 512 第12章 分析函数 513 12.1 范例 513 12.2 ...
  • oracle安装及备份

    2013-03-28 16:12:52
    不少情况要先是将表彻底删除,然后导入。 注意: 1、在进行导入恢复时,如果是全部导入的话,就需要将原有的用户删除,这样此用户所拥有的数据就可以直接被删除了,否则在进导入时会下面的错误提示( ORACLE error ...
  • 如果是在Oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除。但是从Oracle10gR2开始,Oracle允许我们彻底删除一个空文件,不留痕迹。但是...
  • 删除选中区域图形】 将工作中当前选中区域的所有图片与图形删除。 【删除所有导入图形】 将工作中存在的所有图片与图形瞬间删除。 【批量导入图片】 将指定文件夹或包含子文件夹中所有图片瞬间(也可以按...
  • 2、增加彻底删除文件(文件粉碎)的功能,可清除目录项,让文件彻底无法恢复。 3、支持Samsung RFS Filesystem分区格式的文件读取。 4、恢复文件后,显示过滤面板,可按文件名、属性、大小、时间过滤。 5、恢复文件...
  • 6、如何彻底删除XP  现象:我装了Windows Me和Windows XP双系统,都是FAT32格式。C盘装 Windows Me,E盘装Windows XP。昨天,Windows XP系统丢失了SYSTEM32.DLL ,启动不了。于是我在进入Windows Me系统内,在E...

空空如也

空空如也

1 2 3
收藏数 60
精华内容 24
关键字:

如何彻底删除表空间