Oracle DBA之手動地通過命令列的方式建立一個資料庫
來源:互聯網
上載者:User
建立oracle資料庫的時候,大多數情況我們都是用dbca,簡單方便,比較自動化;<br />今天我們將嘗試手動地通過命令列的方式建立一個資料庫,別有一番風味。<br />oracle軟體版本:10gR2<br />作業系統版本:win xp sp3<br />目標資料sid:t02</p><p>(1)建立dump及參數檔案用檔案夾:<br />D:\oracle\product\10.2.0\admin\t02<br />D:\oracle\product\10.2.0\admin\t02\adump<br />D:\oracle\product\10.2.0\admin\t02\bdump<br />D:\oracle\product\10.2.0\admin\t02\cdump<br />D:\oracle\product\10.2.0\admin\t02\dpdump<br />D:\oracle\product\10.2.0\admin\t02\pfile<br />D:\oracle\product\10.2.0\admin\t02\udump</p><p>(2)建立datafile用檔案夾:<br />D:\oracle\product\10.2.0\oradata\t02</p><p>(3)建立參數檔案,可先copy一個其他庫的,再在上面做修改,注意目錄改對:<br />D:\oracle\product\10.2.0\db_1\database\initt02.ora</p><p>##############################################################################<br /># Copyright (c) 1991, 2001, 2002 by Oracle Corporation<br />##############################################################################</p><p>###########################################<br /># NLS<br />###########################################<br />nls_language="AMERICAN"<br />nls_territory="AMERICA"</p><p>###########################################<br /># SGA Memory<br />###########################################<br />sga_target=290455552</p><p>###########################################<br /># Job Queues<br />###########################################<br />job_queue_processes=10</p><p>###########################################<br /># Shared Server<br />###########################################<br />dispatchers="(PROTOCOL=TCP) (SERVICE=t02XDB)"</p><p>###########################################<br /># Miscellaneous<br />###########################################<br />compatible=10.2.0.1.0</p><p>###########################################<br /># Security and Auditing<br />###########################################<br />audit_file_dest=D:\oracle\product\10.2.0/admin/t02/adump<br />remote_login_passwordfile=EXCLUSIVE</p><p>###########################################<br /># Sort, Hash Joins, Bitmap Indexes<br />###########################################<br />pga_aggregate_target=96468992</p><p>###########################################<br /># Database Identification<br />###########################################<br />db_domain=""<br />db_name=t02</p><p>###########################################<br /># File Configuration<br />###########################################<br />control_files=("D:\oracle\product\10.2.0/oradata/t02/\control01.ctl", "D:\oracle\product\10.2.0/oradata/t02/\control02.ctl", "D:\oracle\product\10.2.0/oradata/t02/\control03.ctl")<br />db_recovery_file_dest=D:\oracle\product\10.2.0/flash_recovery_area<br />db_recovery_file_dest_size=2147483648</p><p>###########################################<br /># Cursors and Library Cache<br />###########################################<br />open_cursors=300</p><p>###########################################<br /># System Managed Undo and Rollback Segments<br />###########################################<br />undo_management=AUTO<br />undo_tablespace=UNDOTBS1</p><p>###########################################<br /># Diagnostics and Statistics<br />###########################################<br />background_dump_dest=D:\oracle\product\10.2.0/admin/t02/bdump<br />core_dump_dest=D:\oracle\product\10.2.0/admin/t02/cdump<br />user_dump_dest=D:\oracle\product\10.2.0/admin/t02/udump</p><p>###########################################<br /># Processes and Sessions<br />###########################################<br />processes=150</p><p>###########################################<br /># Cache and I/O<br />###########################################<br />db_block_size=8192<br />db_file_multiblock_read_count=16</p><p>(4)建立口令檔案:<br />orapwd file=D:\oracle\product\10.2.0\db_1\database\pwdt02.ora password=oracle entries=2</p><p>(5)建立執行個體(會在windows系統註冊一個服務):<br />oradim -new -sid t02</p><p>(6)啟動資料庫到nomount狀態,需先設定oracle_sid:<br />set oracle_sid=t02<br />sqlplus / as sysdba<br />startup nomount</p><p>(7)建立資料庫:<br />select status from v$instance;<br />ed<br />填入以下建立指令碼內容,儲存後輸入正斜杠(/)斷行符號執行:<br />create database t02<br />datafile 'D:\oracle\product\10.2.0\oradata\t02\system01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited<br />extent management local<br />sysaux datafile 'D:\oracle\product\10.2.0\oradata\t02\sysaux01.dbf'<br />size 100M reuse autoextend on next 10M maxsize unlimited<br />default temporary tablespace temp<br />tempfile 'D:\oracle\product\10.2.0\oradata\t02\temp01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited<br />undo tablespace "UNDOTBS1" --請注意這裡的undo資料表空間要和參數檔案對應<br />datafile 'D:\oracle\product\10.2.0\oradata\t02\undotbs01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited<br />default tablespace users<br />datafile 'D:\oracle\product\10.2.0\oradata\t02\users01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited<br />logfile<br />group 1 ('D:\oracle\product\10.2.0\oradata\t02\redo01.log') size 10M,<br />group 2 ('D:\oracle\product\10.2.0\oradata\t02\redo02.log') size 10M,<br />group 3 ('D:\oracle\product\10.2.0\oradata\t02\redo03.log') size 10M<br />character set al32utf8<br />national character set al16utf16<br />user sys identified by oracle<br />user system identified by oracle<br />/</p><p>至此資料庫已經可以開啟了,但是還缺少基本的資料字典(如:dba_objects、dba_tablespaces等)和<br />基本的內建程式(如:dbms_output、dbms_session),接下來我們要建立這些對象。</p><p>(8)建立資料字典:<br />@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catalog.sql;</p><p>(9)建立內建程式:<br />@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catproc.sql;</p><p>(10)建立scott schema(scott需要使用users資料表空間):<br />@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\scott.sql;</p><p>(11)編譯product user profile(需要system使用者去執行):<br />conn system/oracle<br />@D:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql;</p><p>(12)配置監聽程式:<br />D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN</p><p>listener.ora<br />經過以上步驟,系統會自動在已有listener上增加一個連接埠(1522),如下:<br />(其實僅有1521一個連接埠即可同時串連兩個資料庫。<br />之所以有1521這條記錄,是因為在建立測試庫(t02)之前本機已有一個庫t01)<br />LISTENER =<br /> (DESCRIPTION_LIST =<br /> (DESCRIPTION =<br /> (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))<br /> (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1521))<br /> (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1522))<br /> )<br /> )</p><p>tnsnames.ora<br />如果我們想用tns來串連,則還需在tnsnames.ora中追加如下配置:<br />(如果在上步沒有產生1522行,這裡只需將1522改為1521即可)<br />T02 =<br /> (DESCRIPTION =<br /> (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1522))<br /> (CONNECT_DATA =<br /> (SERVER = DEDICATED)<br /> (SERVICE_NAME = t02)<br /> )<br /> )</p><p>(13)以scott使用者驗證:<br />sqlplus scott/tiger@t02<br />select * from dept;</p><p>(14)建立Enterprise Manager(EM):<br />emca -config dbcontrol db -repos create</p><p>t0nsha(liaodunxia AT gmail DOT com)<br />20110714@上海<br />