Oralce 10g 使用DBCA建立資料庫
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
--===================================
--使用DBCA建立資料庫
--===================================
Oracle
一、規劃資料庫
1.建立資料庫的目的(高可用性、併發性、資料裝載)
3.資料庫儲存結構的設計
4.資料庫的名稱、字符集
5.db_block 塊的大小
6.資料庫容量的初始大小及增幅
二、建庫前需要確認的問題(建立後不可修改)
1.資料庫字符集(建議使用AL32UTF8,該字符集支援XML)
2.資料庫的名稱(SID)
以下是可調整的設定,建議提前確定
1.SGA大小sga_max_size
2.日誌緩衝區大小log_buffer
3.最大允許程序數
其他注意事項
1.檔案儲存方式(檔案系統/RAW/ASM)
2.資料檔案、日誌檔案大小、儲存位置
3.表空間的構成
三、建庫的幾種方法
1.通過OUI安裝軟體後自動呼叫DBCA來建立
2.手動呼叫DBCA建立(圖型化介面,跨平臺)
3.手動執行命令建立
四、檢視資料庫是否已經建立
方式一:以下方式可以檢視使用DBCA已建立的資料庫
[[email protected] isqlplus]$ more /etc/oratab
/*
#
# This file is used by ORACLE utilities. It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.
# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
orcl:/u01/app/oracle/10g:N
Test:/u01/app/oracle/10g:N
*/
方式二:以下方式檢視手動建立的資料庫
[[email protected] isqlplus]$ ls $ORACLE_BASE/admin /*檢視沒有使用DBCA建立的資料庫*/
Test orcl
[[email protected] isqlplus]$ ls /u01/app/oracle/oradata/Test /*如存在檔案則表示已安裝該庫*/
control01.ctl control03.ctl redo01.log redo03.log system01.dbf undotbs01.dbf
control02.ctl example01.dbf redo02.log sysaux01.dbf temp01.dbf users01.dbf
五、使用DBCA建立資料庫
1.開啟Linux中的命令列模式
2.在root帳戶下執行xhost +
3.切換到oracle 帳戶,執行DBCA
4.按提示操作完畢
六、檢視相關資訊
--1.檢視作業系統中的模板資料庫檔案所在的位置
[[email protected] admin]$ ll /u01/app/oracle/10g/assistants/dbca/templates
total 112120
-rw-r----- 1 oracle oinstall 5728 Jun 30 2005 Data_Warehouse.dbc
-rw-r----- 1 oracle oinstall 5608 Jun 30 2005 General_Purpose.dbc
-rw-r----- 1 oracle oinstall 12050 May 16 2005 New_Database.dbt
-r-xr-xr-x 1 oracle oinstall 7061504 Jul 2 2005 Seed_Database.ctl
-r-xr-xr-x 1 oracle oinstall 93569024 Jul 2 2005 Seed_Database.dfb
-rw-r----- 1 oracle oinstall 5665 Jun 30 2005 Transaction_Processing.dbc
-r-xr-xr-x 1 oracle oinstall 991232 Jul 2 2005 example.dmp
-r-xr-xr-x 1 oracle oinstall 13017088 Jul 2 2005 example01.dfb
--2.檢視建立資料庫期間儲存的指令碼檔案位置及指令碼檔案
[[email protected] scripts]$ pwd
/u01/app/oracle/admin/Test/scripts
[[email protected] scripts]$ ls
CloneRmanRestore.sql cloneDBCreation.sql initTestTemp.ora rmanRestoreDatafiles.sql
Test.sh customScripts.sql postDBCreation.sql
Test.sql init.ora postScripts.sql
--剛剛建立的被儲存為Test.sh和Test.sql,下次可以直接執行Test.sh即可完成建庫
[[email protected] scripts]$ cat Test.sh
#!/bin/sh
--建立相關檔案目錄
mkdir -p /u01/app/oracle/10g/cfgtoollogs/dbca/Test
mkdir -p /u01/app/oracle/10g/dbs
mkdir -p /u01/app/oracle/admin/Test/adump
mkdir -p /u01/app/oracle/admin/Test/bdump
mkdir -p /u01/app/oracle/admin/Test/cdump
mkdir -p /u01/app/oracle/admin/Test/dpdump
mkdir -p /u01/app/oracle/admin/Test/pfile
mkdir -p /u01/app/oracle/admin/Test/udump
mkdir -p /u01/app/oracle/flash_recovery_area
mkdir -p /u01/app/oracle/oradata/Test
--設定Oracle_SID
ORACLE_SID=Test; export ORACLE_SID
--修改oratab檔案
echo You should Add this entry in the /etc/oratab: Test:/u01/app/oracle/10g:Y
--使用nolog登陸並執行Test.sql
/u01/app/oracle/10g/bin/sqlplus /nolog @/u01/app/oracle/admin/Test/scripts/Test.sql
-------------------------------------------------------------------------------------
--檢視Test.sql
[[email protected] scripts]$ more Test.sql
--設定密碼
set verify off
PROMPT specify a password for sys as parameter 1;
DEFINE sysPassword = &1
PROMPT specify a password for system as parameter 2;
DEFINE systemPassword = &2
PROMPT specify a password for sysman as parameter 3;
DEFINE sysmanPassword = &3
PROMPT specify a password for dbsnmp as parameter 4;
DEFINE dbsnmpPassword = &4
--使用orapwd命令生成密碼檔案
host /u01/app/oracle/10g/bin/orapwd file=/u01/app/oracle/10g/dbs/orapwTest password=&&sysPassword force=y
--執行下列指令碼
@/u01/app/oracle/admin/Test/scripts/CloneRmanRestore.sql
@/u01/app/oracle/admin/Test/scripts/cloneDBCreation.sql
@/u01/app/oracle/admin/Test/scripts/postScripts.sql
@/u01/app/oracle/admin/Test/scripts/postDBCreation.sql
@/u01/app/oracle/admin/Test/scripts/customScripts.sql
------------------------------------------------------------------------------------------
--檢視CloneRmanRestore.sql
[[email protected] scripts]$ cat CloneRmanRestore.sql
--使用sys帳戶登陸
connect "SYS"/"&&sysPassword" as SYSDBA
set echo ON
--輸入日誌檔案
spool /u01/app/oracle/admin/Test/scripts/CloneRmanRestore.LOG
--使用靜態引數檔案啟動資料庫
startup nomount pfile="/u01/app/oracle/admin/Test/scripts/init.ora";
@/u01/app/oracle/admin/Test/scripts/rmanRestoreDatafiles.sql;
------------------------------------------------------------------------------------------
--檢視rmanRestoreDatafiles.sql
[[email protected] scripts]$ cat rmanRestoreDatafiles.sql
--從rman備份檔案中恢復建立資料庫所必須的基本資料檔案
set echo off;
set serveroutput on;
select TO_CHAR(systimestamp,'YYYYMMDD HH:MI:SS') from dual;
variable devicename varchar2(255);
declare
omfname varchar2(512) := NULL;
done boolean;
begin
dbms_output.put_line(' ');
dbms_output.put_line(' Allocating device.... ');
dbms_output.put_line(' Specifying datafiles... ');
:devicename := dbms_backup_restore.deviceAllocate;
dbms_output.put_line(' Specifing datafiles... ');
dbms_backup_restore.restoreSetDataFile;
dbms_backup_restore.restoreDataFileTo(1, '/u01/app/oracle/oradata/Test/system01.dbf', 0, 'SYSTEM');