【轉】新建例項開啟已有的資料庫 — 資料庫與例項的區分測試
TOM說:資料庫可被許多例項安裝和開啟,或者一個接一個的例項安裝和開啟,或者由多個例項同時安裝和開啟(即RAC)……一個資料庫可以同時被許多例項安裝和開啟,這就是關於RAC的所有內容了。
下面我們測試一下看看,新建立一個例項,開啟一個已經存在的資料庫:
--1.檢視一下現有例項(orasid)及資料庫的資訊
C:\Documents and Settings\yuechaotian>set oracle_sid=orasid
已連線到空閒例程。 SQL> startup
ORACLE 例程已經啟動。 Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> set linesize 1000
SQL> show parameter spfile NAME TYPE VALUE
-------- ----------- ------------------------------
spfile string %ORACLE_HOME%\DATABASE\SPFILE%
ORACLE_SID%.ORA
SQL> set wrap off
SQL> select * from v$controlfile; STATUS NAME
------- -----------------------------------
D:\ORACLE\ORADATA\ORA\CONTROL01.CTL
D:\ORACLE\ORADATA\ORA\CONTROL02.CTL
D:\ORACLE\ORADATA\ORA\CONTROL03.CTL SQL> select name from v$datafile; NAME
-----------------------------------
D:\ORACLE\ORADATA\ORA\SYSTEM01.DBF
D:\ORACLE\ORADATA\ORA\UNDOTBS01.DBF
D:\ORACLE\ORADATA\ORA\CWMLITE01.DBF
D:\ORACLE\ORADATA\ORA\DRSYS01.DBF
D:\ORACLE\ORADATA\ORA\EXAMPLE01.DBF
D:\ORACLE\ORADATA\ORA\INDX01.DBF
D:\ORACLE\ORADATA\ORA\ODM01.DBF
D:\ORACLE\ORADATA\ORA\TOOLS01.DBF
D:\ORACLE\ORADATA\ORA\USERS01.DBF
D:\ORACLE\ORADATA\ORA\XDB01.DBF
D:\ORACLE\ORADATA\TEST\TP_TEST01.DBF NAME
-----------------------------------
D:\ORACLE\ORADATA\TEST\TP_BAK01.DBF
D:\ORACLE\ORADATA\TEST\TP_P1.DBF
D:\ORACLE\ORADATA\TEST\TP_P2.DBF
D:\ORACLE\ORADATA\TEST\TP_JB_MID.DBF
D:\ORACLE\ORADATA\TEST\TP_P3.DBF 已選擇16行。 SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER
---------- ------- ------- ---------------------------------
5 ONLINE D:\ORACLE\ORADATA\ORA\REDO05.LOG
4 STALE ONLINE D:\ORACLE\ORADATA\ORA\REDO04.LOG --2.關閉資料庫及例項orasid,建立pfile檔案-- 建立完畢後,修改pfile2.ora中的引數*.instance_name='orasid2'。(其實不修改也沒關係,同樣可以啟動資料庫)SQL> shutdown
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> create pfile='d:\pfile2.ora' from spfile; 檔案已建立。 SQL> exit
從Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中斷開 --3.建立新例項orasid2C:\Documents and Settings\yuechaotian>oradim
ORADIM:
請輸入以下命令之一:
透過指定以下引數建立例程:
-NEW -SID sid | -SRVC service [-INTPWD password] [-MAXUSERS number] [-STARTMODE a|m] [-PFILE file] [-TIMEOUT secs]
透過指定以下引數編輯例程:
-EDIT -SID sid [-NEWSID sid] [-INTPWD passwd] [-STARTMODE a|m] [-PFILE file] [-SHUTMODE a|i|n] [-SHUTTYPE srvc|inst]
透過指定以下引數刪除例程:
-DELETE -SID sid | -SRVC service name
透過指定以下引數啟動服務和例程:
-STARTUP -SID sid [-USRPWD password] [-STARTTYPE srvc|inst|srvc,inst] [-PFILE filename]
透過指定以下引數關閉服務和例程:
-SHUTDOWN -SID sid [-USRPWD password] [-SHUTTYPE srvc|inst|srvc,inst] [-SHUTMODE a | i | n]
透過指定以下引數查詢幫助: -? | -h | -help
您為 -NEW 命令輸入了無效的選項 C:\Documents and Settings\yuechaotian>oradim -new -sid orasid2 -intpwd test -maxusers 5 -startmode a -pfile 'd:\pfile2.ora' --4.使用新建立的例項 orasid2 登入剛才 orasid 例項登入的資料庫,並測試。C:\Documents and Settings\yuechaotian>set oracle_sid=orasid2 C:\Documents and Settings\yuechaotian>sqlplus SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 12月 22 12:10:39 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 請輸入使用者名稱: / as sysdba
已連線到空閒例程。 --4.1 此時例項orasid2尚未啟動,不能做任何操作SQL> alter database mount;
alter database mount
*
ERROR 位於第 1 行:
ORA-01034: ORACLE not available
SQL> shutdown
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist --4.2使用指定引數檔案啟動資料庫
SQL> startup pfile=d:\pfile2.ora
ORACLE 例程已經啟動。 Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。 SQL> select status from v$instance; STATUS
------------
OPEN --4.3檢查spfile:目前使用pfile登入的資料庫
SQL> set linesize 1000
SQL> show parameter spfile NAME TYPE VALUE
-------- ----------- ----------
spfile string --4.4檢查例項名:orasid2
SQL> show parameter instance_name NAME TYPE VALUE
-------------- ----------- --------
instance_name string orasid2 --4.5 檢查控制檔案、資料檔案、線上重做日誌檔案:與orasid開啟的是同一個資料庫
SQL> set wrap off
SQL> select * from v$controlfile; STATUS NAME
------- ------------------------------------
D:\ORACLE\ORADATA\ORA\CONTROL01.CTL
D:\ORACLE\ORADATA\ORA\CONTROL02.CTL
D:\ORACLE\ORADATA\ORA\CONTROL03.CTL SQL> select name from v$datafile; NAME
------------------------------------
D:\ORACLE\ORADATA\ORA\SYSTEM01.DBF
D:\ORACLE\ORADATA\ORA\UNDOTBS01.DBF
D:\ORACLE\ORADATA\ORA\CWMLITE01.DBF
D:\ORACLE\ORADATA\ORA\DRSYS01.DBF
D:\ORACLE\ORADATA\ORA\EXAMPLE01.DBF
D:\ORACLE\ORADATA\ORA\INDX01.DBF
D:\ORACLE\ORADATA\ORA\ODM01.DBF
D:\ORACLE\ORADATA\ORA\TOOLS01.DBF
D:\ORACLE\ORADATA\ORA\USERS01.DBF
D:\ORACLE\ORADATA\ORA\XDB01.DBF
D:\ORACLE\ORADATA\TEST\TP_TEST01.DBF NAME
------------------------------------
D:\ORACLE\ORADATA\TEST\TP_BAK01.DBF
D:\ORACLE\ORADATA\TEST\TP_P1.DBF
D:\ORACLE\ORADATA\TEST\TP_P2.DBF
D:\ORACLE\ORADATA\TEST\TP_JB_MID.DBF
D:\ORACLE\ORADATA\TEST\TP_P3.DBF 已選擇16行。 SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER
---------- ------- ------- ---------------------------------
5 ONLINE D:\ORACLE\ORADATA\ORA\REDO05.LOG
4 STALE ONLINE D:\ORACLE\ORADATA\ORA\REDO04.LOG --5.那麼我們新開一個session,使用原來的 orasid 例項登入一下現在的資料庫看看Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp. C:\Documents and Settings\yuechaotian>set oracle_sid=orasid C:\Documents and Settings\yuechaotian>sqlplus SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 12月 22 12:16:22 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 請輸入使用者名稱: / as sysdba
已連線到空閒例程。 --5.1這時候例項 orasid 還沒有啟動,我們把它啟動:SQL> select status from v$instance;
select status from v$instance
*
ERROR 位於第 1 行:
ORA-01034: ORACLE not available
SQL> startup
ORACLE 例程已經啟動。 Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
ORA-01102: ??? EXCLUSIVE ???????? SQL> select status from v$instance; STATUS
------------------------
STARTED --5.2 現在資料庫是nomount狀態,我們mount一下看看會出現什麼錯誤:SQL> alter session set nls_language=american; Session altered. SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01102: cannot mount database in EXCLUSIVE mode --5.3 另一個非sysdba使用者是不可以連線的SQL> conn test/test
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
Warning: You are no longer connected to ORACLE.
SQL> conn / as sysdba
已連線。
SQL> select *from v$controlfile; 未選定行 SQL> set wrap onSQL> show parameter control_files NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
control_files string D:\oracle\oradata\ora\control0
1.ctl, D:\oracle\oradata\ora\c
ontrol02.ctl, D:\oracle\oradat
a\ora\control03.ctl SQL> alter session set nls_language=american; Session altered. SQL> select *from v$logfile;
select *from v$logfile
*
ERROR at line 1:
ORA-01507: database not mounted
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01102: cannot mount database in EXCLUSIVE mode --6. 收尾:我們還是在會話1中把資料庫關閉,並刪除這個例項orasid2吧SQL> shutdown
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> exit
從Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中斷開 C:\Documents and Settings\yuechaotian>oradim -delete -sid orasid2 --7.那麼這時候會話2就可以開啟資料庫了SQL> shutdown
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started. Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。SQL> 我們用啟動會話2是產生的錯誤(步驟5)來做為本次測試的結論吧:ORA-01102 cannot mount database in EXCLUSIVE mode
Cause: Some other instance has the database mounted exclusive or shared.
Action: Shut down the other instance or mount in a compatible mode.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733350/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DB2-WINDOWS測試新建例項資料庫配置管理DB2Windows資料庫
- 單例項資料庫工具轉化多例項資料庫單例資料庫
- 單例項資料庫手工轉化多例項資料庫單例資料庫
- 使用任意例項名來開啟資料庫測試--男人(例項)理論上能OPEN任意一個女人(資料庫)資料庫
- oracle資料庫與oracle例項Oracle資料庫
- oracle 資料庫例項Oracle資料庫
- 資料庫和例項資料庫
- 例項,資料庫,資料字典與資料庫建立的關係資料庫
- oracle例項和資料庫的區別Oracle資料庫
- 資料庫正規化與例項資料庫
- oracle例項、資料庫及相關資料庫狀態的理解和測試Oracle資料庫
- 多例項資料庫刪除例項資料庫
- 資料庫例項 (SQL Server)資料庫SQLServer
- 資料庫設計例項資料庫
- 3.1.5.4 啟動例項並mount 資料庫資料庫
- 3.1.5.1 關於啟動資料庫例項資料庫
- 資料庫和例項instance的區別資料庫
- 資料庫名、例項名、資料庫域名、全域性資料庫名、服務名概念區分資料庫
- 如何修改資料庫例項及資料庫名資料庫
- Oracle Restart啟動資料庫例項故障一例OracleREST資料庫
- 資料庫中的XML應用例項 (轉)資料庫XML
- Oracle資料庫例項啟動步驟分析Oracle資料庫
- RAC資料庫啟用、禁用一個例項資料庫
- oracle資料庫名和例項名的區別Oracle資料庫
- 例項管理及資料庫的啟動關閉資料庫
- mongodb關閉資料庫例項MongoDB資料庫
- oracle資料庫例項狀態Oracle資料庫
- Oracle例項和Oracle資料庫Oracle資料庫
- 建立ASM例項和資料庫ASM資料庫
- oracle資料庫建立資料庫例項-九五小龐Oracle資料庫
- RAC資料庫恢復到單例項資料庫資料庫單例
- 4 管理資料庫例項和叢集資料庫資料庫
- Oracle中關於資料庫例項名與資料庫服務名(轉載)Oracle資料庫
- Java連線各種資料庫的例項 (轉)Java資料庫
- 生產資料庫、開發資料庫、測試資料庫中的資料的區分資料庫
- 資料庫–如何連線RDS例項,使用雲資料庫?資料庫
- Oracle 資料庫例項啟動關閉過程Oracle資料庫
- 一臺MySQL資料庫啟動多個例項MySql資料庫