Simulando ASM no Windows

SQL> alter system set “_asm_allow_only_raw_disks”=false scope=spfile;

No prompt do DOS crie sua pastinha onde estiver espaco pelo menos 1G.

cria a pasta em g:asmfake

Baixar
Ja o DD para windows esta no link:
http://www.chrysocome.net/download

De volta ao sqlplus:
set ORACLE_SID=+ASMsqlplus / as sysdba
SQL> alter system set asm_diskstring=’.ORCLDISK*’,’g:asmfake*’ scope=both;
SQL>shutdown
SQL>startup

Faça o download do DD e coloque em uma pasta para ser executado – http://www.chrysocome.net/dd

Pasta de G:asmfake

26/02/2007 23:50 342.016 dd.exe
13/03/2009 19:20 300 fake.bat
13/03/2009 19:22 10.240.000 fakeasm1
13/03/2009 19:22 10.240.000 fakeasm2
13/03/2009 19:22 10.240.000 fakeasm3
13/03/2009 19:22 10.240.000 fakeasm4
13/03/2009 19:22 10.240.000 fakeasm5
7 arquivo(s) 51.542.316 bytes
2 pasta(s) 6.377.570.304 bytes disponíveis

G:asmfake>type fake.bat
dd if=/dev/zero of=g:asmfakefakeasm1 bs=102400 count=100
dd if=/dev/zero of=g:asmfakefakeasm2 bs=102400 count=100
dd if=/dev/zero of=g:asmfakefakeasm3 bs=102400 count=100
dd if=/dev/zero of=g:asmfakefakeasm4 bs=102400 count=100
dd if=/dev/zero of=g:asmfakefakeasm5 bs=102400 count=100

G:asmfake>

Sem essa alteracao no sqlplus com ASM nao ira funcionar nao …

SQL> alter system set “_asm_allow_only_raw_disks”=false scope=spfile;

Pare e inicie de novo!

Faça a confirmacao dos discos ASM:

SQL> select path from v$asm_disk;
PATH
———————————————–
G:ASMFAKEFAKEASM1
G:ASMFAKEFAKEASM2
G:ASMFAKEFAKEASM5
G:ASMFAKEFAKEASM4
G:ASMFAKEFAKEASM3

Agora é so acionar o dbca e criar os discos normalmente.

Instalacao do ASM

Tivemos um problema recente no red hat 4 ES, mas que foi resolvido com o script

Documentacao
– Sobre o ASM – Download
http://www.oracle.com/technology/tech/linux/asmlib/index.html
– Instalacao
http://www.oracle.com/technology/tech/linux/asmlib/install.html

Com o script abaixo conseguimos prosseguir com a instalacao do ASM, lembrando que esta somente criando arquivos fisicos com o proposito de laboratorio do curso WS2.

# http://oss.oracle.com/projects/oracleasm/dist/documentation/asm-install.txt# /etc/init.d/oracleasm configure
# Copie o script para /home/oracle/script.sh
# Para rodar o script: sh /home/oracle/script.sh

service rawdevices stop

rm -rf /dev/raw

cd /dev

MAKEDEV raw

rm -rf /u01/asmdisks/*
cd /u01/asmdisks

dd if=/dev/zero of=dd if=/dev/zero of=asm_disk2 bs=1024k count=400
dd if=/dev/zero of=asm_disk3 bs=1024k count=400
dd if=/dev/zero of=asm_disk4 bs=1024k count=400
dd if=/dev/zero of=asm_disk5 bs=1024k count=400

chmod 777 asm_disk*

losetup -d /dev/loop1
losetup -d /dev/loop2
losetup -d /dev/loop3
losetup -d /dev/loop4
losetup -d /dev/loop5

losetup /dev/loop1 asm_disk1
losetup /dev/loop2 asm_disk2
losetup /dev/loop3 asm_disk3
losetup /dev/loop4 asm_disk4
losetup /dev/loop5 asm_disk5

echo “/dev/raw/raw1 /dev/loop1” >> /etc/sysconfig/rawdevices
echo “/dev/raw/raw2 /dev/loop2” >> /etc/sysconfig/rawdevices
echo “/dev/raw/raw3 /dev/loop3” >> /etc/sysconfig/rawdevices
echo “/dev/raw/raw4 /dev/loop4” >> /etc/sysconfig/rawdevices
echo “/dev/raw/raw5 /dev/loop5” >> /etc/sysconfig/rawdevices

chown oracle:oinstall /dev/raw/raw[1-5]
# chown root:oinstall /dev/raw/raw[1-5]
chmod 660 /dev/raw/raw[1-5]
chown root:oinstall /dev/loop[1-5]
chmod 660 /dev/loop[1-5]

service rawdevices restart
./localconfig reset
./localconfig delete
./localconfig add
/etc/init.d/oracleasm restart

asmtool -C /u01/asmdisks/asm_disk1 -n disco1 -s /dev/loop1 -l /dev/oracleasm/asmtool -C /u01/asmdisks/asm_disk2 -n disco2 -s /dev/loop2 -l /dev/oracleasm/asmtool -C /u01/asmdisks/asm_disk3 -n disco3 -s /dev/loop3 -l /dev/oracleasm/asmtool -C /u01/asmdisks/asm_disk4 -n disco4 -s /dev/loop4 -l /dev/oracleasm/asmtool -C /u01/asmdisks/asm_disk5 -n disco5 -s /dev/loop5 -l /dev/oracleasm/ls /dev/oracleasm/disks

### alterar na mao o arquivo
# /etc/udev/permissions.d/50-udev.permissions
# raw devices
# raw/*:oracle:oinstall:0660

raw -qa

chmod 777 /dev/raw/*
chown oracle.dba /dev/raw/*
chown oracle.dba /u01/asmdisks/*

cd /home/oracle/oracle/product/10.2.0/db_1/bin

###########################################################################################

Ou RODAR O SCRIPT ABAIXO:
Crie um arquivo e deixe-o no arquivo:

/etc/init.d/S99asdisk

Conteudo do arquivo:

#!/bin/bash
#set -xv

export DESTASMDISKS=”/u01/asmdisks”
export ASMDISKNAME=”asm_disk”
export LO0P=”/dev/loop”
export RAW=”/dev/raw/raw”
export ORACLE_HOME=”/home/oracle”
chowns(){
chown oracle:oinstall -R $1
}
mkdir -p $DESTASMDISKS
for i in 1 2 3 4 5
do
dd if=/dev/zero of=${DESTASMDISKS}/$ASMDISKNAME${i} bs=1024k count=400
sleep 2
chmod 777 ${DESTASMDISKS}/$ASMDISKNAME${i}
sleep 2
losetup /dev/loop${i} ${DESTASMDISKS}/$ASMDISKNAME${i}
sleep 2
raw $RAW${i} /dev/loop${i}
sleep 2
chowns $RAW${i}
sleep 2
done

[ ! -d /stage/OSB ] && mkdir -p /stage/OSB
chowns /stage/OSB
chowns $DESTASMDISKS
chmod 777 /dev/raw/raw*
chmod 777 /u01/asmdisks/*

mv labs solutions $ORACLE_HOME
mv bash_profile-oracle $ORACLE_HOME/.bash_profile

chowns $ORACLE_HOME/labs
chowns $ORACLE_HOME/solutions
chowns $ORACLE_HOME/.bash_profile

set +xv