精华内容
下载资源
问答
  • 今日才接收到新划分的存储空间,以前分配的NAS存储已经找用了98%,不能讲新划分的空间直接挂载到老的数据文件存储目录,故要将较大的表空间移到新分配的NAS存储上。经历了新建挂载目录、表空间脱机、拷贝数据文件、...

      今天遇到一个问题,看些资料后得到解决,是以记之备忘。

      问题描述:公司测试库磁盘空间不足,归档频繁撑爆磁盘。今日才接收到新划分的存储空间,以前分配的NAS存储已经找用了98%,不能讲新划分的空间直接挂载到老的数据文件存储目录,故要将较大的表空间移到新分配的NAS存储上。经历了新建挂载目录、表空间脱机、拷贝数据文件、表空间联机、删除老目录数据文件后问题出现:删除了90G的数据文件后,查看空间发现并未释放磁盘空间,原有目录占有率仍为98%,一段时间后逐渐降低,但并未释放出90G空间。

      移动数据文件过程:

    • 新建挂载目录
    mkdir /oracledb1
    mount /dev/sdb /oracledb1
    •  表空间脱机
    alter tablespace bolan offline;
    • 拷贝数据文件
    cp /oracedb/bolan/bolan* /oracledb1/bolan/
    • 表空间联机
    alter tablespace bolan rename datafile '/oracledb/bolan/bolan.dbf' to /oracledb1/bolan/bolan.dbf';
    alter tablespace bolan rename datafile '/oracledb/bolan/bolan02.dbf' to '/oracledb1/bolan/bolan02.dbf';
    alter tablespace bolan rename datafile '/oracledb/bolan/bolan03.dbf' to '/oracledb1/bolan/bolan03.dbf';
    
    alter tablespace bolan online;
    --下一步:测试表空间是否可用
    • 删除原目录中数据文件
    rm -rf /oracledb/bolan/bolan*
    df -h

      查看磁盘空间后发现空间并未释放。百度查了一些资料,原来原因是:linux系统与windows不同,linux系统即使文件正在被使用,使用rm删除命令也可以将其移除,而win则报文件被占用错误。理解这样的问题需要理解rm的操作内含,一个文件的存放有数据部分和指针部分,而指针位于文件系统的头,删除操作系统的一个文件与oracle drop表的实质有些相似:处理掉指针,文件数据部分占用的空间就可以写入新内容了,之所以出现rm不释放即为有进程在用这个文件而引起操作系统认为这个文件未实质释放,从而df或bdf空间统计不正确。

      解决办法:1.umount及mount那个文件系统;2.重启系统;3.安装lsof(list open files),一个列出当前系统打开文件的工具。前两种都会影响数据库的正常运行,所以选择第三种方法。具体过程:安装lsof(下载地址:http://down1.chinaunix.net/distfiles/lsof_4.76.tar.gz)、查看正在用但被删文件的进程、杀进程。

     

    [root@dbserver software]# tar -zxvf lsof_4.76.tar.gz
    [root@dbserver software]# cd lsof_4.76
    [root@dbserver lsof_4.76]# tar -xvf lsof_4.76_src.tar
    [root@dbserver lsof_4.76]# cd lsof_4.76_src
    [root@dbserver lsof_4.76_src]# ./Configure linux
    [root@dbserver lsof_4.76_src]# lsof | grep deleted
    --下一步用kill -9 进程号杀掉相关进程即可

      进程杀掉后用df -h查看空间回复正常。

    常用lsof命令:

    lsof  filename 显示打开指定文件的所有进程
    lsof -a 表示两个参数都必须满足时才显示结果
    lsof -c string   显示COMMAND列中包含指定字符的进程所有打开的文件
    lsof -u username  显示所属user进程打开的文件
    lsof -g gid 显示归属gid的进程情况
    lsof +d /DIR/ 显示目录下被进程打开的文件
    lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
    lsof -d FD 显示指定文件描述符的进程
    lsof -n 不将IP转换为hostname,缺省是不加上-n参数
    lsof -i 用以显示符合条件的进程情况
    lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
                46 --> IPv4 or IPv6
                protocol --> TCP or UDP
                hostname --> Internet host name
                hostaddr --> IPv4地址
                service --> /etc/service中的 service name (可以不只一个)
                port --> 端口号 (可以不只一个)

     

    lsof使用实例

    一、查找谁在使用文件系统

    在卸载文件系统时,如果该文件系统中有任何打开的文件,操作通常将会失败。那么通过lsof可以找出那些进程在使用当前要卸载的文件系统,如下:


    # lsof  /GTES11/
    COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
    bash    4208 root  cwd    DIR    3,1 4096    2 /GTES11/
    vim     4230 root  cwd    DIR    3,1 4096    2 /GTES11/


    在这个示例中,用户root正在其/GTES11目录中进行一些操作。一个 bash是实例正在运行,并且它当前的目录为/GTES11,另一个则显示的是vim正在编辑/GTES11下的文件。要成功地卸载/GTES11,应该在通知用户以确保情况正常之后,中止这些进程。 这个示例说明了应用程序的当前工作目录非常重要,因为它仍保持着文件资源,并且可以防止文件系统被卸载。这就是为什么大部分守护进程(后台进程)将它们的目录更改为根目录、或服务特定的目录(如 sendmail 示例中的 /var/spool/mqueue)的原因,以避免该守护进程阻止卸载不相关的文件系统。

    二、恢复删除的文件

    当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。有时可以通过lsof来恢复这些文件。

    当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。

    在/proc 目录下,其中包含了反映内核和进程树的各种文件。/proc目录挂载的是在内存中所映射的一块区域,所以这些文件和目录并不存在于磁盘中,因此当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息。大多数与 lsof 相关的信息都存储于以进程的 PID 命名的目录中,即 /proc/1234 中包含的是 PID 为 1234 的进程的信息。每个进程目录中存在着各种文件,它们可以使得应用程序简单地了解进程的内存空间、文件描述符列表、指向磁盘上的文件的符号链接和其他系统信息。lsof 程序使用该信息和其他关于内核内部状态的信息来产生其输出。所以lsof 可以显示进程的文件描述符和相关的文件名等信息。也就是我们通过访问进程的文件描述符可以找到该文件的相关信息。

    当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容。 假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:

    首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

    # lsof |grep /var/log/messages
    syslogd   1283      root    2w      REG        3,3  5381017    1773647 /var/log/messages (deleted)

    从上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为 2。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:

    # head -n 10 /proc/1283/fd/2
    Aug  4 13:50:15 holmes86 syslogd 1.4.1: restart.
    Aug  4 13:50:15 holmes86 kernel: klogd 1.4.1, log source = /proc/kmsg started.
    Aug  4 13:50:15 holmes86 kernel: Linux version 2.6.22.1-8 (root@everestbuilder.linux-ren.org) (gcc version 4.2.0) #1 SMP Wed Jul 18 11:18:32 EDT 2007
    Aug  4 13:50:15 holmes86 kernel: BIOS-provided physical RAM map:
    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000100000 - 000000001f7d3800 (usable)
    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved)
    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved)
    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)


    从上面的信息可以看出,查看 /proc/8663/fd/15 就可以得到所要恢复的数据。如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如:
    cat /proc/1283/fd/2 > /var/log/messages
    对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用。

     

    转载于:https://www.cnblogs.com/assassinann/archive/2012/12/18/how_to_use_lsof.html

    展开全文
  • Oracle11g默认模式下,新建表,不会分配表空间,使用EXP命名导出,未分配空间的表不能导出。执行如下过程语句可解决。   --设置11g数据库为以后建立空表分配表空间。 alter system set deferred_segment_...

    Oracle11g默认模式下,新建表,不会分配表空间,使用EXP命名导出,未分配空间的表不能导出。执行如下过程语句可解决。

     

    --设置11g数据库为以后建立空表分配表空间。
    alter system set  deferred_segment_creation=false;


    -刷新数据库所有该用户表的num_rows 。 (得到最新的num_rows ) 

    alter system set  deferred_segment_creation=false;
    /
    declare
    cursor cur1 is select table_name from user_tables ;
    begin

    for cur2 in cur1 loop
    execute immediate 'analyze table '||cur2.table_name||' compute statistics' ;
    end loop;

    end;
    /

    --设置空表allocate extent

    declare cursor cur3 is select table_name from user_tables where num_rows=0 and temporary='N';
    begin
     
    for cur4 in cur3 loop
    execute immediate 'alter table '||cur4.table_name||' allocate extent';
    end loop;

    end;
    /

    展开全文
  • 结构是值类型:值类型在栈上分配空间;类是引用类型:引用类型在堆栈上分配空间;虽然结构与类的类型不一样,可是他们的基类型都是对象(object),c#中所有类型的基类型都是object;...结构:不能从另外一个结构或者...

     结构是值类型:值类型在栈上分配空间;
      类是引用类型:引用类型在堆栈上分配空间;
      虽然结构与类的类型不一样,可是他们的基类型都是对象(object),c#中所有类型的基类型都是object;
      虽然结构的初始化也使用了new 操作符,可是结构对象依然分配在栈上而不是堆上,如果不使用“新建”(new),那么在初始化所有字段之前,字段将保持未赋值状态,且对象不可用。
      结构:不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用sealed声明,可是结构是隐式的sealed;
      类:完全可扩展的,除非显示的声明sealed,否则类可以继承其他类和接口,自也能被继承虽然结构不能被继承,可是结构能够
      继承接口,方法和类继承接口一样;

      结构:
      没有默认的构造函数,但是可以添加构造函数
          Structs cannot contain explicit parameterless constructors
        没有析构函数
      没有 abstract 和 sealed(因为不能继承)
      不能有protected 修饰符
      可以不使用new 初始化
      在结构中初始化实例字段是错误的
          public struct myStruct
          {
              public Int32 i = 0;  //error
          }
      类:
      有默认的构造函数
      有析构函数
      可以使用 abstract 和 sealed
      有protected 修饰符
      必须使用new 初始化

    转载于:https://www.cnblogs.com/sosoft/p/3454099.html

    展开全文
  • 对黑色分区新建简单卷,最后一步提示“无法在此未分配空间中创建新卷,因为该磁盘已经包含最大分区数”  系统吧答:你的原因是因为你的操作不能在基本磁盘上完成,可在基本磁盘上创建的分区个数取决于磁盘的分区...


           网友问:磁盘管理发现有一个黑色的分区,而且显示未分配,其他分区都是深蓝或者浅蓝色的。对黑色分区新建简单卷,最后一步提示“无法在此未分配空间中创建新卷,因为该磁盘已经包含最大分区数”
          系统吧答:你的原因是因为你的操作不能在基本磁盘上完成,可在基本磁盘上创建的分区个数取决于磁盘的分区形式,对于主启动记录 (MBR) 磁盘,可以最多创建四个主分区,或最多三个主分区加上一个扩展分区。在扩展分区内,可以创建多个逻辑驱动器。
          简单来说为了解决这个可以将基本磁盘模式转换成动态磁盘模式。
          可在不影响数据存储的情况下将基本磁盘转换为动态磁盘

          ·分区被转换为简单卷
          ·动态磁盘可被转换成基本磁盘 (数据将丢失,转换前做好备份)

          简单来说动态磁盘就能提供更高次的磁盘服务,它能解决很多以前的基本磁盘不能实现的功能,比如只能创建4个主分区这个概念,比如创建磁盘组合加速硬盘之类的。

    文章由http://www.xitongshoucang.com/news/2427.html整理。

    展开全文
  • 虚拟机初始化总结

    2021-06-01 11:17:25
    这里分卷需要注意,不能直接使用默认分卷大小,需要根据情况设置卷大小。不然就导致C盘剩余空间过少 正常操作: 删除E盘,在C上使用扩展卷,如下图 但当时没有想到扩展卷,就直接在E盘上安装部分程序,例如 T
  • Linux课程设计

    2015-06-12 13:04:54
    逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。 4、 物理区域--PE(Physical Extent...
  • 申请单管理系统

    2014-07-31 11:28:44
    如果申请单还未分配,则弹出的页面中可以分配申请单;如果申请单已分配,则弹出的页面只能够查看申请单的详细信息而不能再次进行分配。 分配申请单 1. 点击分配管理列表中管理列的“分配”按钮,弹出分配申请单...
  • 7、纠正在采用Win2003的WinPE系统下快速分区后不能正常分配盘符的问题。 8、纠正在删除了第一个逻辑分区后,再删除第二个逻辑分区时出现错误的BUG。 9、纠正恢复已删除文件后,重新加载分区时,左侧目录树仍然显示已...
  • 小米4分区工具

    2016-09-12 18:53:11
    用分区助手移动分区把未分配空间集合在右边也就是userdata分区那一边保存修改(提交)然后用DiskGenius新建分区userdata把剩下的空间都给它 文件系统类型linux data partion 勾上对齐到下列扇区数的整数倍数值是8 ...
  • • 值类型不能作为其它任何类型的基类型,因此不能向值类型中增加任何新的虚方法,更不该有任何抽象方法,所有的方法都是sealed的(不可重写); • 装箱的值类型分配在栈上而不是堆上,而栈又不是GC的地盘儿,...
  • 可以加参数,该程序会自动根据内存大小分配适当的内存空间作为高速缓 存),再安装Windows XP即可。另外提醒大家,这个程序在安装完Windows后 ,不要运行,否则Windows可用内存将减少。  4、Win32k.sys是什么...
  • mc9s08ac60自写FLASH例程

    热门讨论 2009-03-28 23:54:17
    注:这个例程的缺点在于直接分配了RAM给擦写FLASH的程序,使这写RAM大部分时间浪费掉而不能用于其他用途 参考文献中介绍了一种较好的实现方式。 参考文献: “在HCS08微控制器上使用FLASH存储器模拟EEPROM”和 ...
  • 由于一旦Minion节点的资源被分配给Pod,那这些资源就不能分配给其他Pod, 除非这些Pod被删除或者退出, 因此,Kubernetes需要分析集群中所有Minion的资源使用情况,保证分发的工作负载不会超出当前该Minion节点...
  •  声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,...
  • 这个项目可指定让AGP装置来使用的系统内存大小,这取用大小是PCI内存地址范围的一部份,可分配给图形内存的空间。 Init Display First: 这个项目可选择当系统开机时先行对AGP或是PCI插槽来做初始化的动作。 [AGP...
  • 多媒体教室

    2013-06-14 08:10:31
    图形按钮区按钮为亮黑色时表示此功能可以使用,为灰色时表示此功能不能使用,为凹下状态表示该功能正在执行。当按下某按钮执行某一功能后,再按 Break 键使这一正在执行的功能停止执行。可以使用系统设置下热键设置...
  • java 面试题 总结

    2009-09-16 08:45:34
    声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其...
  • 注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。 no device —— 没有设备/模拟器连接。 以上输出显示当前已经连接了...
  • 针对我省当前群众体育设施极度短缺的现状,建议建设应以中小型体育场馆为主,大量建设简易的室内运动房,不能盲目的攀大求高,造成不必要的资源浪费。 3.2.3.3加强赛后场馆设施的创收经营工作 公共体育场馆属于社会...
  • 组织单元不能包括来自其他域的对象。组织单元是可以指派组策略设置或委派管理权限的最小作用域或单位。使用组织单元,用户可在组织单元中代表逻辑层次结构的域中创建容器。这样用户就可以根据用户的组织模型管理账户...
  • WinRAR_4.0.exe

    2011-02-04 11:34:33
    不能重新压缩、解密或加密压缩文件数据,它不能整合或创建卷。如果 不和其它开关一起使用,'ch' 命令仅复制压缩文件数据而不修改它。 例如: 设置压缩文件时间为最新的文件: rar ch -tl files.rar cw 写...
  • 16、系统占用磁盘空间小,发布后占用到6M磁盘空间。 17、正式版还有更换系统皮肤、强大的报表统计等功能。 18、有免费版提供给用户使用。 系统主要功能模块及介绍: 1、管理员管理 超级管理员可以添加/删除其他...
  • 实例092 不能重写的方法 5.3 包装类的使用 实例093 将字符串转换成整数 实例094 整数进制转换器 实例095 查看数字的取值范围 实例096 ASCII编码查看器 实例097 Double类型的比较 5.4 面向对象的特征 实例098...
  • 实例092 不能重写的方法 5.3 包装类的使用 实例093 将字符串转换成整数 实例094 整数进制转换器 实例095 查看数字的取值范围 实例096 ASCII编码查看器 实例097 Double类型的比较 5.4 面向对象的特征 实例098...
  • 实例092 不能重写的方法 5.3 包装类的使用 实例093 将字符串转换成整数 实例094 整数进制转换器 实例095 查看数字的取值范围 实例096 ASCII编码查看器 实例097 Double类型的比较 5.4 面向对象的特征 实例098...
  • 实例092 不能重写的方法 5.3 包装类的使用 实例093 将字符串转换成整数 实例094 整数进制转换器 实例095 查看数字的取值范围 实例096 ASCII编码查看器 实例097 Double类型的比较 5.4 面向对象的特征 实例098...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

未分配空间不能新建