linuxoracle資料庫實例
Ⅰ 在linux中手動啟動ORACLE實例
在Linux系統中,若Oracle資料庫已安裝並配置為多實例模式,伺服器重啟後可能無法自動啟動所有實例。此時,需要手動啟動未啟動的實例。下面是詳細的步驟:
首先,使用以下命令切換到oracle用戶:
確保在「su」和「oracle」之間包含空格,避免執行「bash: sqlplus: command not found」錯誤。
接下來,在oracle用戶下,使用以下命令查看當前實例和切換實例:
執行命令以確定當前實例,然後根據需要切換實例。
之後,進入sqlplus模式,執行以下命令以開始會話:
使用「sqlplus /nolog」命令啟動會話。
然後,連接到資料庫的dba角色,執行以下命令:
運行「conn /as sysdba」以連接至系統管理員角色。
最後,啟動資料庫實例,執行以下命令:
使用「startup」命令啟動資料庫。
此過程確保手動啟動未自動啟動的Oracle實例,恢復資料庫運行。若發現任何問題,請檢查錯誤日誌以獲取詳細信息,並進行相應調整。
Ⅱ linux中用root用戶怎麼創建oracle實例
先用oracle用戶登錄
su 記住不能加-,取得oracle用戶的環境變數
然後export ORACLE_SID=aaa(實例名)
dbca 按照提示做就OK了
Ⅲ linux上如何刪除oracle實例
刪除oracle實例記錄:
方法一、從圖形界面運行dbca,選擇刪除,按提示一路next;
方法二、手動刪除。
1、關閉所有oracle進程,其實只要shutdown
abort即可.因我的機器oracle沒設置為開機自動啟動,重啟機器後oracle進程一個也沒有,系統很是干凈.
2、刪除實例數據文件和mp文件;
find $ORACLE_BASE/ -name $ORACLE_SID
在我系統裡面顯示如下,將這些目錄直接刪除;
/u01/app/oracle/admin/testdb
/u01/app/oracle/oradata/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/emca/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/dbca/testdb
3、刪除其他配置文件
find $ORACLE_BASE/* -name '*[Bb][Tt][Ss][Dd][Bb]2*' | grep -v
admin| grep -v oradata
將查找結果出現的文件也一一刪除,當然你可以用xarg結合rm刪除.
find結果如下:
/u01/app/oracle/flash_recovery_area/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/emca/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/dbca/testdb
/u01/app/oracle/proct/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_host_testdb
/u01/app/oracle/proct/10.2.0/db_1/rdbms/log/alert_testdb.log
/u01/app/oracle/proct/10.2.0/db_1/host_testdb
/u01/app/oracle/proct/10.2.0/db_1/host_testdb/sysman/emd/state/A190EE260BF6B09EB5805807
28916A3B.alert_testdb.log
/u01/app/oracle/proct/10.2.0/db_1/host_testdb/sysman/log/nmctestdb1521
/u01/app/oracle/proct/10.2.0/db_1/dbs/alert_testdb.log
/u01/app/oracle/proct/10.2.0/db_1/dbs/lktestdb
/u01/app/oracle/proct/10.2.0/db_1/dbs/hc_testdb.dat
/u01/app/oracle/proct/10.2.0/db_1/dbs/orapwtestdb
/u01/app/oracle/proct/10.2.0/db_1/dbs/spfiletestdb.ora
4、最重要的一步,如果你要重建的實例和剛刪除實例的實例名一樣的話,刪除
/etc/oratab文件最後一行。
至此,已干凈刪除linux系統的oracle實例。
Ⅳ 跪求oracle專家指教: 在linux系統下,如何查看資料庫有幾個實例,就是判斷資料庫是單實例還是多實例!!
可以看一下系統中是否有多個虧兄pmon進程,如果有幾個pmon進程,就說明有幾個實例。命令如下:
ps -ef|grep ora_pmon
解釋:pmon進程,進程監視器(Process Monitor)oracle中用於恢復失敗的數據核首庫用戶的強制性進程,它先獲取失敗用戶的標識,釋放該用戶佔有的所有資料庫資源。一般一個oracle實例只能有一個pmon進程,可能通過查看pmon進程的多少來判斷有幾個實例銷氏襲。
Ⅳ linux下如何查看oracle上有多少個實例,包括啟動了的和未啟動的。
用 ps -ef|grep smon
看你當前有多少個已經啟動的實例,
沒啟動的,只能去$ORACLE_HOME/dbs下面去數你有多少init文件了肆慶。
如跡雹做果你有多個ORACLE HOME,姿衡那就挨個數吧
Ⅵ linux下oracle資料庫實例怎麼重建,原來已經有一個實例,因為字元集問題,需要刪除重建,具
首先備份你需要保留的數據
用dbca刪除實例
用dbca建立新的實例
導入備份的數據
Ⅶ Linux下的Oracle11g 監聽和資料庫實例均啟動了但是客戶端無法連接
有兩種情況
1、有防火牆
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 1521 -j ACCEPT添加1521埠訪問策略
/etc/init.d/iptables restart重啟防火牆
或者關閉防火牆
/etc/init.d/iptables stop
2、只監聽的本地訪問
netstat -ntlp檢查
vi $ORACLE_HOME/network/admin/listener.ora
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521))
檢查一下
/etc/hosts主機名配置對了沒
Ⅷ oracle資料庫實例名如何修改
1. 准備
原資料庫的實例名為linuxdb,控制文件、數據文件、聯機日誌文件存放在/home/oracle/ora9/oradata/linuxdb目錄,將所有的文件拷貝到另外一個目錄/home/oracle/ora9/oradata/dbtest。
再將linuxdb 的初始化文件也復制一份出來,執行如下的sql:
Create pfile='/home/oracle/ora9/oracle/dbs/pfiledbtest.ora' from spfile='/home/oracle/ora9/oracle/dbs/spfilelinuxdb.ora';
我們將修改實例名為dbtest。
下面我們開始一步一步地進行處理。
2. 載入初始化文件
打開pfiledbtest.ora文件,修改對應的mp屬性的路徑名,實例名字,控制文件路徑等。
然後執行如下命令:
[oracle@localhost oracle]$ export ORACLE_SID=dbtest
[oracle@localhost oracle]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Proction on Mon Aug 17 16:57:36 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to an idle instance.
SQL> startup pfile='/home/oracle/ora9/oracle/dbs/pfiledbtest.ora' nomount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
SQL>
這樣載入初始化文件就成功了。
下面接著進行,載入控制文件。
3. 載入控制文件
先執行如下命令。
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying controlfile, check alert log for more info
好像是控制文件的路徑不對,修改初始文件再次載入。
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01103: database name 'LINUXDB' in controlfile is not 'DBTEST'
根據錯誤信息提示,是實例名字不一致,但是控制文件是二進制的,用vi打開之後沒法編輯,只能通過用重建控制文件可以解決。
在/home/oracle/ora9/oradata/dbtest目錄下刪除老的三個控制文件。然後開始重建控制文件。
SQL> CREATE CONTROLFILE SET DATABASE "DBTEST" RESETLOGS FORCE LOGGING NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/home/oracle/ora9/oradata/dbtest/redo01.log' SIZE 50M,
9 GROUP 2 '/home/oracle/ora9/oradata/dbtest/redo02.log' SIZE 50M,
10 GROUP 3 '/home/oracle/ora9/oradata/dbtest/redo03.log' SIZE 50M
11 DATAFILE
12 '/home/oracle/ora9/oradata/dbtest/cwmlite01.dbf',
13 '/home/oracle/ora9/oradata/dbtest/devbase_20090408.dbf',
14 '/home/oracle/ora9/oradata/dbtest/drsys01.dbf',
15 '/home/oracle/ora9/oradata/dbtest/example01.dbf',
16 '/home/oracle/ora9/oradata/dbtest/indx01.dbf',
17 '/home/oracle/ora9/oradata/dbtest/odm01.dbf',
18 '/home/oracle/ora9/oradata/dbtest/system01.dbf',
19 '/home/oracle/ora9/oradata/dbtest/tools01.dbf',
20 '/home/oracle/ora9/oradata/dbtest/undotbs01.dbf',
21 '/home/oracle/ora9/oradata/dbtest/users01.dbf',
22 '/home/oracle/ora9/oradata/dbtest/xdb01.dbf'
23 CHARACTER SET ZHS16GBK;
CREATE CONTROLFILE SET DATABASE "DBTEST" RESETLOGS FORCE LOGGING NOARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01990: error opening password file '/home/oracle/ora9/oracle/dbs/orapw'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
根據錯誤提示,是缺少密碼驗證文件,用下面的命令創建密碼文件。
$cd $ORACLE_HOME/dbs
orapwd password=chenli file=orapwdbtest
SQL> CREATE CONTROLFILE SET DATABASE 'dbtest' RESETLOGS FORCE LOGGING NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/home/oracle/ora9/oradata/dbtest/redo01.log' SIZE 50M,
9 GROUP 2 '/home/oracle/ora9/oradata/dbtest/redo02.log' SIZE 50M,
10 GROUP 3 '/home/oracle/ora9/oradata/dbtest/redo03.log' SIZE 50M
11 DATAFILE
12 '/home/oracle/ora9/oradata/dbtest/cwmlite01.dbf',
13 '/home/oracle/ora9/oradata/dbtest/devbase_20090408.dbf',
14 '/home/oracle/ora9/oradata/dbtest/drsys01.dbf',
15 '/home/oracle/ora9/oradata/dbtest/example01.dbf',
16 '/home/oracle/ora9/oradata/dbtest/indx01.dbf',
17 '/home/oracle/ora9/oradata/dbtest/odm01.dbf',
18 '/home/oracle/ora9/oradata/dbtest/system01.dbf',
19 '/home/oracle/ora9/oradata/dbtest/tools01.dbf',
20 '/home/oracle/ora9/oradata/dbtest/undotbs01.dbf',
21 '/home/oracle/ora9/oradata/dbtest/users01.dbf',
22 '/home/oracle/ora9/oradata/dbtest/xdb01.dbf'
23 CHARACTER SET ZHS16GBK;
Control file created.
現在創建成功了。
創建控制文件成功了,下面重新啟動資料庫。
SQL> startup nomount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
SQL> alter database mount;
Database altered.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open RESETLOGS;
Database altered.
查看錶中的記錄,正確的。
修改實例名成功。
4. 總結
由上面的操作可以看到,在資料庫維護中,最重要的是數據文件,初始化文件可以從別的實例拷貝過來,然後修改。控制文件可以重新創建,只要數據文件正確,就可以重建初始化文件和控制文件之後,恢復資料庫。
遇到的錯誤:
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-00200: controlfile could not be created
ORA-00202: controlfile: '/home/ora/ora9/oradata/dbtest/control01.ctl'
ORA-27040: skgfrcre: create error, unable to create file
Linux Error: 2: No such file or directory
請查看初始化文件中,控制文件的路徑是正確,控制文件的路徑上的目錄是否有許可權創建文件,如果這些問題都解決了,那麼應該能成功創建控制文件。