1.???????? 準(zhǔn)備

成都創(chuàng)新互聯(lián)專注于霸州企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,商城系統(tǒng)網(wǎng)站開發(fā)。霸州網(wǎng)站建設(shè)公司,為霸州等地區(qū)提供建站服務(wù)。全流程按需定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
原數(shù)據(jù)庫的實例名為linuxdb,控制文件、數(shù)據(jù)文件、聯(lián)機日志文件存放在/home/oracle/ora9/oradata/linuxdb目錄,將所有的文件拷貝到另外一個目錄/home/oracle/ora9/oradata/dbtest。
再將linuxdb 的初始化文件也復(fù)制一份出來,執(zhí)行如下的sql:
Create pfile='/home/oracle/ora9/oracle/dbs/pfiledbtest.ora' from spfile='/home/oracle/ora9/oracle/dbs/spfilelinuxdb.ora';
我們將修改實例名為dbtest。
下面我們開始一步一步地進行處理。
2.???????? 加載初始化文件
打開pfiledbtest.ora文件,修改對應(yīng)的dump屬性的路徑名,實例名字,控制文件路徑等。
然后執(zhí)行如下命令:
[oracle@localhost oracle]$ export ORACLE_SID=dbtest
[oracle@localhost oracle]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production 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.???????? 加載控制文件
先執(zhí)行如下命令。
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'
根據(jù)錯誤信息提示,是實例名字不一致,但是控制文件是二進制的,用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
根據(jù)錯誤提示,是缺少密碼驗證文件,用下面的命令創(chuàng)建密碼文件。
$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.
現(xiàn)在創(chuàng)建成功了。
創(chuàng)建控制文件成功了,下面重新啟動數(shù)據(jù)庫。
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.???????? 總結(jié)
由上面的操作可以看到,在數(shù)據(jù)庫維護中,最重要的是數(shù)據(jù)文件,初始化文件可以從別的實例拷貝過來,然后修改。控制文件可以重新創(chuàng)建,只要數(shù)據(jù)文件正確,就可以重建初始化文件和控制文件之后,恢復(fù)數(shù)據(jù)庫。
遇到的錯誤:
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
請查看初始化文件中,控制文件的路徑是正確,控制文件的路徑上的目錄是否有權(quán)限創(chuàng)建文件,如果這些問題都解決了,那么應(yīng)該能成功創(chuàng)建控制文件。
1、改密碼
(1).打開doc命令框鍵入:sqlplus /nolog
(2).輸入:connect / as sysdba
(3).修改密碼:alter user userName identified by passWord;
(4).解鎖:alter user userName account unlock;
(5).退出:exit;
2、開服務(wù)
(1).先開核心服務(wù)(OracleServiceOrcl)
(2).在開監(jiān)聽服務(wù)(OracleDb11g_home1TNSListener)
3、改配置(位置:D:\app\Administrator\product\11.1.0\db_1\NETWORK\ADMIN\下面的兩個文件ip listener.ora和tnsnames.ora
改為本機ip)
4、啟動oracle (位置:D:\plsqldev\plsqldev.exe),根據(jù)用戶名和密碼進行登錄
5、新建用戶
(
create user userName identified by "Pwd";
)
6、授權(quán) (grant resource to userName;)
7、建表
create table tabName
(
id type primary key,
name type,
desc type
);
輸入sqlplus /nolog 回車一閃就關(guān)了,解決方法:
1.先在D:\oracle\product\10.2.0\db_1\BIN下找到sqlplus.exe,用管理員的身份運行,不關(guān)了,就這么開著,然后輸入上面的相關(guān)命令就可以了
您好,您這樣:
1、停止所有的Oracle服務(wù)。
這個沒有什么好解釋的,根據(jù)你的oracle 安裝的不同
包括數(shù)據(jù)庫的服務(wù),監(jiān)聽器等等.
2、修改initSID.ora文件,修改instance_name為新的SID
找到你的初始化參數(shù)文件,里面有下面的一下參數(shù).
db_name = "testdb"
instance_name = testdbl
service_names = testdb
改成
db_name = "testdb"
instance_name = oral
service_names = oral
注意,db_name不要改,因為我們的數(shù)據(jù)庫還是叫testdb,但是它的服務(wù)也就是sid,改成oral,否則會報錯.修改之后,保存好這個文件
3、修改注冊表的ORACLE_SID
在注冊表的local machine 下面的software下面,找到oracle 的hom0主鍵,下面有個參數(shù),叫做ORACLE_SID,改成oral 記住,只改這一個.其他的不用改了,比方說服務(wù).等等,否則會報錯.
4、修改listener.ora中的SID_NAME
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\ora81)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = testdb)
(ORACLE_HOME = E:\oracle\ora81)
(SID_NAME = oral)
)
)
把里面的SID_NAME 給成oral,如上面的例子所表示.
5、oradim刪除原來SID的服務(wù),添加新SID的服務(wù)
這步比較復(fù)雜,涉及到oradim命令的用法.下面我簡單的介紹一下它 的用法
創(chuàng)建例程:
-NEW -SID sid | -SRVC 服務(wù) [-INTPWD 口令] [-MAXUSERS 數(shù)量] [-STARTMODE a|m] [-PFILE 文件] [-TIMEOUT 秒]
編輯例程:
-EDIT -SID sid [-NEWSID sid] [-INTPWD 口令] [-STARTMODE auto|manual] [-PFILE 文件名] [-SHUTMODE a|i|n]
[-SHUTTYPE srvc|inst|srvc,inst] [-TIMEOUT 秒]
刪除例程:
-DELETE -SID sid | -SRVC 服務(wù)名稱
啟動服務(wù)和例程:
-STARTUP -SID sid [-USRPWD 口令] [-STARTTYPE srvc|inst|srvc,inst] [-PFILE 文件名]
關(guān)閉服務(wù)和例程:
-SHUTDOWN -SID sid [-USRPWD 口令] [-SHUTTYPE srvc|inst|srvc,inst] [-SHUTMODE a | i | n]
查詢幫助:
-? | -h | -help
-SID sid
指定要啟動的實例名稱
-SRVC 服務(wù)
指定要啟動的服務(wù)名稱
-USRPWD 口令
指定內(nèi)部用戶的口令,如果作為NT管理員登錄,不用此參數(shù)
-PFILE 文件名
為實例指明初始化參數(shù)文件,如果參數(shù)文件在Oracle的默認位置,則不需要此命令
-STARTTYPE srvc|inst|srvc,inst
表示要啟動什么
srvc————只啟動服務(wù)
inst————啟動實例,服務(wù)必須已經(jīng)啟動并開始工作了
srvc,inst —服務(wù)和實例都啟動
-SHUTTYPE srvc|inst|srvc,inst
表示要終止什么,參數(shù)選項同上
-STARTMODE a|m
表示啟動實例所使用的模式
a————auto方式(自動)
m————manual方式(手動)
-SHUTMODE a|i|n
表示終止實例所使用的關(guān)閉模式
a————abort方式
i————immediate方式
n————normal方式
例子:
在服務(wù)里生成一個新的實例管理服務(wù),啟動方式為手工
oradim -NEW -SID test -STARTMODE manual -PFILE "D:\Oracle\admin\test\pfile\inittest.ora
oradim -NEW -SRVC OracleServicetest -STARTMODE manual -PFILE "D:\Oracle\admin\test\pfile\inittest.ora
注:有效的服務(wù)名為 “OracleService” 后跟“ SID”
-SID test 與 -SRVC OracleServicetest 等價
刪除此實例或服務(wù)
oradim -DELETE -SID test
oradim -DELETE -SRVC OracleServicetest
編輯此實例,啟動方式改為手動
oradim -EDIT -SID test -STARTMODE manual
編輯此實例,啟動方式改為自動
oradim -EDIT -SID test -STARTMODE auto
啟動test
oradim -STARTUP -SID test
oradim -STARTUP -SID test -STARTTYPE srvc,inst
只啟動test服務(wù)
oradim -STARTUP -SID test -STARTTYPE srvc
只啟動test實例
oradim -STARTUP -SID test -STARTTYPE inst
關(guān)閉test
oradim -SHUTDOWN -SID test
oradim -SHUTDOWN -SID test -SHUTTYPE srvc,inst
在testdb中
我們使用
oradim –DELETE –SID testdb
刪除了testdb 實例
然后
oradim –NEW –SID oral
添加新的實例
注意,這個命令,可以寫到控制文件和注冊表的服務(wù)里面,我更改后,可以看到在服務(wù)里面,服務(wù)名稱已經(jīng)改過來了.
但是這個時候還是不可以登錄到oracle.提示為權(quán)限不足.
6、orapwd生成新SID的口令
具體的orapwd,我想大家都知道了,要創(chuàng)建一個密碼文件就要用它,至于為什么我們需要重新創(chuàng)建密碼文件,我還不是很清楚,等我弄清楚了之后,我會把更新我的文檔.
需要注意的是,生成的密碼文件,一定要保存到orale home\database下面
而且密碼文件的名字一定要PWDsid.ora
具體的為什么我還不是很清楚.
好了.現(xiàn)在你可以通知你的客戶端,把他們的tnsname.ora中的
SZ =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.47.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oral)
)
)
service_name 都改成oral ,就可以用了
本文標(biāo)題:oracle實例如何更改 oracle修改實例名orcl的方法
網(wǎng)站網(wǎng)址:http://chinadenli.net/article2/hjicic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、標(biāo)簽優(yōu)化、網(wǎng)站改版、網(wǎng)站建設(shè)、域名注冊、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)