Oracle使用数据字典查看ASM相关信息
oracle ASM 配置

oracle ASM 配置自动存储管理(ASM)ASM 是Oracle 数据库10g 中一个非常出色的新特性,它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件RAID 等服务。
ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡I/O 以删除“热点”。
它还支持直接和异步的I/O 并使用Oracle9i 中引入的Oracle 数据管理器API(简化的I/O 系统调用接口)。
ASM 不是一个通用的文件系统,并只能用于Oracle 数据文件、重做日志以及控制文件。
ASM 中的文件既可以由数据库自动创建和命名(通过使用Oracle 管理文件特性),也可以由DBA 手动创建和命名。
由于操作系统无法访问ASM 中存储的文件,因此对使用ASM 文件的数据库执行备份和恢复操作的唯一途径就是通过恢复管理器(RMAN)。
ASM 作为单独的Oracle 实例实施,只有它在运行时其他数据库才能访问它。
在Linux 上,只有运行OCSSD 服务(由Oracle 通用安装程序默认安装)才能使用ASM。
ASM 需要的内存不多:对大多数系统,只需64 MB。
安装ASM在Linux 平台上,ASM 可以使用原始设备,或通过ASMLib 接口管理的设备。
出于易于使用和性能方面的原因,Oracle 建议在原始设备上使用ASMLib。
ASMLib 现在可以从OTN 免费下载。
本部分逐步讲解使用ASMLib 配置一个简单ASM 实例和构建一个使用ASM 进行磁盘存储的数据库的全过程。
确定所需的ASMLib 版本ASMLib 以三个Linux 程序包组成的程序包集提供:∙oracleasmlib - ASM 库∙oracleasm-support - 用于管理ASMLib 的实用程序∙oracleasm - ASM 库的内核模块每个Linux 发行套件都有其自己的ASMLib 程序包集。
在每个发行套件中,每个内核版本都有一个相应的oracleasm 程序包。
oracle 数据字典查询语句

oracle 数据字典查询语句Oracle 数据字典是一个包含了数据库中所有对象和结构的元数据集合。
通过查询数据字典,可以获取数据库的详细信息,如表、列、索引、约束、触发器等对象的定义和属性。
下面列举了十个常用的Oracle 数据字典查询语句。
1. 查询所有表名:```sqlSELECT TABLE_NAME FROM ALL_TABLES;```这个查询语句将返回当前用户下所有表的名称。
2. 查询表的列信息:```sqlSELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名';```这个查询语句将返回指定表的所有列名、数据类型、数据长度和是否可空。
3. 查询表的索引信息:```sqlSELECT INDEX_NAME, COLUMN_NAME, COLUMN_POSITION FROM ALL_IND_COLUMNS WHERE TABLE_NAME = '表名';这个查询语句将返回指定表的所有索引名称、索引列名和索引列位置。
4. 查询表的主键信息:```sqlSELECT CONSTRAINT_NAME, COLUMN_NAME FROM ALL_CONS_COLUMNS WHERE TABLE_NAME = '表名' AND CONSTRAINT_NAME = 'PK_主键名'; ```这个查询语句将返回指定表的主键约束名和主键列名。
5. 查询表的外键信息:```sqlSELECT CONSTRAINT_NAME, COLUMN_NAME, R_CONSTRAINT_NAME, R_OWNER, R_TABLE_NAME, R_COLUMN_NAME FROM ALL_CONS_COLUMNS WHERE TABLE_NAME = '表名' AND CONSTRAINT_TYPE = 'R';```这个查询语句将返回指定表的外键约束名、外键列名、参考表的所有者、参考表名和参考列名。
oracleasm磁盘管理基础篇(一)

oracleasm磁盘管理基础篇(一)今天是2014-02-27,从今天开始准备记录一系列的asm笔记。
在此记录一下。
(一)asm常见参数:和database实例一样,asm同样具有启动实例的相关参数,具体如下:asm_diskgroups:指定asm实例启动的时候需要mount的disk group名字:asm_disktsring :指定一个asm实例寻找磁盘的路径名可以有通配符。
asm_power_limit:指定在磁盘组中平衡数据的时候默认的power 大小。
asm_preferred_read_failure_groups:指定优先读取的故障组diagnostic_dest:asm实例diagnostics的目录instance_type:实例类型,对于asm实例必须为asmremote_login_passwordfile:验证是否需要去读密码文件(二)asm实例和数据库实例参数文件搜索过程:对于asm实例在启动的时候需要参数文件,那么一般搜索过程为:1、先根据GPNP profile文件指定的参数文件位置进行寻找2、如果没有在GPNP profile中指定的目录找到,那么将寻找$ORACLE_HME/dbs/spfile+ASM.ora3、如果没有spfile+ASM.ora,那么将寻找pfile文件。
如果上述没有找到则无法启动asm对于数据库实例启动的时候需要参数文件,那么搜素过程为:1、寻找 $ORACLE_HOME/dbs/spfile.ora,2、寻找 $ORACLE_HOME/dbs/spfile.ora3、寻找 $ORACLE_HOME/dbs/init.ora如果上述没有找到参数文件,那么数据库实例无法启动。
(三)使用sql命令create diskgroup创建磁盘组当创建磁盘组之前需要注意一下几点:1、指定磁盘组的唯一名字(注:不要使用对象名字)2、指定磁盘组的平衡等级,一旦自定将无法修改3、指定的磁盘将被格式化为oracle asm磁盘组的磁盘4、选择指定磁盘组属于指定的故障组5、选择指定故障组的类型(有QUORUM和REGULAR故障组)6、指定磁盘组的属性(如软件兼容版本或是au大小等)注意:一个磁盘只能属于一个磁盘组,且所有刚刚创建的磁盘都是有唯一的地址路径不属于现有的所有磁盘组,如果一个磁盘原先属于一个磁盘组,但是坏掉了当修复后,这个磁盘将不在是磁盘组的一部分,但是asm实例依然在磁盘组中保留该磁盘的成员信息,可以使用force参数将该磁盘加入磁盘组。
oracle数据字典的使用

数据字典数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户。
用户只能在数据字典上执行查询操作,而其维护和修改是由系统自动完成。
数据字典包括:数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表,数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过查询数据字典试图取得系统信息,数据字典视图主要包括:user_xxx,all_xxx,dba_xxx三种类型。
er_tables:显示当前用户所拥有的表。
他只返回用户所对用方案的所有表。
select tabel_name from users_tables;2.all_tables:用于显示当前用户可以访问的所有表,它不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其他方案的表。
select tabel_name from all_tables;3.dba_tables它会显示所有方案拥有的数据表,但是查询这种数据库字典视图,要求用户必须是dba角色或是有select anytable系统权限。
例如:当用system用户查询数据字典视图dba_tables 时,会返回system,sys,scott....方案所对应的数据库表。
在建立用户时,oracle会把用户的信息用户存放在数据字典中,当给用户赋予权限或者角色时,oracle会把权限或者角色的详细信息存放在数据字典中。
dba_users可以查询显示所有数据库用户的详细信息。
desc dba_role_privs(看表的列结构)数据字典视图:dba_sys_privs可以显示用户具有的系统权限。
数据字典视图:dba_tab_privs可以显示用户具有的对象权限。
数据字典视图:dba_col_privs可以显示用户具有的列权限。
数据字典视图:dba_role_privs可以显示用户所有具有的角色。
数据字典视图:1.查看scott具有的角色,可查询dba_role_privs;角色是若干个权限的集合。
OracleASM存储管理常用命令

SQL> crsctl check cssd
5、查看ASM管理的磁盘及磁盘组信息
$ export ORACLE_SID='+ASM'
$ sqlplus /nolog
$ conn /as sysdba
SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;
11、验证磁盘组元数据的内部一致性
SQL> ALTER DISKGROUP dgroupA CHECK ALL;
12、===========启动ASMCMD命令=============
$ su - oracle
$ export ORACLE_SID=+ASM1
$ asmcmd
ASMCMD>help
9、从磁盘组中删除一个磁盘
SQL> ALTER DISKGROUP dgroupA DROP DISK A5;
--取消磁盘删除操作
SQL> ALTER DISKGROUP dgroupA UNDROP DISKS;
10、卸载磁盘组
SQL> ALTER DISKGROUP dgroupA DISMOUNT;
2、创建 ASM 磁盘。
以 root 用户身份在任何一个节点上创建 ASM 磁盘。
命令:# /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
3、查看ASM磁盘
以root用户在任何一个节点上执行下面命令:
命令:# /etc/init.d/oracleasm listdisks
Oracle-ASM-详解

相关说明:
ASM实例的SGA需要的内存很小,一般默认值即可,无需修改。ASMSGA的默认值如下:
SHARED_POOL_SIZE=48M
LARGE_POOL_SIZE=12M
SHARED_POOL_RESERVED_SIZE=24M
SGA_MAX_SIZE=88M
这些默认值可以在sqlplus中通过showparameter查看。
RBAL:这个进程的主要功能是打开每个磁盘的所有磁盘和数据的Rebalance。
ASMB:这个进程作为ASM实例和数据库实例之间的信息通道。这个进程负责与ASM实例的通信,它先利用DiskgroupName从CSS获得管理该Diskgroup的ASM实例的连接串,然后建立到ASM的持久连接,两个实例之间通过这条连接定期交换信息,同时也是一种心跳机制。
*.asm_diskgroups='FLASH_RECOVERY_AREA','DATA'
*.background_dump_dest='/u01/app/oracle/admin/+ASM/bdump'
*.cluster_database=true
*.core_dump_dest='/u01/app/oracle/admin/+ASM/cdump'
ASM_DISKSTRING:定义哪些磁盘可以被ASM使用,ASM实例启动时就根据这个参数值扫描发现ASM磁盘,配置了这个参数以后,还必须确认ORACLE用户对这些磁盘有操作的权限
1.如果使用裸设备,用逗号分隔每个设备名:
Asm_diskstring='/dev/raw/raw1','/dev/raw/raw2','/dev/raw/raw3'
ORACLE_ASM_概述

ORACLE_ASM_概述Oracle ASM(Automatic Storage Management)是Oracle数据库管理系统中的一项功能强大的存储管理技术。
它提供了一个集成的、高性能的存储解决方案,用于管理数据库文件、控制数据分布和提供高可用性。
下面将对Oracle ASM进行详细的概述。
Oracle ASM的主要目标是简化数据库存储的管理和维护。
它将数据文件和日志文件直接映射到操作系统的文件系统,而无需使用文件系统路径来引用它们。
这样做的好处是,ASM可以自动管理多个存储设备(如磁盘组),并为数据库文件提供统一的访问接口。
这样,数据库管理员就可以更轻松地管理存储设备,并且不需要了解底层的物理存储细节。
ASM使用逻辑概念来管理存储,这使得它与底层的物理存储设备解耦。
例如,ASM使用概念上的“磁盘组”来组织存储设备。
磁盘组是一个逻辑容器,它包含多个物理设备(如磁盘)并提供统一的命名空间。
ASM将数据文件分布在磁盘组的多个磁盘上,以提高性能和可靠性。
它还使用“重定义”来保持文件的完整性,并提供与文件相关的一致性保护机制。
使用ASM,数据库管理员可以更容易地配置和管理数据库存储。
例如,他们可以使用ASM命令来创建和管理磁盘组、向磁盘组添加/删除磁盘、创建/删除ASM实例等。
此外,ASM还提供了许多性能和可靠性方面的优势。
例如,ASM可以自动在磁盘组的多个磁盘上分布数据库文件,以提高I/O性能。
它还可以通过数据文件重定义来自动修复数据坏块,从而提供更高的数据可靠性。
另一个重要的特性是ASM可以与Oracle数据库实例无缝集成。
ASM可以自动识别ASM实例中的数据库文件,并为每个文件提供统一的命名约定。
这意味着数据库管理员可以在ASM文件系统中直接引用数据文件,而无需指定文件系统路径。
这大大简化了数据库管理中的一些重要任务,如备份和恢复操作。
值得注意的是,ASM并不是Oracle数据库的唯一存储选项。
oracle ASM 管理

为系统生成的文件名创建别名
ቤተ መጻሕፍቲ ባይዱ
2) ASMCMD命令示例
ASMCMD> lsdg
State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name
首选需要创建磁盘组,由于不能通过ASMCMD命令创建或删除磁盘组,以及添加或删除磁盘组中的磁盘,所以我们通过oracle 10g中新的SQL命令来完成磁盘组的创建:
在本实例中有22G和44G两种大小的LUN,先通过操作系统命令或通过ASM实例中v$asm_disk视图中的信息确认这两种大小的LUN的设备名,建立2个磁盘组ORAHIS_22G及ORAHIS_44G:
1.ASM实例的启动和关闭
ASM实例上运行与其它数据库相似,不过用默认的STARTUP MOUNT命令代替了STARTUP命令。此外,我们还可以用STARTUP RESTRICT来暂时阻止数据库实例连接到ASM实例上并安装磁盘组。如果人们在ASM实例上使用SHUTDOWN命令,在ASM完成关机操作之前,他会等待所有的相关的数据库都关闭。唯一的例外是,如果使用SHUTDOWN ABORT,则ASM实例并不将ABORT命令传送到相关的数据库,而是所有的相关数据库都会立即执行一条SHUTDOWN ABORT命令。
上述lsdg命令的结果显示共有两个磁盘组ORAHIS_22G和ORAHIS_44G,状态是“MOUNTED”,类型是外部冗余(EXTERNAL REDUNDANCY),当前没有重现平衡(rebalance)操作,也没有磁盘组需要重现平衡。Sector大小是512字节,Block大小是4096字节,分配单元是1048576字节,即1M,ORAHIS_22G磁盘组大小为622160M,空闲大小为318776M,offline disks的数量为0,由于是外部冗余类型,故Req_mir_free_MB 为0。