改實(shí)例名啊?
長(zhǎng)安網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),長(zhǎng)安網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為長(zhǎng)安上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的長(zhǎng)安做網(wǎng)站的公司定做!
還有人改這個(gè)?
建議,導(dǎo)出數(shù)據(jù),如果新建一個(gè)實(shí)例,新實(shí)例名為你的需要改的新名字,然后把輸入導(dǎo)入到新實(shí)例中。
準(zhǔn)確無誤后,刪除舊實(shí)例。
這個(gè)要分好幾步來作業(yè)
以O(shè)RACLE10g為例,舉例說明更改SID名稱的過程。假如數(shù)據(jù)庫(kù)的SID叫testdb,現(xiàn)在改成orcl,有以下6個(gè)步驟:
1、停止所有的oracle服務(wù)
1.1、oracle的相關(guān)服務(wù)都以oracle為前綴,有以下幾個(gè):
2、修改初始化文件,將instance_name參數(shù)值設(shè)置為新的SID名稱;
2.1、如果沒有可編輯的PFILE文件,可以使用CREATE PFILE FROM SPFILE命令創(chuàng)建。將初始化文件參數(shù)的
以下內(nèi)容:
db_name="testdb"
instance_name=testdb1
service_names=testdb
修改成:
db_name="testdb"
instance_name=oral
service_names=oral(注意db_name不要修改,數(shù)據(jù)庫(kù)還是稱為testdb,但是它的服務(wù)也就是sid改成orcl.)
3、修改注冊(cè)表的Oracle_sid的值;
3.1、在注冊(cè)表HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_ORaDb10g_home1下面將 Oracle_SID鍵值該為oral,注意,其他的不要改動(dòng).
4、修改listener.ora中的SID_NAME;
在目錄%Oracle_home%\NETWORk\ADMIN下找到listener.ora,把這個(gè)文件之后一項(xiàng)的
SID_NAME=oral
5、用oradim刪除原來的SID服務(wù),添加新SID的服務(wù);
oradim -DELETE -SID testdb
oradim -NEW -SID orcl
6、用orapwd生成新的SID的口令。
用工具orapwd創(chuàng)建新的口令文件.將文件保存到%ORACLE_HOME%\database目錄下面,
ORAPWD FILE=%ORACLE_HOME%\database\PWDoral.ora password =admin
password設(shè)置的是SYS用戶的口令.
連接ORACLE數(shù)據(jù)庫(kù)有兩種方式:數(shù)據(jù)庫(kù)名和服務(wù)名,數(shù)據(jù)庫(kù)名的更改要使用重建控制文件的方式更改.alter database backup controlfile to trace后更改其中數(shù)據(jù)庫(kù)名為新名,運(yùn)行該文件
如果要更改目錄,在上面的Trace文件中將文件目錄改為新的文件目錄名稱重建或在mount階段使用alter database rename datafile一一將文件更改過來.
連接ORACLE數(shù)據(jù)庫(kù)有兩種方式:數(shù)據(jù)庫(kù)名和服務(wù)名,數(shù)據(jù)庫(kù)名的更改要使用重建控制文件的方式更改.alter database backup controlfile to trace后更改其中數(shù)據(jù)庫(kù)名為新名,運(yùn)行該文件
如果要更改目錄,在上面的Trace文件中將文件目錄改為新的文件目錄名稱重建或在mount階段使用alter database rename datafile一一將文件更改過來.
修改數(shù)據(jù)庫(kù)名很麻煩。
一般情況下,不需要修改數(shù)據(jù)庫(kù)名稱。但如果修改了數(shù)據(jù)庫(kù)名,客戶機(jī)就必須重新進(jìn)行網(wǎng)絡(luò)服務(wù)名的配置,才能連接到數(shù)據(jù)庫(kù)
1.???????? 準(zhǔn)備
原數(shù)據(jù)庫(kù)的實(shí)例名為linuxdb,控制文件、數(shù)據(jù)文件、聯(lián)機(jī)日志文件存放在/home/oracle/ora9/oradata/linuxdb目錄,將所有的文件拷貝到另外一個(gè)目錄/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';
我們將修改實(shí)例名為dbtest。
下面我們開始一步一步地進(jìn)行處理。
2.???????? 加載初始化文件
打開pfiledbtest.ora文件,修改對(duì)應(yīng)的dump屬性的路徑名,實(shí)例名字,控制文件路徑等。
然后執(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
這樣加載初始化文件就成功了。
下面接著進(jìn)行,加載控制文件。
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
好像是控制文件的路徑不對(duì),修改初始文件再次加載。
SQL alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01103: database name 'LINUXDB' in controlfile is not 'DBTEST'
根據(jù)錯(cuò)誤信息提示,是實(shí)例名字不一致,但是控制文件是二進(jìn)制的,用vi打開之后沒法編輯,只能通過用重建控制文件可以解決。
在/home/oracle/ora9/oradata/dbtest目錄下刪除老的三個(gè)控制文件。然后開始重建控制文件。
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ù)錯(cuò)誤提示,是缺少密碼驗(yàn)證文件,用下面的命令創(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)建控制文件成功了,下面重新啟動(dòng)數(shù)據(jù)庫(kù)。
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.
查看表中的記錄,正確的。
修改實(shí)例名成功。
4.???????? 總結(jié)
由上面的操作可以看到,在數(shù)據(jù)庫(kù)維護(hù)中,最重要的是數(shù)據(jù)文件,初始化文件可以從別的實(shí)例拷貝過來,然后修改。控制文件可以重新創(chuàng)建,只要數(shù)據(jù)文件正確,就可以重建初始化文件和控制文件之后,恢復(fù)數(shù)據(jù)庫(kù)。
遇到的錯(cuò)誤:
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
請(qǐng)查看初始化文件中,控制文件的路徑是正確,控制文件的路徑上的目錄是否有權(quán)限創(chuàng)建文件,如果這些問題都解決了,那么應(yīng)該能成功創(chuàng)建控制文件。
當(dāng)前題目:如何更改Oracle庫(kù)名,oracle修改數(shù)據(jù)庫(kù)表列名稱
網(wǎng)址分享:http://aaarwkj.com/article38/dssjdpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、做網(wǎng)站、云服務(wù)器、企業(yè)建站、網(wǎng)站營(yíng)銷、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)