oracle10gR1 asm儲存簡單示例

zhouwf0726發表於2019-02-10

感覺windows下建立ASM儲存資料庫資料不多,抽時間整理了一下,供參考!

環境windows2k3 oracle10gR1

1、磁碟準備:

硬碟 型別 總大小 可用空間
本地磁碟 (C:) 本地磁碟 9.99GB 7.75GB
本地磁碟 (D:) 本地磁碟 9.99GB 9.99GB
本地磁碟 (E:)
本地磁碟 (F:)
本地磁碟 (G:)
本地磁碟 (H:)
本地磁碟 (I:)
本地磁碟 (J:)

2、安裝oracle10g software only:

3、標記ASM儲存驅動器:

/**一些參考資料

To avoid failures of this type, you could use two SCSI controllers, each with two disks, and define a failure group
for the disks attached to each controller. This configuration would enable the disk group to tolerate the failure of
one SCSI controller.

If you are sure that a suitable disk group does not exist on the system, install or identify appropriate disk devices
to add to a new disk group. Use the following guidelines when identifying appropriate disk devices:

All of the devices in an ASM disk group should be the same size and have the same performance characteristics.

Do not specify more than one partition on a single physical disk as a disk group device. Automatic Storage Management
expects each disk group device to be on a separate physical disk.

Although you can specify a logical volume as a device in an Automatic Storage Management disk group, Oracle does not
recommend their use. Logical volume managers can hide the physical disk architecture, preventing Automatic Storage
Management from optimizing I/O across the physical devices.

The asmtoolg(GUI version) and asmtool utilities only work on partitioned disks—you cannot use Automatic Storage
Management on unpartitioned disks.

**/

C:\Documents and Settings\Administrator>asmtool -list
\Device\Harddisk0\Partition1 10236M
\Device\Harddisk0\Partition2 10236M
\Device\Harddisk0\Partition3 4102M
\Device\Harddisk0\Partition4 4102M
\Device\Harddisk0\Partition5 4102M
\Device\Harddisk0\Partition6 4102M
\Device\Harddisk0\Partition7 4102M
\Device\Harddisk0\Partition8 4102M
description:
其中前2塊盤為ntfs格式的C盤和D盤,後邊6塊盤為分配驅動器號的沒有格式化的磁碟。

Use the following steps for asmtoolg:
1. Double-click asmtoolg.
2. Select the “Add or change label” option, then click “Next”. asmtoolg will show the devices available
on the system. Label types include:
a. "Candidate device"- unrecognized disks
b. "Oracle raw device file" – raw device files
c. "Stamped ASM disk"
d. "Unstamped ASM disks."
e. Windows file systems (such as NTFS). Windows file systems and Microsoft Dynamic disks cannot be used for ASM.
3. On the “Stamp Disks” screen, select the disks to stamp. For ease of use, ASM can generate unique stamps for all
of the devices selected for a given prefix. Forexample, if the prefix is DATA, the first ASM link name would be
ORCLDISKDATA0.
4. Optionally, select a disk to edit the individual stamp (ASM link name).
5. Click “Next”.
6. Click “Finish”.

You may use the following steps for asmtool:

asmtool -add \Device\Harddisk0\Partition3 ORCLDISKASM0 \Device\Harddisk0\Partition4 ORCLDISKASM1 \Device\Harddisk0\Partition5 ORCLDISKASM2 \Device\Harddisk0\Partition6 ORCLDISKASM3

4、準備init引數檔案

一點說明:
instance_type是用於區分資料庫例項與ASM例項的一個新引數。asm_diskstring引數指定ASM例項到哪去找它可以使用的驅動器。
\\.\*: 是統一命名約定(Universal Naming Convention,UNC)中的一種符號,通常用於網路。圓點表示本地節點,因此\\.
表示執行ASM的伺服器。星號後緊跟一個冒號(*:) 匹配驅動器名,格式是E:、F:等等。你可以指定多個位置。例如,我本可以
使用asm_diskstring='\\.\E:','\\.\F:',...,但使用萬用字元更簡單。

D:\oracle\product\10.1.0\db_1\database\initOrcl.ora內容如下:

大多數引數都不用於ASM例項,因此該檔案可以非常短。如果對緩衝區、共享池及其它SGA儲存結構的容量大小採用預設值,那就太省事了。

instance_type=asm
background_dump_dest=d:\oracle\product\10.1.0\admin\orcl\bdump
core_dump_dest=d:\oracle\product\10.1.0\admin\orcl\cdump
user_dump_dest=d:\oracle\product\10.1.0\admin\orcl\udump
compatible=10.1.0.2.0
asm_diskstring='\\.\*:'

5、建立工作路徑:

MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\BDUMP
MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\CDUMP
MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\CREATE
MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\PFILE
MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\UDUMP

以下可以藉助dbca工具來完成或者按照下邊的方法指令碼建庫:

6、建立ASM例項asm和ASM磁碟組:

ORADIM -NEW -ASMSID asm -SYSPWD system

C:\Documents and Settings\Administrator>SET ORACLE_SID=asm

C:\Documents and Settings\Administrator>SQLPLUS /NOLOG

SQL*Plus: Release 10.1.0.2.0 - Production on 星期二 10月 17 17:32:43 2006

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL> CONNECT /AS SYSDBA
已連線到空閒例程。

SQL> STARTUP PFILE='D:\ORACLE\PRODUCT\10.1.0\DB_1\DATABASE\INITORCL.ORA';
OSM 例程已啟動

Total System Global Area 100663296 bytes
Fixed Size 787648 bytes
Variable Size 99875648 bytes
Database Buffers 0 bytes
Redo Buffers 0 bytes
ORA-15110: ??????


SQL> CREATE SPFILE FROM PFILE='D:\ORACLE\PRODUCT\10.1.0\DB_1\DATABASE\INITORCL.ORA';

檔案已建立。

SQL> SHUTDOWN

ORA-15100: ??????????
OSM 例程已關閉

SQL> startup

OSM 例程已啟動
Total System Global Area 100663296 bytes
Fixed Size 787648 bytes
Variable Size 99875648 bytes
Database Buffers 0 bytes
Redo Buffers 0 bytes
ORA-15110: ??????

SQL> SELECT DISK_NUMBER, PATH FROM V$ASM_DISK;

0 \\.\D:
1 \\.\E:
2 \\.\F:
3 \\.\G:
4 \\.\H:
5 \\.\I:
6 \\.\J:
7 \\.\C:

已選擇8行。


SQL> CREATE DISKGROUP MYDISKGROUP NORMAL REDUNDANCY
FAILGROUP MyDiskGroup01 DISK '\\.\E:','\\.\F:'
FAILGROUP MyDiskGroup02 DISK '\\.\G:','\\.\H:';

Diskgroup created.

SQL> SELECT NAME,STATE,TOTAL_MB FROM V$ASM_DISKGROUP;

NAME STATE TOTAL_MB
-------------------- ---------------------- ----------
MYDISKGROUP MOUNTED 16408

SQL> SELECT FAILGROUP,NAME,TOTAL_MB FROM V$ASM_DISK;

FAILGROUP NAME TOTAL_MB
-------------------- -------------------- ----------
5122
4102
4102
10236
MYDISKGROUP01 MYDISKGROUP_0000 4102
MYDISKGROUP01 MYDISKGROUP_0001 4102
MYDISKGROUP02 MYDISKGROUP_0002 4102
MYDISKGROUP02 MYDISKGROUP_0003 4102

可以通過以下命令來維護ASM磁碟組:如果是oracle10gR2有個新工具ASMCMD管理ASM磁碟組很好用:)

ALTER DISKGROUP MYDISKGROUP
ADD FAILGROUP MYDISKGROUP01 DISK '\\.\I:'
FAILGROUP MYDISKGROUP01 DISK '\\.\J:';

ALTER DISKGROUP MYDISKGROUP
DROP DISK MYDISKGROUP_0001, MYDISKGROUP_0003;

ASM磁碟組建立好後,現有的資料庫例項也可以使用它了(可以把現有資料庫的表空間建立在ASM磁碟組)。

例如:
CREATE TABLESPACE MYASMTBS DATAFILE '+MYDISKGROUP/CSLYN/DATAFILES/OTHER_TBS.DBF' SIZE 100M;

7、建立新資料庫:

DBCA選擇ASM儲存......

SQL> SELECT NAME,TOTAL_MB,TOTAL_MB - FREE_MB AS USE_MB FROM V$ASM_DISK;
由於資料冗餘,ASM磁碟組的使用將是我們資料檔案OTHER_TBS大小的2倍。

注意4、5、6是建立磁碟組的方法;7是用dbca建立新例項的方法。

8、關於故障恢復:

從磁碟故障中恢復再簡單不過了。驅動器發生故障時,ASM自動從盤組中刪除它,重新構建驅動器發生故障時丟失的所有映象檔案,
並重新平衡資料。只要磁碟組中保留了足夠的自由空間用於重新構建從已丟失驅動器的資料的映象,資料庫例項就將不僅能繼續執行
而且會更安全地執行,因為對所有資料都仍能構建映象。唯一需要花時間的是ASM要重新對所丟失的資料構建映象。你不必讓自己承擔
太大壓力就能在一個新驅動器中換入資料。但是,如果沒有足夠的自由空間來恢復丟失的資料,ASM將不能重新構建映象檔案,因而
資料庫將停止執行,就像用完存檔日誌空間時資料庫會停止執行一樣。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756652/viewspace-242259/,如需轉載,請註明出處,否則將追究法律責任。

相關文章