共计 3404 个字符,预计需要花费 9 分钟才能阅读完成。
这篇文章将为大家详细讲解有关 ASM 命令有哪些,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一、ASM 管理 登录 / 启动 / 关闭
1. 启动和关闭 ASM 实例
[oracle@node2 dbs]$ export ORACLE_SID=+ASM2 [oracle@node2 dbs]$ sqlplus / as sysdba
SQL startup
SQL shutdown immediate;
2. 检查 disk group 信息的 SQL
SQL SELECT STATE, REDUNDANCY, TOTAL_MB, FREE_MB, NAME, FAILGROUP FROM v$asm_disk;
SQL SELECT GROUP_NUMBER, NAME, STATE, TYPE, TOTAL_MB, FREE_MB, UNBALANCED FROM v$asm_diskgroup;
3. 创建新的 diskgroup
SQL create diskgroup dgtest normal redundancy
failgroup DATA1 disk /dev/oracleasm/VOL5 name DATA1
failgroup DATA2 disk /dev/oracleasm/VOL6 name DATA2;
4. 删除 diskgroup
SQL drop diskgroup DATA including contents; -- 对于多结点的 diskgroup, 只能有在一个 asm 实例上挂载之后才能被 dorp, 其他结点必须 dismount。
5. 手动 mount 命令
ALTER DISKGROUP ALL DISMOUNT; ALTER DISKGROUP ALL MOUNT; ALTER DISKGROUP DATA DISMOUNT; ALTER DISKGROUP DATA MOUNT;
6. 为 diskgroup 增加 disk
SQL alter diskgroup DATA add disk /dev/oracleasm/VOL5 name VOL5, /dev/oracleasm/VOL6 name VOL6;
7. 从 diskgroup 删除 disk
SQL alter diskgroup DATA drop disk VOL5;
8. 取消删除 disk 的命令,只能在上述命令没执行完成的时候有效
ALTER DISKGROUP DATA UNDROP DISKS;
二、数据文件的管理
1. Create an alias using the fully qualified filename.
ALTER DISKGROUP disk_group_1 ADD ALIAS +disk_group_1/my_dir/my_file.dbf FOR +disk_group_1/mydb/datafile/my_ts.342.3
2. Create an alias using the numeric form filename.
ALTER DISKGROUP disk_group_1 ADD ALIAS +disk_group_1/my_dir/my_file.dbf FOR +disk_group_1.342.3
3. Rename an alias.
ALTER DISKGROUP disk_group_1 RENAME ALIAS +disk_group_1/my_dir/my_file.dbf TO +disk_group_1/my_dir/my_file2.dbf
4. Delete an alias.
ALTER DISKGROUP disk_group_1 DELETE ALIAS +disk_group_1/my_dir/my_file.dbf
5. Drop file using an alias.
ALTER DISKGROUP disk_group_1 DROP FILE +disk_group_1/my_dir/my_file.dbf
6. Drop file using a numeric form filename.
ALTER DISKGROUP disk_group_1 DROP FILE +disk_group_1.342.3
7. Drop file using a fully qualified filename.
ALTER DISKGROUP disk_group_1 DROP FILE +disk_group_1/mydb/datafile/my_ts.342.3
8. Create datafile
SQL create tablespace users2 datafile +TESTDB_DATA1 size 100m;
四. ASMCMD 工具
ASM 实例的管理除了 sqlplus,Oracle 还提供了 asmcmd 命令,具体参考 help。
1. 查看 asm bin 的位置
[oracle@node1 bin]$ which asmcmd
/u01/app/oracle/product/10.2.0/db_1/bin/asmcmd
2. 切换至 asmcmd 模式
[oracle@node1 bin]$ cd /u01/app/oracle/product/10.2.0/db_1/bin/
[oracle@node1 bin]$ ./asmcmd
3. 具体的 asm 命令
cd: -- 进入下级目录或进入所需要的目录 du: -- 显示指定的 ASM 目录下 ASM 文件占用的所有磁盘空间 find: -- 查找所需的文件 help: -- 显示帮助信息 ls: -- 列出 ASM 目录下的内容及其属性 lsct: -- 列出当前 ASM 客户端的信息 lsdg: -- 列出所有磁盘组及其属性 mkalias:-- 为系统生成的文件名创建别名 mkdir: -- 创建新目录 pwd: -- 显示当前目录路径 rm: -- 删除 ASM 目录下的某个文件或文件夹 rmalias:-- 删除别名
五、注意事项
1. ASM 实例在配置好并且创建了 ASM 磁盘组之后,还必须保证已经注册到 Listener 中后才能在数据库实例中使用,否则就需要手工注册 ASM 实例:
SQL alter system register;
2. 一旦数据库实例使用 ASM 作为存储,那么在数据库实例运行时是无法关闭 ASM 实例的。否则会报 ORA-15097:cannot SHUTDOWN ASM instance with connected RDBMS instance. 错误。
3. Oracle 中删除 ASM 实例
删除自动存储管理实例 +ASM 实例 +ASM 的删除是在数据库被卸载之后完成的,并删除 /ORACLE_HOME/dbs 目录下的所有文件 (除了与 ASM 相关的)。
因此必须完成下列步骤:
4.1 在命令提示符中,设置 oracle_sid 环境变量为 +ASM 实例:
# export oracle_sid=+ASM
4.2 启动 SQL*Plus 并以 sys 用户连接到自动存储管理 +ASM 实例:
# sqlplus / as sysdba
4.3 使用下列命令来确定是否有数据库实例正在使用自动存储管理实例 +ASM:
SQL select instance_name from v$asm_client;
该命令结果列出所有正在运行并使用 +ASM 实例的数据库实例。只要 +ASM 包含正在支持的数据库实例,就不能删除该 +ASM 实例。
(其实可以先 shutdown 对应的数据库实例,然后从 asmcmd 进入磁盘组所在目录,删掉对应的数据库目录和文件就可以了)。
4.4 如果没有与 +ASM 相关联的数据库实例,则删除与该实例相关联的磁盘组。
首先,识别与 +ASM 相关联的磁盘组:
SQL select name from v$asm_diskgroup;
其次,用下列命令删除每个要删除的磁盘组:
SQL drop diskgroupincluding contents;
4.5 关闭 +ASM 实例并退出 SQL*Plus:
SQL shutdown
SQL exit
4.6 在命令提示符中输入下列命令,删除 +ASM 服务(我没找到这个命令,所以没有运行):
oradim -delete -asmsid +ASM
关于“ASM 命令有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。