Oracle Datafiles & Block Device & Parted & Udev

需求: 1. 使用裸设备作为Oracle数据文件,而且要跳过操作系统或者其它软件提供的卷管理(比如Linux下的LVM)。 2. 由于small datafile限制,有大量磁盘分区需要创建。 以下测试环境操作系统为CentOS 6.0,如果你的操作是RHEL6或者OEL6,也同样适用,如果是RHEL5或者OEL5,那么udev部分的命令是不相同的。但是只需要在操作系统中man udev,查看一下相应的语法即可,思路是相同的。 解决方案: 1. 使用parted命令,脚本式创建多个分区,使用gpt类型分区表,这样可以创建大量primary分区,而如果使用msdos分区,则必须要要创建extend分区,然后再创建logical分区,这样在后面的udev规则文件中,还需要将extend分区排除出去,比较麻烦。 在我的测试环境中,对于/dev/sdc磁盘进行操作,分了11个分区,每个50M。 parted -s /dev/sdc mklabel gpt parted -s /dev/sdc unit MB mkpart primary 1 50 parted -s /dev/sdc unit MB mkpart primary 50 100 parted -s /dev/sdc unit MB mkpart primary 100 150 parted -s /dev/sdc unit MB mkpart primary 150 200 parted…

How to Recover Datafile Which Deleted Accidentally in Linux

今天有客户的数据库意外被删除了整个目录中的数据文件,操作系统级别的删除,然而幸运的是这个数据库没有崩溃,仍然处于open状态的时候,客户就发现了问题,求助到我们,最终完整地恢复了所有数据文件。 在Linux下大致重新演示一下恢复的过程,恢复的步骤与数据库版本没有太大关系,与操作系统的不同会有所不同。 1. 在数据库open的时候,直接删除users表空间中的数据文件。 SQL> select name from v$datafile; NAME ——————————————————————————– /app/oracle/oradata/ORCL/datafile/o1_mf_system_555wqbnk_.dbf /app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_555wqxgl_.dbf /app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_555wr5p6_.dbf /app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf SQL> host rm /app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf 2. 尝试在users表空间中创建表,开始报错。 SQL> create table t tablespace users as select * from dual; create table t tablespace users as select * from dual * ERROR at line 1: ORA-01116: error in opening database file 4 ORA-01110:…

SoftCon 2011 – My Presentation

今天上午为2011中国软件技术大会作的演讲,题目是《VLDB Statistics Gathering Strategy – Something You Need to Know But Maybe You Don’t》 Vldb Statistics Gathering Strategy View more presentations from kamusis 内容实际上是分为两个部分: 1. 我认为理想的数据库表直方图信息收集的策略,这在我之前的文章-Oracle Histogram Investigation也有所描述。 2. 在使用granularity参数进行分区表统计信息收集的时候,有一些需要注意的问题,产生聚合统计信息是高效的方法,但是聚合统计信息在某些场景下却并不会如你所愿的生成。