當前位置:首頁 » 操作系統 » 資料庫維護手冊

資料庫維護手冊

發布時間: 2022-08-08 12:41:24

⑴ Oracle資料庫一些維護性文檔怎麼寫

你說的這個是資料庫開發,和DBA的事情。
1,安裝配置文檔 ----DBA或者運維人員
2,web系統操作手冊---測試人員編寫
3,數據字典文檔---開發提供詳細內容,DBA整理標准文檔
4,故障處理----一般是記錄發生過的故障
5,巡檢文檔----DBA
6,操作記錄文檔---- DBA or 運維人員,記錄伺服器所有的操作。
7,備份定時任務。。。。等等

⑵ 如何運行 sql2000的資料庫維護計劃里的備份計劃

我這里沒有MSSQL2000,我在mssql2005上看了一下,當你創建一個維護計劃的時候,系統會按照預設的方式定期執行這個計劃(當然你也可以修改調度的時間),除非你選擇了單獨執行這個計劃,所以你的計劃很可能是會定期調度的。

⑶ 資料庫要怎麼維護

資料庫日常維護(參考)

資料庫日常維護工作是系統管理員的重要職責。其內容主要包括以下幾個部分:
一、備份系統數據
SYBASE 系統的備份與恢復機制保證了在系統失敗時重新獲取數據的可能性。SQL Server 提供了兩種不同類型的恢復機制:一類是系統自動完成的恢復,這種措施在每次系統啟動時都自動進行,保證了在系統癱瘓前完成的事務都寫到資料庫設備上,而未完成的事務都被回退;另一類是人工完成的恢復,這是通過 DUMP 和 LOAD 命令來執行人工備份和恢復工作。因此定期備份事務日誌和資料庫是一項十分重要的日常維護工作。

1、備份資料庫

每一個資料庫都應在創建之後卸出,從而提供一個裝入基點。在此之後按排定的時間周期表卸出。比如每周五卸出資料庫。對一般資料庫系統卸出資料庫周期建議為每周一次。
除了按計劃周期卸出資料庫之外,還需在每次運行沒有日誌的操作後卸出資料庫。例如:
·每次強制地運行了 DUMP TRAN WITH NO_LOG (因為資料庫的磁碟空溢出);
·每次用 sp_dboption 允許 select into/bulk 做快速拷貝,或用 SELECT INTO 命令創建一個永久性的表,或使用了 WRITETEXT 命令。
卸出資料庫的命令為:

DUMP DATABASE database_name
TO mp_device

database_name 是要卸出的資料庫名稱,mp_device 是卸出設備的名稱。用系統過程 sp_helpdevice 可以獲得設備的信息。
下面一條命令用來卸出資料庫 my_db :

DUMP DATABASE my_db
TO db_bk_dev

2、備份事務日誌

如果事務日誌與資料庫放在同一個設備上,則事務日誌不應與資料庫分開備份。master 資料庫和小於 4M 的用戶資料庫就是這種情況。一般資料庫系統的資料庫和日誌分別放在不同的設備上,因此,可以用 DUMP TRAN 命令單獨備份日誌。
備份事務日誌的周期直接影響數據的恢復程度,因此建議每天備份。
備份事務日誌的命令格式為:

DUMP TRANsaction database_name
[TO mp_device]
[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]

其中 database_name 是要備份事務的資料庫名稱,mp_device 是備份設備名稱,僅當包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句時,才可以備份到設備。
注意:如果總是用 DUMP DATEBASE (備份資料庫及其日誌),而不用 DUMP TRAN ,事務日誌將不會刷新,而變得非常龐大。
對於 master 資料庫和小型資料庫每次運行 DUMP DATEBASE 之後應當運行 DUMP TRANsaction 命令刷新日誌 。
下面一條命令備份資料庫 db160 的事務日誌到備份設備上:

DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY

3、備份資料庫及其日誌間的相互作用

在至少卸出一次資料庫前,卸出事務日誌是毫無意義的。下圖顯示了備份資料庫及其日誌間的關系

如果在星期二下午5:01出現非硬體故障,需要做的所有工作是裝入磁帶5(參見下一節:數據恢復),由於磁帶5是下午5:00剛備份的,因此只有備份和裝入之間的一分鍾內的數據損失。
但是,如果在星期二下午4:49失效會怎麼樣呢?在這種情況下,要裝入磁帶1(在星期五下午5:00的卸出)。然後,依次裝入磁帶2,3以及4。這樣,系統將恢復到星期二上午10:00點的狀態,星期二的大部分工作丟失了。此例顯示了經常卸出事務的重要性。

二、萬一系統失敗時恢復資料庫系統

如果用戶資料庫存儲的設備失效,從而資料庫被破壞或不可存取,通過裝入最新的資料庫備份以及後來的事務日誌備份可以恢復資料庫。假設當前的事務日誌存在於一個並沒有毀壞的設備上,帶著 WITH NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出它。
要恢復資料庫按如下步驟去做:
1、如果日誌存在於一個分離的設備上,用帶著 NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出被毀壞的或者不可存取的用戶資料庫事務日誌。
2、用下面的查詢檢查設備分配已毀壞資料庫的設備使用情況。必須為同一目的賦同樣的空間塊。
下面的查詢顯示了分配給資料庫 mydb 設備使用和尺寸情況:

SELECT segmap,size FROM sysusages
WHERE dbid =
( SELECT dbid FROM sysdatabases WHERE name = 「mydb」)

3、檢查查詢的輸出。在 segmap 列的 『3』代表數據分配,『4』代表日誌分配。size 列代表 2K 數據塊的數目。注意此信息的次序、使用和尺寸部分。例如,輸出為:

segmapSize
--------------------
310240//實際尺寸為:20M
35120//實際尺寸為:10M
45120//實際尺寸為:10M
31024//實際尺寸為:2M
42048//實際尺寸為:4M

4、用 DROP DATABASE 命令刪除毀壞設備上的資料庫。如果系統報錯,用DBCC DBREPAIR 命令的 DROPDB 選項。
5、刪除資料庫後,用 sp_dropdevice 刪除毀壞了的設備。
6、用 DISK INIT 初始化新的資料庫設備。
7、重建資料庫。用 CREATE DATABASE 命令從老的 sysusages 表拷貝所有的行,並包含第一邏輯設備。
對上例,命令為:

CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10

8、用 ALTER DATABASE 命令重建其餘入口。在此例中,在datadev1上分配更多的空間,命令為:

ALTER DATABASE mydb ON datadev1=2[page]

9、用 LOAD DATABASE 重新裝入資料庫,然後用 LOAD TRAN 裝入前面卸出的日誌。
LOAD DATABASE 命令語法是:

LOAD DATABASE database_name
FROM mp_device

LOAD TRANsaction 命令的語法是:

LOAD TRANsaction database_name
FROM mp_device

卸出資料庫和事務日誌的預設許可權歸資料庫所有者,且可以傳遞給其他用戶;裝載資料庫和事務的許可權也歸資料庫所有者,但不能傳遞。

二、產生用戶信息表,並為信息表授權;
系統維護人員的另一個日常事務是為用戶創建新的信息表,並為之授權。創建表以及為表授權的方法已經在講過,在此只將有關命令語法寫出來。
·創建表的命令為:

CREATE TABLE table_name
( column_1 datatype [NULL | NOT NULL | IDENTITY],
column_2 ……

go

ALTER TABLE table_name
ADD PRIMARY KEY (column_list)
go

·刪除表的命令格式為:

DROP TABLE table_name
go

·為表授權的命令格式為:

GRANT
ON table_name TO user_name
go

·收回許可權的命令格式為

REVOKE
ON table_name FROM user_name
go

三、監視系統運行狀況,及時處理系統錯誤;
系統管理員的另一項日常工作是監視系統運行情況。主要有以下幾個方面:
1、監視當前用戶以及進程的信息
使用系統過程:sp_who
說明:該命令顯示當前系統所有注冊用戶及進程信息,如下表是某系統的信息。

---------------------------------------------------------------

2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER

SLEEP
從左向右依次顯示:進程號、當前狀態、注冊用戶名、主機名、佔用塊數、資料庫名以及當前命令。
如果監視時發現進程總數接近最大連接數(用系統過程:sp_configure 「user conn」 查看)時,應下掉不活動或無關進程,以保證系統正常運做;另外亦可監視非法用戶或用戶使用不屬於自己使用范圍的資料庫等情況。
2、監視目標佔用空間情況
使用系統過程:sp_spaceused
說明:該過程顯示行數、數據頁數以及當前資料庫中由某個目標或所有目標所佔用的空間。如下表是某資料庫日誌表的信息:

NameRow_totalreserveddataIndex_sizeunused
------------------------------------------------------------
SyslogsNot avail32KB32KB0KBNot avail

日常要監視的主要目標有:用戶資料庫、資料庫日誌表(syslogs)以及計費原始數據表等。如果發現佔用空間過大,對日誌表要進行轉儲;對其他目標則應擴充空間或清楚垃圾數據。
3、監視 SQL Server 統計數字
使用系統過程:sp_monitor
說明:sp_monitor 顯示SQL Server 的歷史統計數字,下表是某系統的統計數字:

Last_runCurrent_runSeconds
---------------------------------------------------------------
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
---------------------------------------------------------------
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
--------------------------------------------------------
785(366)311(113)0(0)3(2)

上表依次給出該系統本次運行統計的上一次時間、本次時間、間隔秒數、CPU佔用、IO佔用、收發包情況、系統讀入寫出情況等信息

四、保證系統數據安全,周期更改用戶口令;
為保證系統數據的安全,系統管理員必須依據系統的實際情況,執行一系列的安全保障措施。其中,周期性的更改用戶口令是比較常用且十分有效的措施。
更改用戶口令是通過調用系統過程sp_password 來實現的。Sp_password 的語法為:
sp_password caller_password,new_password [,loginame]
其中caller_password 是登錄口令(老口令),new_password是新口令,loginame是登錄名稱。

在網路搜索:資料庫日常維護(參考)

相 關 文 章
Sybase存儲過程的建立和使用

SYBASE dbcc

電信企業參與競爭的利器-數據倉庫和數據挖掘

SCOUNIX下磁帶機的安裝與備份

StoredProcere(存儲過程)編寫經驗和優化措施

細說SYBASE資料庫日誌

常見資料庫系統之比較 - SYBASE 和 SQL SERVER

SYBASE ASE FOR linux安裝及perl連接SYBASE

Sybase資料庫應用(一)

安裝Sybase ASE

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

vaela

⑷ 資料庫的維護文檔應該怎麼做

估計夠你寫幾天了。

想想平時遇到了些什麼問題,分門別類,逐個統計歸檔;
為了預防某些問題的出現採取了什麼措施,逐個回放歸檔;
什麼都沒做的話,把SG 中的基本知識翻譯成中文,寫寫;
實在不行在網上搜DBA 日常管理之類的文檔,有好多,看懂後,摘選之。

⑸ DB2 刪除表後如何釋放相應磁碟空間

#說明:由csdn下載,原版為doc格式,有對應的xml表,不過還是應該對每個服務的資料庫單獨考慮需要的檢查表格。

DB2維護手冊

目錄
DB2維護手冊 1
一、 DB2日常維護日操作 3
1、 檢查管理伺服器是否啟動 3
2、 檢查DB2實例是否已經啟動 3
3、 查看錶空間狀態是否正常 3
4、 查看錶的狀態 4
5、 查看磁碟空間 4
6、 檢查存儲管理軟體是否正常 4
7、 檢查資料庫備份是否正常 5
8、 檢查歸檔日誌是否正確歸檔了 5
9、 查看緩沖池的命中率 5
10、 查看當前運行最頻繁的SQL,其命中率是否正常 5
11、 查看當前連接的應用程序,有沒有非法連接 5
12、 檢查有沒有死鎖 6
13、 對表和索引進行RUNSTATS 6
14、 檢查表是否需要重組 6
15、 對需要重組的表進行重組 7
二、 DB2日常維護月操作 7
1、 查看DB2日誌 7
2、 檢查備份和日誌是否都保存好了 7
三、 DB2日常維護季度操作 7
1、 通過快照監控器,查看系統性能如何 7
2、 資料庫補丁級別 8
四、 注意事項 8
1、 不要刪除活動日誌文件 8
2、 注意交易日誌存儲空間 8
3、 按照系統的實際工作量配置日誌空間 8
4、 設置正確資料庫代碼頁 9
5、 檢查許可證(LICENSE)安裝情況 9
6、 創建資料庫前調整好系統時間 9
7、 不要隨便執行 CHOWN (CHMOD) –R (UNIX/LINUX) 9
8、 在歸檔日誌模式下使用LOAD記得加NONRECOVERABLE參數 9
五、 附:以離線方式重組表 9
六、 附:索引重組 10
七、 附:收集和更新統計信息的准則 11
八、 附:使用 CLP 捕獲資料庫運行狀況快照 13

一、 DB2日常維護日操作
1、 檢查管理伺服器是否啟動
用ps命令查看是否有dasusr1後台進程
#ps -ef | dasusr1

請確保管理伺服器已經啟動,如果沒有啟動,則按以下步驟啟動管理伺服器:

 以管理伺服器用戶(UNIX默認是DASUSR1)登錄
 發出db2admin start命令
 如果是HA環境,則要保證在腳本中正確配置了啟動命令
2、 檢查DB2實例是否已經啟動
用ps命令查看是否有db2sysc後台進程
#ps -ef | db2sysc

也可以以DB2實例所有者登錄,通過發出db2start命令來確保啟動了實例(如果實例已經啟動,則會告知SQL1026N 資料庫管理器已激活;否則,將把實例啟動起來)

3、 查看錶空間狀態是否正常
以db2實例所有者登錄
#db2 list tablespaces show detail //在單分區上查看錶空間的狀態,正常返回0x0000
# db2_all list tablespaces show detail //在所有分區上查看錶空間的狀態

可以使用LIST TABLESPACES 命令確定連接資料庫中表空間的當前狀態,可以使用SHOW DETAIL選項查看錶空間的詳細信息。比如,我們連上SAMPLE資料庫,執行list tablespaces show detail ,可以看到狀態返回值是0x0000,此時,使用db2tbst可以查看狀態編號對於的狀態含義,具體語法如下:

db2tbst <tablespace state> 可以查看編號所代表的狀態

db2tbst 命令接收十六進制的狀態值,並返回相應的表空間狀態。例如,命令 db2tbst 0x0008 返回 State = Load Pending 。而該十六進制的狀態值反過來又是 LIST TABLESPACES 命令輸出的組成部分。表空間的外部可見狀態是由單個狀態值的十六進制總和構成的。例如,如果表空間的狀態是 Backup Pending和 Load in Progress,那麼所返回的十六進制值就是 0x20020(0x00020 + 0x20000)
4、 查看錶的狀態
查詢系統目錄視圖以獲得關於資料庫的有用信息。例如,下面的語句使用 NOT LIKE 斷言,返回在 SYSCAT.TABLES 中有項的所有用戶定義的表的名稱,以及每個表的列數和表的狀態(N = 正常;C = 待審核(check pending))

#db2 select tabname, colcount, status FROM syscat.tables WHERE tabschema NOT LIKE 'SYS%' ORDER BY tabname

也可以使用load query命令查看單個表的狀態,比如對表TEST1,我們可以發出如下命令:

#db2 load query table test1

5、 查看磁碟空間
查看資料庫活動日誌目錄是否已滿,活動日誌目錄可以使用get db cfg查看,注意一定不要手工刪除活動日誌
#df -k

查看SMS表空間對應的容器目錄空間是否滿了
#df -k

查看DMS表空間中是否還有可用頁
#db2 list tablespaces show detail //在單分區上查看錶空間的是否還有可用頁
# db2_all list tablespaces show detail //在所有分區上查看錶空間是否還有可用頁

6、 檢查存儲管理軟體是否正常
請檢查TSM或其他存儲管理軟體是否正常,以及磁帶機是否運行正常。
7、 檢查資料庫備份是否正常
請查看TSM或第三方存儲管理軟體,看備份映像文件是否完整的保存到了磁帶機上了,想在DB2上查看備份情況,可以使用LIST命令

# db2 list history backup all for 資料庫名

8、 檢查歸檔日誌是否正確歸檔了
請確保活動日誌目錄下沒有的日誌文件都已經正確歸檔到了帶機上(查看TSM或第三方存儲管理軟體)。

查看活動目錄里的日誌文件:
#ls -l
9、 查看緩沖池的命中率
# db2 get snapshot for bufferpools on 資料庫名
查看緩沖池的命中率,看其是否低於95%(命中率越高越好)
10、 查看當前運行最頻繁的SQL,其命中率是否正常
# db2 get snapshot for bufferpools on 資料庫名 > log.txt
用grep命令查看" Number of executions"執行次數最頻繁的語句,看其命中率是否正常。

比如:
grep -n " Number of executions" snap.out | grep -v "= 0" | sort -k 5,5rn | more

11、 查看當前連接的應用程序,有沒有非法連接
#db2 list applications show detail
看這些連接的情況,看有沒有不合適的IP連上來,或者不被允許的第三方工具連上來,比如一些第三方工具連上來會對表進行鎖定,影響業務系統正常運行,這個時候可以用FORCE APPLICATIONS (應用程序句柄)停下來。
12、 檢查有沒有死鎖
# db2 get snapshot for all on 資料庫名 > log.txt
用grep命令查看輸出的文件中是否有死鎖的記錄,比如
grep -n "Deadlocks detected" log.txt | grep -v "= 0" | more

13、 對表和索引進行runstats
#db2 runstats on table 表名 and index all
對系統表以及變化比較頻繁的表運行統計信息,建議寫成shell腳本自動運行。
14、 檢查表是否需要重組
使用REORGCHK命令,通過統計數據檢查表是否需要重組,語法如下:
REORGCHK [UPDATE | CURRENT ]STATISTICS ON [TABLE SYSTEM| TABLE USER | TABLE ALL | TABLE table_name | SCHEMA schema_name]

UPDATE STATISTICS: 更新表的統計數據,根據該統計數據判斷是否需要重組表
CURRENT STATISTICS:根據當前表統計數據判斷是否需要重組表
TABLE table_name : 對單個表進行分析
TABLE ALL: 對資料庫所有的表進行分析
TABLE SYSTEM: 對系統表進行分析
TABLE USER : 對當前用戶模式下的所有表進行分析

#db2 reorgchk update statistics on table all
15、 對需要重組的表進行重組
#db2 reorg table 表名 //通過重構行來消除「碎片」數據
#db2 reorg indexes all for table 表名 //只重組索引

比如:
reorg table db2inst1.org index by_id
將根據索引by_id,如果不加INDEX選項將重組表和所有的索引
reorg table db2inst1.org index by_id use tempspace1

使用指定的臨時表空間重組表

表重組完成後需要進行RUNSTATS。另外,記住在分區資料庫環境中,如果想在所有節點運行命令,需要使用db2_all命令。

二、 DB2日常維護月操作
1、 查看DB2日誌
請至少每月查看一次db2diag.log文件,看其中是否有異常。
2、 檢查備份和日誌是否都保存好了
通過TSM或第三方存儲管理軟體,查看備份和歸檔日誌是否都保存好了,在資料庫級別查看備份,可以使用:

# db2 list history backup all for 資料庫名

三、 DB2日常維護季度操作
1、 通過快照監控器,查看系統性能如何
通過快照監控器,抓取資料庫的信息,分析資料庫性能是否合理:
# db2 get snapshot for all on 資料庫名 > log.txt
2、 資料庫補丁級別
# db2level
四、 注意事項
1、 不要刪除活動日誌文件
DB2 的活動日誌文件不能被刪除。一旦 DB2 的活動日誌文件被刪除,或者所在的存儲設備出現問題,則不可避免地造成 DB2 資料庫系統宕機。
2、 注意交易日誌存儲空間
在歸檔日誌模式下,如果沒有使用自動歸檔方式,則存儲的日誌文件會不斷增多,有可能造成日誌所在的文件系統空間滿。 當這種情況發生時,會根據參數 BLK_LOG_DSK_FUL 的配置而有不同的現象:
1)如果該參數啟用,則 DB2 資料庫可繼續讀操作,但是寫操作會掛起
2)如果該參數沒有啟用,則 DB2 資料庫會停止工作

兩種情況下,都需要到日誌所在的文件系統添加了空間才恢復正常。

3、 按照系統的實際工作量配置日誌空間
DB2資料庫通過日誌文件維護數據的完整性和一致性。DB2 資料庫的日誌空間可通過如下公式計算:
日誌空間 = (主日誌文件 + 二級日誌文件) * 日誌文件尺寸

其中:
1) 主日誌文件由參數 LOGPRIMARY 控制,
2) 二級日誌文件由參數 LOGSECOND 控制
3) 日誌文件尺寸由參數 LOGFILSIZ 控制
4) LOGPRIMARY + LOGSECOND < 256 (不同的 DB2 版本略有不同,請參看相同版本的 DB2 手冊確認)

4、 設置正確資料庫代碼頁
由於資料庫的代碼頁在資料庫創建之後是無法修改的,所以在創建資料庫時一定要選擇正確的代碼頁。
錯誤的資料庫代碼頁會造成 JDBC/ODBC 訪問時中文欄位被截斷(包括控制中心),這種情況需要重建資料庫以修改資料庫代碼頁。

從全局規劃來說,如果應用需要訪問多個資料庫,那麼這多個資料庫的代碼頁應該是一致的。

5、 檢查許可證(License)安裝情況
許可證過期會造成不必要的服務中斷,所以在 DB2 安裝完畢後,建議檢察許可的安裝情況

6、 創建資料庫前調整好系統時間
在資料庫創建好之後,調整系統時間會造成資料庫內部時間戳的異常。資料庫中一些對象和時間相關,一旦時間不準確要調整需要很小心。錯誤的時間調整可能會造成很多問題,如:
1)某些對象失效,例如 :
SQL0440N,找不到具有兼容自變數的類型為 「<常式類型>」 的名為 「<常式名>」 的已授權常式
2)資料庫日誌邏輯錯誤 -> 宕機
3)常見錯誤 – 只調整時間,未調整時區
7、 不要隨便執行 chown (chmod) –R (UNIX/Linux)
在實例目錄下chown (chmod) -R 會造成
1) 在資料庫伺服器上 db2 connect to <dbname> 能連接上資料庫
2) db2 connect to <dbname> user ... using ...連接不上
8、 在歸檔日誌模式下使用LOAD記得加NONRECOVERABLE參數

五、 附:以離線方式重組表
以離線方式重組表是整理表碎片的最快方法。重組可減少表所需的空間量並提高數據訪問和查詢性能。
必須具有 SYSADM、SYSCTRL、SYSMAINT 或 DBADM 許可權,或者必須具有對表的 CONTROL 許可權才能重組表。必須具有資料庫連接才能重組表。
標識需要重組的表之後,可以對這些表運行 REORG 實用程序,並且可以選擇對在這些表上定義的任何索引運行該實用程序。
1. 要使用 CLP 重組表,請發出 REORG TABLE 命令:
db2 reorg table test.employee
要使用臨時表空間 mytemp 重組表,請輸入:
db2 reorg table test.employee use mytemp
要重組表並根據索引 myindex 對行進行重新排序,請輸入:
db2 reorg table test.employee index myindex
2. 要使用 SQL 調用語句重組表,請使用 ADMIN_CMD 過程發出 REORG TABLE 命令:
call sysproc.admin_cmd ('reorg table employee index myindex')
3. 要使用 DB2 管理 API 重組表,請使用 db2REORG API。
在重組表之後,應收集有關表的統計信息,以便優化器具有最准確的數據來評估查詢訪問方案。
六、 附:索引重組
通過刪除和插入操作對表進行更新後,索引的性能會降低,其表現方式如下:
• 葉子頁分段
葉子頁被分段之後,由於必須讀取更多的葉子頁才能訪存表頁,因此 I/O 操作成本會增加。
• 物理索引頁的順序不再與這些頁上的鍵順序相匹配(此稱為不良集群索引)。
葉子頁出現不良集群情況後,順序預取操作的效率將降低,因此會導致更多的 I/O 等待。
• 形成的索引大於其最有效的級別數。
在此情況下應重組索引。
如果在創建索引時設置了 MINPCTUSED 參數,則在刪除某個鍵且可用空間小於指定的百分比時,資料庫伺服器會自動合並索引葉子頁。此過程稱為聯機索引整理碎片。但是,要復原索引集群和可用空間以及降低葉級別,請使用下列其中一種方法:
• 刪除並重新創建索引。
• 使用 REORG INDEXES 命令聯機重組索引。
因為此方法允許用戶在重建表索引期間對表進行讀寫操作,所以在生產環境中可能需要選擇此方法。
• 使用允許離線重組表及其索引的選項運行 REORG TABLE 命令。
聯機索引重組
在使用 ALLOW WRITE ACCESS 選項運行 REORG INDEXES 命令時,如果同時允許對指定的表進行讀寫訪問,則會重建該表的所有索引。進行重組時,對基礎表所作的任何將會影響到索引的更改都將記錄在 DB2® 日誌中。另外,如果有任何內部內存緩沖區空間可供使用,則還將這些更改放在這樣的內存空間中。重組將處理所記錄的更改以便在重建索引時與當前寫活動保持同步更新。內部內存緩沖區空間是根據需要從實用程序堆中分配的指定內存區域,它用來存儲對正在創建或重組的索引所作的更改。使用內存緩沖區空間使索引重組操作能夠通過這樣的方式來處理更改,即先直接從內存讀取,然後讀取日誌(如有必要),但讀取日誌的時間要晚得多。在重組操作完成後,將釋放所分配的內存。重組完成後,重建的索引可能不是最佳集群的索引。如果為索引指定 PCTFREE,則在重組期間,每頁上均會保留相應百分比的空間。
對於分區表,支持對各個索引進行聯機索引重組和清除。要對各個索引進行重組,指定索引名:REORG INDEX index_name for TABLE table_name
對於空間索引或多維集群(MDC)表,不支持採用 ALLOW WRITE 方式的聯機索引重組。
註: REORG INDEXES 命令的 CLEANUP ONLY 選項不能完全重組索引。CLEANUP ONLY ALL 選項將除去那些標記為「刪除」且被認為要落實的鍵。此外,它還將釋放所有標記為「刪除」且被認為要落實的鍵所在的頁。在釋放頁後,相鄰的葉子頁將會合並,前提是這樣做可以在合並頁上至少留出 PCTFREE 可用空間。PCTFREE 是指在創建索引時為其定義的可用空間百分比。CLEANUP ONLY PAGES 選項僅刪除那些標記為「刪除」且被認為要落實的所有鍵所在的頁。
使用 CLEANUP ONLY 選項對分區表的索引進行重組時,支持任何訪問級別。如果未指定 CLEANUP ONLY 選項,則預設訪問級別 ALLOW NO ACCESS 是唯一支持的訪問級別。
REORG INDEXES 具有下列要求:
• 對索引和表具有 SYSADM、SYSMAINT、SYSCTRL 或 DBADM 許可權,或者具有 CONTROL 特權。
• 用於存儲索引的表空間的可用空間數量等於索引的當前大小
在發出 CREATE TABLE 語句時,考慮在大型表空間中重組索引。
• 其他日誌空間
REORG INDEXES 需要記錄其活動。因此,重組可能會失敗,尤其是在系統繁忙和記錄其他並發活動時。
註: 如果具有 ALLOW NO ACCESS 選項的 REORG INDEXES ALL 命令運行失敗,則會標記索引無效並且此項操作不可撤銷。但是,如果具有 ALLOW READ ACCESS 選項的 REORG 命令或具有 ALLOW WRITE ACCESS 選項的 REORG 命令運行失敗,則可以復原原來的索引對象。

七、 附:收集和更新統計信息的准則

RUNSTATS 命令收集表、索引和統計信息視圖的統計信息,以為優化器提供准確信息進行訪問方案選擇。
在下列情況下,使用 RUNSTATS 實用程序來收集統計信息:
• 當數據已裝入表中且已創建適當的索引時。
• 當在表中創建新的索引時。如果自從上次在表中運行 RUNSTATS 以來尚未修改表,則只需要對新的索引執行 RUNSTATS。
• 當一個表已用 REORG 實用程序重組時。
• 當通過數據修改、刪除和插入已大量更新表及其索引時。(此處所指的「大量」可能表示有 10% 到 20% 的表和索引數據受影響。)
• 在綁定性能非常重要的應用程序之前
• 當您想要比較當前和先前統計信息時。如果定期更新統計信息,則可以及早發現性能問題。
• 當預取量更改時。
• 當使用了 REDISTRIBUTE DATABASE PARTITION GROUP 實用程序時。
注:
在先前版本的 DB2® 中,此命令使用了 NODEGROUP 關鍵字,而不是 DATABASE PARTITION GROUP 關鍵字。
• 使用 RUNSTATS 實用程序來收集關於 XML 列的統計信息。 使用 RUNSTATS 僅收集 XML 列的統計信息時,將保留 LOAD 或上一次執行 RUNSTATS 實用程序已收集的非 XML 列的現有統計信息。如果先前已收集關於一些 XML 列的統計信息,則在當前命令未收集關於該 XML 列的統計信息時,將刪除先前收集的 XML 列的統計信息;在當前命令收集了關於該 XML 列的統計信息時,將替換先前收集的 XML 列的統計信息。
要提高 RUNSTATS 性能並保存用來存儲統計信息的磁碟空間,考慮僅指定應該收集其數據分布統計信息的列。
理論上,您應在運行統計信息之後重新綁定應用程序。如果查詢優化器具有新的統計信息,則它可以選擇不同的訪問方案。
如果您沒有足夠的時間一次收集全部的統計信息,則可以運行 RUNSTATS 來每次僅更新幾個表、索引或統計信息視圖的統計信息,並輪流完成該組對象。如果對選擇性部分更新運行 RUNSTATS 期間由於表上的活動而產生了不一致性,則在查詢優化期間將發出警告消息(SQL0437W,原因碼 6)。例如,如果執行 RUNSTATS 來收集表分布統計信息,以及在某個表活動後,再次執行 RUNSTATS 來收集該表的索引統計信息,則可能發生這種情況。如果由於表上的活動產生了不一致並且在查詢優化期間檢測到這些不一致,則發出該警告消息。當發生這種情況時,應再次運行 RUNSTATS 來更新分布統計信息。
要確保索引統計信息和表同步,執行 RUNSTATS 來同時收集表和索引統計信息。索引統計信息保留自上次運行 RUNSTATS 以來收集的大部分表和列的統計信息。如果自上次收集該表的統計信息以來已對該表做了大量修改,則只收集該表的索引統計信息將使兩組統計信息不能在所有節點上都同步。
對生產系統調用 RUNSTATS 可能會對生產工作負載的性能產生負面影響。RUNSTATS 實用程序現在支持調速選項,在執行較高級別的資料庫活動期間,可以使用調速選項來限制執行 RUNSTATS 的性能影響。
在分區資料庫環境中收集表的統計信息時,RUNSTATS 僅收集執行該命令的資料庫分區上的表的統計信息。將此資料庫分區的 RUNSTATS 結果推廣到其他資料庫分區。如果執行 RUNSTATS 的資料庫分區不包含特定表的一部分,則將請求發送到資料庫分區組中包含該表一部分的第一個資料庫分區。
收集統計信息視圖的統計信息時,將收集所有包含該視圖引用的基本表的資料庫分區的統計信息。
考慮以下技巧來提高 RUNSTATS 的效率和已收集的統計信息的有效性:
• 僅對用來連接表的列或 WHERE、GROUP BY 以及查詢的類似子句中的列收集統計信息。如果對這些列建立了索引,則可以用 RUNSTATS 命令的 ONLY ON KEY COLUMNS 子句指定列。
• 為特定表和表中特定列定製 num_freqvalues 和 num_quantiles 的值。
• 使用 SAMPLE DETAILED 子句收集 DETAILED 索引統計信息,以減少對詳細的索引統計信息執行的後台計算量。SAMPLE DETAILED 子句減少收集統計信息所需要的時間,並在大多數情況下產生足夠的精度。
• 當創建已填寫的表的索引時,添加 COLLECT STATISTICS 子句來在創建索引時創建統計信息。
• 當添加或除去了大量錶行時,或如果更新了收集其統計信息的列中的數據,則再次執行 RUNSTATS 來更新統計信息。
• 因為 RUNSTATS 僅收集單個資料庫分區的統計信息,所以,如果數據不是在所有資料庫分區中一致分發的,則統計信息將不太准確。如果您懷疑存在變形數據分發,則您可能想要在執行 RUNSTATS 之前使用 REDISTRIBUTE DATABASE PARTITION GROUP 命令來在各資料庫分區之間再分發數據。
八、 附:使用 CLP 捕獲資料庫運行狀況快照

可從 CLP 使用 GET HEALTH SNAPSHOT 命令來捕獲運行狀況快照。該命令語法支持檢索運行狀況監視器監視的不同對象類型的運行狀況快照信息。
先決條件
必須具有實例連接才能捕獲運行狀況快照。如果沒有實例連接,則創建預設實例連接。要獲取遠程實例的快照,必須先連接至該實例。
過程
要使用 CLP 捕獲資料庫運行狀況快照
1. 從 CLP 發出帶有期望參數的 GET HEALTH SNAPSHOT 命令。
在以下示例中,將在啟動資料庫管理器之後立即捕獲資料庫管理器級別運行狀況快照。
db2 get health snapshot for dbm

2. 對於分區資料庫系統,可為特定分區捕獲專門的資料庫快照,或者為所有分區捕獲全局的資料庫快照。要對特定分區(如分區號 2)上的資料庫捕獲運行狀況快照,請發出以下命令:
db2 get health snapshot for db on sample at dbpartitionnum 2
要對所有分區上的所有應用程序捕獲資料庫快照,請發出以下命令:
db2 get health snapshot for db on sample global
以下命令捕獲的運行狀況快照帶有附加詳細信息,包括公式、附加信息和運行狀況指示器歷史記錄:
db2 get health snapshot for db on sample show detail

3. 對於基於集合狀態的運行狀況指示器,可對所有集合對象捕獲資料庫快照,而不考慮這些對象的狀態。常規 GET HEALTH SNAPSHOT FOR DB 命令返回所有集合對象,這些對象需要針對所有基於集合狀態的運行狀況指示器的警報。
要對列示了所有集合對象的資料庫捕獲運行狀況快照,請發出以下命令:
db2 get health snapshot for db on sample with full collection

⑹ MySQL資料庫的日常維護有哪些

日常維護有很多方面的工作:資料庫狀態監控、性能分析、SQL代碼分析與優化等等。資料庫巡檢等等工作,你可以參考國內上海愛可生公司網站上提供的MySQL服務相關的內容來寫,呵呵。還可以咨詢他們。

⑺ 《Oracle資料庫管理與維護技術手冊》最新txt全集下載

沒郵箱怎麼發

⑻ 資料庫維護和管理是哪些內容

一般來說 維護的工作就是日常的監控和備份恢復工作。也有安裝,配置,啟動,關閉,優化的工作。可以查看你用的資料庫的管理員手冊,一般都有這樣的日常admin工作的清單。資料庫維護是指當一個資料庫被創建以後的工作都叫做資料庫維護。包括備份系統數據、恢復資料庫系統、產生用戶信息表,並為信息表授權、監視系統運行狀況,及時處理系統錯誤、保證系統數據安全,周期更改用戶口令。

⑼ 誰能給個linux和mysql的維護手冊

1. grant select,delete,create on mmall.* to 'mmall'@'%';2. show grants for mmall;增加許可權以後需要重啟MySql Server獲取執行: flush privileges;

⑽ 如何進行資料庫的維護,平時需要做些什麼

資料庫日常維護(參考) 資料庫日常維護工作是系統管理員的重要職責。其內容主要包括以下幾個部分: 一、備份系統數據 SYBASE 系統的備份與恢復機制保證了在系統失敗時重新獲取數據的可能性。SQL Server 提供了兩種不同類型的恢復機制:一類是系統自動完成的恢復,這種措施在每次系統啟動時都自動進行,保證了在系統癱瘓前完成的事務都寫到資料庫設備上,而未完成的事務都被回退;另一類是人工完成的恢復,這是通過 DUMP 和 LOAD 命令來執行人工備份和恢復工作。因此定期備份事務日誌和資料庫是一項十分重要的日常維護工作。 1、備份資料庫 每一個資料庫都應在創建之後卸出,從而提供一個裝入基點。在此之後按排定的時間周期表卸出。比如每周五卸出資料庫。對一般資料庫系統卸出資料庫周期建議為每周一次。 除了按計劃周期卸出資料庫之外,還需在每次運行沒有日誌的操作後卸出資料庫。例如: ·每次強制地運行了 DUMP TRAN WITH NO_LOG (因為資料庫的磁碟空溢出); ·每次用 sp_dboption 允許 select into/bulk 做快速拷貝,或用 SELECT INTO 命令創建一個永久性的表,或使用了 WRITETEXT 命令。 卸出資料庫的命令為: DUMP DATABASE database_name TO mp_device database_name 是要卸出的資料庫名稱,mp_device 是卸出設備的名稱。用系統過程 sp_helpdevice 可以獲得設備的信息。 下面一條命令用來卸出資料庫 my_db : DUMP DATABASE my_db TO db_bk_dev 2、備份事務日誌 如果事務日誌與資料庫放在同一個設備上,則事務日誌不應與資料庫分開備份。master 資料庫和小於 4M 的用戶資料庫就是這種情況。一般資料庫系統的資料庫和日誌分別放在不同的設備上,因此,可以用 DUMP TRAN 命令單獨備份日誌。 備份事務日誌的周期直接影響數據的恢復程度,因此建議每天備份。 備份事務日誌的命令格式為: DUMP TRANsaction database_name [TO mp_device] [WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE] 其中 database_name 是要備份事務的資料庫名稱,mp_device 是備份設備名稱,僅當包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句時,才可以備份到設備。 注意:如果總是用 DUMP DATEBASE (備份資料庫及其日誌),而不用 DUMP TRAN ,事務日誌將不會刷新,而變得非常龐大。 對於 master 資料庫和小型資料庫每次運行 DUMP DATEBASE 之後應當運行 DUMP TRANsaction 命令刷新日誌 。 下面一條命令備份資料庫 db160 的事務日誌到備份設備上: DUMP TRANsaction db160 TO db_log_bk_dev WITH TRUNCATE_ONLY 3、備份資料庫及其日誌間的相互作用 在至少卸出一次資料庫前,卸出事務日誌是毫無意義的。下圖顯示了備份資料庫及其日誌間的關系 如果在星期二下午5:01出現非硬體故障,需要做的所有工作是裝入磁帶5(參見下一節:數據恢復),由於磁帶5是下午5:00剛備份的,因此只有備份和裝入之間的一分鍾內的數據損失。 但是,如果在星期二下午4:49失效會怎麼樣呢?在這種情況下,要裝入磁帶1(在星期五下午5:00的卸出)。然後,依次裝入磁帶2,3以及4。這樣,系統將恢復到星期二上午10:00點的狀態,星期二的大部分工作丟失了。此例顯示了經常卸出事務的重要性。 二、萬一系統失敗時恢復資料庫系統 如果用戶資料庫存儲的設備失效,從而資料庫被破壞或不可存取,通過裝入最新的資料庫備份以及後來的事務日誌備份可以恢復資料庫。假設當前的事務日誌存在於一個並沒有毀壞的設備上,帶著 WITH NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出它。 要恢復資料庫按如下步驟去做: 1、如果日誌存在於一個分離的設備上,用帶著 NO_TRUN

熱點內容
簡訊刪除後怎麼找伺服器 發布:2024-04-25 21:15:06 瀏覽:387
查ip地址伺服器數量 發布:2024-04-25 20:49:48 瀏覽:620
安卓手機單核性能為什麼不高 發布:2024-04-25 20:48:07 瀏覽:56
群暉php 發布:2024-04-25 20:00:35 瀏覽:884
怎麼查看我的wifi密碼 發布:2024-04-25 18:54:43 瀏覽:757
fckeditorforjava 發布:2024-04-25 18:50:27 瀏覽:624
優酷上傳視頻需要多久 發布:2024-04-25 18:33:05 瀏覽:675
inf12編譯器 發布:2024-04-25 18:15:39 瀏覽:99
撲克總督3安卓哪裡下載 發布:2024-04-25 18:10:02 瀏覽:395
什麼網站是php 發布:2024-04-25 18:03:42 瀏覽:221