ORACLE DBA基礎(一)

安裝和管理ORACLE
1、  ORACLE通用安裝程序(OUI)

一種基於JAVA並適用於所有平臺的工具來安裝ORACLE9I。

2、  數據庫配置助手(Database Configuration Assistant)

用以創建一個新的數據庫

3、ORACLE網絡配置助手(Oracle Net Configuration Assistant)

      可爲數據庫庫設定監聽者

4、  Oracle Enterprice Manager(OEM)    ORACLE企業管理器

是一個圖形化系統管理工具,用於管理工作ORACLE的組件,並且以會話方式管理數據庫

5、  優化靈活的體系結構(OFA)

是由ORACLE定義的一組導向行,用以更好的管理ORACLE軟件和數據庫

6、  select * from v$pwfile_users

查出所有被賦權爲SYSDBA或SYSOPER用戶的信息。

7、  啓動實例

startup nomount   -à實例可啓動,但不安裝配數據庫。通常在創建一個新的數據庫或創建新的控制文件時使用該語句。

Startup mount     -à能夠啓動且裝配數據庫,但並不打開它。通常用於執行特定的維護操作。比如重命名數據文件,啓用或停用存檔日誌等。

Startup [open]     -à啓動實例,裝配數據庫,並且爲正常的操作打開數據庫。

Alter database mount  -à當數據庫未安裝時,發出該命令,能用一個先前已開始了的實例來裝配數據庫。

Alter database open   -à該命令將打開一個已關閉的數據庫。

Alter database open read only -à以只讀的模式打開一個數據庫,不能修改任何數據。

Startup force    -à有時啓動實例時可能有問題,可使用該命令來強制啓動一個沒能關閉的或沒能正常啓動的數據庫。只應在不能正常關閉數據庫時使用這個選項,STARTUP FORCE會關閉已運行的實例並重新啓動它。

Startup restrict   à以限制模式啓動數據庫,從而限制訪問數據庫。只有具有RESTRICTED SESSION系統權限的用戶能與數據庫聯接。在打開數據庫以後,還可以使用ALTER SYSTEM [ENABLE/DISABLE] RESTRICTED SESSION語句啓動或關閉訪問限制功能。

8、取得參數值

      show parameters [參數名]-à當這個命令沒有指定參數名時,ORACLE按字母順序顯示所有的參數及其值。如show parameters db_block_size

或show parameters os 將所有命令包含有OS字母的參數全部顯示出來。

9、  select * from v$parameter à顯示當前的會話的參數值。

Select * from v$system_parameter  -à顯示系統參數

如:select name,value from v$parameter

10、設置參數值

      alter system--à改變系統參數的值

      slter system set log_archive_dest=’/oracle/archive/DB01’ immediate ‘IMMEDIATE’指出只要改變參數的值,就立刻適用於該實例的所有會話。

  Alter system set timed_statistics=true deferred  ‘DEFERRED’批出所做的變化在新的會話開始之前,不會立刻生效,當前的會話仍然使用當前的值。

  Alter session -à改變參數的值

  使用該命令改變一個參數,參數的值僅僅在那個會話期被改變。當開始下一個會話時,參數將被賦予原先的值。

  Alter session set nls_date_formate=’MM-DD-YYYY’;

11、管理會話

      當做數據庫連接時,ORACLE就啓動一個會話,只要用戶與數據庫連接,會話就可用。

      爲顯示連接到數據庫的用戶會話,可查詢視圖:v$session

      在v$session中SID和序列號(SERIAL#)惟一地標識每個會話。

  如:select username,sid,serial#,status from v$session

12、中止會話

      alter system kill session ‘sid,serial#’;

如:alter system kill session ‘9,3’;其中SID,SERIAL#通過從v$session視圖中查詢得知。

如果希望用戶完成當前的事務然後結束會話,可以使用alter system disconnect session命令。

如:alter system disconnect session ‘9,3’ post_transaction;

如 果希望用戶回退正在進行的事務,釋放所有會話鎖,恢復整個會話狀態,立記得將控制返回。可以使用:alter system disconnect session ‘9,3’ immediate;或alter system kill session ‘9,3’  immediate;

13、關閉ORACLE實例

      shutdown normal 當不帶先項的SHUTDOWN命令時,默認先項是NORMAL

      此命令做以下事情:

             A不允許新用戶連接

             B.等待所有用戶斷開與數據庫的連接,所有已連接的用戶可以繼續工作。

       C.關閉數據庫,卸載實例,關且一旦所有用戶數據與數據庫的連接則關閉實例。

   Shutdown immediate 使數據庫儘可能快的關閉。

   此命令做以下事情:

A. 不允許新用戶連接

B. 終止所有用戶與數據庫的連接

C. 回退所有提交的事務

D.關閉數據庫,卸載實例,關閉實例

   shutdown transactional  在用戶完成他們當前的事務時關閉數據庫。

A.      不允許新用戶的連接

B.      不允許數據庫的新事務,如果用戶企圖開始一個新事務,則會話斷開。

C.      等待用戶回退或提交未提交的事務。

D.     關閉數據庫,卸載實例,一旦所有事務完成。關閉實例

shutdown abort  如果其它三個關閉選項不起作用,該命令突然關閉數據庫。當下次啓動該數據庫時,需要實例恢復。

A.      終止正在執行的所有當前SQL語句

B.      斷開所有連接的用戶

C.      立即終止實例

D.     不回退未提交的事務。如果數據庫在該模式下之後啓動,ORACLE必須使用聯機重做日誌文件回退未提交的事務。

14、實例消息和實例警告

      ORACLE將信息化的消息和警告寫入不同的文件.這些不同的文件的位置在初始化參數中指定:

      BACKGROUND_DUMP_DEST-à寫入調試跟蹤文件的位置

      USER_DUMP_DEST -à寫入由用戶會話生成的跟蹤文件的位置.

      CORE_DUMP_DEST -à寫入主存信息轉儲文件的位置.

15、OMF(ORACLE管理文件)

      ORACLE管理文件的特性:可以使用兩個初使化參數定義文件在操作系統中的位置:

      DB_CREATE_FILE_DEST-à指定新數據文件的默認位置.

   DB_CREATE_ONLINE_LOG_DEST_n-à爲聯機重做日誌文件和控制文件指定最5個位置.

創建數據庫和數據詞典
1、創建數據庫的先決條件:

A. 分配必要的硬件資源,如內存和硬盤空間

B. 設置操作系統和SYSDBA權限

C. 設定參數文件

D.設置的環境變量

E. 安裝ORACLE軟件

F. 備份現有數據庫

2、創建數據庫命令

創建數據庫之前,必須啓動一個實例(用STARTUP NOMOUNT)

例子:

CREATE DATABASE “數據庫名”

CONTROLFILE REUSE      -à覆蓋已有的控制文件,通常只有在重建數據庫時,才使用。

LOGFILE GROUP 1    àLOGFILE子句指定聯機重做日誌文件的位置,如果省略GROUP子句,ORACLE對第個文件創建一個組。一個數據庫至少需要含有兩個重執行組。

(’/oradata02/PROD01/redo0101.log’,

‘/oradata03/PROD01/redo0102.log)SIZE 5M REUSE,

GROUP 2

(‘/oradata02/PROD01/redo0201.log’,

‘/oradata03/PROD01/redo0202.log) SIZE 5M REUSE

MAXLOGFILES 4       à定義數據庫可以創建的最大重做日誌文件的數目.

MAXLOGMEMBERS 2  à定義每個重做日誌組可以擁有的最大重做日誌文件個數.

MAXLOGHISTORY 0   à只用於設置實應用簇.定義媒體自動恢復的重做日誌文件的大小.

MAXDATAFILES 254   à定義數據庫可以創建的最多數據文件數(當創建表空間時)

MAXINSTANCES 1     à定義可以同時裝配和打開的最大實例數目.

NOARCHIVELOG  à設置重執行日誌文件的存儲模式(這是默認值)另一值爲:ARCHIVELOG

CHARACTER SET “WE8MSWIN1252”   à指定存儲數據使用的字符集(這是WINDOW平臺的默認值)

NATIONAL CHARACTER SET “AL16UTF16” à指定國家字符集,用於在NCHAR,NCLOG或NVARCHAR2列中存儲數據..

DATAFILE ‘/oradata01/PROD01/system01.dbf’ SIZE 90M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED      à定義爲SYSTEM表空間創建的一個或多個文件.

UNDO TABLESPACE UNDOTBS  DATAFILE ‘/oradata04/PROD01/undo01.dbf’ SIZE 35Mà指定一個具有一個或多個相關的數據文件的撤消表空間.

DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE ‘/oradata05/PROD01/temp01.dbf’ SIZE 20M  à定義所有臨時表空間的位置

3、  創建數據庫所涉及的工作總結:

A. 確保擁有足夠的資源和必要的權限。

B. 確定數據庫的名稱,控制文件的位置,數據庫的塊大小,並準備一份包括其他必要參數的參數文件。

C. 確定控制文件,數據文件和重做日誌文件的位置。在可能的情況下,應該把可能會競爭資源的數據文件分散到不同的物理存儲部件裏。

D.確定數據庫的版本和實例名稱。設置環境變量ORACLE_HOME爲安裝ORACLE軟件的目錄,設置ORACLE_SID爲實例名稱.通常情況下,實例名和數據庫名相同.如果不使用默認的字符集,還要設置ORA_NLS33環境變量.

E. 啓動實例.使用SQL*PLUS,連結SYSDBA賬戶,運行STARTUP NOMOUNT命令

F. 使用CREATATE DATABASE 命令創建數據庫

4、  每個數據庫應至少有一個與之關聯的實例,多個實例可以訪問一個數據庫。每一個實例可否有多個數據庫?若有多個數據庫的話,當發出STARTUP命令時, 是不是所有的數據庫一塊打開?能不能特別指定其中的一個數據庫?創建用戶或創建表空間時如何特定指定是哪個數據庫?

5、  數據庫安裝完後,ORACLE會自動調用以下兩個SQL腳本創建數據詞典

CATALOG.SQL à用於創建數據詞典視圖

CATPROC.SQL à創建實現PL/SQL功能的必要的詞典項目

6、  管理存儲程序和軟件包

創建過程,軟件或函數的代碼可以通過DBA_SOURCE,ALL_SOURCE,USER_SOURCE詞典視圖訪問

DBA_OBJECTS,ALL_OBJECTS,USER_OBJECTS視圖提供關於存儲過程的狀態信息.

7、  重編譯命令:

ALTER PROCEDURE 〈過程名〉 COMPILE;

ALTER PROCEDURE  〈包名〉COMPILE;

ALTER PROCEDURE 〈包名〉COMPILE BODY;

8、  數據詞典分類

DBA_  à包含數據庫中的所有結構的信息

ALL_  à提供用戶可訪問的對象的信息

USER_  à顯示用戶擁有的結構的信息(按用戶方案)

      V$  -à動態運行視圖,(真正的動態運行視圖以V_$爲前綴,V$只是它的同義詞)

9,可以使用數據詞典信息產生數據庫中對象創建的代碼.

 表的信息可通過DBA_TABLES,DBA_TAB_COLUMNS,ALL_TABLES,ALL_TAB_COLUMNS,USER_TABLES,USER_TAB_COLUMNS詞典視圖獲得.

10,詞典視圖DICTIONARY(DICT)包含數據庫中所有數據詞典的名稱和描述信息.

控制文件和重執行日誌文件
控制文件
1, 控制文件à維護數據庫物理結構的信息,可看作是實際數據庫的元數據倉庫,它含有數據庫的結構à數據文件和重執行日誌文件.

 控制文件是持續不斷的更新的,

 控制文件的大小由創建數據庫的MAX子句決定.

 當向數據庫添加文件或者改變文件的位置時,ORACLE服務器里程會立即更新控制文件中的相應信息.

 控制文件包含兩種記錄:可重複使用的和不可重複使用的.

2, 控制文件應包含如下內容:

   A.控制文件所屬的數據庫名稱,一個控制文件只能屬於一個數據庫.

 B.創建數據庫的時間戳記

 C.數據文件,的時間,位置和聯機脫機狀態信息.

 D.重執行日誌文件的名稱和位置,和存檔信息

 E.表空間名稱

 F.當前的日誌序列號

 G.最近的檢查點信息

 H.撤消段的開始和結束

 I.RMAN的備份信息

3.複用控制文件àORACLE建議至少有兩個控制文件

複用的方法有兩種:

A>用init.ora複用控制文件

 要定義複用的控制文件,先複製控制文件到不同的位置,並更改初使化文件init.ora裏的CONTROL_FILES參數.

 通常應該把控制文件存放在多個磁盤

 如果損失了一控制文件,只要複製另外的控制文件,或更改初始文件中的CONTROL_FILES參數,就可以重新啓動數據庫.

增加控制文件的副本的步驟:

A.關閉數據庫

B.使用操作系統命令把控制文件複製到多個位置

C.更新初使化參數文件的CONTROL_FILES參數,使它包含所有新的控制文件的名稱.

D.啓動數據庫

B>使用SPFILE複用控制文件

步驟:

A.在數據庫開啓狀態下更改SPFILE:

SQL>ALTER SYSTEM SET CONTROL_FILES=

   ‘/ora01/oradata/MYDB/ctrlMYDB01.ctl’,

‘/ora02/oradata/MYDB/ctrlMYDB02.ctl’,

‘/ora03/oradata/MYDB/ctrlMYDB03.ctl’,

‘/ora04/oradata/MYDB/ctrlMYDB04.ctl’  SCOPE=SPFILE;

B.關閉數據庫

SQL>SHUTDOWN NORMAL;

C.複製已有的控制文件到新的位置(複製,粘貼)

D.啓動實例.

SQL>STARTUP;

4. 創建新的控制文件

在以下情況下需要創建新的控制文件

A.如果丟失了所有的控制文件

B.如果想要更改CREATE DATABASE命令中任一MAX子句.

C.如果想更改數據庫的名稱

創建新的控制文件的前提:

需要知道數據文件的名稱和重執行日誌文件的名稱

5. 創建控制文件的步驟

A.

CREATE CONTROLFILE SET DATABASE “ORACLE”

 NORESETLOGS NOARCHIVELOG

 MAXLOGFILES 32

 MAXLOGMEMBERS 2

 MAXDATAFILES 32

 MAXINSTANCES 1

 MAXLOGHISTORY 1630

LOGFILE

 GROUP 1 ‘C:/ORACLE/DATABASE/LOG2ORCL.ORA’ SIZE 500K,

 GROUP 2 ‘C:/ORACLE/DATABASE/LOG1ORCL.ORA’ SIZE 500K

DATAFILE

 ‘C:/ORACLE/DATABASE/SYS1ORCL.ORA’,

 ‘C:/ORACLE/DATABASE/USR1ORCL.ORA’,

 ‘C:/ORACLE/DATABASE/RBS1ORCL.ORA’,

 ‘C:/ORACLE/DATABASE/TMP1ORCL.ORA’,

‘C:/ORACLE/DATABASE/APPDATA1.ORA’,

‘C:/ORACLE/DATABASE/APPINIDX1.ORA’;

B.關閉數據庫

C.STARTUP NOMOUNT (ORACLE需要打開控制文件才能裝載數據庫)

D.控制文件的名字和位置按照初始化參數CONTROL_FILES的定義

E.用ALTER DATABASE OPEN命令打開數據庫.

F.關閉數據庫.並且備份數據庫

6. 查詢V$DATAFILE視圖,可以查出是否有在控制文件中所列出的控制文件被遺漏.如果有遺漏的文件則以MISSINGnnnn名稱顯示.

如果以RESETLOGS選項創建控制文件,遺漏的數據文件不能加回數據庫.

如果以NORESETLOGS選項創建控制文件,遺漏的數據文件可以通過媒體恢復加進數據庫.

7.備份控制文件

在數據庫開啓狀態下可以用以下命令備份控制文件

ALTER DATABASE BACKUP CONTROLFILE TO ‘<filename>’ REUSE;

也可以這樣備份控制文件:

ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

該命令把控制文件放進一個位於USER_DUMP_DEST的文本格式的跟蹤文件,刪除其中一些無關的信息來重新創建控制文件.

ORACLE建議,一旦更改數據庫的結構:如添加數據文件,更名數據文件或刪除重執行日誌文件等,就要備份控制文件.

8. 查詢控制文件信息V$CONTROLFILE

該視圖列出數據庫所有控制文件的名稱

也可以通過SHOW PARAMETER命令來獲取控制文件的名稱:

SQL>SHOW PARAMETER CONTROL_FILES;

9. 顯示控制文件的記錄.-àV$CONTROLFILE_RECORD_SECTION

  存檔日誌信息 àV$ARCHIVED_LOG

  組成數據庫的單個數據文件的備份狀態--àV$BACKUP_DATAFILE

  關於備份塊的信息,使用RMAN時更新àV$BACKUP_PIECE

  使用RMAN備份的存檔日誌文件的信息àV$BACKUP_REDOLOG

  已經成功使用RMAN的備份的信息àV$BACKUP_SET

  數據庫的信息àV$DATABASE

  與數據庫有關的數據文件的信息àV$DATAFILE

  通過熱備份或使用RMAN拷貝的數據文件的信息àV$DATAFILE_COPY

  聯機重做日誌文件組的信息àV$LOG

  聯機重做日誌文件組的文件或成員àV$LOGFILE

  分配給每一個實例的日誌文件的信息àV$THREAD

發佈了44 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章