Oracle基礎結構之手工建庫相關

luckyfriends發表於2014-02-21

文章版權所有Jusin Haoluckyfriends),支援原創,轉載請註明。

手工建庫可以理解oracle的啟動關閉、例項、資料檔案等概念,本文略去了dbca圖形建庫部分,重點演示了Windows和Linux下手工建庫的主要步驟和命令



二、Oracle建庫相關:

1、 DBCA建庫

2、 手工建庫

手工建庫的步驟:

1. 備份機器上現有的資料庫;

2. 產生並編輯initSID.ora引數檔案;

3. 驗證所有的可能用到SQL檔案,確認例項名是正確的;

4. 建立新資料庫對應的例項(如果是windows作業系統要使用oradim);

5. 利用sqlplus工具以nomount方式啟動例項;

6. 利用create database建立資料庫;

7. 關閉資料庫;

8. 備份資料庫;

2.1 產生並編輯initSID.ora引數檔案

例:建立例項名為test的引數檔案inittest.ora

windows下引數檔案放置在$ORACLE_HOME/database/inittest.ora

*NIX下引數檔案放置在$ORACLE_HOME/dbs/inittest.ora

*.sga_target=612368384

*.instance_name=test

*.db_name='test'

*.control_files='f:\oracle\product\10.2.0\oradata\test\control01.ctl','f:\oracle\product\10.2.0\oradata\test\control02.ctl','f:\oracle\product\10.2.0\oradata\test\control03.ctl'

*.db_recovery_file_dest='f:\oracle\product\10.2.0/flash_recovery_area'

*.db_recovery_file_dest_size=2147483648

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.background_dump_dest='f:\oracle\product\10.2.0/admin/test/bdump'

*.user_dump_dest='f:\oracle\product\10.2.0/admin/test/udump'

windows下建立例項:

oradim -new ------建立新例項選項

-sid test ------新例項的名稱

-syspwd oracle -------指定超級使用者的口令(sys)

startmode auto --------指定例項的啟動模式

在windows下建立完例項後:1)在系統的服務將自動新增一個服務:OracleServicetest;2)並建立一個口令檔案;3)在登錄檔中:Hkey_local_machine\software\ORACLE\key_OraDblog_home1

Hkey_local_machine\system\ControlSet001\Services

oradim –h 檢視命令幫助及格式

例:C:\>oradim -new -sid test -syspwd oracle -startmode auto

例項已建立。

UNIX/Linux下建立例項:

建立初始化引數檔案、口令檔案後,即可export ORACLE_SID=test,然後startup nomount即可啟動例項;

(注意,在oradim之前要設定好ORACLE_HOME否則建立服務的時候可能無法正確建立口令檔案,然後導致sys連線的時候報ORA-12560: TNS: 協議介面卡錯誤)

2.2 手動建立資料庫

以nomount方式啟動Oracle例項

建立資料庫

安裝資料字典

安裝PL/SQL包以及過程

安裝使用者資源集

配置監聽檔案LISTENER.ORA

配置OEM

啟動例項

c:\> set ORACLE_SID=test

c:\>sqlplus /nolog

SQL> conn / as sysdba

SQL> startup nomount

(注意引數檔案中指定的bdump、udump檔案要建立好對應的目錄,否則就會報ORA-02778: Name given for the log directory is invalid)

建立資料庫

create database test

logfile group 1 'F:\oracle\product\10.2.0\oradata\test\redo01.log' size 4M,

group 2 'F:\oracle\product\10.2.0\oradata\test\redo02.log' size 4M,

group 3 'F:\oracle\product\10.2.0\oradata\test\redo03.log' size 4M

datafile 'F:\oracle\product\10.2.0\oradata\test\system01.dbf' size 300m autoextend on next 10m maxsize unlimited

sysaux datafile 'F:\oracle\product\10.2.0\oradata\test\sysaux01.dbf' size 200m

undo tablespace undotbs1 datafile 'F:\oracle\product\10.2.0\oradata\test\undo01.dbf' size 50m

character set zhs16gbk;

SYS@test> select name,open_mode from v$database;

NAME OPEN_MODE

--------- ----------

TEST READ WRITE

注意:system表空間至少240M、sysaux至少200M;

在建立資料庫的過程中,建立了控制檔案、資料檔案、日誌檔案,自動建立了system/manager;

如果建立失敗,需要重新建立的話,可能需要刪除先前建立失敗時已經生成的一些檔案(如果有),無法刪除的話可以關閉資料庫及例項,刪除後重新啟動例項,然後建立資料庫;

2.3 安裝資料庫字典、系統包及過程

SYS@test> @F:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catalog.sql ---建立資料字典檢視、同義詞

SYS@test> @F:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catproc.sql ---建立系統包、過程

2.4安裝客戶資源集

SYS@test> conn system/manager

SYSTEM@test> @F:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql

這個指令碼只能由system使用者執行,與後面使用者的授權有一定關係,使用者資源集中包括dbsmp、sysman等其他使用者的資訊,包括這些使用者登入資訊、密碼等以及使用資源 的限制等,如果不執行這個指令碼,則後面配置dbconsole也無法進行;

2.5 配置監聽

c:\> lsnrctl stop

c:\>lsnrctl start

客戶端連線資料庫以驗證監聽服務

修改tnsname.ora檔案

TEST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST =HAOHAO)(PORT = 1521))

(LOAD_BALANCE = yes)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = test)

)

)

2.6建立臨時表空間

SYSTEM@test> create temporary tablespace temp tempfile 'F:\oracle\product\10.2.0\oradata\test\temp01.dbf' size 20M;

SYSTEM@test> alter database default temporary tablespace temp;

2.7 配置dbconsole

配置dbconsole過程中會建立資料庫,這期間會需要臨時表空間(如用來排序)

C:\>emca -config dbcontrol db -repos create

EMCA 開始於 2013-1-24 20:59:23

EM Configuration Assistant 10.2.0.1.0 正式版

版權所有 (c) 2003, 2005, Oracle。保留所有權利。

輸入以下資訊:

資料庫 SID: test

監聽程式埠號: 1521

SYS 使用者的口令:

DBSNMP 使用者的口令:

SYSMAN 使用者的口令:

通知的電子郵件地址 (可選):

通知的發件 (SMTP) 伺服器 (可選):

-----------------------------------------------------------------

已指定以下設定

資料庫 ORACLE_HOME ................ f:\oracle\product\10.2.0\db_1

資料庫主機名 ................ haohao.ufsoft.com.cn

監聽程式埠號 ................ 1521

資料庫 SID ................ test

通知的電子郵件地址 ...............

通知的發件 (SMTP) 伺服器 ...............

-----------------------------------------------------------------

是否繼續? [yes(Y)/no(N)]: yes

2013-1-24 21:02:34 oracle.sysman.emcp.EMConfig perform

資訊: 正在將此操作記錄到 f:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\test\emca_2013-01-24_08-59-22-下午.log。

2013-1-24 21:02:41 oracle.sysman.emcp.EMReposConfig createRepository

資訊: 正在建立 EM 資料檔案庫 (此操作可能需要一段時間)...

2013-1-24 21:07:01 oracle.sysman.emcp.EMReposConfig invoke

資訊: 已成功建立資料檔案庫

2013-1-24 21:07:22 oracle.sysman.emcp.util.DBControlUtil startOMS

資訊: 正在啟動 Database Control (此操作可能需要一段時間)...

2013-1-24 21:08:32 oracle.sysman.emcp.EMDBPostConfig performConfiguration

資訊: 已成功啟動 Database Control

2013-1-24 21:08:33 oracle.sysman.emcp.EMDBPostConfig performConfiguration

警告: 無法建立 Database Control 快捷方式

2013-1-24 21:08:34 oracle.sysman.emcp.EMDBPostConfig performConfiguration

資訊: >>>>>>>>>>> Database Control URL 為 <<<<<<<<<<<

已成功完成 Enterprise Manager 的配置

EMCA 結束於 2013-1-24 21:08:34

注意:當機器名改了以後可能需要重新配置db control(刪除了原來的重建)

注意:

修改埠:c:\>emca –reconfig ports –dbcontrol_http_port 5501

F:\oracle\product\10.2.0\db_1\install\ portlist.ini埠資訊

C:\>emca -config dbcontrol db -repos recreate

附其他解決方式.1,修改DBSNMP密碼:

重新配置DBCONSOLE,需要輸入DBSNMP密碼,但任何密碼都會顯示錯誤,需要預先修改。

sql>alter user dbsnmp identified by xxx;

2,刪除早期DBCONSOLE建立的使用者:

sql>drop role MGMT_USER;

sql>drop user MGMT_VIEW cascade;

sql>drop user sysman cascade;

3,刪除早期DBCONSOLE建立的物件:

sql>drop PUBLIC SYNONYM MGMT_TARGET_BLACKOUTS;

sql>drop public synonym SETEMVIEWUSERCONTEXT;

4,重新建立DBCONSOLE:(如果是在windows下,要先到登錄檔刪除DBCONSOLE的服務,重啟電腦)

$emca -config dbcontrol db -repos create

根據提示,先輸入SID,再輸入Y繼續;

輸入埠1521,輸入SYS密碼,輸入DBSNMP密碼,輸入SYSMAN 密碼,輸入Y繼續

完成。

5,檢查狀態 emctl status dbconsole。

附emca常用命令:

建立一個EM資料庫

emca -repos create

重建一個EM資料庫

emca -repos recreate

刪除一個EM資料庫

emca -repos drop

配置資料庫的 Database Control

emca -config dbcontrol db

刪除資料庫的 Database Control配置

emca -deconfig dbcontrol db

重新配置db control的埠,預設埠在1158

emca -reconfig ports

emca -reconfig ports -dbcontrol_http_port 1160

emca -reconfig ports -agent_port 3940

先設定ORACLE_SID環境變數後,啟動EM console服務

emctl start dbconsole

先設定ORACLE_SID環境變數後,停止EM console服務

emctl stop dbconsole

先設定ORACLE_SID環境變數後,檢視EM console服務的狀態

emctl status dbconsole

配置dbconsole的步驟

emca -repos create

emca -config dbcontrol db

emctl start dbconsole

重新配置dbconsole的步驟

emca -repos drop

emca -repos create

emca -config dbcontrol db

emctl start dbconsole

2.8開始和停止isql*plus

C:\>isqlplusctl start

iSQL*Plus 10.2.0.1.0

Copyright (c) 2003, 2005, Oracle. All rights reserved.

Starting iSQL*Plus ...

iSQL*Plus started.

C:\>isqlplusctl stop

iSQL*Plus 10.2.0.1.0

Copyright (c) 2003, 2005, Oracle. All rights reserved.

Stopping iSQL*Plus ...

iSQL*Plus stopped.

F:\oracle\product\10.2.0\db_1\oc4j\j2ee\isqlplus\application-deployments\isqlplus\ application.log日誌

F:\oracle\product\10.2.0\db_1\oc4j\j2ee\isqlplus\config\ http-web-site.xml 配置檔案修改埠

F:\oracle\product\10.2.0\db_1\install\ portlist.ini埠資訊

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-1085517/,如需轉載,請註明出處,否則將追究法律責任。

相關文章