第一篇:Oracle大型數據庫 實驗五 重做日志文件、表空間管理操作
集美大學計算機工程學院實驗報告
課程名稱:大型數據庫技術 指導教師:楊艷華
班級:計算12 姓名:
實驗成績:
上機實踐日期:2014.12 上機實踐時間:2學時 實驗項目名稱:重做日志文件、表空間管理操作 學號:20 實驗項目編號:實驗五 組號:
一、實驗目的
1、理解重做日志文件的基本概念;
2、掌握重做日志文件組及其成員的添加、移動、刪除等操作;
3、掌握歸檔重做日志的設置;
4、理解表空間的基本概念和分類;
5、掌握永久表空間的創建和管理操作;
6、掌握還原表空間的管理。
二、實驗要求
1、完成重做日志文件組及其成員文件的管理操作;
2、完成歸檔重做日志的設置;
3、完成永久表空間和臨時表空間的管理操作;
4、完成還原表空間的管理。
三、實驗內容
(1)查看數據庫當前重做日志文件組及成員的設置情況,然后,為數據庫添加一組重做日志,組內包含兩個成員文件,分別為redo4a.log和redo4b.log,大小分別為5MB。
1(2)為上面新添加的那組重做添加一個日志成員,命名為“redo4c-姓名簡拼.log”,實現重做日志的多路存儲。
(3)把數據庫從非歸檔模式修改為歸檔模式,之后創造條件讓數據庫立即歸檔,并檢查歸檔是否成功
(4)創建永久表空間
? 創建一個表空間名為“TB+學號后三位+姓名簡拼” ? 空間的大小為50M ? 表空間包括兩個數據文件:表空間名_01.dbf(30M)和表空間名_02.dbf(20M),大小均不能自動擴展 ? 數據文件均存放在Oracle的安裝根目錄
(5)改變上述永久表空間的可用性
? 先將表空間脫機 ? 再進行聯機
(6)創建一個4K的非標準塊表空間,命名為“tbf+學號后三位+姓名簡拼”,數據文件存儲在”
(7)創建一個臨時表空間
? 名為“TTB+學號后三位+姓名簡拼”
? 包含一個數據文件:表空間名_01.dbf,大小為(學號后三位*2)M,存儲在”
(8)查看數據庫內各個表空間及其類型,以及區管理方式、分配類型和段空間管理方法、表空間的狀態。
(9)刪除前面創建的非標準塊表空間,同時刪除表空間的內容和對應的操作系統文件。
(10)創建一個還原表空間,命名為“UNDO+學號后三位+姓名簡拼”,其中包含一個數據文件(存儲在”
(11)為前面創建的永久表空間添加一個數據文件,命名為“表空間名_03.dbf”,該文件初始大小為50M,允許自動擴展,存儲在”
(12)將永久表空間中初始的兩個文件移動到”
(13)同時將前面創建的永久表空間和UNDO表空間內的文件進行重命名,把文件名中的“_”去掉。
三、實驗小結
1、通過本次實驗,我對重做日志文件組及其成員的添加、移動、刪除等操作、歸檔重做日志的設置、表空間的基本概念和分類、永久表空間的創建和管理操作、還原表空間的管理都有了更為深入的了解和掌握;
2、切換數據庫狀態前,必須關閉數據庫,由于沒有關閉數據庫,導致在數據庫狀態切換過程中遇到了很多問題;
3、通過本次實驗,我能夠完成重做日志文件組及其成員文件的管理操作、完成歸檔重做日志的設置、完成永久表空間和臨時表空間的管理操作。
第二篇:oracle 數據文件、表空間、日志文件、控制文件數據庫管理
實驗四 oracle 數據庫管理
一、試驗目的
掌握對數據文件、表空間、日志文件、控制文件的常用命令,作為DBA的必要準備。
二、實驗內容
2.1 數據文件的管理
(1)在安裝完畢之后,在INITsid.ORA參數文件有一個DB_FILES 參數,用于設置當前實例的數據外文件的個數。如: db_files = 80 如果在INITsid.ORA文件沒有該參數,則可以用下面查詢語句從視圖中查到。如: SQL> col name for a20 SQL> col value for a50 SQL> set lin 100 SQL> select name,value from v$parameter where name = 'db_files';NAME VALUE---------------------------------------db_files 1024(2)行命令建立表空間:
例1 CREATE TABLESPACE user_stu DATAFILE 'h:/oracle/oradata/orcl/user_stu.dat' SIZE 20M DEFAULT STORAGE(INITIAL 10K NEXT 50K MINEXTENTS 1 MAXEXTENTS 99 PCTINCREASE 10)ONLINE;例2:建立一個新的表空間,具有兩個數據文件: CREATE TABLESPACE CRM_TAB
DATAFILE 'h:/oracle/oradata/orcl/crm01.dbf' size 10 MB,'h:/oracle/oradata/orcl/crm02.dbf' size 10 MB;(3)對一個已存在的表空間追加新數據文件: 例1 ALTER TABLESPACE user_stu
Add datafile 'H:/oracle/oradata/orcl/user_stu01.dbf' size 30M;例2 為表空間增加數據文件 ALTER TABLESPACE users ADD DATAFILE 'userora1.dbf ' SIZE 10M;(4)數據文件更名
ALTER TABLESPACE users RENAME DATAFILE? 'filename1', 'filename2' TO 'filename3', 'filename4';(5)變更數據文件大小 在創建表空間時,可以將表空間說明為自動擴展或固定大小。因而管理員的一項工作就是查看系統所有的表空間對應的數據文件情況。看是否為自動擴展。如: SQL> col tablespace_name for a12 SQL> col file_name for a48 SQL> select tablespace_name,file_name,AUTOEXTENSIBLE ,bytes from dba_data_files
(6)數據文件的自動擴展與調整。重新調整數據文件大小的命令如下: ALTER DATABASE DATAFILE [datafile_name] RESIZE [new_size];
當我們發現數據文件過大而不可能用完時,可以用上面命令將數據文件調小。對于設置數據文件的自動擴展問題,可用下面命令來達到: ALTER DATABASE DATAFILE [ file_spec ] AUTOEXTEND ON NEXT [increment_size] MAXSIZE [max_size,UNLIMITED]; 如:
ALTER DATABASE DATAFILE 'H:ORACLEORADATAORCLUSER_STU01.DBF' AUTOEXTEND ON NEXT 10m MAXSIZE 60M;(7)行命令修改表空間:
ALTER TABLESPACE USER_STU ONLINE;(8)ALTER TABLESPACE accounting OFFLINE NORMAL;(9)行命令刪除表空間:
DROP TABLESPACE 表空間名 INCLUDING CONTENTS CASCADE CONSTRAINTS(10)、與數據文件有關的視圖
select file_name from dba_data_files;select * from v$datafile;DBA_DATA_FILES DBA_EXTENTS DBA_FREE_SPACE V$DATAFILE V$DATAFILE_HEADER(11)、為了保證表空間的可用,除了掌握表空間的創建外,還應該查看dba_free_space中表空間的信息,以確保系統正常運行。一般管理員應該關心的內容有:表空間共有多少個;總共有多少自由空間;最大的自由空間是什么;下面例子是一個經常使用的腳本,可以查出數據文件和表空間的可用情況。clear buffer clear columns clear breaks column a1 heading 'Tablespace' format a15 column a2 heading 'data File' format a45 column a3 heading 'Total|Space' format 999,999.99 column a4 heading 'Free|Space' format 999,999.99 column a5 heading 'Free|perc' format 999,999.99 break on a1 on report compute sum of a3 on a1 compute sum of a4 on a1 compute sum of a3 on report compute sum of a4 on report set linesize 120 select a.tablespace_name a1, a.file_name a2, a.avail a3, nvl(b.free,0)a4, nvl(round(((free/avail)*100),2),0)a5 from(select tablespace_name, substr(file_name,1,45)file_name, file_id, round(sum(bytes/(1024*1024)),3)avail from sys.dba_data_files group by tablespace_name, substr(file_name,1,45), file_id)a,(select tablespace_name, file_id, round(sum(bytes/(1024*1024)),3)free from sys.dba_free_space group by tablespace_name, file_id)b where a.file_id = b.file_id(+)order by 1, 2;(12)查詢是否存在表的擴展超出表空間可用大小 一般在系統使用較長時間后,表空間的連續塊被多次的修改與刪除等操作后出現了許多的不連續的塊(叫碎片)。這樣就有可能出現表的擴展所需要的連續塊不能滿足的情況。為了避免這樣的情況發生而導致擴展失敗,管理員要經常查詢系統的表空間情況。下面就是這樣的一個腳本:
Col segment_name for a20 Select segment_name, segment_type, owner, a.tablespace_name tablespace, Initial_extent, next_extent, pct_increase,b.bytes max_bytes From dba_segments a,(select tablespace_name, max(bytes)bytes from dba_free_space group by tablespace_name)b where a.tablespace_name=b.tablespace_name and next_extent > b.bytes;(13)查詢表空間自由、最大及碎片
其實,平常管理最關系就是表空間的總量、最大字節、使用多少、碎片多少等。下面腳本可以查詢出所有表空間的自由空間、總空間數、已用空間、自由百分比及最大塊的字節數。set pau off
col free heading 'Free(Mb)' format 99999.9 col total heading 'Total(Mb)' format 999999.9 col used heading 'Used(Mb)' format 99999.9 col pct_free heading 'Pct|Free' format 99999.9 col largest heading 'Largest(Mb)' format 99999.9 compute sum of total on report compute sum of free on report compute sum of used on report break on report select substr(a.tablespace_name,1,13)tablespace, round(sum(a.total1)/1024/1024, 1)Total, round(sum(a.total1)/1024/1024, 1)-round(sum(a.sum1)/1024/1024, 1)used, round(sum(a.sum1)/1024/1024, 1)free, round(sum(a.sum1)/1024/1024, 1)*100/round(sum(a.total1)/1024/1024, 1)pct_free, round(sum(a.maxb)/1024/1024, 1)largest, max(a.cnt)fragment from(select tablespace_name, 0 total1, sum(bytes)sum1, max(bytes)MAXB, count(bytes)cnt from dba_free_space group by tablespace_name union select tablespace_name, sum(bytes)total1, 0, 0, 0 from dba_data_files group by tablespace_name)a group by a.tablespace_name 2.2 日志文件的管理
(0)日志查詢
select group#,bytes from v$log;? select group#,bytes from v$logfile;
(1)實現強行的日志切換 Alter system switch logfile;(2)檢測點(checkpoint)
Oracle為了在出現故障后能退回去重演原來的信息,就需要一個叫開始點。在這個開始點時刻,數據和事務是已知的。這樣的開始點就叫檢測點。在Oracle里,只要檢查點一到(出現)。Oracle就強行將當前的SGA中的redo區的改動過的塊寫入重做日志文件中。這個步驟完成后,在重做日志文件中放入一個特殊的檢測點標志記錄。如果在下一個檢測點完成前出現失敗,恢復操作進程就會在日志文件和數據文件前一個檢測點同步(改回去)。檢測點檢查完成后,對數據塊的任何改動都記錄在其檢測點標志后寫入重做日志項中。因此,恢復也就只能從最近的檢測點標志記錄開始。
Oracle在INITsid.ORA文件中給出LOG_CHECKPOINT_INTERVAL參數可以設置檢測點的數目。比如 日志文件大小為1000塊,而設置檢查點間隔LOG_CHECKPOINT_INTERVAL為250,則文件寫達到 1/
4、2/
4、3/4及4/4時產生檢測點(250塊、500塊、750塊和1000塊處)。可用下面命令來查日志文件大小: SQL> select group#,bytes from v$log;show parameter log_checkpoint_interval(3)添加日志組
建立一個新組4,組內有兩個成員 ALTER DATABASE ADD LOGFILE GROUP 4('H:/oracle/oradata/orcl/redo0401.log', 'H:/oracle/oradata/orcl/redo0402.log')size 10m;===當添加一個日志組時,可以不給出組號,有系統自動分配一個組號=== ALTER DATABASE ADD LOGFILE('H:/oracle/oradata/orcl/redo0501.log', 'H:/oracle/oradata/orcl/redo0502.log')size 10m;此時添加的組號為5
(4)為日志組增加成員 ALTER DATABASE ADD LOGFILE MEMBER 'log22.log' TO GROUP 2;===添加成員時,可以不給定成員的大小,因為oracle要求組內的所有成員的大小一律相等。
(5)如果將一個日志成員從一個硬盤移到另一個硬盤,就需要重新命名日志成員名字。需要進行下面步驟:
1. 關閉數據庫,并進行完全備份;
2. 使用操作系統命令拷貝原來的日志文件到新的地方; 3. 用startup mount 啟動數據庫; 4. 用ALTER DATABASE RENAME FILE '
ALTER DATABASE RENAME FILE 'filename1', 'filename2' TO 'filename3', 'filename4';
(6)日志刪除
a.刪除日志組成員:
在下面情況下可能需要刪除重做日志文件,如日志文件個數太多(超出需要);日志文件的大小不一致等。這樣的情況可以刪除日志組成員。b.當日志組損壞時,就刪除日志組,但必須滿足:
a)刪除一個日志組后,系統中至少還有兩個其它的日志組; b)被刪除的日志組必須是不需要存檔; c)不是正在使用的日志組。刪除日志文件的語法:
ALTER DATABASE database_name DROP LOGFILE GROUP group_number | file_name |(file_name,file_name(,...))刪除日志成員的語法:
ALTER DATABASE database_name DROP LOGFILE MEMBER file_name;c.聯機重做日志的緊急替換:
當一個重做日志組偶而被損壞使數據庫不能繼續使用時,不能直接刪除它們,而是要用一個干凈的文件或一組成員去替代這個損壞的日志組。聯機重做日志的緊急替換命令語法如下: ALTER DATABASE database_name CLEAR[UNARCHIVED] LOGFILE group_identifier [UNRECOVERABLE DATAFILE] 如果該文件正在等待存檔(歸檔模式),就需要UNARCHIVED。
如果需要脫機恢復一個數據文件,就用UNRECOVERABLE DATAFILE。d.了解重做日志的當前狀態: V$LOGFILE V$LOG V$THREAD V$LOG_HISTORY e.例子:
刪除一個組3:
ALTER DATABASE DROP LOGFILE GROUP 3;刪除一個成員:
ALTER DATABASE DROP? LOGFILE MEMBER '/orant/oradata'mydb02'redo02.log';4.了解重做日志的當前狀態的視圖主要有: V$LOGFILE V$LOG V$THREAD V$LOG_HISTORY 5.例子:
察看是否歸檔
ARCHIVE? LOG? LIST 日志歸檔
alter database noarchivelog;
3、控制文件的管理(1)關于控制文件
控制文件存放有數據庫的結構信息,包括數據文件、日志文件。控制文件是一個二進制文件,它是在數據庫建立時自動被建立。控制文件可以在當你改變文件名或移動文件時而被更新。在任何時候,你都不能編輯控制文件。控制文件的內容包括:
? 數據庫名字(控制文件只能屬于一個數據庫)。? 數據庫建立時的郵戳。
? 數據文件-名字,位置及聯機/脫機。? 重做日志文件-名字及位置。? 表空間名字。? 當前日志序列號。? 最近檢查點信息。
? 恢復管理器信息(RMAN)。(2)控制文件信息
在spfile.ora的配置文件中 有:
control_files =(“/home/oracle/app/oracle/oradata/s450/control01.ctl”, “/home/oracle/app/oracle/oradata/s450/control02.ctl”, “/home/oracle/app/oracle/oradata/s450/control03.ctl”)(3)查詢控制文件的信息
show parameters;select * from v$controlfile;desc V$CONTROLFILE_RECORD_SECTION v$datafile db_data_files v$logfile v$log v$controlfile show parameter control_files
其中,RECORD_SIZE NUMBER 記錄字節大小 RECORDS_TOTAL NUMBER 段的記錄數
RECORDS_USED NUMBER 段中已使用的記錄數 FIRST_INDEX NUMBER 第一個記錄索引位置 LAST_INDEX NUMBER 最后一個記錄索引位置 LAST_RECID NUMBER 最后一個記錄ID號
select * from V$CONTROLFILE_RECORD_SECTION;7.6.4 控制文件信息的更改
需要在spfile.ora中做出相應的更改。建立控制文件的步驟 1.建立控制文件準備。
必須有數據文件(查DBA_DATA_FILES數據字典)、日志文件(查V$LOGFILE數據字典)的詳細列表。下面是創建控制文件的命令:
CREATE CONTROLFILE SET DATABASE “ORACLE” NORESETLOGS NOARACHIVELOG MAXLOGFILES 32 MAXLOGMEMBERS 2 MAXDATAFILES 32 MAXINSTANCES 1 MAXLOGHISTORY 1630 LOGFILE GROUP 1 'C:ORACLEDATABASELOG1ORCL.LOG' SIZE 200K, GROUP 2 'C:ORACLEDATABASELOG2ORCL.LOG' SIZE 200K, DATAFILE 'C:ORACLEDATABASESYS1ORCL.ORA', 'C:ORACLEDATABASEUSER1ORCL.ORA', 'C:ORACLEDATABASERBS1ORCL.ORA', 'C:ORACLEDATABASETMP1ORCL.ORA', 'C:ORACLEDATABASEAPPDATA1.ORA', 'C:ORACLEDATABASEAPPINDX1.ORA',;在例子中,參數選件與 CREATE DATABASE類似。NORESETLOGS 指定聯機的日志文件不要重新設置。2. 關閉數據庫。
3. 用NOMOUNT選件啟動數據庫,記住,安裝數據庫,Oracle需要打開控制文件。4. 用類似上面建立新的控制文件。并在INITsid.ORA參數文件中指定。5. 使用ALTER DATABASE OPEN命令打開數據庫。6. 關閉數據庫并備份數據庫。
提示:如果你的數據庫正常,則可以用ALTER DATABASE BACKUP CONTROLFILE TO TRACE 命令來產生一個CREATE CONTROLFILE 的命令。該命令產生后被寫到跟蹤文件中。請參考INITsid.OAR的USER_DUMP_DEST所指的目錄找到跟蹤文件,它就在跟蹤文件中。
建立好控制文件后,就要確定如何來補救被丟失的數據文件,可以從V$DATAFILE視圖來查到丟失的數據文件,這些數據文件的名字為MISSINGnnnn。如果你建立的控制文件帶有RESETLOGS選件,則丟失的數據文件就不能加回數據庫中。如果你建立的控制文件帶有NORESETLOGS選件,則丟失的數據文件可以由數據庫的介質恢復被加回數據庫中。當數據庫啟動后可以 用下面命令進行備份:
ALTER DATABASE BACKUP CONTROL FILE TO '
可以從視圖V$CONTROLFILE中查到控制文件的信息,status字段表示控制文件的狀態,一般總是為空。如:
SQL> select * from v$controlfile;另外V$CONTROLFILE_RECORD_SECTION 視圖存儲控制文件所記錄的信息。它的結構如下:
SQL> desc V$CONTROLFILE_RECORD_SECTION
第三篇:oracle表空間管理及操作實用案例
Oracle
表空間管理及操作詳解(附帶案例)
一:表空間概述
表空間是數據庫的邏輯組成部分,從物理上講,數據庫數據存放在數據文件中;數據庫邏輯上講是由一個或者多個表空間組成,數據文件則是存放在表空間中,表空間有一個或者多個數據文件組成即表空間有數據文件構成的。
數據庫,表空間,段,區,塊,按大小排列依次是:數據庫---》表空間-----》段-----》區----》塊。
1.建立表空間的作用:
(1.)控制數據庫占用的磁盤空間。(2).dba可以將不同的數據類型部署到不同的位置,這樣有利于提高i/o性能,同時有利與備份和恢復等管理操作。
二:管理表空間和數據文件。
(1)建立表空間create tablespace;一般情況下建立表空間是特權用戶或者dba來執行的,如果其他用戶來創建表空間,則用戶建必須要具有create tablespace的系統權限。(2)建立數據表空間
在建立數據庫后,為便于管理表,最好建立自己的表空間。
create tablespace sp02 datafile 'd:testsp02.dbf' size 20m uniform size 128k 說明:執行完上述命令后,會建立名稱為sp02的表空間,并為該表空間建立名稱為sp02.dbf的數據文件,區的大小為128k。(3.)在表空間建表
create table tablesp02(ID number(5),name varchar2(20))tablespace sp02(4)顯示當前用戶擁有哪些表。
select * from tab;
(5).知道表空間名,顯示該表空間包括的所有表。
select * from all_tables where tablespace_name='表空間名'。
注:擁有權限不同的用戶在進行以上操作得到的結果可能不同。System可以查看得到某空間的所擁有表。(比如users表空間)(6)知道表名,查看該表屬于那個表空間。
select TABLESPACE_NAME, TABLE_NAME from user_tables where TABLE_NAME='EMP';(7)知道表名,查看該表屬于那個表空間,屬于哪個用戶。
select owner,TABLESPACE_NAME, TABLE_NAME from all_tables where TABLE_NAME='EMP';(8)改變表空間的狀態 使表空間可讀寫
alter tablespace 表空間名 read write;
刪除表空間,一般情況下由特權用戶或者dba來操作。具有drop tablespace系統權限。
drop tablespace ‘表空間’includeing contens and datafiles;
說明:includeing contens表示刪除表空間時,刪除該空間的所有數據庫對象而datafiles表示將數據庫文件也刪除。(9)改變表空間的狀態(1)使用空間脫機
alter tablespace 表空間名 offline(2)使用空間聯機
alter tablespace表空間名online(3)只讀表空間
建立表空間時,表空間可以讀寫,如果不希望在表空間上執行update,delete,insert操作。那么可以將表空間修改為只讀。alter talbespace sp01 read only;
三:移動數據文件:
(1)確定數據文件所在的表空間(知道表屬于哪個表空間)Select tablespace_name from dba_data_files where file_name='D:TEST 主站蜘蛛池模板: 人妻无码久久中文字幕专区| 国产成人久久精品一区二区三区| 亚洲中文字幕无码专区| 在线看片人成视频免费无遮挡| 少妇内射高潮福利炮| 99久久久无码国产精品秋霞网| 人妻互换精品一区二区| 久久久久噜噜噜亚洲熟女综合| 国产无套粉嫩白浆在线观看| 欧美成人免费全部| 天天爽夜夜爽视频精品| 乱码午夜-极国产极内射| 成人va亚洲va欧美天堂| 亚洲欧美成人片在线观看| 久久国产劲爆∧v内射| 国产成人av三级在线观看| 国产亚洲精品无码成人| 亚洲成av人综合在线观看| 日本老熟妇毛茸茸| 国产精品日本一区二区不卡视频| 美女扒开奶罩露出奶头视频网站| 伊人色综合久久天天五月婷| 国产精品高潮呻吟av久久4虎| 午夜免费福利小电影| 亚洲欲色欲香天天综合网| 少妇人妻大乳在线视频不卡| 黑色丝袜秘书夹住巨龙摩擦| 亚洲s色大片在线观看| 国产亚洲精品久久久久蜜臀| 少妇被粗大的猛烈进出动视频| 免费无码又爽又刺激高潮的动态图| 五十路熟妇强烈无码| 在线播放亚洲人成电影| 久久精品国产国产精| 熟妇人妻无码中文字幕| 女人脱了内裤趴开腿让男躁| 亚洲精品久久国产精品| 久久99精品久久久久久hb| 国产一区二区三精品久久久无广告| 免费毛片a线观看| 久久免费只有精品国产|