多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Oracle非關鍵文件恢復,日志成員、臨時文件、索引表空間、口令文件(密碼文件)

Oracle非關鍵文件恢復,日志成員、臨時文件、索引表空間、口令文件(密碼文件)

來源:程序員人生   發布時間:2014-09-30 05:48:08 閱讀次數:2199次

 

關鍵性與非關鍵性
    非關鍵性文件是指數據庫和大多數應用程序沒有它也能繼續運行的文件。例如,如果數據庫丟失了一個多路復用重做日志文件,仍可使用其它重做日志文件副本來保持數據庫持續運行。
    雖然丟失非關鍵性文件不會導致數據庫崩潰,但它會削弱數據庫的功能。例如:


丟失索引表空間會導致應用程序和查詢的運行速度大幅減慢,或者,如果這些索引用于強制實施約束,則丟失后甚至會導致應用程序無法使用。
丟失聯機重做日志組(只要不是當前聯機日志組)會導致在 LGWR 下一次嘗試寫入組時數據庫操作被掛起,直到生成新的日志文件為止。


丟失臨時表空間會使用戶無法運行查詢或創建索引,直到將這些用戶分配到新的臨時表空間為止。
 --10g時丟失臨時表空間,數據庫不能啟動,當11g時,丟失了臨時文件,數據庫會自動創建一個同名同位的臨時文件;
 --11g中發生此情時發生這種情況時,啟動過程中會在預警日志中顯示類似下面的消息:
 --
Re-creating tempfile /u01/app/oracle/oradata/orcl/temp01.dbf
-----------------------------------------------------------------------------------------------------------------

一、日志成員丟失:
    要處理重做日志文件的丟失問題,了解重做日志組的可能狀態非常重要。在 Oracle DB 正常運行過程中,重做日志組會循環經歷三種不同的狀態。按照循環的順序,狀態分別是:

CURRENT:此狀態表明 LGWR 正在向重做日志組寫入數據,以記錄數據庫中正在進行的所有事務處理的重做數據。該日志組將保持此狀態,直到切換至其它日志組為止。

ACTIVE:重做日志組仍包含恢復實例所需的重做數據。這是尚未執行檢查點期間重做日志組所處的狀態,重做日志組中出現的所有數據更改都將寫出到數據文件。

INACTIVE:上述檢查點已經執行,這表示不再需要該重做日志組來恢復實例,它可以變為下一個 CURRENT 日志組。

 

對在線redo log的操作:

查看日志組的狀態:
SYS@PROD>select GROUP#,SEQUENCE#,MEMBERS,ARCHIVED,STATUS from v$log;

    GROUP#  SEQUENCE#    MEMBERS ARC STATUS
---------- ---------- ---------- --- ----------------
         1          7          2 YES INACTIVE
         2          8          2 NO  CURRENT
         3          6          2 YES INACTIVE
查看日志文件的狀態:
SYS@PROD>select GROUP# ,TYPE,MEMBER from v$logfile;

    GROUP# TYPE       MEMBER
---------- -----------------------------------------------------------------
         3 ONLINE
/u01/app/oracle/oradata/PROD/onlinelog/o1_mf_3_b22567o2_.log

         3 ONLINE
/u01/app/oracle/fast_recovery_area/PROD/onlinelog/o1_mf_3_b2256827_.log

         2 ONLINE
/u01/app/oracle/oradata/PROD/onlinelog/o1_mf_2_b2255zsg_.log

         2 ONLINE
/u01/app/oracle/fast_recovery_area/PROD/onlinelog/o1_mf_2_b22560gb_.log

         1 ONLINE
/u01/app/oracle/oradata/PROD/onlinelog/o1_mf_1_b2255npg_.log

         1 ONLINE
/u01/app/oracle/fast_recovery_area/PROD/onlinelog/o1_mf_1_b2255nxl_.log


6 rows selected.


1.當某個日志組中的一個數據文件丟失,對其在線操作,先添加,再刪除;

alter database add logfile member '/u01/app/oracle/oradata/PROD/onlinelog/o1_mf_2_b_.log' to group 2;

alter database drop logfile member '/u01/app/oracle/oradata/PROD/onlinelog/o1_mf_1_b2255npg_.log' to group 2;

2.在線添加一個組,再添加一個成員;

SYS@ORCL>alter database add logfile group 4 '/u01/app/oracle/oradata/ORCL/onlinelog/redo04.log'size 100m;

SYS@ORCL>alter database add logfile member'/u01/app/oracle/oradata/ORCL/onlinelog/redo04_b.log' to group 4;

3.查看日志組及成員;
SYS@ORCL>select GROUP#,members,BYTES/1024/1024 size_M,STATUS,ARCHIVED from v$log;

-----------------------------------------------------------------------------------------------------------------
二、丟失臨時文件:

1.--查看臨時文件的位置及名稱
SYS>select name from v$tempfile;
/u01/app/oracle/oradata/PROD/datafile/o1_mf_temp_b22570tq_.tmp

2.--刪除臨時文件
SYS>!rm /u01/app/oracle/oradata/PROD/datafile/o1_mf_temp_b22570tq_.tmp

3.--觸發錯誤,臨時文件未找到
SYS>create global temporary table tab_temp as select * from dba_objects;
create global temporary table tab_temp as select * from dba_objects
                                                        *
ERROR at line 1:
ORA-01116: error in opening database file 201
ORA-01110: data file 201:
'/u01/app/oracle/oradata/PROD/datafile/o1_mf_temp_b22570tq_.tmp'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

4.在知道臨時數據文件丟失時,可以不需要重新啟動數據庫就可以在丟失了臨時文件后進行恢復;

SQL> ALTER TABLESPACE temp ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp02.dbf' SIZE 20M;
 Tablespace altered.

 

SQL> ALTER TABLESPACE temp DROP TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf';
 

Tablespace altered.
 

5. 1)在11g中還可以重啟數據庫,數據庫會自動重建臨時數據文件,可以查看alert日志看相關信息(一般直接第4步就可以了)

shutdown immediate;

SYS>startup
ORACLE instance started.
Total System Global Area  839282688 bytes
Fixed Size                  2257880 bytes
Variable Size             545262632 bytes
Database Buffers          289406976 bytes
Redo Buffers                2355200 bytes
Database mounted.
Database opened.

SYS>select name from v$tempfile;
/u01/app/oracle/oradata/PROD/datafile/o1_mf_temp_b29o0g6r_.tmp

1 row selected.
   --數據庫重建

2)在11g以前,如數據庫不能重起,可以創建新的臨時表空間:

create temporary tablespace temp2 tempfile
'/u01/app/oracle/oradata/orcl/temp2.dbf' size 10m reuse autoextend on  maxsize  200m;

SQL>alter database default temporary tablespace temp2;
   --將新的表空間設置為默認的臨時表空間

SQL>drop tablespace temp including contents and datafiles;
   --刪除舊的表空間及其數據

SQL>ALTER TABLESPACE temp ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp2.dbf' SIZE 20M;
   --給臨時表空間添加文件

SYS>select * from database_properties
        where property_name='DEFAILT_TEMP_TABLESPACE';  --查看當前數據庫默認數據庫


-----------------------------------------------------------------------------------------------------------------
三、重建索引、丟失了索引表空間后進行恢復

重新創建索引

使用以下選項可縮短創建索引所花費的時間:

PARALLEL NOLOGGING

   PARALLEL(NOPARALLEL 是默認值):多個進程可以同時協同工作來創建索引。與單個服務器進程按順序創建索引相比,通過在多個服務器進程之間分配創建索引所需的工作,Oracle 服務器可以更快速地創建索引。將隨機對表取樣并找到一組索引關鍵字,這些索引關鍵字按照指定的并行度將索引平均分為相同數目的片段。第一組查詢進程將掃描表,提取關鍵字、行 ID 對并基于關鍵字將每個對發送到第二組查詢進程中的一個進程中。第二組中的每個進程都對關鍵字進行排序并按常規方式構建索引。所有索引片段構建完成后,并行協調程序會將這些片段(已進行排序)級聯以形成最終的索引。

SQL> CREATE INDEX rname_idx 
  ON hr.regions (region_name)
   PARALLEL 4;

  
   NOLOGGING:使用此關鍵字會加快索引的創建速度,因為創建進程創建的重做日志 條目極少。這種工作量大幅減小的重做生成也適用于直接路徑插入和 Direct Loader (SQL*Loader) 插入。這是永久性屬性,因此將顯示在數據字典中。可以隨時使用 ALTER INDEX NOLOGGING/LOGGING 命令來加以更新。
注:若數據庫在nologging狀態時,所操作的數據應該備份,再將nologging改回來,以免重大失誤難以恢復
 
丟失了索引表空間后進行恢復:
   索引丟失時,更為快速、簡單的方法是重新創建而不是嘗試恢復索引。
 
 索引是計算得到的對象,因為它們不提供任何原始數據,只是已存在數據的另一表示形式。因此,在大多數情況下,可以很容易地重新創建索引。
如果您的表空間僅包含索引,則可以簡化在丟失了屬于該表空間的數據文件后的恢復工作。
如果丟失了此類數據文件,則可以執行以下步驟:

1.刪除數據文件。

2.刪除表空間。 3.重新創建索引表空間。

4.重新創建包含在表空間中的索引。
1.可以在不執行 RECOVER 任務的情況下恢復僅包含索引的表空間。

2.如果屬于僅包含索引的表空間的數據文件丟失,則更為簡單的方法可能是重新創建表空間和重新創建索引。

-----------------------------------------------------------------------------------------------------------------
四、重新創建口令驗證文件


1.密碼文件丟失
cd  $ORACLE_HOME/dbs  --密碼文件的位置
ls -lrt|grep orapw
rm orapw...  --刪除密碼文件

2.登陸
SQL> CONNECT sys/admin AS SYSDBA
  --登陸失敗,未找到密碼文件

3.另一種方式登錄:
sqlplus / as sysdba
   --os級別登陸
grant sysdba to hr;
  --授權sysdba給hr,會報錯;
SQL> grant sysdba to admin2;

grant sysdba to admin2

*

ERROR at line 1:

ORA-01994: GRANT failed: password file missing or disabled

4.創建密碼文件
[oracle@ocum ~]$ orapwd
Usage: orapwd file=<fname> entries=<users> force=<y/n> ignorecase=<y/n> nosysdba=<y/n>

  where
    file - name of password file (required),
    password - password for SYS will be prompted if not specified at command line,
    entries - maximum number of distinct DBA (optional),
    force - whether to overwrite existing file (optional),
    ignorecase - passwords are case-insensitive (optional),
    nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only).
   
  There must be no spaces around the equal-to (=) character.

 --使用口令實用程序 orapwd 創建口令文件。
orapwd file=filename password=password entries=max_users
其中:
 --
filename 是口令文件的名稱(必需)。
 --
password 是 SYS 的口令(可選)。如果未包含 password 參數,則會收到提示,要求您輸入口令。
 --
Entries 是允許以 SYSDBA 或 SYSOPER 身份連接的不同用戶的最大數量。如果超出了此數值,必須創建新口令文件。使用較大的數值比較保險。
 --“等號”(=) 字符兩邊沒有空格。
 
 --示例:$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=5

5.驗證密碼文件是否可用

SQL> CONNECT sys/admin AS SYSDBA


SQL> grant sysdba to admin2;


面向數據庫管理員的驗證方法  

根據是希望在數據庫所在的那一臺計算機上本地管理數據庫,還是希望從一個遠程客戶機管理許多不同的數據庫服務器,可以選擇使用操作系統驗證或口令文件驗證來驗證數據庫管理員:

如果數據庫具有口令文件且您已經具有 SYSDBA 或 SYSOPER 系統權限,則可以通過口令文件進行驗證。 

如果服務器未使用口令文件,或者您不具有 SYSDBA 或 SYSOPER 權限因而不在口令文件中,則可以使用操作系統驗證。在大多數操作系統中,數據庫管理員的驗證需要將數據庫管理員的操作系統用戶名放置到一個特殊組中,一般稱為 OSDBA。該組中的用戶將被授予 SYSDBA 權限。一個類似的組 OSOPER 用于向用戶授予 SYSOPER 權限。

操作系統驗證優先于口令文件驗證。特別是,如果您是操作系統的 OSDBA 或 OSOPER 組的成員,并且以 SYSDBA 或 SYSOPER 身份連接,則連接時您將具有相關的管理權限,而與您指定的用戶名/口令無關。

Oracle DB 提供了一個口令實用程序 orapwd 來創建口令文件。使用 SYSDBA 權限連接時,是以 SYS 方案連接,而不是以與用戶名關聯的方案連接。對于 SYSOPER,則將連接到 PUBLIC 方案。使用口令文件訪問數據庫的權限由授權用戶發出的 GRANT 命令提供。 
   通常,口令文件不包含在備份中,因為幾乎在所有情況下,均可方便地重新創建口令文件。
保護口令文件以及標識口令文件位置的環境變量對于系統安全性是至關重要的。對這些文件和環境變量具有訪問權限的任何用戶都可能潛在地影響連接的安全性。 
如果使用 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE 或 SHARED 裝載了數據庫或實例,則不應刪除或修改口令文件。否則,將無法使用該口令文件從遠程重新連接。
注:口令區分大小寫,在重新創建口令文件時必須考慮到這一點。

 

 

了解數據庫設置表:
SYS@PROD>desc database_properties
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 PROPERTY_NAME                             NOT NULL VARCHAR2(30)
 PROPERTY_VALUE                                     VARCHAR2(4000)
 DESCRIPTION                                        VARCHAR2(4000)

 

 

 

 


 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本一区二区不卡久久入口 | 久草午夜 | 免费 欧美 自拍 在线观看 | 欧美色欧美亚洲另类二区 | 久久久久国产一级毛片高清片 | 欧美 日韩 国产 成人 在线观看 | 精品国产一区二区三区2021 | 名优写真一区二区在线 | 久久久国产99久久国产一 | 久久一区二区三区不卡 | 日韩中文字幕高清在线专区 | 日本免费一区二区三区看片 | 日韩精品一区二区三区中文精品 | 成人久久免费视频 | 日本不卡不码高清免费观看 | 国产亚洲精品国产一区 | 毛片爱做的片 | 大香伊人网 | 欧美一二区 | 亚洲精品在线视频 | 亚洲精品国产福利 | 国产日韩网站 | 国产精品精品国产一区二区 | www.日本一区 | 欧美操老逼| 国产精品亚洲欧美一区麻豆 | 亚洲经典自拍 | 亚洲精品一区二区三区中文字幕 | 99福利网 | 日本一区三区 | 秋霞网站一级一片 | 午夜亚洲精品久久久久久 | 五月激情婷婷综合 | 激情综合五月天丁香婷婷 | 亚洲一区二区三区在线 | 性欧美乱又伦 | 国内精品一区视频在线播放 | 最近中文字幕经典版在线 | 欧洲精品一区二区三区在线观看 | 亚洲图片天堂 | 性色免费视频 |