精华内容
下载资源
问答
  • 当维护表空间时,经常需要改变表空间的可用性。一般情况下,改变表空间可用性是有特权用户或dba来完成;如果以其他用户身份改变表空间可用性,则要求用户必须具有manage tablespace 系统权限。 1.使表空间脱机 ...

    当建立表空间时,表空间处于online状态,此时该表空间及其数据文件可以访问;当表空间或数据文件处于offline状态时,表空间或其数据文件将不可访问。当维护表空间时,经常需要改变表空间的可用性。一般情况下,改变表空间可用性是有特权用户或dba来完成的;如果以其他用户身份改变表空间可用性,则要求用户必须具有manage tablespace 系统权限。

    1.使表空间脱机

    为了移动特定表空间的所有数据文件到其他位置,需要将表空间转变为脱机状态。以确保其数据文件的一致性。

    注意:system表空间和sysaux表空间不能被脱机。

    例子:

    alter tablespace tbs_4k offline;

    当表空间处于offline状态时,该表空间将不能被访问。如果访问脱机表空间,那么会显示错误信息。

    create table t1(cola int ) tablespace tbs_4k;

    ORA-01542: 表空间 'TBS_4K' 脱机, 无法在其中分配空间

    2.是表空间联机

    处于offline状态的表空间不能被访问。在完成了表空间的维护后,应该将其转变为online状态。

    例子:

    alter tablespace tbs_4k online;
    create table t1(cola int ) tablespace tbs_4k;

    3.是数据文件脱机

    当出项磁盘损坏导致数据文件丢失时,如果要打开数据库,那么控制文件将无法定位需要打开的数据文件,并且会显示如下错误。

     ora_01157:无法标识/锁定数据文件 3 - 请参阅dbwr跟踪数据文件:

    ora——01110:数据文件 3 :'d:\orcl\user01.dbf'

    为了使得数据库可以快速投入使用,应该脱机损坏的数据文件,打开数据库,让后恢复该数据文件。当脱机数据文件时,即可以指定数据文件名,也可以指定数据文件编号。

    注意:noarchivelog 模式下脱机数据文件必须使用offline drop 选项。

    例子:

    alter database datafile 5 offline drop;

    4.使数据文件联机

    当恢复了数据文件后,为了使的数据文件可以重新使用,需要将其转变为online 状态。当联机数据文件时,即可以指定数据文件名,也可以指定数据文件编号。

    注意:在联机数据文件之前可能需要执行恢复命令:

    recover datafile 5
    alter database datafile 5 online;

     

     

     

    展开全文
  • 过程如下:1、新建空间,作为数据中转用2、MOVE大部分(90%)至其新建空间后MOVE回原有空间,从而减少数据库碎片3、收缩对应的数据文件在MOVE回原有空间后重建相关索引,统计发现可用空间提高40G左右,有效的...

    由于磁盘组冗余度不符合安全要求,对各表空间(Bigfile)进行清理后尝试做数据文件的resize操作,过程如下:

    1、新建表空间,作为数据中转用

    2、MOVE大部分表(90%)至其新建表空间后MOVE回原有表空间,从而减少数据库碎片

    3、收缩对应的数据文件

    在MOVE回原有表空间后重建相关索引,统计发现可用空间提高40G左右,有效的减少了碎片,但根据以下脚本发现无法resize出可用的几百g空间至磁盘组:SELECT

    a.file_id,

    a.file_name

    file_name,

    CEIL((NVL(hwm,1)*blksize)/1024/1024)smallest,

    CEIL(blocks*blksize/1024/1024)currsize,

    CEIL(blocks*blksize/1024/1024)-CEIL((NVL(hwm,1)*blksize)/1024/1024)savings,

    'alter database datafile '''||file_name||''' resize '||CEIL((NVL(hwm,1)*blksize)/1024/1024)||'m;'cmd

    FROM

    DBA_DATA_FILES a,

    (SELECT file_id,MAX(block_id+blocks-1)hwm FROM DBA_EXTENTS GROUP BY file_id) b,

    (SELECT TO_NUMBER(value) blksize FROM V$PARAMETER WHERE name='db_block_size')

    WHERE

    a.file_id = b.file_id(+)

    展开全文
  • 研发人员新搭建了一个windows数据库环境,应用表空间和用户已经创建,表空间中未导入数据,由于研发人员误删除了表空间的一个数据文件导致数据库不可用。奇怪是在windows下,如果数据库在open状态,删除数据文件时...

    研发人员新搭建了一个windows数据库环境,应用表空间和用户已经创建,表空间中未导入数据,
    由于研发人员误删除了表空间的一个数据文件导致数据库不可用。奇怪的是在windows下,如果
    数据库在open状态,删除数据文件时应该会提示错误不能删除的。而此次居然删除成功了?
    数据库用户:cruier
    表空间:cruier
    丢失的数据文件:cruier01.dbf

    恢复步骤:
    SQL>shutdown immediate
    SQL>startup mount
    SQL>alter database datafile 'D:\oradata\test\cruiser01.dbf' offline drop;
    SQL>alter database open;
    SQL> drop tablespace cruier including contents and datafiles;
    drop tablespace cruier including contents and datafiles
    *
    第 1 行出现错误:
    ORA-00604: 递归 SQL 级别 1 出现错误
    ORA-02429: 无法删除用于强制唯一/主键的索引


    SQL> drop tablespace cruier including contents;
    drop tablespace cruier including contents
    *
    第 1 行出现错误:
    ORA-00604: 递归 SQL 级别 1 出现错误
    ORA-02429: 无法删除用于强制唯一/主键的索引

    SQL> drop user cruier cascade;

    用户已删除。

    SQL> drop tablespace cruier including contents;

    表空间已删除。

    ======报ORA-00604和ORA-02429错误是由于建cruier用户时已经指定cruier表空间为默认表空间。
    由于cruier用户是新建的还没有数据,可以直接drop掉用户。然后删除表空间。
    如果cruier用户还有其他表空间,是否可以将cruier用户的默认表空间指定到其他表空间也可以删除cruier表空间?(有时间验证一下)

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16396821/viewspace-678173/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/16396821/viewspace-678173/

    展开全文
  •  由于某次不小心操作,在切换表空间时没有成功,由于把undo配置参数 undo_management值设置为MANUAL所以在启动数据库时没有报任何错误,但是给插入数据时报错了,回滚段不可用的错误。然后查询了错误原因。  ...

      

      由于某次不小心操作,在切换表空间时没有成功,由于把undo的配置参数 undo_management值设置为MANUAL所以在启动数据库时没有报任何错误,但是给表插入数据时报错了,回滚段不可用的错误。然后查询了错误原因。

      

      1 首先看数据库中undo信息

      

    SQL> show parameter undo;

    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    undo_management string MANUAL
    undo_retention integer 10800
    undo_tablespace string UNDOTBS2

    undo_tablespace 是UNDOTBS2,实际上已经被删除,因为参数 undo_management MANUAL,所以数据库可以正常启动。

     

    2 查看数据库undo 数据文件

    select file_name,tablespace_name,online_status
    from dba_data_files
    where tablespace_name like '%UNDO%';

    FILE_NAME TABLESPACE_NAME ONLINE_STATUS
    1 /home/oracle/oradata/UNDOTBS1.dbf UNDOTBS1 ONLINE

    数据库中只有一个名为UNDOTBS1 undo表空间,很明显系统里undo 配置信息有误,导致undo表空间不可用,插入数据时报错。

     

    3 重启数据库到mount状态修改undo 配置信息

    SQL> startup mount;
    ORACLE instance started.

    Total System Global Area 450953216 bytes
    Fixed Size 2214256 bytes
    Variable Size 348128912 bytes
    Database Buffers 96468992 bytes
    Redo Buffers 4141056 bytes
    Database mounted.

    SQL> alter system set undo_management='AUTO'  scope=spfile;

      System altered.

     

      重启数据库到mount状态下查看undo配置信息

    SQL> show parameter undo

    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    undo_management string AUTO
    undo_retention integer 900
    undo_tablespace string UNDOTBS2
    SQL> show parameter undo_tablespace;

    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    undo_tablespace string UNDOTBS2

      

      然后修改undo_tablespace 

    SQL> alter system set undo_tablespace=UNDOTBS1;
    alter system set undo_tablespace=UNDOTBS1
    *
    ERROR at line 1:
    ORA-02097: parameter cannot be modified because specified value is invalid
    ORA-01219: database not open: queries allowed on fixed tables/views only

    报数据库未打开的错误,于是打开数据库

    SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-01092: ORACLE instance terminated. Disconnection forced
    ORA-30012: undo tablespace 'UNDOTBS2' does not exist or of wrong type
    Process ID: 72674
    Session ID: 1 Serial number: 3

    又遇到新的错误,应该是修改了undo_management为AUTO然后启动时要检测对应的undo_tablespace,但是undo_tablespace 对应的 UNDOTBS2不存在,所以引起了一系列问题。

     

    根据以往经验准备关闭数据库然后查看spfile关于undo表空间的配置是否正确,正确则采用spfile启动到mount状态,不正确则修改之后再使用spfile方式启动到mount状态,关闭数据库问题又来了

    SQL> shutdown abort;
    ORA-24324: service handle not initialized
    ORA-01041: internal error. hostdef extension doesn't exist
    SQL> shutdown immediate;
    ORA-24324: service handle not initialized
    ORA-01041: internal error. hostdef extension doesn't exist
    SQL> show parameter undo;
    ERROR:
    ORA-03114: not connected to ORACLE

     

    不管以哪种方式关闭,都不行,也不能查询参数信息,数据库处于异常状态,于是百度查询解决办法:

    首先退出sqlplus然后设置一下,指定ORACLE_SID,进而提供了实例信息就可以解决问题。

    SQL> exit;
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    [oracle@oracledb ~]$ set ORACLE_SID=ORCL
    [oracle@oracledb ~]$ sqlplus

    SQL> shutdown abort;
    ORACLE instance shut down.

    进入sqlplus顺利关闭数据库,然后再去查看对应的spfile,/usr/oracle/app/admin/orcl/pfile/init.ora.95201623739,vim 进去查看关于undo信息的配置如果不正确要修改,主要是undo_tablespace修改为数据库存在且可用的undo表空间,信息如下:

    undo_management=AUTO
    undo_retention=10800
    undo_tablespace=UNDOTBS1
    "init.ora.95201623739" 58L, 1877C

     

    修改之后采用spfile启动到mount状态下

    SQL> startup mount pfile=/usr/oracle/app/admin/orcl/pfile/init.ora.95201623739;
    ORACLE instance started.

    数据库启动成功,查看undo配置信息。正确了。

    SQL> show parameter undo;

    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    undo_management string AUTO
    undo_retention integer 10800
    undo_tablespace string UNDOTBS1

     

    然后启动数据库到open状态,可以向表中插入数据了,不会再报回滚段不可用的错误了。

     

    关于关闭数据库时遇到 ORA-24324 与ORA-01041错误,一般的解决的办法如下

    • 重启监听程序;
    • 重启sqlplus;
    • 登陆服务器本机重启数据库;

     

    总结,在修改undo配置信息时,先修改了undo_management 为auto,undo_tablespace没有一起修改,导致重启之后系统会根据undo_tablespace的值配置为UNDOTBS2,但是这个表空间实际上是不存在的,所以启动过程发生异常。应该一起修改undo_management 与 undo_tablespace,然后重启数据库就不会产生之后一系列问题了。

     

     

     

      

    转载于:https://www.cnblogs.com/Latiny/p/7091339.html

    展开全文
  • 您可以将这些条目用作如何根据需要自定义表的参考。 您可以找到有效的演示。 产品特点 通过后端应用程序完全可配置的表内容 自由添加,删除和重新排列列 仅在必要时通过将自定义产品布局分配给适当的类别来呈现...
  • 内容包括: 1. 创建表空间 2. 改变表空间可用性和读写模式 3. 删除表空间 4. 创建和添加数据文件 5. 数据文件可用性 6. 移动和重命名数据文件 7. 删除数据文件 详细代码步骤;
  • 数据文件状态属性 online:联机状态,数据文件可用 offline: ...offline drop:数据文件不可用,会删除数据文件,适用于数据库运行在非归档模式情况二修改表空间数据文件自动扩展性和状态属性 语
  • 把相应表空间数据文件offline,然后alter database open,这样除了受影响表空间以外数据库仍可用。对相应表空间数据文件进行恢复,然后online。RMAN> startupOracle instance starteddatabase mountedRMAN-...
  • 2.手动删除user表空间的数据文件(非system和undo表空间) 影响范围: 1.数据库正常读写 2.数据文件对象无法访问 3.需要将表空间脱机,一段时间内对象无法访问 1.查看数据库数据文件 SYS@ocp> select ...
  • 在达梦数据库中,可以通过以下方式移动表空间的数据文件位置。 磁盘目录如下: [dmdba@CentOS7 DAMENG]$ df -hl 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 27G 6.9G 21G 26% / devtmpfs 977...
  • 在企业中,由于成本限制会出现多套数据库环境使用一套存储的情况出现。而共用存储在带来成本优势的同时,也带来了操作上的风险,万一将数据库正在...本文描述通过Oracle ROWID方式跳过损坏的数据文件,提取出可用的数据
  • 概述:生产RAC环境巡检数据库时,发现某个表空间剩余空间剩余4.9%,虽然数据文件已经开启自动扩容,但前两天看到篇文章,数据文件自定扩容会影响性能,决定...1.查看表空间对应的数据文件,数据文件ID等信息。 SQ...
  • 由于临时在开发环境创建俩张表,总数据量大概400多万,测试完后把drop掉,但是发现服务器磁盘被占满了,还剩下几M可用,因为这个盘也存储oracle的数据文件,所以去检查了一下数据文件的大小,果然E:\app\...
  • 问题描述:接到客户投诉,数据库rbs表空间数据文件rbs01.dbf大小超过10G,并一直在增长,另一个rbs02.dbf正常,大小为800M,目前该目录空间使用率已达87%,可用磁盘空间已剩不多,能否将rbs01,dbf数据文件回收,...
  • 如何解决空间不足即数据文件达到最大值...1、可以先查询对应的表空间最大空间,和可用空间,查找出哪个空间查找不足情况,具体代码如下: SELECT UPPER(F.TABLESPACE_NAME) "空间名", D.TOT_GROOTTE_MB
  • 只要存在有效RMAN备份,恢复SYSTEM表空间数据文件丢失故障是比较容易。注意,这里强调是存在有效可用的备份介质。曾经遇到一个非常无奈场景:catalog数据库与备份目标库放在了同一个数据库中,此时当...
  • 发现oracle的部分数据报:ORA-01653表空间扩展失败,应该是空间不足了,但是其他的数据表都是正常,所有要单独查看是否不是存储的位置不对。 使用的工具是oracle sql develpoer,选择数据库的表名,比如“User...
  • 摘要:下文讲述MySQL的临时表的相关知识分享,如下所示:MySQL 临时表:在MySQL数据库中用于保存临时数据,临时表只对当前连接可用,当我们关闭此连接时,MySQL会自动删除临时表及释放其所占用的存储空间。例:c#连接...
  • 问题描述:接到客户投诉,数据库rbs表空间数据文件rbs01.dbf大小超过10G,并一直在增长,另一个rbs02.dbf正常,大小为800M,目前该目录空间使用率已达87%,可用磁盘空间已剩不多,能否将rbs01,dbf数...
  • 这两天遇到一个不太容易解决的问题。 某燃气公司想自己对自建管线进行测绘...1. 成图的数据并没有在CASS中完成空间对象编码的赋值 2. 所整理的属性(Xls)可能有大量的不规范甚至不全。 这份数据可以用于绘制...
  • 场景描述:数据库处于CLOSE状态,但有>=2个undo表空间可用方式 ... 与场景8区别:直接脱机开库,而没有在开库之前将表空间切换到一个可用的undo表空间,这样当前无默认undo表空间。 ...
  • 此加密支持每个表的所有文件表空间,并且不支持共享表空间。这种加密技术基于旋转密钥文件而起作用。有两种类型的密钥管理插件可用于密钥管理,它们在下面给出keyring_file插件 –在所有MySQL版本中可用。keyri...
  • 网上Oracle空间可用空间的查询脚本很多,但遇到包含自增数据文件空间时,虽然可以扩展但大多都会显示已用99%…… 给一个包含数据文件自增的表空间可用空间查询方法: sqlplus / as sysdba <<EOF --空间...
  • 场景8:系统默认undo表空间数据文件损坏,CLOSE状态,但有>=2个undo表空间可用 --0.1 创建新undo表空间(此时数据库是OPEN状态) ...
  • 当用户设置 iCloud 时,会自动获得 5 GB 的储存空间...但是,如果您的 iCloud 储存空间已用尽,您设备的数据将不会备份到 iCloud,新的照片和视频不会上传到 iCloud 照片,iCloud 云盘、其他 iCloud App 和文本信息...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,632
精华内容 652
关键字:

表的数据可用空间