--**用文件代替磁盘,模拟ASM的安装
C:\>asmtool -create C:\asmdisk\DISK1 1024 --在C盘asmdisk目录下创建一个1024M的ASM文件代替磁盘
C:\>asmtool -create C:\asmdisk\DISK2 1024 --下面2个可以直接用复制重命名的方式进行创建
C:\>asmtool -create C:\asmdisk\DISK3 1024
--***************创建ASM过程*******************
c:\Dbca
配置自动存储管理 --报错:要使用自动存储管理(ASM),必须配置并启动ORACLE集群同步服务(CSS)
C:\>localconfig Add --执行后系统的服务中多了一个OracleCSService服务 可以实现ORACLE2个实例之间的同步
配置自动存储管理 --下一步
修改ASM参数: asm_diskstring C:\asmdisk\* --让ASM到我们创建的文件夹去找磁盘
输入SYS口令 --创建ASM实例用于远程管理的SYS用户口令
下一步完成创建ASM --完成后系统的服务中多了一个OracleASMService+ASM这个服务;OracleASMService是ASM的服务,+ASM是实例名
--****************操作ASM实例创建磁盘组******************
c:\Set oracle_sid=+asm
sqlplus / As Sysdba
SQL> select path from v$asm_disk;
no rows selected --这里没有查询出数据,是因为默认ASM只允许裸磁盘,修改参数就可以
SQL> alter system set "_asm_allow_only_raw_disks"=false scope=spfile; --隐含参数,所以要scope=spfile写入配置文件
SQL> shutdown Immediate
SQL> startup
SQL> select path from v$asm_disk; --成功查询出asmdisk\下的3个文件
回到dbca
在ASM磁盘组中新建 --由于刚刚重启数据库,通道结束,取消再点一次新建就能看到磁盘路径
磁盘组名:dg1 冗余 高是在3块磁盘互相备份 常规2块互相备份 外部不备份 这里选常规 选中DISK1和DISK2 确定
磁盘组名:dg2 外部 选中DISK3 确定
完成
--****************创建ASM数据库***********************
c:\Dbca
创建数据库
定制数据库
全局数据库名:asmdb SID:asmdb
不要EM
自动存储管理(ASM)
DG1作为存储
所有数据库文件使用公共位置
快速恢复区用DG2
组件都不要
SGA 200 PGA 40 --根据需要
创建完成 --完成后系统的服务中多了一个OracleServiceASMDB
监听增加数据库服务
sqlplus Sys@asmdb As Sysdba
Select * From dba_data_files
/*FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_STATUS
1 +DG1/asmdb/datafile/system.262.839954983 1 SYSTEM 314572800 38400 AVAILABLE 1 YES 34359721984 4194302 1280 314507264 38392 SYSTEM
2 +DG1/asmdb/datafile/undotbs1.263.839955015 2 UNDOTBS1 209715200 25600 AVAILABLE 2 YES 34359721984 4194302 640 209649664 25592 ONLINE
3 +DG1/asmdb/datafile/sysaux.264.839955033 3 SYSAUX 125829120 15360 AVAILABLE 3 YES 34359721984 4194302 1280 125763584 15352 ONLINE
4 +DG1/asmdb/datafile/users.266.839955047 4 USERS 5242880 640 AVAILABLE 4 YES 34359721984 4194302 160 5177344 632 ONLINE*/
Select * From v$controlfile
/* STATUS NAME IS_RECOVERY_DEST_FILE BLOCK_SIZE FILE_SIZE_BLKS
1 +DG1/asmdb/control01.ctl NO 16384 430
2 +DG1/asmdb/control02.ctl NO 16384 430
3 +DG1/asmdb/control03.ctl NO 16384 430*/
Select * From v$logfile
/* GROUP# STATUS TYPE MEMBER IS_RECOVERY_DEST_FILE
1 1 ONLINE +DG1/asmdb/redo01.log NO
2 2 ONLINE +DG1/asmdb/redo02.log NO
3 3 ONLINE +DG1/asmdb/redo03.log NO*/
Select * From Dba_temp_files
/* FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
1 +DG1/asmdb/tempfile/temp.265.839955045 1 TEMP 20971520 2560 AVAILABLE 1 YES 34359721984 4194302 80 19922944 2432*/
SQL> show parameter spfile;
/*NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
spfile string C:\ORACLE\PRODUCT\10.2.0\DB_1\
DATABASE\SPFILE+ASM.ORA */
*注册表中的ORACLE_SID=ASMDB 默认修改成最后创建的数据库实例SID 所以用sqlplus / 登录上的是ASMDB数据库
--***************封装起来的ASM,需要开扇窗**ASMCMD****************
c:\asmcmd
"asmcmd: the environment variable ORACLE_HOME is not set." --未设置ORACLE_HOME
c:\Set ORACLE_HOME = C:\oracle\product\10.2.0\db_1
c:\asmcmd
asmcmd:command disallowed By Current Instance Type --实例的类型不符合
SQL> show parameter instance_type
/*NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_type string RDBMS*/
c:\Set oracle_sid=+asm
sqlplus / As Sysdba
SQL> show parameter instance_type
/*NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
instance_type string asm*/
C:\>asmcmd
ASMCMD>
C:\>asmcmd -p --显示当前目录的ASMCMD
ASMCMD [+] >help
commands:
--------
cd --改变目录
du --查看当前ASMCMD [+dg1/asmdb/datafile] > du 相当于UNIX的du -s
--Used_MB Mirror_used_MB
--632 1267
find --查找文件 ASMCMD [+dg1/asmdb/datafile] > find + SYSAUX.* -t datafile 缩小查找范围到datafile中查找
-- +DG1/ASMDB/DATAFILE/SYSAUX.264.839968473
help --help du
ls --list ls -l 详细列表
lsct --查看哪个客户端连接到该ASM实例 ASMCMD [+dg1/asmdb/datafile] > lsct
--DB_Name Status Software_Version Compatible_version Instance_Name
--asmdb CONNECTED 10.2.0.1.0 10.2.0.1.0 asmdb
lsdg --list 磁盘组
mkalias --创建文件的别名
mkdir --创建目录
pwd --显示当前路径
rm --移除
rmalias --移除别名
Create Tablespace test Datafile '+dg1/asmdb/datafile/test.dbf' Size 10m; --创建表空间
ASMCMD [+dg1/asmdb/datafile] > ls -l test.dbf
Type Redund Striped Time Sys Name
N test.dbf => +DG1/ASMDB/DATAFILE/TEST.268.839971471 --test.dbf是别名指向+DG1/ASMDB/DATAFILE/TEST.268.839971471
ASMCMD [+dg1/asmdb/datafile] > mkalias '+DG1/ASMDB/DATAFILE/system.262.839954983' '+DG1/ASMDB/DATAFILE/SYSTEM.dbf' --创建别名
--默认数据库不失败SYSTEM.dbf这个别名,需要修改控制文件中的路径
Shutdown Immediate
startup Mount
Alter System Rename File '+DG1/ASMDB/DATAFILE/system.262.839954983' To '+DG1/ASMDB/DATAFILE/SYSTEM.dbf'
Alter Database Open;
Select * From dba_data_files Where FILE_ID=1 --+DG1/asmdb/datafile/SYSTEM.dbf
--****别名的另一种创建方法
Set oracle_sid=+asm
sqlplus / As Sysdba
ALTER DISKGROUP dg1 ADD ALIAS '+DG1/ASMDB/DATAFILE/SYSTEM.dbf' For '+DG1/ASMDB/DATAFILE/system.262.839954983'
rmalias SYSTEM.dbf; --删除别名
rmalias -r --如果别名是目录,递归删除目录及目录下面的文件
--****au: Allocate unit
--****ASM相关视图
Select * From dict Where table_name Like 'V$ASM%'
/*
TABLE_NAME COMMENTS
1 V$ASM_ALIAS Synonym for V_$ASM_ALIAS
2 V$ASM_CLIENT Synonym for V_$ASM_CLIENT
3 V$ASM_DISK Synonym for V_$ASM_DISK
4 V$ASM_DISKGROUP Synonym for V_$ASM_DISKGROUP
5 V$ASM_DISKGROUP_STAT Synonym for V_$ASM_DISKGROUP_STAT
6 V$ASM_DISK_STAT Synonym for V_$ASM_DISK_STAT
7 V$ASM_FILE Synonym for V_$ASM_FILE
8 V$ASM_OPERATION Synonym for V_$ASM_OPERATION
9 V$ASM_TEMPLATE Synonym for V_$ASM_TEMPLATE
*/ --连接ASM实例进行研究
--**********************
用第三方工具管理+ASM实例
--**********************
编辑listener.ora文件,增加
/*
(SID_DESC =
(GLOBAL_DBNAME = asm)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME = +asm)
)
*/
lsnrctl reload --重新加载监听
编辑tnsnames.ora文件,增加 --由于配置的是静态的监听,所以tnsname只能配置静态的服务名
ASM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.50)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ASM)
)
)
--****ASM相关视图
Select * From dict Where table_name Like 'V$ASM%'
/*
TABLE_NAME COMMENTS
1 V$ASM_ALIAS Synonym for V_$ASM_ALIAS
2 V$ASM_CLIENT Synonym for V_$ASM_CLIENT
3 V$ASM_DISK Synonym for V_$ASM_DISK
4 V$ASM_DISKGROUP Synonym for V_$ASM_DISKGROUP
5 V$ASM_DISKGROUP_STAT Synonym for V_$ASM_DISKGROUP_STAT
6 V$ASM_DISK_STAT Synonym for V_$ASM_DISK_STAT
7 V$ASM_FILE Synonym for V_$ASM_FILE
8 V$ASM_OPERATION Synonym for V_$ASM_OPERATION
9 V$ASM_TEMPLATE Synonym for V_$ASM_TEMPLATE
*/ --连接ASM实例进行研究
Select * From V$ASM_DISK --*研究下FAILGROUP
asmtool Create --创建disk4,5
Alter Diskgroup dg1 Add Failgroup 'FG1_DISK4' Disk 'C:\asmdisk\DISK4' Name 'DG1_DISK4' --disk4加到DG1
Alter Diskgroup dg2 Add Failgroup 'FG2_DISK5' Disk 'C:\asmdisk\DISK5' Name 'DG2_DISK5' --DISK5加到DG2
此时dg1有3个磁盘,3个failgroup,即使删除其中一个,数据库也可以启动
Select * From V$ASM_DISKGROUP --磁盘组
Select * From V$ASM_CLIENT --客户端
Select * From V$ASM_FILE --ASM文件
Select * From V$ASM_ALIAS --别名和文件列表
Select * From V$ASM_OPERATION --记录较长的操作,如删除dg1中的disk1,disk2和disk4仍然满足启动条件,oracle计算重新恢复disk1的过程就会记录进来 power(状态 0暂停 )
Select * From V$ASM_TEMPLATE --ASM模版,REDUNDANCY(冗余 UNPROT没有镜像 MIRROR2个镜像 HIGH3个镜像) STRIPE(条带 COARSE粗糙1M FINE精细128K)
sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (None) --屏蔽了系统认证
--plsql中alt+选择,可以选择矩形区域,类似CMD中的标记
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15810196/viewspace-1146684/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15810196/viewspace-1146684/