asm實例資料庫實例
❶ ASM是什麼意思
ASM指的是匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。
在匯編語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數的地址。在不同的設備中,匯編語言對應著不同的機器語言指令集,通過匯編過程轉換成機器指令。特定的匯編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。
(1)asm實例資料庫實例擴展閱讀
匯編語言比機器語言的可讀性要好,但跟高級語言比較而言,可讀性還是較差。不過採用它編寫的程序具有存儲空間佔用少、執行速度快的特點,這些是高級語言所無法取代的。在實際應用中,是否使用匯編語言,取決於具體應用要求、軟體開發時間和質量等方面作權衡。
匯編語言作為機器語言之上的第二代編程語言,它也有很多優點:
1、可以輕松的讀取存儲器狀態以及硬體I/O介面情況
2、編寫的代碼因為少了很多編譯的環節,可以能夠准備的被執行
3、作為一種低級語言,可擴展性很高
參考資料來源:網路-匯編語言
❷ 如何關閉資料庫的asm實例進程
在oracle資料庫中關閉asm的實例進程的方法:
1、Shut down all ASM instances on all nodes. To shut down an ASM instance, enter the following command, where node is the name of the node where the ASM instance is running:
$ oracle_home/bin/srvctl stop asm -n node
❸ Oracle 在shutdown以後無法啟動,ASM和資料庫實例都起不來。
啟動實例需要在伺服器上做。遠程做不了的。
因為實例未啟動,就無法通過listener注冊,遠程client就到不實例。
❹ oracle 中asm用法
正好剛整理了一個這方面的資料,先貼給你吧.
准備ASM環境
ASM使用一個名叫「+ASM」的資料庫實例來管理ASM磁碟,因此在配置ASM磁碟之前,需要先啟動ASM實例。另外還需要注意,ASM 實例必須要先於資料庫實例啟動,和資料庫實例同步運行,遲於資料庫實例關閉。ASM 實例的創建和刪除可以用DBCA 工具來操作。在DBCA的第一個界面選擇配置自動存儲管理就可以進入ASM配置的界面。
根據提示運行腳本就可以配置和啟動CSS(Cluster Synchronization Service)了,注意要以root的身份運行這個腳本,運行情況如下:
# /u01/app/oracle/proct/10.2.0/db_1/bin/localconfig add
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configuration for local CSS has been initialized
Adding to inittab
Startup will be queued to init within 90 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
s1
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)
ASM可以使用裸設備或者ASMLib方式, 因為裸設備的維護更羅嗦一些,本文只討論ASMLib方式。為了在Linux系統中使用ASMLib方式准備ASM磁碟,需要安裝相關的軟體,下載鏈接如下:
下載時注意選擇自己的操作系統和內核的版本,我下載到的是以下三個軟體:
oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
oracleasm-support-2.1.4-1.el5.i386.rpm
這里特別需要注意第一個軟體要和你的Linux內核的版本一致。(其實我的內核版本是2.6.18-155.el5,但是在官方網站找不到完全對應的版本,只好使用這個2.6.18-164.el5的版本了,後面會講怎麼解決這個問題。)接下來進行軟體的安裝,只需要使用rpm命令即可。
# rpm -ivh oracleasm*
現在安裝oracleasm模塊可能會報錯,像我因為沒有找到對應我的內核版本的oracleasm軟體就遇到了這個問題。經過一番查找,發現軟體將oracleasm的模塊文件oracleasm.ko安裝到了目錄/lib/moles/2.6.18-164.el5/kernel/drivers/addon/oracleasm中,而我的默認的模塊文件路徑應該是/lib/moles/2.6.18-155.el5,因此決定手工建立相關的目錄和文件。
# mkdir -p /lib/moles/2.6.18-155.el5/kernel/drivers/addon/oracleasm
# cp oracleasm.ko /lib/moles/2.6.18-155.el5/kernel/drivers/addon/oracleasm
然後再安裝oracleasm的模塊文件就可以通過了:
# depmod -a
# modprobe oracleasm
最後進行oracleasm服務的初始配置
# service oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
好了,現在已經有了初步的ASM配置環境,接下來就可以准備磁碟了。
添加ASM磁碟組
為了實現ASM的磁碟負載均衡和冗餘能力,我准備使用四個磁碟建立ASM的磁碟組,因此需要為Linux系統添加四個磁碟。為了搭建這個環境,我使用的是VMware環境,因此添加磁碟就非常容易了。只需要在VMware的設置中選擇添加硬體即可,而且現在的VMware版本是可以支持磁碟的熱插拔的。無需關閉Linux系統,直接添加磁碟即可。添加完四個磁碟之後,為了讓Linux系統馬上識別這幾個磁碟,可以運行如下命令:
# echo 'scsi add-single-device 0 0 1 0' > /proc/scsi/scsi
# echo 'scsi add-single-device 0 0 2 0' > /proc/scsi/scsi
# echo 'scsi add-single-device 0 0 3 0' > /proc/scsi/scsi
# echo 'scsi add-single-device 0 0 4 0' > /proc/scsi/scsi
運行fdisk -l命令可以看到系統中增加了/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde四個磁碟。使用fdisk工具在這個四個磁碟上各建立一個分區(具體步驟略,不熟悉的可以查閱Linux的fdisk命令用法)。
然後運行oracleasm createdisk命令添加ASM磁碟:
# oracleasm createdisk VOL1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
依次添加/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1四個磁碟分區,完成後檢查如下:
# oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
這時運行DBCA工具的ASM配置向導就可以建立ASM磁碟組了。進入DBCA向導後,選擇「Configure Automatic Storage Management」,然後單擊「Create New」按鈕,可以看到ASM磁碟組的配置界面。輸入磁碟組的名稱,如「dg1」,關於冗餘級別,我選擇了Norma,並且將VOL1和VOL2設置為一個Failure Group,而VOL3和VOL4設置為一個Failure Group。
以上操作也可以使用sqlplus連接到ASM實例上,使用命令完成。
為了連接到ASM實例上,首先需要設置ORACLE_SID環境變數,然後再使用sqlplus進行連接:
# ORACLE_SID=+ASM
# sqlplus / as sysdba
創建Disk Group的語句如下:
SQL> create diskgroup dg1 normal rendancy
failgroup fg1 disk 'ORCL:VOL1','ORCL:VOL2'
failgroup fg2 disk 'ORCL:VOL3','ORCL:VOL4';
至此,ASM磁碟組的准備已經完成,終於可以在ASM上建立資料庫了。還是使用DBCA工具,選擇「Create Database」進入創建資料庫的向導。按照向導操作,只是在選擇存儲機制時,選擇ASM類型。
❺ ORACLE資料庫 用了ASM存儲,ASM實例老是掛掉,alert.log里有600報錯: OR
ORA-00600: internal error code, arguments: [kfrValAcd30]可能是bug或者硬體故障導致.基於客戶的情況,最大可能就是由於硬體故障導致asm 磁碟組的acd無法正常進行,從而無法mount成功.如果運氣好,通過kfed相關修復可以正常mount成功,運氣不好可以通過底層進行恢復數據文件,從而最大限度恢復數據.
參考類似文章:ORA-600 kfrValAcd30 恢復
❻ oracle實例和asm實例是兩種說法還是兩個單獨的個體牛人解釋下。。
oracle實例一般指資料庫實例,asm實例是指oracle用戶管理磁碟的asm對應的實例,兩者是互相獨立的,是不同的概念。oracle實例和asm實例分別有自己的內存結構,自己的sys用戶。
一台機器上可以只有oracle實例或者只有asm實例,也可以兩者都有。
如果覺得好請採納。
❼ 如何判斷 oracle 使用 asm
正好剛整理了一個這方面的資料,先貼給你吧.
准備ASM環境
ASM使用一個名叫「+ASM」的資料庫實例來管理ASM磁碟,因此在配置ASM磁碟之前,需要先啟動ASM實例。另外還需要注意,ASM 實例必須要先於資料庫實例啟動,和資料庫實例同步運行,遲於資料庫實例關閉。ASM 實例的創建和刪除可以用DBCA 工具來操作。在DBCA的第一個界面選擇配置自動存儲管理就可以進入ASM配置的界面。
根據提示運行腳本就可以配置和啟動CSS(Cluster Synchronization Service)了,注意要以root的身份運行這個腳本,運行情況如下:
# /u01/app/oracle/proct/10.2.0/db_1/bin/localconfig add
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configuration for local CSS has been initialized
Adding to inittab
Startup will be queued to init within 90 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
s1
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)
ASM可以使用裸設備或者ASMLib方式, 因為裸設備的維護更羅嗦一些,本文只討論ASMLib方式。為了在Linux系統中使用ASMLib方式准備ASM磁碟,需要安裝相關的軟體,下載鏈接如下:
下載時注意選擇自己的操作系統和內核的版本,我下載到的是以下三個軟體:
oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
oracleasm-support-2.1.4-1.el5.i386.rpm
這里特別需要注意第一個軟體要和你的Linux內核的版本一致。(其實我的內核版本是2.6.18-155.el5,但是在官方網站找不到完全對應的版本,只好使用這個2.6.18-164.el5的版本了,後面會講怎麼解決這個問題。)接下來進行軟體的安裝,只需要使用rpm命令即可。
# rpm -ivh oracleasm*
現在安裝oracleasm模塊可能會報錯,像我因為沒有找到對應我的內核版本的oracleasm軟體就遇到了這個問題。經過一番查找,發現軟體將oracleasm的模塊文件oracleasm.ko安裝到了目錄/lib/moles/2.6.18-164.el5/kernel/drivers/addon/oracleasm中,而我的默認的模塊文件路徑應該是/lib/moles/2.6.18-155.el5,因此決定手工建立相關的目錄和文件。
# mkdir -p /lib/moles/2.6.18-155.el5/kernel/drivers/addon/oracleasm
# cp oracleasm.ko /lib/moles/2.6.18-155.el5/kernel/drivers/addon/oracleasm
然後再安裝oracleasm的模塊文件就可以通過了:
# depmod -a
# modprobe oracleasm
最後進行oracleasm服務的初始配置
# service oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
好了,現在已經有了初步的ASM配置環境,接下來就可以准備磁碟了。
添加ASM磁碟組
為了實現ASM的磁碟負載均衡和冗餘能力,我准備使用四個磁碟建立ASM的磁碟組,因此需要為Linux系統添加四個磁碟。為了搭建這個環境,我使用的是VMware環境,因此添加磁碟就非常容易了。只需要在VMware的設置中選擇添加硬體即可,而且現在的VMware版本是可以支持磁碟的熱插拔的。無需關閉Linux系統,直接添加磁碟即可。添加完四個磁碟之後,為了讓Linux系統馬上識別這幾個磁碟,可以運行如下命令:
# echo 'scsi add-single-device 0 0 1 0' > /proc/scsi/scsi
# echo 'scsi add-single-device 0 0 2 0' > /proc/scsi/scsi
# echo 'scsi add-single-device 0 0 3 0' > /proc/scsi/scsi
# echo 'scsi add-single-device 0 0 4 0' > /proc/scsi/scsi
運行fdisk -l命令可以看到系統中增加了/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde四個磁碟。使用fdisk工具在這個四個磁碟上各建立一個分區(具體步驟略,不熟悉的可以查閱Linux的fdisk命令用法)。
然後運行oracleasm createdisk命令添加ASM磁碟:
# oracleasm createdisk VOL1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
依次添加/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1四個磁碟分區,完成後檢查如下:
# oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
這時運行DBCA工具的ASM配置向導就可以建立ASM磁碟組了。進入DBCA向導後,選擇「Configure Automatic Storage Management」,然後單擊「Create New」按鈕,可以看到ASM磁碟組的配置界面。輸入磁碟組的名稱,如「dg1」,關於冗餘級別,我選擇了Norma,並且將VOL1和VOL2設置為一個Failure Group,而VOL3和VOL4設置為一個Failure Group。
以上操作也可以使用sqlplus連接到ASM實例上,使用命令完成。
為了連接到ASM實例上,首先需要設置ORACLE_SID環境變數,然後再使用sqlplus進行連接:
# ORACLE_SID=+ASM
# sqlplus / as sysdba
創建Disk Group的語句如下:
SQL> create diskgroup dg1 normal rendancy
failgroup fg1 disk 'ORCL:VOL1','ORCL:VOL2'
failgroup fg2 disk 'ORCL:VOL3','ORCL:VOL4';
至此,ASM磁碟組的准備已經完成,終於可以在ASM上建立資料庫了。還是使用DBCA工具,選擇「Create Database」進入創建資料庫的向導。按照向導操作,只是在選擇存儲機制時,選擇ASM類型。
❽ oracle asm實例與普通實例有什麼區別
ASM實例與ORACLE實例差不多,都是由sga和一堆後台進程組成,從功能上來看,區別在於oracle實例管理的是資料庫,而asm實例只是管理asm盤陣。
❾ oracle dbca創建資料庫時找不到ASM實例
實驗環境:
操作系統:RedHat Linux 6.4
資料庫版本:Oracle 11.2.0.2.0
在使用DBCA創建Oracle資料庫的時候,發現找不到ASM磁碟組:
錯誤排查:
1、執行:
/usr/sbin/oracleasm scandisks和/usr/sbin/oracleasm listdisks
查看執行結果, listdisk可以正常的將磁碟組可顯示出來.
2、切換到 grid 用戶下 ,查看ASM實例是否啟動,並執行查詢
sqlplus / as sysdba
select group_number,path,mount_status,state from v$asm_disk;
select group_number,offline_disks,state from v$asm_diskgroup;
查看磁碟以及磁碟組及其磁碟狀態都正常(正常狀態為mount);
3、用戶組判斷
id oracle 和id grid
查看oracle用戶是否在admdba組裡面
4、查看oracle用戶和grid用戶的$ORACLE_HOME/bin/oracle文件的許可權
$ORACLE_HOME/bin/oracle該文件的默認許可權為6751許可權,有個s許可權,如果s許可權消失,這時通過OS認證將不能登錄到資料庫;
經過對問題的逐一排查,終於找到了問題的所在:
執行 chmod +s oracle 解決問題
總結:
DBCA建庫找不到ASM磁碟的問題所在:
1. Incorrect permission setting for oracle user.
2. ASM instance was not started or diskgroups are not mounted.
3. The diskgroup resources are not online.
4. The permission setting for the asm devices are incorrect.
5. The oracle executable under /bin has incorrect permission settings.
6. the file system for grid home was mounted with option 』nosuid』.
❿ 使用ASM 實例的情況下,需要修改哪些資料庫
ASM 實例由參數文件控制,其方式與常規資料庫實例相同。通常設置的參數包括:
? INSTANCE_TYPE應該設置且必須為ASM,表示ASM 實例,標識要啟動的實例是ASM,而不是資料庫實例。這是唯一一個必須定義的參數。對於資料庫實例,該參數值設置為RDBMS。
? ASM_POWER_LIMIT:控制重新平衡操作的速度即指定磁碟rebalance的程度。值的范圍從1 到11,11 表示最快。如果省略,該值默認為1。指定的級別越高,則rebalance的操作就會越快被完成,當然這也意味著這個時間段內將佔用更多的資源,指定級別較低的話,隨人rebalance操作會耗時更久,但對當前系統的IO及負載影響會更少,這需要根據實際情況衡量。另外,這個參數指定的只是一個默認值,在操作過程中,即可以隨時動態更改,也可以在語句級命令行時指定power,覆蓋該默認值。
修改ASM實例初始化參數文件的命令規則與資料庫初始化參數完全相同,比如說:
SQL> alter system set asm_power_limit=5;
System altered.
? ASM_DISKSTRING是一個與操作系統相關的值,ASM 使用它來限制搜索時考慮的磁碟集即是設置ASM啟動時檢查的磁碟,該選項可以同時指定多個值,並且支持通配符。比如只檢查/DEV/SD*。默認值為空字元串,為空的話,表示ASM將查找系統中所有ASM擁有讀寫許可權的設備。這在大多數情況下就足夠了。如上所示的約束性更強的值可以減少ASM 執行搜索所需的時間,從而提高磁碟組裝載次數。
? ASM_DISKGROUPS:是ASM 實例啟動時或使用ALTER DISKGROUP ALL MOUNT命令時,ASM 實例要裝載的磁碟組的名稱列表。如果為空的話,那麼實際就僅僅啟動到nomount狀態。如果使用SPFILE的話,該參數一般不需要手動修改,ASM能夠自動更新該初始化參數中的值。
Oracle Restart 會裝載列為相關磁碟組的磁碟組,即使這些磁碟組未與ASM_DISKGROUPS參數列在一起也是如此。該參數沒有默認值。