11g文件學習2----建立資料庫

studywell發表於2015-02-04

學習oracle官方之路 ---- 11g Release 2 (11.2)
Oracle Database Administrator's Guide
11g Release 2 (11.2)
E25494-05

Creating and Configuring an Oracle Database

建立資料庫有兩種方式,其中dbca又分為兩種;
(1)Creating a Database with DBCA
  (a)Creating a Database with Interactive DBCA
  (b)Creating a Database with Noninteractive/Silent DBCA
(2)Creating a Database with the CREATE DATABASE Statement
本文件主要學習命令列建立資料庫,操作步驟如下:

Step 1: Specify an Instance Identifier (SID)

sid 最長8個字元;部分平臺sid區分大小寫;
linux/unix平臺設定sid的方法,注意不同的語言不同設定方法。
    Bourne, Bash, or Korn shell:
    ORACLE_SID=mynewdb
    export ORACLE_SID

    C shell:
    setenv ORACLE_SID mynewdb

windows平臺設定sid的方法
set ORACLE_SID=mynewdb


Step 2: Ensure That the Required Environment Variables Are Set

檢視ORACLE_SID和ORACLE_HOME是否設定好;

Step 3: Choose a Database Administrator Authentication Method
選擇一種管理員認證方法,
(1)透過密碼檔案認證;
(2)透過系統認證;


Step 4: Create the Initialization Parameter File

        手動建立的引數至少包括DB_NAME,CONTROL_FILES,MEMORY_TARGET;其他引數不寫將會自動使用預設值;
        建立好的引數檔案放在預設位置,資料庫啟動時將自動設別;

建立資料檔案儲存路徑
[root@OL541 u01]# mkdir -p /u02/data
[root@OL541 u02]# mkdir arclog

編輯引數檔案:/u01/app/oracle/product/11.2.0/db_1/dbs/pfileorcl.ora,內容如下:
db_name='orcl'
memory_target=900M
control_files = (/u02/data/control1.ctl,/u02/data/control2.ctl,/u02/data/control3.ctl)



Step 5: (Windows Only) Create an Instance

    On the Windows platform, before you can connect to an instance, you must manually create it if it does not already exist. The ORADIM command creates an Oracle instance by creating a new Windows service.
    To create an instance:
    Enter the following command at a Windows command prompt:
    oradim -NEW -SID sid -STARTMODE MANUAL -PFILE pfile
    where sid is the desired SID (for example mynewdb) and pfile is the full path to the text initialization parameter file. This command creates the instance but does not start it.

    Caution:Do not set the -STARTMODE argument to AUTO at this point, because this causes the new instance to start and attempt to mount the database, which does not exist yet. You can change this parameter to AUTO, if desired, in Step 14.

Step 6: Connect to the Instance

    Start SQL*Plus and connect to your Oracle Database instance with the SYSDBA system privilege.
    To authenticate with a password file, enter the following commands, and then enter the SYS password when prompted:
    $ sqlplus /nolog
    SQL> CONNECT SYS AS SYSDBA

    To authenticate with operating system authentication, enter the following commands:
    $ sqlplus /nolog
    SQL> CONNECT / AS SYSDBA

    SQL*Plus outputs the following message:
    Connected to an idle instance.


Step 7: Create a Server Parameter File

     透過pfile檔案建立spfile;建立後重啟資料庫,資料庫將自動讀取spfile檔案啟動;
     CREATE SPFILE FROM PFILE;
     SYS@orcl>create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/pfileorcl.ora';
     
Step 8: Start the Instance

        STARTUP NOMOUNT
        At this point, the instance memory is allocated and its processes are started. The database itself does not yet exist.

        @>conn / as sysdba
        Connected to an idle instance.
        SYS@orcl>startup nomount
        ORACLE instance started.

        Total System Global Area  941600768 bytes
        Fixed Size                  1348860 bytes
        Variable Size             549456644 bytes
        Database Buffers          385875968 bytes
        Redo Buffers                4919296 bytes


Step 9: Issue the CREATE DATABASE Statement

Example 1
編寫建立資料庫指令碼:
 vim create_database.sql
 內容如下:

CREATE DATABASE orcl
   USER SYS IDENTIFIED BY oracle
   USER SYSTEM IDENTIFIED BY oracle
   LOGFILE GROUP 1 ('/u02/data/orcl/redo01.log') SIZE 100M BLOCKSIZE 512,
           GROUP 2 ('/u02/data/orcl/redo02.log') SIZE 100M BLOCKSIZE 512,
           GROUP 3 ('/u02/data/orcl/redo03.log') SIZE 100M BLOCKSIZE 512
   MAXLOGFILES 30
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   CHARACTER SET AL32UTF8
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   DATAFILE '/u02/data/orcl/system01.dbf' SIZE 450M REUSE
   SYSAUX DATAFILE '/u02/data/orcl/sysaux01.dbf' SIZE 450M REUSE
   DEFAULT TABLESPACE users
      DATAFILE '/u02/data/orcl/users01.dbf'
      SIZE 10M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   DEFAULT TEMPORARY TABLESPACE temp
      TEMPFILE '/u02/data/orcl/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs
      DATAFILE '/u02/data/orcl/undotbs01.dbf'
      SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

===================================================================
Example 2

pfileorcl.ora 檔案中只有db_name='orcl'

create spfile from pfile='/u02/data/orcl/pfileorcl.ora';
退出sql,重進
startup nomount
alter system set db_create_file_dest='/u02/data/orcl' scope=spfile;
重啟資料庫到mount狀態;


建立資料庫的指令碼如下:
CREATE DATABASE orcl
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE temp
UNDO TABLESPACE undotbs
DEFAULT TABLESPACE users;


Step 10: Create Additional Tablespaces

建立額外的表空間
編寫指令碼:[oracle@OL541 ~]$ vi create_tbs.sql

CREATE TABLESPACE apps_tbs LOGGING
     DATAFILE '/u02/data/orcl/apps01.dbf'
     SIZE 50M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED
     EXTENT MANAGEMENT LOCAL;
-- create a tablespace for indexes, separate from user tablespace (optional)
CREATE TABLESPACE indx_tbs LOGGING
     DATAFILE '/u02/data/orcl/indx01.dbf'
     SIZE 10M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED
     EXTENT MANAGEMENT LOCAL;


Step 11: Run Scripts to Build Data Dictionary Views

Run the scripts necessary to build data dictionary views, synonyms, and PL/SQL packages, and to support proper functioning of SQL*Plus.

conn / as sysdba
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql

conn system/oracle
@?/sqlplus/admin/pupbld.sql

指令碼作用
Script     Description
CATALOG.SQL     Creates the views of the data dictionary tables, the dynamic performance views, and public synonyms for many of the views. Grants PUBLIC access to the synonyms.
CATPROC.SQL     Runs all scripts required for or used with PL/SQL.
PUPBLD.SQL       Required for SQL*Plus. Enables SQL*Plus to disable commands by user.

3個指令碼依次執行完成,但發現沒有日誌輸出記錄,下次得建一個日誌輸出;

Step 12: (Optional) Run Scripts to Install Additional Options
建立額外的物件

Step 13: Back Up the Database.
備份資料庫
停止資料庫,可整個複製一下;

Step 14: (Optional) Enable Automatic Instance Startup

windows下設定允許自動啟動
ORADIM -EDIT -SID sid -STARTMODE AUTO -SRVCSTART SYSTEM [-SPFILE]



附錄:

1、使用者密碼問題
    USER SYS IDENTIFIED BY password
    USER SYSTEM IDENTIFIED BY password
這兩個選項在建立資料庫時不是必須的,但強烈建議使用;
他們預設密碼分別是:sys/change_on_install,system/manager

2、local managed tablespace
EXTENT MANAGEMENT LOCAL 指定本選項將使用本地管理方式,同時引數檔案中COMPATIBLE必須設定大於10.0.0;
如不指定EXTENT MANAGEMENT LOCAL,將預設使用不推薦的字典管理表空間;


3、關於SYSAUX表空間
        SYSAUX表空間是system的輔助表空間,不可刪除或重新命名;在建立初始不得小於400M;
    SYSTEM表空間的屬性和SYSAUX一樣;
    
    
4、關於undo 表空間

建立資料庫時不指定undo表空間,系統將自動建立一個名為SYS_UNDOTBS的表空間;
spfile引數中undo_management預設是AUTO,undo_retention預設是900;

5、關於temp表空間;
    如果system表空間採用本地管理模式,system表空間將不能用作為臨時表空間;

6、Specifying Oracle Managed Files at Database Creation        
   使用OMF將減少大量建立資料庫需要的命令;你只需要指定一個目錄或ASM磁碟;
   OMF需在spfile中設定相關的引數如下:DB_CREATE_FILE_DEST, DB_CREATE_ONLINE_LOG_DEST_n, or DB_RECOVERY_FILE_DEST
   OMF可管理的檔案:
    Tablespaces and their data files
    Temporary tablespaces and their temp files
    Control files
    Redo log files
    Archived redo log files
    Flashback logs
    Block change tracking files
    RMAN backups

7、大資料檔案表空間
   大資料檔案表空間只能有一個資料檔案,該資料檔案可有最多4G blocks;每個資料庫最多64K個資料檔案;
   
8、表空間型別
   如不指定表空間型別,即SET DEFAULT BIGFILE TABLESPACE or SET DEFAULT SMALLFILE TABLESPACE,則會預設採用smallfile tablespace;    
   
   示例:建立資料庫時採用大資料檔案表空間;
   CREATE DATABASE mynewdb
     USER SYS IDENTIFIED BY sys_password
     USER SYSTEM IDENTIFIED BY system_password
     SET DEFAULT BIGFILE TABLESPACE
     UNDO TABLESPACE undotbs
     DEFAULT TEMPORARY TABLESPACE tempts1;

        建立資料庫後修改預設表空間型別;
        ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;

        查詢當前資料庫的表空間預設型別;
    SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES  WHERE PROPERTY_NAME = 'DEFAULT_TBS_TYPE';
        
        SYSTEM和SYSAUX表空間始終採用預設的表空間型別,但對UNDO和DEFAULT TEMP表空間可特別指定表空間型別;
        
9、關於資料庫Time Zone and Time Zone File   
        在建立資料庫時如SET TIME_ZONE 可指定資料庫時區,如不用則採用作業系統的時區;
        資料庫有兩個時區檔案
        預設時區檔案:ORACLE_HOME/oracore/zoneinfo/timezlrg_11.dat.
        小一點的時區檔案:ORACLE_HOME/oracore/zoneinfo/timezone_11.dat.
        查詢當前資料庫使用的時區檔案中的時區名:SELECT * FROM V$TIMEZONE_NAMES;        
        
        所有的資料庫共享資訊必須使用相同的時區資料檔案;
        不建議使用小的時區檔案;
        
10、Specifying FORCE LOGGING Mode            
     NOLOGGING引數可導致資料庫一些操作不寫redo,雖然提高效率,但出問題將無法恢復。
     取消資料庫強制日誌:ALTER DATABASE NO FORCE LOGGING;
     檢視當前資料庫是否強制日誌模式:select  FORCE_LOGGING  from v$database;
     強制日誌模式,資料庫級別優先於表空間級別;
     oracle建議資料庫和表空間不要同時設定成強制日誌模式;
     重建控制檔案後會丟失強制日誌模式,所以在重建控制檔案時應指定強制日誌模式;
     不使用強制日誌模式情況:效能極大降低,對恢復無大要求,沒有執行在歸檔模式下。

11、Specifying Initialization Parameters

        pfile引數只要有DB_NAME就能啟動,其他引數會取預設值;
        DB_NAME must be set to a text string of no more than eight characters. During database creation, the name provided for DB_NAME is recorded in the data files, redo log files, and control file of the database. If during database instance startup the value of the DB_NAME parameter (in the parameter file) and the database name in the control file are different, the database does not start.

        Fast Recovery Area,不能使用裸裝置;
        控制檔案,不指定位置,系統將自動在引數檔案目錄內建立。
        block size 32K只能用於64-bit平臺上。
        PROCESSES 是指允許最多的作業系統程式與oracle 通訊;
        DDL_LOCK_TIMEOUT,預設值是0;To enable DDL statements to wait for locks, specify a DDL lock timeout—the number of seconds a DDL command waits for its required locks before failing.
        COMPATIBLE :控制資料庫所能使用的功能;建立庫時引數不指定,則使用當前軟體版本11.2.0,不能降級;
        license:license_max_sessions和license_max_users可控制資料庫使用者數和連線量;
        建立spfile:CREATE SPFILE FROM MEMORY; 或create pfile='/u02/data/pfiletmp.ora' from memory;

12、CloneDB
        11.2.0.3開始支援CloneDB;
        
        
13、Dropping a Database        
        刪除資料庫,將刪除控制檔案和控制檔案中所列的資料檔案;不會刪除歸檔日誌;
        命令:DROP DATABASE;
        刪除資料庫操作建議將資料庫置於restrict模式;在restrict模式時,不能透過TNS連線,只能管理員在本地連線;
        startup mount restrict
        drop database;
        
        或者:
        startup
        alter database close;
        alter system enable restricted session;
        drop database;
        就是說drop database 必須處於mount restrict模式;
        
        資料庫啟動
        只讀模式:ALTER DATABASE OPEN READ ONLY;
    預設的讀寫模式:ALTER DATABASE OPEN READ WRITE;
        
14、資料庫字典檢視        
        View                                         Description
        DATABASE_PROPERTIES     Displays permanent database properties
        GLOBAL_NAME                     Displays the global database name
        V$DATABASE                         Contains database information from the control file

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

相關文章