當前位置:首頁 » 操作系統 » oracle10g創建資料庫

oracle10g創建資料庫

發布時間: 2022-10-08 13:36:53

A. oracle資料庫10g安裝步驟

  • 運行解壓縮出的 Oracle 10g 安裝程序。打開oracle10g的安裝目錄,找到setup.exe,雙擊即可進入安裝狀態

B. 如何手動創建oracle資料庫

在LINUX平台上手動創建資料庫(oracle 10g)(在一個oracle伺服器上啟動兩個實例)
1.首先設置要創建的ORACLE的SID,如果在.bash_profile文件里設置里該變數,就不用設置了。
$echo $ORACEL_SID
mdy
如果沒有設置,就手動設置,如果一個伺服器上要運行多個ORACLE實例,也需要手動設置。
export ORACLE_SID=gcm
2. 創建需要的診斷目錄,這些目錄都是ORACLE進程遇到錯誤或用戶手動TRACE時需要的。
mkdir -p $ORACLE_BASE/admin/gcm/amp
mkdir -p $ORACLE_BASE/admin/gcm/bmp
mkdir -p $ORACLE_BASE/admin/gcm/cmp
mkdir -p $ORACLE_BASE/admin/gcm/ump
mkdir -p $ORACLE_BASE/admin/gcm/pfile
創建oracle的數據文件目錄
mkdir -p $ORACLE_BASE/oradata/gcm
3. 創建ORACLE的參數文件$ORACLE_HOME/dbs/initgcm.ora 內容如下:
aq_tm_processes=0
audit_file_dest=/oracle/admin/gcm/amp
background_mp_dest=/oracle/admin/gcm/bmp
compatible=10.2.0.1.0
control_files=/oracle/oradata/gcm/control01.ctl, /oracle/oradata/gcm/control02.ctl, /oracle/oradata/gcm/control03.ctl
core_mp_dest=/oracle/admin/gcm/cmp
db_block_size=8192
db_domain=""
db_file_multiblock_read_count=16
db_name=gcm
instance_name=gcm
dispatchers="(PROTOCOL=TCP) (SERVICE=gcmXDB)"
job_queue_processes=10
nls_length_semantics=BYTE
open_cursors=300
pga_aggregate_target=94371840
processes=150
remote_login_passwordfile=EXCLUSIVE
resource_manager_plan=""
sessions=170
sga_target=285212672
undo_management=AUTO
undo_retention=900
undo_tablespace=UNDOTBS1
user_mp_dest=/oracle/admin/gcm/ump
4.創建密碼文件
orapwd file=$ORACLE_HOME/dbs/orapwgcm password=admin entries=5 force=y
5.創建oracle的建庫腳本 createdb.sql,內容如下:
create database gcm
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE
'/oracle/oradata/gcm/system01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited extent management local
sysaux datafile
'/oracle/oradata/gcm/sysaux01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited
default temporary tablespace TEMP tempfile
'/oracle/oradata/gcm/temp01.dbf' size 20m reuse autoextend on next 640k maxsize unlimited
undo tablespace UNDOTBS1 datafile
'/oracle/oradata/gcm/undo01.dbf' size 20m reuse autoextend on next 5M maxsize unlimited
logfile
GROUP 1 ('/oracle/oradata/gcm/redo1.dbf') size 10m,
GROUP 2 ('/oracle/oradata/gcm/redo2.dbf') size 10m,
GROUP 3 ('/oracle/oradata/gcm/redo3.dbf') size 10m
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
;
6.資料庫創建完成後,再創建ORACLE的數據字典。
SQL>@/oracle/proct/10g/rdbms/admin/catalog.sql
SQL>@/oracle/proct/10g/rdbms/admin/catproc.sql
SQL>@/oracle/proct/10g/rdbms/admin/catexp.sql
到此ORACLE手動創建過程就完成了
7.創建(新)用戶:
create user gcm identified by onewavegcm;
username:新用戶名的用戶名
password: 新用戶的密碼
也可以不創建新用戶,而仍然用以前的用戶,如:繼續利用scott用戶
8.創建表空間:
create tablespace gcm datafile 'd:\data.dbf' size 300m;
tablespacename:表空間的名字
d:\data.dbf':表空間的存儲位置
xxx表空間的大小,m單位為兆(M)
9.將空間分配給用戶:
alter user gcm default tablespace gcm;
將名字為tablespacename的表空間分配給username
10.給用戶授權:
grant connect,resource,dba to gcm;
11.然後再以樓主自己創建的用戶登錄,登錄之後創建表即可。
conn username/password;
創建表用create table.

SELECT host_name, instance_name, version FROM v$instance;
select distinct username from v$session ;
imp gcm/onewavegcm file=gcmtable.dmp full=y
12.修改監聽配置文件listener.ora
gcm =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 219.141.133.x)(PORT = 1522))
)
)
)
SID_LIST_gcm =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = gcm)
(ORACLE_HOME = /oracle/proct/10g)
(SID_NAME = gcm)
)
)
13.啟動實例
su oracle
export ORACLE_SID=boss
sqlplus>startup
exit
su oracle
export ORACLE_SID=gcm
sqlplus / as sysdba
>startup
14.啟動監聽
su oracle
#lsnrctl start #listener1
#lsnrctl start gcm #listener2

C. 如何手工創建一個Oracle 10g資料庫

1.首先要有一個參數文件,這個我利用了歷史的參數文件
[oracle@dbstatsvr dbstat]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.2.0 - Proction on Thu Sep 17 18:21:20 2009
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 1778384896 bytes
Fixed Size 1261332 bytes
Variable Size 301990124 bytes
Database Buffers 1459617792 bytes
Redo Buffers 15515648 bytes

2.創建腳本,參考其他資料庫,編寫一個
SQL> create database dbstat
2 logfile group 1 ('/data1/dbstat/redo1.log') size 50M,
3 group 2 ('/data1/dbstat/redo2.log') size 50M,
4 group 3 ('/data1/dbstat/redo3.log') size 50M
5 character set ZHS16GBK
6 national character set utf8
7 datafile '/data1/dbstat/system.dbf'
8 size 500M autoextend on next 10M maxsize unlimited extent management local
12 sysaux datafile '/data1/dbstat/sysaux.dbf'
13 size 500M autoextend on next 10M maxsize unlimited
17 undo tablespace undotbs1
18 datafile '/data1/dbstat/undo.dbf' size 100M
20 default temporary tablespace temp
21 tempfile '/data1/dbstat/temp.dbf' size 100M;
Database created.
3.在後台跑一跑其他腳本:
[oracle@dbstatsvr dbstat]$ nohup sqlplus "/ as sysdba" @?/rdbms/admin/catalog.sql &
[1] 5399
[oracle@dbstatsvr dbstat]$ nohup: appending output to `nohup.out'
[oracle@dbstatsvr dbstat]$
[1]+ Stopped nohup sqlplus "/ as sysdba" @?/rdbms/admin/catalog.sql
[oracle@dbstatsvr dbstat]$
[oracle@dbstatsvr dbstat]$ nohup sqlplus "/ as sysdba" @?/rdbms/admin/catproc.sql &
[2] 5402
[oracle@dbstatsvr dbstat]$ nohup: appending output to `nohup.out'

這樣就基本上有了一個資料庫的雛形了。
4.還有一個腳本要運行
這是資料庫用普通用戶登錄會出現一個錯誤,提示以SYSTEM運行PUPBLD.SQL腳本:
SQL> connect sms/sms
Error accessing PRODUCT_USER_PROFILE
Warning: Proct user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
Connected.
這個腳本會創建一個表,用於限制用戶執行某些特定的SQL*PLUS命令:
SQL> @?/sqlplus/admin/pupbld.sql
DROP SYNONYM PRODUCT_USER_PROFILE
*
ERROR at line 1:
ORA-01434: private synonym to be dropped does not exist
DATE_VALUE FROM PRODUCT_USER_PROFILE
*
ERROR at line 3:
ORA-00942: table or view does not exist
DROP TABLE PRODUCT_USER_PROFILE
*
ERROR at line 1:
ORA-00942: table or view does not exist
ALTER TABLE SQLPLUS_PRODUCT_PROFILE ADD (LONG_VALUE LONG)
*
ERROR at line 1:
ORA-00942: table or view does not exist
Table created.
DROP TABLE PRODUCT_PROFILE
*
ERROR at line 1:
ORA-00942: table or view does not exist
DROP VIEW PRODUCT_PRIVS
*
ERROR at line 1:
ORA-00942: table or view does not exist
View created.
Grant succeeded.
DROP PUBLIC SYNONYM PRODUCT_PROFILE
*
ERROR at line 1:
ORA-01432: public synonym to be dropped does not exist
Synonym created.
DROP SYNONYM PRODUCT_USER_PROFILE
*
ERROR at line 1:
ORA-01434: private synonym to be dropped does not exist
Synonym created.
DROP PUBLIC SYNONYM PRODUCT_USER_PROFILE
*
ERROR at line 1:
ORA-01432: public synonym to be dropped does not exist
Synonym created.
SQL> connect sms/sms
Connected.

D. oracle10G怎麼里怎麼創建多個資料庫

一個資料庫創建多個實例
1. 先要關閉資料庫(進程和內存關閉)
[Oracle@oracle_2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Proction on TueNov 12 20:34:53 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release10.2.0.1.0 - Proction
With the Partitioning, OLAP and Data Mining options
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
2. 設置環境變數
[oracle@oracle_2 ~]$ vi .bash_profile
此時環境變數已經設置好了
3. 創建目錄
i. 創建相關文件
此時我們可以看見已經有了相關目錄,那是我們之前創建的實例ORCL的相關目錄
創建目錄是採用了批量創建目錄{a,b,c,u}mp
[oracle@oracle_2 ~]$ cd $ORACLE_BASE
[oracle@oracle_2 oracle]$ ls
admin flash_recovery_area oradata oraInventory proct
[oracle@oracle_2 oracle]$
[oracle@oracle_2 oracle]$ mkdir -p admin/ORA10G/{a,b,c,u}mp
[oracle@oracle_2 oracle]$ ls
admin flash_recovery_area oradata oraInventory proct
[oracle@oracle_2 oracle]$ cd admin/
[oracle@oracle_2 admin]$ ls
ORA10G ORCL
[oracle@oracle_2 admin]$ cd ORA10G/
[oracle@oracle_2 ORA10G]$ ls
amp bmp cmp ump
[oracle@oracle_2 ORA10G]$
[oracle@oracle_2 ORA10G]$ ls
amp bmp cmp ump
[oracle@oracle_2 ORA10G]$ cd ..
[oracle@oracle_2 admin]$ ls
ORA10G ORCL
[oracle@oracle_2 admin]$ cd ..
[oracle@oracle_2 oracle]$ ls
admin flash_recovery_area oradata oraInventory proct
[oracle@oracle_2 oracle]$ mkdir -p oradata/ORA10G
[oracle@oracle_2 oracle]$
ii. 創建密碼文件
創建密碼文件需要到ORACLE_HOME/dbs目錄下創建
[oracle@oracle_2 10.2.0]$ cd $ORACLE_HOME/dbs
[oracle@oracle_2 dbs]$ ls
hc_ORCL.dat initdw.ora init.ora lkORCL orapwORCL spfileORCL.ora
[oracle@oracle_2 dbs]$ orapwd
Usage: orapwd file=<fname>password=<password> entries=<users> force=<y/n>
where
file -name of password file (mand),
password- password for SYS (mand),
entries -maximum number of distinct DBA and force - whether to overwrite existing file (opt),
OPERs (opt),
There areno spaces around the equal-to (=) character.
[oracle@oracle_2 dbs]$ orapwd file=orapwORA10Gpassword=oracle entries=30
[oracle@oracle_2 dbs]$ ls
hc_ORCL.dat init.ora orapwORA10G spfileORCL.ora
initdw.ora lkORCL orapwORCL
[oracle@oracle_2 dbs]$
[oracle@oracle_2 dbs]$ cat init.ora |grep -v^#|grep -v ^$ >initORA10G.ora
[oracle@oracle_2 dbs]$ ls
hc_ORCL.dat init.ora lkORCL orapwORCL
initdw.ora initORA10G.ora orapwORA10G spfileORCL.ora
[oracle@oracle_2 dbs]$
[oracle@oracle_2 dbs]$ vi initORA10G.ora
將內容改的和下面的一樣
db_name=ORA10G
db_files = 80 # SMALL
db_file_multiblock_read_count = 8 #SMALL
log_checkpoint_interval = 10000
processes = 50 # SMALL
parallel_max_servers = 5 #SMALL
log_buffer = 32768 # SMALL
max_mp_file_size = 10240 # limit trace file size to 5 Meg each
global_names = false
control_files =(/u01/app/oracle/oradata/ORA10G/ora_control1.ctl,/u01/app/oracle/oradata/ORA10G/ora_control2.ctl)
sga_max_size=300m
sga_target=300m
4. 啟動實例為ORA10G的資料庫
[oracle@oracle_2 dbs]$ export $ORACLE_SID=ORA10G
[oracle@oracle_2 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Proction on TueNov 12 21:08:55 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SYS@ORA10G>
SYS@ORA10G>create spfile from pfile;
File created.
SYS@ORA10G>startup nomount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 96470416 bytes
Database Buffers 213909504 bytes
Redo Buffers 2973696 bytes
SYS@ORA10G>
SYS@ORA10G>show parameter undo
NAME TYPE VALUE
------------------------------------ -----------------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string
SYS@ORA10G>
修改參數,由於undo_management參數為靜態參數,所以需要加上scope=spfile
SYS@ORA10G>alter system set undo_management=autoscope=spfile;
System altered.
SYS@ORA10G>show parameter undo
NAME TYPE VALUE
------------------------------------ -----------------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string
SYS@ORA10G>shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
此時發現並沒有更改,是由於靜態參數需要重啟才有效
SYS@ORA10G>startup nomount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 96470416 bytes
Database Buffers 213909504 bytes
Redo Buffers 2973696 bytes
SYS@ORA10G>
此時只是改了spfile的參數還需要改pfile的參數
SYS@ORA10G>create pfile from spfile;
File created.
SYS@ORA10G>
5. 多個實例的切換
i. 實例為ORCL啟動資料庫
[oracle@oracle_2 dbs]$ export ORACLE_SID=ORCL
[oracle@oracle_2 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Proction on TueNov 12 21:19:19 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SYS@ORCL>
ii. 實例為ORCL10G啟動資料庫
SYS@ORCL>exit
Disconnected
[oracle@oracle_2 dbs]$ export ORACLE_SID=ORA10G
[oracle@oracle_2 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Proction on TueNov 12 21:24:54 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release10.2.0.1.0 - Proction
With the Partitioning, OLAP and Data Mining options
SYS@ORA10G>

E. oracle 10G怎樣創建資料庫 怎樣給這個資料庫添加管理員和密碼!

哥們,oracle創建資料庫只能通過dbca。
步驟:打開cmd,直接輸入dbca。然後就是傻瓜式的了。全部選默認吧。

F. oracle怎樣創建樣例資料庫

Oracle資料庫實例的創建、刪除、修改
以SUSE10SP2、Oracle10gR2為例。
本文中的資料庫實例這一稱謂應該換做資料庫更為准確,資料庫可以理解為是一個物理的靜態概念,主要包括一些物理存在的資料庫文件,而資料庫實例則是一個動態概念,包括一些內存區域以及若干進程,資料庫實例是對資料庫進行操作的執行者。(20090714修改)
安裝完Oracle資料庫系統的安裝後,需要創建資料庫實例才能真正開始使用Oracle資料庫服務。
總結起來,Oracle有三種創建資料庫實例的方法。
第一種,最常用也最簡單,那就是通過DBCA(Database Configuration Assistant),這是Oralce提供的一個圖形界面的資料庫實例配置工具,通過它可以創建、刪除和修改資料庫實例,它的使用也比較簡單、易懂,互動式的圖形界面操作,非常准確有效的提示與配置,是一個比較方便的創建資料庫實例的方式。
按照DBCA給出的提示,很容易創建一個新資料庫實例。
在創建資料庫的時候,DBCA還提供了兩個選項,讓你可以根據剛剛設置好的參數生成一個資料庫實例模板和一份資料庫實例創建腳本。這兩個東西是非常好,非常有用的東西,資料庫模板由Oracle自己管理維護,已經創建好的資料庫實例模板可以在DBCA圖形程序新建資料庫實例時作為模板來使用,另外在DBCA使用responseFile文件或者命令行參數創建資料庫時也需要用到(見後面介紹);資料庫創建腳本是一組腳本,包括shell腳本和sql腳本,這些腳本共同實現一個功能,那就是按照你之前在DBCA中設置好的那樣創建一個資料庫實例(後面也會有介紹),你需要做的只是將這些腳本在你的代碼中調用起來。當然,你也可以選擇只生成資料庫模板或者資料庫腳本,而不用去創建一個真的資料庫(這通常很費時間)。
Oracle資料庫實例的創建、刪除、修改
DBCA是一個非常強大的工具,上面看到的只是DBCA最常用的創建一個資料庫實例的使用,其實DBCA還提供另外兩種使用方法,分別是responseFile和命令行帶參調用。
先說DBCA的responseFile使用方法,responseFile這個東東並不陌生,前文講的Oracle自動安裝就是使用responseFile完成的,DBCA的responseFile使用方法和Oracle安裝程序的responseFile使用方法基本一致。但DBCA的responseFile的來源只能是Oracle安裝包中提供的模板文件,而不能向Oracle安裝程序的responseFile一樣,先自己record一個,然後再用這個record去指導Oracle的自動安裝。從Oracle安裝包中獲取到DBCA的responseFile模板文件後,你可以根據自己的需要編輯修改該模板文件,以完成對資料庫實例的某些參數設置(DBCA圖形界面所提供的參數設置,responseFile中都可以設置,而且該responseFile模板文件的注釋寫的很好,你完全不用擔心無法搞定那些繁雜的資料庫實例參數設置,贊Oralce一個!)。該模板文件在Oracle安裝包中的位置一般在${ORACLE_PACKAGE}/response目錄下。
有了responseFile之後,你只需在調用DBCA的時候指定responseFile的位置和另外一些參數:
dbca [-silent|-progressOnly] -responseFile responseFile名稱
其中-silent|-progressOnly選項意義和Oracle安裝程序命令行參數中的同名選項一樣,表示完全字元界面自動安裝或者帶圖形提示界面的半自動化安裝。
responseFile名稱當然就是responseFile的具體位置了。
但是,有一點不是很好,那就是使用DBCA的responseFile方式創建Oracle資料庫實例,需要事先已經存在一個資料庫實例模板了,在responseFile中再指定該資料庫實例模板名,然後DBCA再依據這個已有的資料庫實例模板完成新資料庫實例的創建,所以就會有前面講到的DBCA圖形界面創建資料庫實例時提供生成資料庫實例模板的選項(資料庫實例模板也可以從一個已有資料庫實例生成),就是在這要用到的。
從上面調用DBCA使用responseFile的命令中,應該已經看到了DBCA是提供一些命令行參數選項的,其實DBCA提供的命令行參數選項遠比你想像的強大,甚至可以這么說,所有DBCA圖形界面和responseFile能夠辦到的事,通過DBCA豐富的命令行參數選項都可以辦到。你在DBCA圖形界面上設置的參數或者在responseFile中指定的參數值都可以通過DBCA的命令行參數選項來進行設置,所以你完全可以只通過DBCA的命令行帶參調用來完成一個資料庫實例的創建(當然也包括刪除、修改資料庫實例等所有DBCA圖形界面所能提供的功能)。其實,我更願意這樣認為,DBCA的responseFile應用也是一種DBCA命令行帶參調用的使用。需要注意的是,當DBCA的命令行參數和responseFile同時設置一個參數時,命令行參數的優先順序是比responseFile要高的。另外,使用DBCA命令行帶參調用新建資料庫實例和使用responseFile新建資料庫實例一樣,也是需要事先已經存在一個資料庫實例模板,才能完成新資料庫實例的創建。一份非常詳細的DBCA所有命令行參數選項列表,你可以通過執行dbca -help獲得。
到現在你可能已經發現,DBCA圖形界面、DBCA的responseFile使用以及DBCA的命令行帶參調用,其實是三個分別具備完全資料庫實例設置功能的工具或者介面,分別對應不同的應用場景,它們可以滿足你幾乎所有的應用需求(使用這樣的工具來幫助構建自己的軟體真是非常愜意的一件事情,再贊Oracle一個!)。
第二種是通過腳本(是否稱為命令行方式更合適,下文描述的腳本方式其實都是命令行方式的非互動式方法,或者說命令行的自動化方式,但其實所有腳本方式都可以將shell腳本或sql腳本中的shell命令、sqlplus命令拆分出來,手工在shell中或者sqlplus界面中進行互動式的輸入執行,這可以稱為命令行的手工方式)來完成資料庫實例的代碼中自動創建。這里說的腳本包括shell腳本和sql腳本,這種方式可以說是最適合與編程結合的,因為這些shell腳本或者sql腳本都可以直接在shell命令中調用執行,所以可以很好與shell編程相結合。而這其實是基於一個非常重要的事實,即Oracle提供了一個互動式的命令行工具sqlplus(類似與DB2的db2cmd),這個工具可以認為是一個Oracle資料庫管理工具,通過它可以執行一些Oracle的資料庫管理命令,來完成一些資料庫管理工作(這當然就包括資料庫實例的創建),同時你也可以把它當作一個SQL語句執行器,直接在里邊執行你想要執行的SQL語句或者存儲過程等,並獲取執行結果。並且,更重要的是,sqlplus可以直接在shell命令行中進行非互動式的調用執行(通常是調用執行一段sqlplus語句,或者是一個由一些sqlplus語句組成的sql腳本,我所說的sqlplus語句包括Oracle資料庫管理維護命令、SQL語句和存儲過程等),這就為在shell編程中使用sqlplus完成資料庫實例自動創建工作提供了可能。
shell命令行中非互動式調用sqlplus執行一段sqlplus語句是利用shell編程中重定向命令的一個特性,即分隔符重定向輸入。一般用法如下:
command<<任意自定義分隔符
>(換行)內容
>(換行)內容
>自定義分隔符
shell中遇到<<則會自動將下一個單詞認作分隔符,並將分隔符後面的文本當作command命令執行的內容傳遞給command依次全部執行直至遇到下一個分隔符單詞才結束。這里的分隔符可以是任意自定義的單詞,通常使用EOF,舉例:
sqlplus / as sysdba<<EOF
startup nomount;
select * from v$version;
shutdown immediate;
exit;
EOF
這段shell程序調用sqlplus執行了若干sqlplus語句,用來啟動資料庫實例,查詢資料庫版本信息,然後關閉資料庫實例,退出sqlplus。
shell命令行中非互動式調用sqlplus執行一個sql腳本是利用sqlplus本身提供的命令行參數。在sqlplus界面中可以通過start命令和@命令來執行一個sql腳本,兩者功效相同,用法如下:
SQL>start sql腳本絕對路徑;
SQL>@sql腳本絕對路徑;
而在shell命令行中可以使用@來完成sqlplus對sql腳本的調用執行,舉例:
sqlplus / as sysdba @./MySQL.sql
以上命令會調用sqlplus執行當前目錄下的MySQL.sql腳本。
使用腳本來完成資料庫實例的創建工作,也分為兩種情況。
一種是誠如前文所述的那樣,在使用DBCA圖形工具創建資料庫實例的同時生成一份資料庫實例創建腳本(包括若干shell腳本和sql腳本),那麼你就可以使用這份腳本,在shell中進行調用,完成資料庫實例的代碼自動創建。使用這份資料庫實例創建腳本創建的新資料庫實例和原資料庫實例是完全一樣,當然,你可以將生成的腳本進行修改,以完成你對資料庫實例的某些設置,但是請在你對腳本內容已經足夠了解,並且知道你自己在干什麼的情況下修改腳本,否則你很有可能使用修改後的腳本無法正確創建資料庫實例。這種方法中shell腳本對sqlplus的使用,更多的是使用sqlplus來執行一些Oracle生成的sql腳本(這些sql腳本的內容是就是一些sqlplus語句的集合,它們的任務就是完成資料庫實例的創建以及設置)。
另一種情況則是不依靠DBCA生成的腳本,完全由自己來編寫實現一份shell腳本,在腳本中你可以調用sqlplus執行一段sqlplus語句或者其它一些sql腳本,以完成資料庫實例的創建和設置,這完全取決於你的實現;而最常用的用來創建資料庫實例的一個方法就是在sqlplus中使用create database語句,create database語句提供了許多豐富的選項和參數設置,確保你能完全創建一個自己所需要的資料庫實例。當然,還有一些其它方法可以創建資料庫實例,比如調用執行oracle提供某些存儲過程等。
至於create database語句的詳細介紹可以參考oracle的sql reference。
第三種嚴格來說不能算作一種創建Oracle資料庫實例的方法,它是通過已有的資料庫實例為基礎來完成新資料庫實例的創建的。這種方法是首先通過第一種或者第二種方法來創建好一個資料庫實例,然後將該資料庫實例的物理文件進行備份,然後直接使用備份的物理文件恢復出一個與原資料庫實例完全一樣新的資料庫實例,所以這種方法需要和第一、二種方法相配合才能使用。這種方法其實已經屬於Oracle數據備份與恢復的范疇了,就是Oracle數據備份恢復方式中的物理備份恢復,所以這種方法可以叫做物理恢復法。
簡單介紹物理恢復法,首先將一個已經存在資料庫實例(最好已關閉)進行物理備份,所謂物理備份其實就是復制該資料庫實例所使用的操作系統文件,這些文件主要包括DataFiles、RedoLogs、ControlFiles和UndoFiles(這些文件一般存在於$ORACLE_HOME/oradata目錄下),進行資料庫實例恢復的時候只需將備份的操作系統文件復制到新的oradata目錄下即可,可以直接啟動使用恢復後的該資料庫實例。不難看出,這種備份恢復是依賴於操作系統平台的。
詳細的物理備份和恢復介紹可以參考oracle的backup and recovery basics以及backup and recovery advanced user's guide。
說完了資料庫實例的創建,現在來說說資料庫實例的刪除和修改。其實介紹完了資料庫實例的創建,資料庫實例的刪除和修改就非常簡單了。基本和前文資料庫實例創建的內容相一致,且比較而言更簡單。
資料庫實例的刪除從上文中資料庫實例的創建不難得到,大致有兩種方法,DBCA工具和命令行方式。
DBCA工具除了能夠用來創建資料庫實例,當然也能夠用來刪除資料庫實例了,且同樣可以用使用responseFile或者命令行帶參調用等方法來完成資料庫實例的刪除,請參考資料庫實例創建部分。
命令行刪除資料庫實例的方式,嚴格來講,是使用一組sqlplus命令來完成資料庫實例的刪除,這組sqlplus命令可以組織在一個sql腳本中,然後在shell命令行中調用sqlplus程序來執行該sql腳本,或者直接在shell命令行中利用shell程序重定向特性調用sqlplus依次完全執行這組sqlplus命令,再或者使用手工的互動式輸入執行,使用方法請參考資料庫實例創建部分。
其中涉及到的sqlplus命令參考以下:
SQL>startup restrict mount;
SQL>drop database;
使用sqlplus命令刪除資料庫實例,必須先以restrict mount方式將資料庫實例載入(但不打開),然後使用drop database語句刪除該資料庫實例。
資料庫實例的修改和資料庫實例的創建,情況類似,DBCA方式或者命令行方式。只要是DBCA方式能夠修改的資料庫實例參數,命令行方式也都能辦到。

G. oracle10g只有客戶端,可以創建資料庫嗎oracle10g中如何創建資料庫

客戶端是用來連接資料庫,對數據進行操作,本機沒有裝database,或沒有遠程資料庫,客戶端是沒有辦法操作的。

H. Oracle Database 10g Express Edition 如何創建一個資料庫

按照步驟走,挺靈活的。但是要在選擇資料庫模版時注意一下,有三個選項,選擇第二項可以定義資料庫的目錄,然後在自己創建主目錄下分別創建自己的子目錄,例如我,有REDOLOGS、ARCHIVELOGS、DATAFILES、CONTROLFILES等目錄,同時也要為FLASHRECOVERY指定目錄,完全可以自定義。在最後一步,就是顯示所有文件目錄的頁面上可以定義。但是要注意,10G的DBCA好像有些BUG,我曾經出現創建不成功的情況。但步驟應該是這樣的。包括資料庫的NLS類型,建議在創建時(如果是中文系統)定義為AMERICAN_AMERICA.WE8IS08859P1.因為用默認中文在CMD下會有顯示問題。當然也可以嘗試用CREATE DATABASE腳本創建,也比較靈活。更詳細的答案: http://www..com/s?bs=Oracle+Database+10g+Express+Edition+%C8%E7%BA%CE%B4%B4%BD%A8%D2%BB%B8%F6%CA%FD%BE%DD%BF%E2&f=8&wd=Oracle10g%C8%E7%BA%CE%B4%B4%BD%A8%D2%BB%B8%F6%CA%FD%BE%DD%BF%E2

熱點內容
神秘顧客訪問 發布:2025-05-15 20:33:39 瀏覽:296
安卓市場手機版從哪裡下載 發布:2025-05-15 20:17:28 瀏覽:814
幼兒速演算法 發布:2025-05-15 20:15:08 瀏覽:86
best把槍密碼多少 發布:2025-05-15 20:13:42 瀏覽:548
android安裝程序 發布:2025-05-15 20:13:20 瀏覽:559
c語言跳出死循環 發布:2025-05-15 20:06:04 瀏覽:824
a19處理器相當於安卓哪個水平 發布:2025-05-15 20:05:29 瀏覽:639
榮耀9i安卓強行關機按哪個鍵 發布:2025-05-15 20:00:32 瀏覽:750
密碼鎖寫什麼最好 發布:2025-05-15 19:05:31 瀏覽:783
5的源碼是 發布:2025-05-15 19:04:07 瀏覽:719